The Q2C software is designed to convert Quikjob (Vision:Report) source programs automatically to high-quality Cobol programs, using the Automatic Mass Processing technology that has formed the basis of our software for over 30 years.
Put simply, this means that the entire stock of programs can be processed in a single run, which has great advantages both in terms of the speed of the conversion and the consistency of the results. A typical conversion consists of a number of processing cycles or “iterations” during which the software is customized and the converted programs are compiled and tested until the results are completely correct. Optionally, each cycle can start from a fresh supply of the material to be converted, so that there is no “freeze” on maintenance by the customer. Any programs that have been modified since the previous cycle will be automatically re-converted to the latest standards.
The software converts both VSE and z/OS (MVS) Quikjob programs to IBM Enterprise Cobol, or the equivalent. In addition to the source material, the customer has to supply certain information that is not explicitly specified in Quikjob. This includes the position and length of VSAM key fields, and, in the case of z/OS Quikjob, some information needed to create File Descriptions (fixed/variable format, record-length ...).
At present, the software used to perform the conversion is run on our own z/OS system, as part of a complete conversion service.
The price of the conversion includes as many customization/conversion/compilation/ testing cycles as necessary, until the results are completely correct. We are responsable for the first three aspects, but it is the customer’s responsability to test the converted programs and to identify and report any problems to us so that we can resolve them during the next cycle.
The price also includes free technical support for three months after the final delivery of the converted programs.
The cost of any given conversion depends on several factors: the total number of programs, the number of lines per program, and the degree of complexity of the individual modules. The price for a number of short, simple programs will therefore obviously be much lower than for the same number of long, complex programs.
Although we cannot make an accurate estimate of the cost of a conversion before running the evaluation, we would expect the final price of a small conversion to work out at somewhere between €1.20 and €1.50 per line of code, depending on the factors described above. So, for example, a very simple 50-line program might cost €60, and a very complex 200-line program might come to €300. However, because of the mass-processing nature of the conversion, these prices would be lower in the case of a large conversion.
In order for us to be able to give a precise estimate of the cost, we offer a free evaluation service based on a detailed analysis of the material to be converted. During this evaluation, we will also convert and compile without errors a sample of up to 5 programs, consisting of not more than 500 lines of Quikjob code in total, to give you a clear idea of the quality of the converted Cobol code, and to serve as “proof of concept”. (Please note that the sample conversion will be done on an “as-is” basis, so the converted programs may not be immediately executable without the specific customization that we would apply during a full conversion.)
To perform the evaluation, we would need a machine-readable copy of the program source material, together with any ++INCLUDEs that are used. We would expect to be able to provide the detailed results of the analysis together with the price for the conversion within ten working days of receiving the material.
We hope this is of interest to you. If you need more information, or wish to go ahead with a free evaluation and/or a sample conversion, please contact us either by email or by telephone at one of the numbers or addresses below.
The following example demonstrate the capabilities of the Q2C LCP for converting QuickJob source statements to COBOL..
OPTION SEQCHK=NO,WSTSIZE=4000,STMTEND=65,STMTS=900,GENSIZE=12200 * OPTION LIST=NO OPTION SEQCHK=NO INFKSDS 0080S LBL=PRCHEK EQU DATE WST1-4 EQU DATE EQU DATE-CC (2) EQU DATE-YY (2) EQU CKDT (9) N EQU CKDT EQU CKDT-FIL (1) EQU CKDT-CY (4) EQU CKDT-MD (4) REPORT INF11-19 (CHK#) SPACE01 INF25-29-P (DATE) SPACE01 VAL56-57 ($DT) SPACE01 DATE (DATE) SPACE01 CKDT (CKDT) SPACE01 CKDT-CY (CKCY) SPACE01 MOVE VAL56-61 TO DATE-YYMMDD MOVE VAL56-57 TO DATE-YY MOVE C'20' TO DATE-CC SUB C'7' FROM DATE 100 GET INF ATEND EOJ MOVE INF25-29-P TO CKDT IF CKDT-CY > DATE GOTO 100. PRINT REPORT GOTO 100 999 END
Identification Division.
*---------------------------------------------------------------*
* Quikjob to Cobol conversion on 2017-01-16 at 09:50:33 *
*---------------------------------------------------------------*
Program-Id. Q2CDEMO.
Environment Division.
Input-Output Section.
File-Control.
Select Inf assign to Ksds-prchek
organization is indexed
access mode is sequential
record key is Inf-key.
Select Prt assign to Sys006-s-syslst.
Data Division.
File Section.
FD Inf.
01 Inf-file-rec Pic X(80).
01 Inf-key-rec.
05 Inf-key Pic X(05).
05 Filler Pic X(75).
FD Prt
recording mode is F.
01 Prt-file-rec Pic X(132).
Working-Storage Section.
*----------------------------------------------------------------
* General Working-Storage fields
*----------------------------------------------------------------
01 Wst-area.
05 Wst1-4 Pic X(4).
05 Date--r redefines Wst1-4 Pic 9(4).
05 Filler redefines Wst1-4.
10 Wst1-2 Pic X(2).
10 Date-cc redefines Wst1-2
Pic X(2).
10 Wst3-4 Pic X(2).
10 Date-yy redefines Wst3-4
Pic X(2).
05 Wst5-13 Pic 9(9).
05 Ckdt redefines Wst5-13 Pic 9(9).
05 Filler redefines Wst5-13.
10 Wst5-5 Pic X(1).
10 Ckdt-fil redefines Wst5-5
Pic X(1).
10 Wst6-9 Pic X(4).
10 Ckdt-cy redefines Wst6-9
Pic X(4).
10 Wst10-13 Pic X(4).
10 Ckdt-md redefines Wst10-13
Pic X(4).
*----------------------------------------------------------------
* Input record descriptions
*----------------------------------------------------------------
01 Inf-rec Pic X(80).
01 Inf1-80 redefines Inf-rec.
05 Inf1-10-filler Pic X(10).
05 Inf11-19 Pic X(9).
05 Inf20-24-filler Pic X(5).
05 Inf25-29-p Pic S9(9) packed-decimal.
05 Inf30-80-filler Pic X(51).
*----------------------------------------------------------------
* Printfile record descriptions
*----------------------------------------------------------------
01 Prt-rec Pic X(132) value spaces.
*----------------------------------------------------------------
* Report record descriptions
*----------------------------------------------------------------
01 Report-page-header.
05 Rep-page-date Pic X(10) value 'DD/MM/CCYY'.
05 Filler Pic X(26) value spaces.
05 Filler Pic X(05) value 'PAGE '.
05 Rep-page-no Pic ZZZ9.
01 Report-header.
05 Header-1-01 Pic X(09)
value '..CHK#...'.
05 Filler Pic X(01) value spaces.
05 Header-1-02 Pic X(10)
value '......DATE'.
05 Filler Pic X(02) value spaces.
05 Header-1-03 Pic X(03)
value '$DT'.
05 Filler Pic X(01) value spaces.
05 Header-1-04 Pic X(04)
value 'DATE'.
05 Filler Pic X(01) value spaces.
05 Header-1-05 Pic X(09)
value '.....CKDT'.
05 Filler Pic X(01) value spaces.
05 Header-1-06 Pic X(04)
value 'CKCY'.
05 Filler Pic X(01) value spaces.
01 Report-line value spaces.
05 Rep-inf11-19 Pic X(09).
05 Filler Pic X(01).
05 Rep-inf25-29-p Pic Z(9)-.
05 Filler Pic X(01).
05 Rep-val56-57-x.
10 Rep-val56-57 Pic X(02).
10 Filler Pic X(01).
05 Filler Pic X(01).
05 Rep-date--r Pic Z(4).
05 Filler Pic X(01).
05 Rep-ckdt Pic Z(9).
05 Filler Pic X(01).
05 Rep-ckdt-cy Pic X(04).
*----------------------------------------------------------------
* Quikjob to Cobol conversion fields
*----------------------------------------------------------------
Copy Q2CVAL.
01 Q2c-fields.
05 Pgm--name Pic X(8) value 'Q2CDEMO '.
05 Page-count Pic 9(4) value zero.
05 Lines-printed Pic 9(3) value 99.
05 Lines-to-advance Pic 9 value 1.
05 Inf-eof Pic X value space.
*****************************************************************
Procedure Division.
Initial-process Section.
Copy Q2CINIT.
Initialize Wst-area
Initialize Inf-rec
Move Date--dd to Rep-page-date (1:2)
Move Date--mm to Rep-page-date (4:2)
Move Date--ccyy to Rep-page-date (7:4).
Open I-O Inf.
Open output Prt.
Main-process Section.
Move Date--ymd to Date-yymmdd
Move Date--yy to Date-yy
Move '20' to Date-cc
Subtract 7 from Date--r.
Main-100.
Read Inf into Inf-rec
at end
Move 'E' to Inf-eof
Move high-values to Inf-rec
go to End-process
end-read
Move Inf25-29-p to Ckdt
If Ckdt-cy > Date--r
go to Main-100.
Perform Print-report
go to Main-100.
End-process Section.
Goback.
Additional-processing Section.
*----------------------------------------------------------------
* Report and printfile processing sections
*----------------------------------------------------------------
Print-report.
Move Inf11-19 to Rep-inf11-19
Move Inf25-29-p to Rep-inf25-29-p
Move Date--yy to Rep-val56-57
Move Date--r to Rep-date--r
Move Ckdt to Rep-ckdt
Move Ckdt-cy to Rep-ckdt-cy
Move Report-line to Prt-rec
Perform Print-line.
Print-line.
If Lines-printed >= 64
Perform Print-report-header
end-if
Write Prt-file-rec from Prt-rec
after Lines-to-advance
Add Lines-to-advance to Lines-printed
Move 1 to Lines-to-advance
Move spaces to Prt-rec.
Print-report-header.
Move 0 to Lines-printed
Add 1 to Page-count
Move Page-count to Rep-page-no
Write Prt-file-rec from Report-page-header
after advancing page
Write Prt-file-rec from Report-header
Move spaces to Prt-file-rec
Write Prt-file-rec
Add 3 to Lines-printed.
Copyright © 2019 Logos Computer Services Ltd. Search key-words: ibm legacy mainframe mainframes main-frame mvs/esa os/390 z/os os390 zos vse dos/vs dos/vse vse/esa z/vse zvse Quikjob Answer:report QUIKJOB convert conversion translate translation VSE MVS z/OS z/VSE source code statements programming language needed