Various
issues mostly related to Easytrieve Conversion, from Build 279 to ???.
Brown indicates Easytrieve code, blue indicates Jazz.
1. DPIC mapping option: allows numeric fields to be mapped to character
2. Better spreadsheet coordination: automatic opening and closing
3. [Convert] was unexpectedly dropping some lines when multi-line continuation. Now fixed
4. Sometimes there was a program error (System.NullReferenceException) on clicking [Convert]. Now fixed
5. Statements after Report were being dropped if you selected No: use a routine, not Yes: In Line Printing. Now fixed
6. Message
683 now produced correctly. It was being
produced for all PRINT routines; it is now produced only if the EZT Report
contains a special-names procedure like
BEFORE-BREAK.
PROC
General
7. Error Help: extended characters “” ‘’ replaced with simple " and ' so that the display is correct
8. Import from Easytrieve now creates a single copy book, EZT-program-DATA, containing all the definitions in the EZT program. The whole EZT program is processed, so that DEFINE statements are included, and HEADING statements become HEADING properties of the relevant fields.
9. Dialog Logic/Batch Program allows for the copybook, and will default the Input file to the first file from the copy book.
10. An error when processing an INSTREAM definition has been fixed
11. If no input file is named, Logic/Batch Program still creates a program.
12. EZT GET statements are recognized and rejected.
13. EZT System names SYSDATE, SYSTIME, and SYSDATE-LONG are recognized and handled
14. DISPLAY statements are supported
15. END PROCESS file EXIT condition can be used to terminate a PROCESS loop.
16. PROCESS MERGE. The dialog Logic/Batch Program now allows sequential merge programs (EZT “Synchronized File Processing”) to be easily created. Simply by naming an output file, this becomes a sequential update program. Refer to Merge Processing for detail.
17. MANASYS now provides better handling of EZT Unsigned Packed (format U) data, converting it to special type USPCKD with a related DECIMAL field.
18. Generic Assignments: STRICT and SIMPLE options. With Record1.* = Record2.* SIMPLE; fields are assigned from Record2 to Record1 if their field names are the same. With STRICT the field’s path within Record1 and Record2 must be the same. This is the default, and was the previous rule.
19. EZT conversion:
o Field definitions following ENDTABLE are correctly handled.
o Multiple [Jazz Defn] without refresh do not generate EZT-xxxx-DATA1, 2, 3 …
o When EZT-xxxx-DATA contains definition FILEX, naming FILEX in Input or other file textboxes does not require a copybook for FILEX to be present.
o Import from Easytrieve: word smart quotes ‘ ’ are now replaced with basic quotes, ', so that character strings are recognized.
o When generating an EZT merge program, key names can be given with #, $, or @. The special characters are substituted as with Import from Easytrieve
o EZT Data definitions can use position *, meaning next available position.
20. MERGE with SORT. PROCESS FILE1 SORT MERGE FILE2 ON (FILE1.KEY1A = FILE2.KEY1B) [COPY FILE1O]; will sort FILE1 into the correct sequence before the PROCESS. SORT options may be given for either or both files.
21. EZT conversion. If an EZT PRINT statement does not name a report, the report name will be taken from the following REPORT statement.
22. Error corrected: PRINT (JZ.COPY-WANTED) now produces COBOL that compiles and correctly prints True or False.
23. Import from Easytrieve
o Leading signs in VALUE clauses are handled correctly, + is ignored, - creates a -ve value.
o Message #048 W Data Definition longer than 32767 bytes reduced to W
o Definition errors have been corrected
o Strings are not terminated by period and blank (“.b”) if this is within the string.
24. RETURN-CODE can now be set with a simple assignment
25. IF FILE-STATUS(VSAM1) NOT ZERO and similar statements are now correctly converted to IF VSAM1.$FOUND [= FALSE]
26. Import from Easytrieve: Indexes are now converted, resulting in SMALLINT fields within definition EZT-INDEX at the bottom of the EZT-xxx-Data copy book.
27. CONTINUE PROCESS has been reviewed:
o Within a PROCESS loop it does not have to be followed by ELSE, it can also be followed by ELSEIF or END.
o There is a message if it immediately precedes the END PROCESS statement (because it is unnecessary)
o If CONTINUE PROCESS is within a Routine it should be changed to an appropriate EXIT statement
28. The EXIT statement has been enhanced to provide options to exit a Routine or FOR loop.
29. Multiple Report Headings. The HEADING option of the Jazz REPORT statement accepts multiple heading strings. Multiple EZT TITLE statements are now accepted and converted.
30. TALLY option added to PROCESS statement. TALLY behaves as it does in EZT, counting records by control break.
31. EZT Conversion:
o COPY statements are no longer generated if PUT (WRITE) statements are present.
o In generated PRINT statements SUM is added to numeric fields, other than control fields
32. AVG can be used in PRINT statements to report average values. The corresponding PROCESS statement must use the TALLY option.
33. MANASYS repeats Jazz procedural statements as comments ahead of the generated COBOL. A new configuration option allows this to be suppressed.
34. Errors fixed:
o Jazz CONTINUE PROCESS statements now generate COBOL GO TO process-EXIT, instead of incorrectly generating CONTINUE.
o Column headings were mis-aligned if a heading contained a quote, e.g. “Salesperson’s”. Now correct
o Numeric control fields were printing as 0 for records after the first. They are now printed as blank.
35. PROCESS File … REOPEN causes File to be closed and re-opened for input, allowing a single program to create a work file, and then process it. For example, this makes it easy to produce reports in different sequences without having to create separate programs linked by JCL.
36. CONTINUE PROCESS; now works for SQL as it already did for sequential and VSAM files.
37. Various errors with PRINT have been corrected: -
o Multi-line column headings are kept separate when there are two or more PRINT statements, or a PRINT statement overflows a line.
o Correct COBOL is now produced if a PRINT statement overflows a line.
o Multi-line column headings are correctly aligned
38. PROCESS … MERGE with multiple sequence keys. The Batch Program dialog has been improved, and now supports more than one sequence key per file. The ON option has been replaced with SKEY to provide the necessary flexibility. Further development is needed to support PROCESS … MERGE …COPY when SKEYS names 2 or more keys per file, in the meantime message #706 is produced if this case is encountered.
39. Configuration options are now provided so that you can have column headings that are not extended with hyphens or the boundary asterisks
40. Easytrieve MOVE LIKE statements are now converted correctly.
41. COBOL generated for OPEN now tests only for Status Code 00
42. Define when needed. Now FLAG1-9 and IX1-9 fields are defined in record JZ2 only when they are referenced, reducing the number of unused fields that are defined into the COBOL.
43. EZT conversion:
o Titles can use COL to position them across the line.
o EZT GET statements become Jazz GET file NEXT; to read the next sequential record. With this, it is necessary that you use a FOR loop, and test for End File with IF. It is recommended that you use PROCESS instead.
o Easytrieve External Table definitions are now converted into ETABLE format, which can be loaded from a file and searched with the SEARCH statement.
44. Jazz now has a SEARCH statement, used to search coded fields and tables.
45. The Jazz
Statement ID is displayed as a comment, e.g.
SEARCH(TEST1.DESC) WITH
W.WITH GIVING
W.GIVE;[21]
making it easier to relate the Jazz statement to the generated
COBOL code.
46. For PROCESS statements this ID is fixed with the SID option, so that references to BREAK and SUM fields remain valid with later program editing.
47. A configuration option (COBOL tab) allows you to force COBOL field names to upper case.
48. Various Error Fixes
o Dialog Logic/Batch, selecting MERGE option, now correctly recognizes definitions within the EZT copy book.
o Label printing: now generates valid COBOL including references to JZ2.IX1 and JZ2.IX2.
o Statement ID comments (see #45 above) causes order options to be incorrectly added to PROCESS statements. Now OK.
o EZT conversion error: '. ' (period followed by a blank) caused the character string to be terminated, creating errors. Now OK.
o If a PRINT statement refers to TALLY, a TALLY option is added to the relevant PROCESS statement to make it valid.
49. GET file NEXT; now always produces message #707. Help for this directs users to a web page suggesting how to simplify code by using PROCESS instead.
50. Configuration option added: Statement ID comments are now optional.
51. The SEARCH statement has been extended to search any coded field or table. Refer to https://www.jazzsoftware.co.nz/Docs/JazzLRM_SEARCH.htm
52. A simple dialog can now create routines to load tables. Refer to https://www.jazzsoftware.co.nz/Docs/JazzWKLProc.htm
53. Various Error Fixes: -
o Easytrieve conversion: characters @, #, $ and : are not substituted when they appear within comments. They continue to be correctly substituted in normal text.
o PRINT (…) LINE(1) ; was causing invalid COBOL unless label printing options were used. Now LINE is ignored (except for LABEL printing).
54. EXIT FOR; and CONTINUE FOR; statements
are now available. EXIT terminates the FOR
loop, CONTINUE terminates the current
iteration, execution continues with the next cycle unless the FOR loop has been completed. FOR loops can be nested, and EXIT
and CONTINUE may be used for inner
or outer loops.
55. EXIT PROCESS; and CONTINUE PROCESS; statements are now available, and function as described above for FOR. PROCESS statements cannot normally be nested.
56. The dialog to create load routines has been enhanced: -
o If the table does not fields with SKEY or TKEY properties, the dialog will locate these fields and update the table definition.
o When creating the load routine, there are now options to change overflow handling – set return code, optionally abort program.
o When loading is finished, the load file is closed unless you explicitly say that you want it left open.
57. PROCESS F1 MERGE F2 … OUTPUT F1OUT; now
works with any number of SKEY
pairs. See https://www.jazzsoftware.co.nz/Docs/JazzUGmerge.htm
for more information.
58. With
more than a single key pair file comparison becomes complex, so special fields $CMerge and $CMergeOut are available to compare
merge file keys. $CMerge = 0 when F1 and F2 match, is
positive if F1 > F2, and -ve if F1 < F2. $CMergeOut is the same except that it
compares the output file (F1OUT) with the transaction file (F2).
59. If
a REPORT statement gives a name, e.g. REPORT NAME 'Rpt1' …,
then this name is used for JCL. If the
name in incorrect for COBOL and JCL, then it is corrected by replacing invalid
characters like hyphens, and truncation to 8 characters if necessary.
60. DUPLICATE
can now be used as a comparison operator, e.g IF DUPLICATE OLDMSTR; See https://www.jazzsoftware.co.nz/Docs/JazzLRMConditions.htm#duplicate
for details.
61. Various Error Fixes
o PROCESS F1 MERGE F2 … UNTIL condition; now correctly terminates the loop.
62. Several issues arising from the conversion of programs like MYPROG (Easytrieve Plus Reference Guide, p12-21) have been addressed with more messages and corrections, most of which have URLs that will take you directly to the correct part of the relevant HELP page.
You’ll get this build automatically when Download Jazz is clicked.
Existing users: if you’re running MANASYS Jazz from a saved shortcut, check that you’re running the current build by looking at Help/About, or the line 4 comment of the generated COBOL. If you have a saved shortcut then this will continue to run the old version until you download a new version from our web site.
We’re never short of ideas, but the important ideas are yours. What would you like us to do next? Every release is an opportunity to rethink and reset, so there’s never a better time to tell us what enhancements you’d like to see. Please let us know your priorities and suggestions for further development.
Robert Barnes
CEO, Jazz Software Ltd
Skype: Robert.Barnes3
LinkedIn linkedin.com/in/robert-barnes-5b833a
IBM PartnerWorld member