RPG Toolbox

The software and user guides for RPG Toolbox are available to download from the https://my.linoma.com customer portal.

If you already have the RPG Toolbox installed on your IBM i (iSeries) and want to see your current installed version, run the command:

DSPDTAARA RPGTOOLBOX/VERSION

A new product license key is required when upgrading from a version that is older than 5.00. Please contact HelpSystems at keys@Helpsystems.com to request a new product license key.

NOTE:

To support the totally free form in V7R1, you will need IBM PTF SI51094. For SQLRPGLE member types, you will also need IBM DB2 group PTF SF99701 level 26.

NOTE:

The *FREE3 option is only valid when targeting IBM i release V7R1 and higher. This level of free-form syntax was made available with the IBM i Technology Refresh 11 on V7R1 and Technology Refresh 3 on V7R2 in October 2015.

December 26, 2018

Version 5.39
Enhancement
  • ENHANCE: Changed the Z-ADD parameter to always convert when value is *zeros, *hival or *loval.
  • ENHANCE: Changed the MOVE and MOVEL parameters to always convert when value is *hival, *loval or *ALL.
  • ENHANCE: Changed to give field names 15 characters when used in DCL-S, DCL-PR, DCL-PI and DCL-DS declarations when the field name lengths are smaller than 15 characters to space out the values.
Other Fixes
  • FIX: Changed the DIV parameter to work with a dividend that contains decimal places.
  • FIX: Fixed an issue where D spec contains the FROMFILE keyword. This keyword is not allowed in the new Free form specs.
  • FIX: Fixed to to convert values using the eval-corr keyword.
  • FIX: Fixed an issue when indenting **FREE code when encountering a LIKEDS keyword.

March 19, 2018

Version 5.38
Enhancements
  • ENHANCE: The indent program will now indent calc specs when working with **FREE code starting in position 1.

September 29, 2017

Version 5.37
Enhancements
  • ENHANCE: Changed the company name from Linoma to HelpSystems.
Other Fixes
  • FIX: Fixed an issue when converting a field defined with the *LIKE DEFINE option to not use the LIKE keyword if the field is numeric and is defined from a zoned decimal field. The new field needs to stay as a packed decimal field.

June 20, 2017

Version 5.36
Other Fixes
  • FIX: Fixed an issue when converting a Call to a Prototype and a parameter is a Data Structure, changed the prototyped field definition to use LIKEDS instead of LIKE.
  • FIX: Fixed an issue with the XLATE function when the new field length is smaller than the original field length.
  • FIX: Fixed an issue that occurs when source code has a C spec in between D specs. This was causing issues when converting the remaining D specs.
  • FIX: Fixed the conversion of fields that use + or - to increase or decrease the length of the new field and one or more spaces exist between the + or - symbol and the number.
  • FIX: Fixed an issue where the code defined a *INxx field in a C spec. Changed the code to not create a new D spec to define the indicator field.
  • FIX: Fixed an issue in F specs where a line using an * in column 7 was not recognized as a comment line.
  • FIX: Fixed an issue that was occurring when retrieving field lengths and types when the field name was a certain length.

April 18, 2017

Version 5.35
Other Fixes
  • FIX: Fixed an issue when reading through source compile and recognizing page breaks when compile listing is in a foreign language.
  • FIX: Fixed an issue where code was not converted because the program reached the end of the source file.

January 24, 2017

Version 5.34
Other Fixes
  • FIX: Fixed an issue when converting a *LIKE DEFINE line. When the field is numeric and is a subfield of a data structure leave the *LIKE DEFINE line.

September 29, 2016

Version 5.33
Enhancements
  • ENHANCE: Convert data structures to free form when the data structures uses the Overlay keyword with *NEXT.
  • ENHANCE: When converting a CALL, check the numeric parameters to determine if the field size in Result is large enough to always hold values from the field in Factor2.
Other Fixes
  • FIX: Fixed an issue when checking for **FREE in the top of the code. Changed the check to be case insensitive.
  • FIX: Fixed an issue with indenting when converting to *FREE3.
  • FIX: Fixed an issue when using *MIXED or *MIXED2 for unchanged or changed code to remember single and double quotes found when a line is continued onto another line.

May 25, 2016

Version 5.32
Other Fixes
  • FIX: Fixed an issue with Java Prototypes to not put the return class declaration on the bottom line.

May 6, 2016

Version 5.31
Enhancements
  • ENHANCE: When converting File specs to free form:
    • Convert entries to free form when usage is output and add.
    • Removed DISK(*EXT) when external as this is the default.
    • Removed USAGE(*INPUT) when usage is input only as this is the default.
Other Fixes
  • FIX: Fixed an issue with File spec where INCLUDE keyword information took up multiple lines.

April 21, 2016

Version 5.30
Other Fixes
  • FIX: Fixed an issue with Data Structures when a keyword value contains an asterisk in the second character.
  • FIX: Fixed an issue when highlighting comments with slashes. Moved the highlight character to the space after the slashes from position 5.

April 14, 2016

Version 5.21
Other Fixes
  • FIX: Fixed an issue with H spec BNDDIR line that spans multiple lines.
  • FIX: Fixed an issue with Data Structures with field that uses LIKEDS keyword.
  • FIX: Fixed an issue with Data Structures when keyword text wraps to a second line and Overlay keyword is added.

March 21, 2016

Version 5.20
Enhancements
  • ENHANCE: Added a new FMTCALC(*FREE3) option to the RPGWIZ command, which will add a new line to the top of the source starting in postion 1. The line will contain the text **FREE. The free form code starting position will be moved to position 1. This option is only valid when targeting IBM i release V7R1 and higher. This level of free-form syntax was made available with the IBM i Technology Refresh 11 on V7R1 and Technology Refresh 3 on V7R2 in October 2015.
  • ENHANCE: Changed the CLNRPG parameter in the RPGWIZ command to use the default option of the CLNRPG command for the REPLACE keyword.

December 31, 2015

Version 5.16
Enhancements
  • ENHANCE: Added code to use different variable names when converting nested DOs to FOR loops (for example DO_X, DO_X2)
Other Fixes
  • FIX: Fixed an issue with H spec Copyright line that spans multiple lines.
  • FIX: The CLNRPG (Clean RPG) command:
    • Fix issue where /copy was being removed.
    • Fix issue where Data Structures were removed when they should not be.
  • FIX: Fixed a program issue where converting the case of a value was causing the program to end abnormally.
  • FIX: Fixed an issue where source code contained a constant in the DIM keyword instead of a number was causing the program to end abnormally.
  • FIX: Fixed an issue where an ending single quote was not added when needed for a keyword
  • FIX: Fixed an issue with procedure interfaces where dcl-parm was being used for the procedure name. Changed to only use for sub fields when the name is the same as an opcode.
  • FIX: Fixed an issue when converting math functions with spaces between the opcode and extensions like (h).
  • FIX: Fixed an issue with indenting when encountering existing free form code.
  • FIX: Fixed an issue where the export keyword was only returning part of the keyword.
  • FIX: Fixed an issue where PI spec lines were dropping keywords that followed on another line.
  • FIX: Fixed an issue where source program utilizes the H indent('|') line. The compile listing places key fields in different columns.
  • FIX: Fixed an issue where fixed form code exists after existing free form code was not being properly converted to free form.
  • FIX: Fixed an issue where extended fixed form code was being split into two statements and the second statement was not being converted.
  • FIX: Fixed an issue where constant lines or eval lines are extended. Free form comments are not allowed in the line.
  • FIX: Fixed an issue where H, D and P specs were not being converted if free form code already existed before the spec.
  • FIX: Corrected an issue where right had comments with only 1 character was not being converted to free form comments.
  • FIX: Corrected when a stand alone field with a long name was being applied to the prototype that followed. Also fixed an issue where the ellipsis ... was being removed from a long field name that spanned multiple lines.
  • FIX: Corrected to not convert table data to free form code in certain situations.
  • FIX: Corrected to not convert compiler line directives in certain situations.

August 6, 2015

Version 5.15
Enhancements
  • ENHANCE: From the RDi editor, added the ability to work with source members that exist in IASP libraries and an auxiliary storage pool group was set in the connection.
Other Fixes
  • FIX: Convert MOVE operations that move a 1 byte character of ''''.
  • FIX: Support the conversion of subroutine names to procedures when the subroutine name is larger than 14 characters.
  • FIX: Fixed an issue when the PLIST used for the ENTRY parameters was also used for other call operations.
  • FIX: Properly check the base install version from RDi.

April 22, 2015

Version 5.14
Enhancements
  • ENHANCE: Added the Clean RPG Source (CLNRPG) parameter to the RPGWIZ command, as well as added this parameter to the "Convert to Free Form" option in the RDi editor. This allows a user to remove unused fields, data structures, subroutines, KLISTs, PLISTs, Tags and prototypes during the free form conversion process.
  • ENHANCE: Added the "Clean RPG Source" right-click menu option to the RPG Toolbox menu in the RDi editor.
Other Fixes
  • FIX: Fixed an issue with the RPGWIZ command to automatically show the CVTKLIST (Convert KLISTs) and INDNEST (Indent Nested Logic) parameters when converting to *FREE2.
  • FIX: Fixed an issue to correctly detect fixed form C specs when they follow free form syntax.
  • FIX: Support the conversion of long procedure names up to 4096 characters.
  • FIX: Fixed an issue with indenting where slashes (//) exist within a constant value.
  • FIX: Fixed an issue with converting code where a single quote exists in a right hand comment.
  • FIX: Fixed an issue with the Compress expression (CMPEXP) keyword where fixed form and free form expressions were being compressed together.
  • FIX: Fixed an issue with local data areas to keep the *LDA keyword when converting.
  • FIX: In the CLNRPG (Clean RPG Source) command, support long procedure names and stand alone names up to 1024 characters.
  • FIX: When converting D specs, fixed an issue when converting Java Object field types to keep the case for object values in quotes.
  • FIX: When converting D specs, fixed an issue with UCS-2 type variables to use the correct field type VARUCS2 for varying USC-2 and UCS2 for fixed length variables.
  • FIX: Fixed an issue with prototype interfaces (PI) to use the DCL-PARM when a parameter name is the same as a free-form op code.
  • FIX: When converting D specs, fixed an issue with varying field that is using the LEN keyword.
  • FIX: Fixed an issue to properly analyze the compile listing when finding PLISTs with the h-spec of INDENT() specified.
  • FIX: Fixed an issue with indenting nested logic when a single quote is encountered in a right hand comment.
  • FIX: Fixed an issue to know when in a compile-time array even if the data in column 6 is a C.
  • FIX: When converting data structures to free form: When converting a LIKE field with the optional length adjustment, make sure the optional length is added.
  • FIX: Fixed an issue where the case of values contained in double quotes was being changed inadvertently.
  • FIX: Fixed an issue where a commented Prototype was converted to free form when it shouldn't have.

August 8, 2014

Version 5.12
Enhancements
  • ENHANCE: Added the ability to insert predefined Snippets of source code from within the RDi graphical environment. To add a Snippet of source, right-click within the source editor and choose the menu option of "Insert Snippet". Over 200 Snippets of useful source code have been included to help build programs quicker. Your own Snippets can also be added as needed by following the instructions in the manual.
  • ENHANCE: Added the ability to convert multiple source members at one time within the RDi plugin.
Other Fixes
  • FIX: When converting to totally Free form and if the comment designator (CMTDESIGN) is set to *LEAVE, then do not convert the fixed format comments into the // free format style.
  • FIX: When converting to totally free form, correctly retain the source dates, positions 1 to 5, and the right hand comments.
  • FIX: When converting a multi-line F specs to free form, retain all keywords without truncating the rightmost characters.
  • FIX: When converting data structures to free form:
    • Retain all keywords for a date field if the DateFmt is not the 1st keyword listed.
    • For an indicator field with a long name, will now retain the full name without using the *N special keyword.
    • Convert local data areas (UDS) properly using the correct keyword designators.
    • Correctly convert the lengths for integer fields into their free form equivalents.
    • If the external field is an array, then specify the EXTFIELD keyword properly.
    • When converting from/to positions to actual field lengths, accomodate fields that have no names and from positions.
    • Place single quotes around the file format name when using the EXTNAME keyword.
  • FIX: When converting any D spec fields to free form:
    • Do not indent subsequent lines for a initialization string that uses the hyphen for a continuation character.
    • Accommodate an initialization string that contains multiple quotes.
    • Set the prefix value correctly for varying fields.
  • FIX: When converting D spec stand alone fields to free form:
    • If the field contained the DTAARA keyword and the data area name did not have quotes around it, then add the single quotes around it.
  • FIX: When converting prototypes (PR) to free form, do not convert the case of the name used within the EXTPROC keyword.
  • FIX: When redefining calc-defined fields into stand-alone fields, do not include fields that are already defined in a Procedure Interface (PI).
  • FIX: When converting CALLs and CALLPs to free form:
    • Correctly add the empty parenthesis () at the end of the procedure name when no parameters exist.
    • If the program is called more than once in the source with the same number of parameters, then do not create duplicate prototypes.
  • FIX: Do not convert a READPE or READE into free form if there is no factor 1 value.
  • FIX: When selecting blocks of source to convert in the RDI plugin:
    • Do not attempt to convert RDi syntax messages that are embedded in the source code.
    • If the source was selected from the bottom to the top, do not duplicate or drop the top lines during the conversion.

May 20, 2014

Version 5.11
Other Fixes
  • FIX: Removed member 5000 line limit when in evaluation mode.
  • FIX: Fix an issue when indenting free form calc specs with a comment containing a single.
  • FIX: Fix an issue when indenting free form EXEC SQL specs.
  • FIX: Fix an issue in RDi Plugin Preferences to set the parameter "Convert CALLs and CALLBs" to set the value correctly for "Convert to Prototypes using LIKE field definitions" and "Convert to Prototypes with field types/lengths".

April 29, 2014

Version 5.10
Other Fixes
  • FIX: When converting a Data Structure field to free form, some keywords are ignored when an external data structure definition does not have the EXTNAME keyword and is followed by a comment.
  • FIX: Preserve comments in positions 76 to 80 on certain C spec operations (such as EXSR) when converting to free form.
  • FIX: When converting a data structure that has a field with a LikeDS keyword on a different line, make sure to correctly specify the field lengths, field names and end-ds for the data structure fields.
  • FIX: When converting an F Spec and there is an 'A' in the record address column and a key length, specify them as parameters on the 'KEYED' keyword. For example, KEYED(*char:4)
  • FIX: When determining work fields to place in the D specs, ignore any SORTA operations.
  • FIX: Improved logic for wrapping H specs. Previously was only looking for an ') to end a keyword. Now if the ending ') is not found, then break the line on spaces too.
  • FIX: Fix an issue when indenting a long in-line comment that extends beyond column 80.
  • FIX: When converting D specs to free form, support field names up to 63 bytes in length (was 50).

April 7, 2014

Version 5.09
Other Fixes
  • FIX: When converting GOTO operations within subroutines, correctly find the following ENDSR opcodes when in free form.
  • FIX: When highlight comments within a data structure, key list or plist, and if converting to free form, then do not put the highlight hex value in column 6 of the free form comment.
  • FIX: When converting Data Structure field from/to positions into their actual lengths with the *FREE option specified, then do not convert data structures that contain blank field names.
  • FIX: When converting a Data Structure field that is spread over multiple lines and is followed by a comment, then correctly place the semicolon at the end of the last continuation line for the field.
  • FIX: When converting a Data Structure field with an initialization value that spans multiple lines using the - continuation character, then do not indent the continuation lines so no extra spaces are placed in the initialization value.
  • FIX: Properly convert Stand alone fields which have no keywords on the definition line, but on subsequent lines.
  • FIX: When converting external data structures with no fields to free form: If comment lines are at the end of the data structure, then do not put the comments in the keyword section of the definition for the data structure.
  • FIX: When converting an external data Structure with multiple keywords, then make sure to have enough space for the extra keywords when converting to free form.
  • FIX: When converting source within the RDi editor using the *LEAVE option for source dates, then do not truncate the leading zeros on the date for the year 2000.
  • FIX: From within RDi, fix an issue with a warning message appearing in the startup log about IStartup class needing to be implemented.
  • FIX: When a prototype name containing an ellipsis is preceeded by a stand alone field, part of the prototype name may inadvertently appear to be a keyword of the preceeding stand alone field.
  • FIX: When converting a Data Structure field that contains a VARYING and an INZ keyword, the VARYING keyword is now removed.
  • FIX: When converting to totally free form, correctly identify existing free form that is not contained within /FREE and /END-FREE directives.

March 13, 2014

Version 5.08
Enhancements
  • ENHANCE: When converting data structures to free form, use the POS keyword for fields that have from/to positions. Convert the from/to positions to the actual field lengths.
Other Fixes
  • FIX: When converting MOVE operations in which the result field is a date type and factor 2 is 8 digits in length: if factor 1 does not contain a date format, then use the date format (datfmt) value that may be specified in one of the following places:
    • The H specifications (either embedded or in a /COPY book)
    • The CTL-OPT free form lines (either embedded or in a /COPY book)
    • A data area named RPGLEHSPEC in *LIBL
    • A data area named DFTLEHSPEC in QRPGLE

Example before:

H DatFmt(*EUR)
C                   MOVE      aDate8        datefield	

Example after:

ctl-opt DatFmt(*EUR);
datefield = %DATE(aDate8:*EUR);
  • FIX: Convert a MOVE operation properly that contains an indicator value in the result field and also a right hand indicator in the EQ column. For instance:

Before:

MOVE      *OFF          *IN91                    90

Incorrectly was converted to:

*IN91 = *OFF;
*IN90 = (*IN91 = );

Fixed to convert it properly to:

*IN91 = *OFF;
*IN90 = (*IN91 = *BLANKS);
  • FIX: If the developer wishes to convert subroutines to subprocedures with CVTSUBR(*YES) specified, then make sure to convert free form BEGSR and ENDSR operations to subprocedures. Before the fix, only fixed format BEGSR and ENDSR operations were recognized.
  • FIX: When determining if work fields are already defined in the D specifications, do not consider those field names that are specified in prototypes. Therefore if a work field definition is found in the C specifications, a stand-alone work field will be placed in the D specifications if not already defined as a stand-alone or data structure field.
  • FIX: When converting a significant number of RPG source members at a time, the work file BXP020 was reaching its record limit. Changed BXP020 to reuse deleted records with REUSEDLT(*YES).
  • FIX: When indenting nested logic that contains right hand // comments, do not allow any logic to be moved past column 80.
  • FIX: When converting a MOVE operation that has *YMD in factor 1 and if the result field is 8 digits, then convert to using *ISO as the date format in the %DATE built-in-function.

Before:

*ymd          MOVE      orderdate     aDate8

After:

aDate8 = %DATE(orderdate:*ISO);
  • FIX: From within the RDi editor, increase the speed when converting a large block of selected source code lines to free form.
  • FIX: From within the RDi editor, use the date option that is specified on the "Source date on converted lines" when converting a block of source code lines to free form.
  • FIX: When converting prototypes to free form, properly convert long field names that are followed by a ... and are continued onto the next line.

Before:

D o_NameWochentag...
D                               32    varying options(*nopass)

After:

o_NameWochentag
varchar(32) options(*Nopass);
  • FIX: Support the conversion of field names and constant names that exceed 38 characters in order to retain any field lengths, types and keywords.
  • FIX: When converting prototype fields to free form, if the length is specified with the len() keyword, then use the data type keyword with the length specified.

Before:

D  pos8to80                     A   len(9)

After:

pos8to80 char(9)
  • FIX: When converting data structures to free form: If comment lines are at the end of the data structure and if it is followed by a prototype with no fields, then put the end-ds properly after the last field in the data structure.
  • FIX: When cleaning up unused elements with the CLNRPG (Clean RPG) command, also remove unused free form DCL-S and DCL-PR lines too.
  • FIX: When converting H, F, D and P specifications to free form, retain the left comments in positions 1 to 5.
  • FIX: When specifying CMTSPECTP(*LEAVE) CMTBLANK(*LEAVE) on the *FREE2 conversion, then don't add the dcl- notation for blank lines that have specification types in position 6.
  • FIX: Properly convert data structures that have comment lines which end with continuation characters of - or +
  • FIX: When converting source dates to today's date in a job that has been alive for more than one day, then use the proper current date for the source lines converted.

February 6, 2014

Version 5.07
Other Fixes
  • FIX: When "Examine Field Attributes" is specified on the RDi plugin, create the data queue of SPOOLQUEUE with AUT(*USE) so it does not produce the error of "FAILED: Call to converter aborted." if the user does not have proper authority to the QTEMP library.
  • FIX: Support the conversion of long procedure names up to 80 characters.
  • FIX: Made the following fixes to data structure conversions:
    • Support the conversion of long field names that use the ... convention.
    • Retain the continuation character when specified in the last position for keywords that span multiple lines, such as the INZ keyword.
    • If the data structure is not converted, then do not truncate any characters in position 80.
    • For a data structure with the Dtaara, Extname and Len() keywords, make sure the Extname keyword is placed first in the list.
    • With the EXTNAME keyword, only place single quotes around the name, not any of the special value keywords.
  • FIX: If not converting a F spec to free form, then do not truncate any characters in position 80.
  • FIX: If converting F specs to free form, then properly handle any comments that were placed between the continuation lines of a file declaration.
  • FIX: When converting a H specs and if indicated to leave the spec type on comment lines, then do not insert the CTL-OPT keyword for H comment lines.

January 28, 2014

Version 5.06
Other Fixes
  • FIX: Fixed the error of "Length or start position is out of range for the string operation." in BXRM029 when converting to free form declarations.
  • FIX: When converting data structures to the free form DCL-DS, fixed the following problems:
    • If specified, the Extname should always be the first keyword.
    • Do not truncate the rightmost characters in the keywords area when adding single quotes in the Extname.
    • Add the PSDS keyword for program-status data structures.
  • FIX: When converting prototypes and procedure interfaces to free form DCL-PR and DCL-PI statements, any numeric fields with a blank internal type should be defined as packed instead of zoned.
  • FIX: When the last field in a structure is continued in multiple lines the semicolon was removed from the PR/PI/DS name instead of being removed from field that is continued.
  • FIX: When indenting source, properly indent continuation lines for IF, DOW, DOU, WHEN, ELSEIF and FOR statements.
  • FIX: Remove quote from the completion message description in message id CVT0047 so an error is not generated when using the SEUPLUS line commands of Z or ZZ when converting source.

January 22, 2014

Version 5.05
Enhancements
  • ENHANCE: Convert MOVE and MOVEL operations that contain a hex constant in factor 2 to either EVALs or free-form. For instance:

Before:

MOVE     x'20'      HexValue

After:

EVAL     HexValue = x'20'
Other Fixes
  • FIX: The following fixes were made in the RDi plugin:
    • Handle the null pointer exception when working offline.
    • Use the current RDi library list when performing the conversion.
    • When converting starting at the top source line, do not insert an extra blank line.
    • When converting a selected block of source lines within the editor which contains a DO loop, properly convert the END statement to an ENDFOR.
  • FIX: When converting declarations to free form, properly detect when in the beginning of the free form calculations when the /FREE tag is absent.
  • FIX: When converting H specs to CTL-OPT, then retain any continuation characters of + or - when all the lines are at the maximum length.
  • FIX: When converting data structures to DCL-DS, fixed the problems of:
    • Support the data area DTAARA keyword
    • Use the DCL-SUBF keyword if a data structure field matches a keyword name.
    • Use upper case for the file or field name within the quotes for the EXTNAME or EXTFLD keyword.
    • Use the POS keyword for any fields that overlay the data structure name.
    • Use the EXT keyword for external data structures that do not have the EXTNAME specified.
    • Properly end the data structure with a END-DS if any of the fields have the LIKEDS keyword specified.
    • Use *N if the field name is blank.
    • If the data structure does not have any fields, end the data structure with the semicolon in the proper place.
    • Allow converting data structures that contain up to 300 lines.
    • If the data type is blank for a numeric field within a DS, then the type will be defaulted to "zoned" (not "packed) during the conversion.
  • FIX: When converting procedure interfaces and prototypes to DCL-PI and DCL-PR statements, do not include any constants within the structure that are immediately following.
  • FIX: Fixed the CLNRPG (Clean RPG) command to properly identify unused key lists if it contains free-form declarations.
  • FIX: Allow compressing expressions within procedures that are declared within a DCL-PROC subprocedure.
  • FIX: When indenting nested logic from RDi or the INDNST command, also indent logic under BEGSR statements.
  • FIX: When converting a prototype to a DCL-PR, then do not specify *N for additional lines of options for a field.

January 7, 2014

Version 5.04
Other Fixes
  • FIX: Check the product license properly when using the CLNRPG (Clean RPG) command.
  • FIX: Properly convert data structures with a length specified at the DS level.

January 6, 2014

Version 5.03
Other Fixes
  • FIX: When converting stand alone fields into their free form syntax, do not convert those with a FROMFILE keyword.
  • FIX: When converting F specs into their free form syntax, the beginnings of some keywords were cut off under certain circumstances.
  • FIX: When converting only the calculations to free form with the
  • FMTCALC(*FREE) option, fixed the following two problems:
    • Do not put /FREE and /END-FREE tags around // comments
    • Do not carry down continuation lines from prior expressions

January 2, 2014

Version 5.02
Enhancements
  • ENHANCE: Added new snippets that can be inserted from SEU using the IX line command in SEU Plus. The snippet names are:
CTL-OPT   Control Statements
DCL-C     Declare Constant
DCL-DS    Declare Data Structure
DCL-F     Declare File
DCL-PI    Declare Procedure Interface
DCL-PR    Declare Prototype
DCL-PROC  Declare Procedure
DCL-S     Declare Standalone Field
Other Fixes
  • FIX: Correctly convert procedures with no names by adding the *N value.
  • FIX: Convert H specs properly with continuation characters.
  • FIX: If a data structure not converted and it has comments starting in column 80, then do not add slashes before column 80.
  • FIX: Stop indenting after the last field in a data structure. Do not include following comments or directives in the procedure.
  • FIX: Correctly convert external data structures.
  • FIX: Fix the conversion of Procedure Interfaces with long names.
  • FIX: Remove extra spaces when listing several values in parenthesis.
  • FIX: If a prototype field name is blank, then use the special value of *N

December 24, 2013

Version 5.01
Other Fixes
  • FIX: When upgrading to the new version of the RPG Toolbox, first move the existing files of BXP001, BXP010, BXP020, BXL001A and BXL001B into the backup library. This should help prevent file warning messages on the restore of the license program.
  • FIX: When indenting free form nested logic:
    • Properly determine if in free form declarations or logic
    • Keep the same spacing offsets for continuation lines
    • Properly indent right hand // comments that start before pos 81
  • FIX: When converting declarations into their free-form equivalents, insert any new keywords in the proper case based on the options specified for the CASELOGICN keyword. Do not convert the case on existing constants, field names, record names or file names.
  • FIX: Miscellaneous spacing fixes:
    • Indent Dcl-F 2nd line keywords to be aligned with the file name.
    • Add an extra space before the CTL-OPT.
    • Indent data structure subfields 2 spaces.
    • Only have one space after the DCL-S keyword
    • One extra space before inz when continued DCL-S
  • FIX: When converting a LIKE field with the optional length adjustment, make sure the optional length is added.

December 16, 2013

Version 5.00
Enhancements
  • ENHANCE: Added a new FMTCALC(*FREE2) option to the RPGWIZ command, which will additionally convert H, F, D and P specifications into Free form syntax. It will also remove any existing /Free and /End-free tags. This style of syntax was made available by IBM with the V7R1 technology refresh 7.
  • ENHANCE: Added a plugin to IBM's RDi (Rational Developer for IBM i), which allows converting RPG source members into free form syntax. With the RDi plugin, you can choose to just convert the C specifications to free form, or additionally convert the H, F, D and P specifications to free form. Within RDi, an entire member can be converted to free form or just selected blocks of source code. The plugin also allows indenting existing free form logic from within RDi. Either an entire member or just selected blocks of source can be indented.

March 13, 2012

Version 4.06
Other Fixes
  • FIX: When determining field types and lengths within a procedure; if the field is not locally defined within the procedure, then retrieve its definition from the global level.

December 6, 2011

Version 4.05
Other Fixes
  • FIX: Improved the CLNRPG (Clean RPG Source) command to also remove any keywords on additional lines for unused stand-alone work fields.

October 19, 2010

Version 4.04
Other Fixes
  • FIX: When converting MOVE/MOVEL and arithmetic operations in a subprocedure, make sure to use the field types/lengths from the subprocedure's D specs first, and then secondly from the global D specs. This was an issue if the same field name was defined with a different length or type at the subprocedure level versus the global level.
  • FIX: When converting a group of left-hand indicators, preserve the first set of indicators if there is a comment found in the middle of the group. This issue only occurred when groups of left hand indicators were not separated by comments or other operations.
  • FIX: When determining the nesting level of control logic in free form, do not consider an apostrophe (') as the start of a constant if that apostrophe is in the right hand comments. This corrects behavior in the INDNST, DOCNST, DSPIND commands, as well as the SEU Plus commands of IN*, DN, DI and LI.

November 17, 2009

Version 4.03
Other Fixes
  • FIX: RPGWIZ: Do not generate an error in program BXRS015 if the field has a name that is exactly 17 long with a DIM statement.

May 30, 2008

Version 4.02
Other Fixes
  • FIX: RPGWIZ: Do not convert a MOVE into an EVAL if the result field is a date data type and the length of factor2 is not long enough for the date format specified in factor 1. For instance, do not convert a MOVE if the date format is *ISO and the length of factor2 is less than 8.
  • FIX: RPGWIZ: Do not convert a MOVE into an EVAL with a %timestamp if factor2 is a Time (T) data type and the result field is a Timestamp (Z) data type.

December 18, 2007

Version 4.01
NOTE:

A new product license key is required when upgrading from a prior version of the RPG Toolbox. Please contact Linoma Software at sales@linomasoftware.com to request a new product license key.

Other Fixes
  • FIX: CLNRPG: When finding unused Prototypes, do not remove Entry Prototypes out of the D specs. These are the Prototypes which have the same name as the program name.
  • FIX: CLNRPG: When removing unused KLISTs, also remove any related KFLD source lines.
  • FIX: CLNRPG: When finding unused stand-alone work fields for member types of SQLRPGLE, do not remove those work fields which are referenced in EXEC SQL statements.
  • FIX: RPGWIZ: When EXAMINEFLD(*YES) is specified on the conversion of a member type of SQLRPG or SQLRPGLE, find the field types/lengths for the compiler-generated SQL* fields (ie SQLCODE).
  • FIX: SEUPLUS: When examining a field with the F7 key, RV or RVK command, find the field types/lengths for the compiler-generated SQL* fields (ie SQLCODE).

November 15, 2007

Version 4.00
Enhancements
  • ENHANCE: Added a new command named CLNRPG (Clean RPG Source). This command will find, and optionally remove, unused definitions and logic found within RPG IV (RPGLE and SQLRPGLE) programs.

CLNRPG can be configured to remove unused stand-alone work fields, subroutines, prototypes, key lists, parameter lists and tags.

By removing unused definitions and logic from your RPG programs, these programs will compile faster and run more efficiently. The programs will also be easier to maintain and test since you won't have to work with unused source code.

The CLNRPG command has two different actions. The first action called *INSPECT will generate a report of unused definitions and logic in the program, but will not remove any source code. The second action called *CLEAN will generate a report and will additionally remove the unused definitions and logic from the source code. The removed definitions and logic will be placed into a Recycle Bin source file (which you can specify the name of).

You can run the CLNRPG command from a command line, PDM or WDSc.

The command is named RPGTOOLBOX/CLNRPG. You can create a PDM option for the command using the RPGTOOLBOX/CRTOPT command. If you use WDSc, you can launch the command by configuring a custom compile option.

After the CLNRPG command is prompted, press F1 on any parameter for more help.

  • ENHANCE: RPGWIZ - For i5/OS version V5R4 and higher, convert embedded SQL to its /FREE form equivalent when converting to free-form.

Before

C/EXEC SQL
C+ SELECT * INTO :DS_OEPCM FROM OEPCM WHERE CMCUST = :CUST
C/END-EXEC

After

EXEC SQL SELECT * INTO :DS_OEPCM FROM OEPCM WHERE CMCUST = :CUST

 

  • ENHANCE: RPGWIZ - Included instructions in the manual on how to launch the RPG Toolbox commands from WebSphere Development Studio Client (WDSc) by creating your own custom compile commands within the Remote System Explorer.
  • ENHANCE: RPGWIZ - For i5/OS release V5R3 and higher, convert the TIME opcode to %dec(%time) if the result field is numeric and 6,0 in length.

Before

C                   time                    currtime          6 0

After

currtime = %dec(%time);
  • ENHANCE: RPGWIZ - When in trial mode, allow running RPGWIZ in batch and from within WDSc (WebSphere Development Studio client).
  • ENHANCE: INDENT - Added new parameter to INDNST (Indent Nested Logic) command to allow user to specify the starting column number for the free form source code. Valid starting columns are from 8 to 30.
  • ENHANCE: SNIPPETS - Added new snippets for the %HANDLER and %XML built-in-functions which came out in V5R4. These snippets can be inserted using the SEU PLUS line command of IX.
  • ENHANCE: Delete compile listing if no errors/warnings found during a RPGWIZ conversion and when fields retrieved with RV line command.
Other Fixes
  • FIX: INDENT - Ignore constants (surrounded by quotes) when determining the start of a new nesting group. For instance, do not consider a 'FOR' contained within quotes as a true FOR statement.
  • FIX: RPGWIZ - When converting to /Free form, do not add parenthesis () after a prototype call when the ( starts on the next line.

Before

C                   callp    protoA
C*
C                   callp    protoB
C                            (parm1 : parm2)

After

protoA ();
protoB
(parm1 : parm2);
  • FIX: RPGWIZ - Convert left hand indicators on RETURN statements.

Before

C   LR              return

After

if *inlr = *on;
return;
endif;
  • FIX: INDENT - When indenting source code, do not indent source code under a embedded SQL SELECT statement.
  • FIX: RPGWIZ - When redefining data structure fields, retain the comments in positions 1-5.
NOTE:

RPG Toolbox works on i5/OS release V5R1 and higher.

November 12, 2006

Version 3.52
Other Fixes
  • FIX: RPGWIZ - Calculate field lengths properly for constants which contain double quotes. For instance the length of the constant of '123''' is 4.
  • FIX: RPGWIZ - Do not convert IF statements that contain *ON or *OFF in both factor 1 and factor 2. For instance, *ON *IFEQ *OFF will not convert.

April 10, 2006

Version 3.51
Other Fixes
  • FIX: Ignore embedded SQL statements When determining the level of nested logic.
  • FIX: When CVTKLIST(*YES) is specified, properly convert a key list (into a data structure) which is at the very bottom of a program.

March 20, 2006

Version 3.50
Enhancements
  • ENHANCE: SNIPPETS - Created new category of snippets (called SQL) for helping programmers to create embedded SQL operations within RPG IV. New snippet names are SQLSEL1, SQLSEL2, SQLSEL3, SQLSEL4, SQLDEL1, SQLUPD1, and SQLINS1. Snippets can be inserted with the IX line command in SEU.
  • ENHANCE: SNIPPETS - Enhanced the MONITOR snippet to include the ON-ERROR and ENDMON options.
  • ENHANCE: SNIPPETS - Added a new snippet for the %SUBARR built-in-function.
  • ENHANCE: SEUPLUS - Added new SEU line commands of MX and MXB, which allows the user to convert a single line or a block of lines to mixed case.

Before

MOVE    TEST      ORDERS

After

Move    Test      Orders
  • ENHANCE: SEUPLUS - When using a line command (i.e. DFD, SFE, SOP) that acts upon a file name, correctly identify the file name within free-form RPG source. Works with the operations of CHAIN, READ, READE, SETLL, SETGT, READP, READPE, WRITE, UPDATE, OPEN and CLOSE.
  • ENHANCE: SEUPLUS - Enhanced the CMTB (Comment block) line command so user comments are ignored when commenting or reactivating logic.
  • ENHANCE: RPGWIZ - When CVTDO(*YES) is specified to convert DO to FOR operations: If an index variable is not specified within the result field of the DO operation, then the index variable will be defaulted to the name of DO_X within the FOR operation.

Before

C                   DO        20
C                   ENDDO

After

C                   FOR       DO_X = 1 to 20
C                   ENDFOR
  • ENHANCE: RPGWIZ - When CVTMOVEA(*YES) is specified, additionally convert MOVEA operations which move constants across multiple array elements.

Before

C                   MOVEA     '101'         *IN(50)

After

C                   EVAL      *IN(50) = *ON
C                   EVAL      *IN(51) = *OFF
C                   EVAL      *IN(52) = *ON
  • ENHANCE: RPGWIZ - When CALCFLD(*YES) is specified, additionally convert calculation-defined data areas into the D specifications.

Before

C     *DTAARA       DEFINE    ORDNBR        ORDERN            4 0

After

D ORDERN          S              4  0 DTAARA(ORDNBR)
  • ENHANCE: RPGWIZ - Convert MOVE operation if factor 2 is *BLANK(S) and the result field is a data structure.

Before

MOVE    *BLANK    DS1

After

EVAL    DS1 = *BLANK
Other Fixes
  • FIX: During the product upgrade process, retain any user-specified defaults that were specified on the CHGDFT (Change RPG Wizard Default) command.
  • FIX: When indenting or documenting nested logic, support the error monitoring opcodes of MONITOR, ON-ERROR and ENDMON. Commands of DSPIND, DOCNST and INDNST were modified. SEU line commands of DI and LI were modified.
  • FIX: RPGWIZ - When compressing expressions with CMPEXP(*YES) specified, increase the allowed expression size from 999 to 9999 characters.
  • FIX: RPGWIZ - Do not convert a MVR to a %REM if the corresponding DIV statement contained decimal positions in factor 1 or factor 2.
  • FIX: RPGWIZ - When retrieving field attributes (types/lengths) during the conversion process, do not attempt to retrieve attributes for SQL reserved fields (i.e. SQLCOD, SQLERR, etc). FIX: RPGWIZ - When retrieving field definitions, key lists and parameterlists, specify INDENT(*NONE) when creating the compile listing.

February 13, 2006

Version 3.23
Other Fixes
  • FIX: RPGWIZ - When converting source which already contains free-form, make sure asterisk comments immediately following an existing /END-FREE are converted to the slashes (//) free style.
  • FIX: RPGWIZ - Within embedded SQL, do not perform a case conversion of constants enclosed within double quotes (ie. "FileName").

September 13, 2005

Version 3.22
Enhancements
  • ENHANCE: RPGWIZ - Changed intro screen when evaluating RPGWIZ with new address and phone numbers.
Other Fixes
  • FIX: RPGWIZ - When converting MOVEA operations: If Factor2 is the same length as the Result field (array element), then do not use a FOR loop to assign the values. Instead, use a simple Eval:

Before

MOVEA   CHAR2     ARRAY2(X)

After

EVAL    ARRAY2(X) = CHAR2
  • FIX: RPGWIZ - If a WRITE opcode has an EOF indicator and FILEBIF(*YES) or FILEBIF(*YES2) is specified, then insert the %eof bif.
  • FIX: RPGWIZ - Do not convert the SCAN, CHECK or CHECKR opcodes if the result field is an array, since it produces different behavior.
  • FIX: RPGWIZ - Do not use the %date bif when converting a MOVE operation with date fields in both factor 2 and the result field, even if the date fields have different formats (ie *YMD to *USA). For instance:

Before

MOVE    USAdate     YMDdate

After

EVAL    YMDdate = USAdate
  • FIX: RPGWIZ - When converting a MOVEA operation with a '1' or '0' in factor 2 and an indicator element in the result field, do not use a FOR loop. Instead, use a simple EVAL. For instance:

Before

MOVEA   '1'      *IN(50)

After

EVAL    *IN(50) = *ON
  • FIX: RPGWIZ - Do not convert a DIV statement if 1) the same field name is specified in factor 1 and the result and 2) if its followed by a MVR.
  • FIX: RPGWIZ - When converting LOOKUP to %LOOKUP, if the operation had result indicators and long field names, make sure the EVAL opcode is retained within the new IF structure.
  • FIX: RPGWIZ - When converting CALLs to CALLPs with CVTCALL(*YES), then retain any CALL statements which have an undefined parameter list name.
  • FIX: RPGWIZ - When converting CALLs to CALLPs with CVTCALL(*YES), then do not create a prototype name that is the same name as an existing PLIST name. Instead, append a sequential number to the prototype name.

July 9, 2004

Version 3.21
Enhancements
  • ENHANCE: SEUPLUS - Expanded the modification marker from 4 to 5 characters, which can be placed in positions 1-5 of a source line when using the CMT, CMTB, MRK and MRKB line commands. The user's modification marker can be specified using the USRDFT line command in SEU.
Other Fixes
  • FIX: SEUPLUS - When using the RC and WC line commands for working with compiles, make sure to honor the minimum severity level requested by using the RPG message file.
  • FIX: RPGWIZ - For non-English customers: Convert MOVE, MOVEL and arithmetic operations when EXAMINEFLD(*YES) is also specified. Use message descriptions found in QRPGLEMSG for proper string scanning of the compile listing.

April 27, 2004

Version 3.20
Enhancements
  • ENHANCE: RPGWIZ - Additionally convert CAT operations to EVALs when CVTCAT(*YES) is specified and if the length of the result field is less than or equal to the total length of factor 1, factor 2 and the number of blanks (if specified).
  • ENHANCE: SEUPLUS - Added new line commands of RC (Retrieve Compile Info) and WC (Work with Compile Info) to allow a developer to quickly retrieve and work with compile errors in a popup window, versus having to scan through often-tedious compile listings. This window will also show the status and date of the last compile. As errors are corrected in the source code, the developer can quickly mark them as "fixed" on the screen.
  • ENHANCE: SEUPLUS - Added new line command of RVK to retrieve variable types/lengths, key list fields and parameter list fields for a RPGLE or SQLRPGLE source member. After running RVK, a developer can view this information using the VV line command or by pressing F7 on a variable or list name.
  • ENHANCE: SEUPLUS - Enhanced F7 function key and VV (View Variable) line command to allow the user to quickly display the fields that make up a key list or parameter list within a popup window.
  • ENHANCE: SEUPLUS - Added new line command of VI to display the numbered indicators used in a RPGLE or SQLRPGLE program within a popup window.
  • ENHANCE: SEUPLUS - Enhanced all SEUPLUS line commands to support source records up to 162 bytes in length. Previously, the maximum record length supported was 112 bytes.
  • ENHANCE: SEUPLUS - When a developer requests to view a variable's attributes (VV) or used indicators (VI), and if the source member name has changed since the last time the variable attributes were retrieved, then automatically prompt the developer to retrieve variable attributes for the current member. This automatic feature will be more convenient for developers so they don't have to remember to run the RV or RVK line commands when changing between source member names.
  • ENHANCE: SEUPLUS - Allow a developer to specify where the color hex code should be placed within a free-form RPG comment line when using the color or comment (CMT) line commands. From within the User Defaults screen (line command of USRDFT), the developer can specify to place the color hex code in either position 5 of the source line OR place the hex code immediately after the // comment designator.
  • ENHANCE: SNIPPETS - Added new source code snippets for the V5R2 RPG built-in-functions of %BITAND, %BITNOT, %BITOR, %BITXOR, %FIELDS and %KDS.
Other Fixes
  • FIX: SEUPLUS - When breaking extended factor 2 into two lines with the F8 function key or the BR line command, do not duplicate the right-hand comments down to the second line.
  • FIX: SEUPLUS - When highlighting comments in CL source with the HC line command or HLTCMT command, then also highlight any comments on that continued onto a second line.
  • FIX: SEUPLUS - Keep the RPGTOOLBOX library in the library list so the RV and RVK commands continue to work properly.
  • FIX: RPGWIZ - When inserting new stand-alone work fields into the D specs, make sure the new D specs are created after F or H spec blank lines and comment lines.

March 15, 2004

Version 3.15
Enhancements
  • ENHANCE: SEUPLUS - Added new line commands of RM and RRM to allow replacing the selected source line(s) with the contents of the Toolbox memory.
Other Fixes
  • FIX: RPGWIZ - Only convert the EXTRCT operation if the result field is numeric and the (E)rror operation extender is not specified.
  • FIX: SEUPLUS - When viewing a variable with F7 or VV, then mark the beginning/ending of a variable name when finding a '+', '-', '=', '>'or '<'.

October 27, 2003

Version 3.14
Enhancements
  • ENHANCE: SEUPLUS - Modified VCB line command so you can also view copy books that use the /INCLUDE statement.

October 9, 2003

Version 3.13
Enhancements
  • ENHANCE: SEUPLUS - Added new line commands of MRK and MRKB to add a user's modification marker to positions 1-4 of source line(s).
  • ENHANCE: SEUPLUS - When viewing an array's attributes with the VV line command or F7, show the number of elements in the array.
Other Fixes
  • FIX: RPGWIZ & SEUPLUS - When editing or compressing expressions that contain constants, break long constants in half properly using the hyphen (-) and plus (+) symbols. Previously, there was a scenario in which a plus was improperly used instead of the hyphen.
  • FIX: RPGWIZ - When converting a SUBST operation to a %SUBST bif and if EXAMINEFLD(*YES) is specified: 1) If the result field length is equal to 1, then don't use %SIZE within the new %SUBST. If the result field length is greater than 1, but less than the length of factor2, then do not convert the SUBST.
  • FIX: RPGWIZ - When converting to free form with FMTCALC(*FREE): If a variable or program name in an EVAL or CALLP has the same name as an RPG opcode, then keep the EVAL or CALLP in front of it.

Before

EVAL    SELECT = 1
EVAL    OPEN = 'YES'
EVAL    WORKFLD = 2

After

EVAL SELECT = 1;
EVAL OPEN = 'YES';
WORKFLD = 2;
  • FIX: RPGWIZ - When documenting nested logic with DOCNEST(*YES) specified, clear out position 5 only if its hex attribute is greater than x'40'. Same fix applies to the DOCNST command.
  • FIX: SEUPLUS - When documenting nested logic with line command DN, clear out position 5 only if its hex attribute is greater than x'40'.
  • FIX: SEUPLUS - Allow reactivating a line with CMT or CMTB when position 6 contains a hex which is less than or equal to x'40' and position 7 is an asterisk.

August 8, 2003

Version 3.12
Other Fixes
  • FIX: RPGWIZ - When converting operations to free form and an error indicator is specified, then do not attempt to insert an (e) operation extender if there is not enough room.

June 26, 2003

Version 3.11
Other Fixes
  • FIX: RPGWIZ - When converting a MOVE operation with *JOBRUN in factor 1 and UDATE or *DATE in factor2, then do not place the *JOBRUN within the %DATE bif (since it's not needed).
  • FIX: RPGWIZ - If EXAMINEFLD(*NO) is specified and the user specifies to convert CALLs or KLISTs, then let the conversion continue without converting the CALLs and KLISTs (versus disallowing the conversion of the member).
  • FIX: RPGWIZ - When redefining data structures with REDEFINEDS(*YES) specified, then retain a data structure's extra keywords when it has no fields.
  • FIX: RPGWIZ - When redefining data structures with REDEFINEDS(*YES) specified, then only use the from/to positions to determine the order of the fields within the data structure. Do not use the field names as criteria for sorting the fields.

May 21, 2003

Version 3.10
Enhancements
  • ENHANCE: RPGWIZ - Added new keyword named CVTMOVEA which allows the conversion of eligible MOVEA (move array) operations. Read the manual for complete details on the CVTMOVEA keyword.
  • ENHANCE: RPGWIZ - Added new keyword named CVTKLIST which allows the conversion of Key Lists into Data Structures or free-form search arguments within file I/O operations. This feature is valid in OS/400 release V5R2 and higher within the free-form file I/O operations of CHAIN, DELETE, READE, READPE, SETLL and SETGT. Read the manual for complete details on the CVTKLIST keyword.
Other Fixes
  • FIX: RPGWIZ - Do not convert a MVR to a %REM if its corresponding DIV operation was not converted.

May 14, 2003

Version 3.09
Enhancements
  • ENHANCE: RPGWIZ - When EXAMINEFLD(*YES) is specified, then additionally retrieve the field lengths and types for constants (CONST) defined in the I or D specs. This additional field information will facilitate the conversion of more MOVE, MOVEL, Z-ADD, Z-SUB, MULT, DIV, ADD and SUB operations. ENHANCE: RPGWIZ - If CVTCAT(*YES) is specified, then additionally convert CAT operations that don't have padding (P) to EVALs when the length of factor1 plus the length of factor2 is greater than or equal to the length of the result field.
Other Fixes
  • FIX: RPGWIZ - When converting SUBST operations to %SUBST built-in functions and if the base string is an array element, then calculate the %SIZE on the array name, not the array element.
  • FIX: RPGWIZ - When inserting the header/footer comments around newly inserted stand-alone fields, and if the user specified to convert comments to slashes with CMTDESIG(*SLASHES), then use slash comments instead of asterisk comments.
  • FIX: SEUPLUS - Removed the discontinued line commands of DB and DB2.

May 4, 2003

Version 3.08
Enhancements
  • ENHANCE: RPGWIZ - Provide separate option named CVTSCAN which allows the conversion of SCAN operations to %SCAN built-in-functions.
  • ENHANCE: RPGWIZ - Placed additional intelligence in the conversion of ADD, SUB, MULT and DIV operations, so they will not be converted to EVALs if the result field is not large enough to hold the result.

April 10, 2003

Version 3.07
Other Fixes
  • FIX: RPGWIZ - When converting CALL/CALLB operations to CALLPs:
    1. If two or more CALLs are using the same named parameter list, then specify the correct prototype name on the new CALLPs.
    2. Do not convert a CALL statement that is calling an array variable since that is not allow in a prototype. For instance, CALL PGM(1) will not be converted.
  • FIX: RPGWIZ - When creating new expressions, made sure can accommodate an expression that exceeds 999 characters.

March, 27 2003

Version 3.06
Enhancements
  • ENHANCE: SEUPLUS - Created new line command called USRDFT which allows each developer to specify:
    1. Which color to use when commenting out lines with the CMT and CMTB line commands.
    2. What mod-marker to place in positions 1 through 4 when commenting or reactivating lines with the CMT and CMTB line commands.
    3. Which line commands to run when pressing either F7 or F8.
  • ENHANCE: RPGWIZ - When converting operation codes to BIFs with the OPCODEBIF(*YES) option, then convert qualified SCAN operations to %SCAN BIFs. Works on TGTRLS(V4R1) and up.
  • ENHANCE: RPGWIZ - When converting DIV operations to EVALs with the CVTDIV(*YES) option, then also convert their following MVR operations to %REM BIFs. Works on TGTRLS(V4R4) and up.
Other Fixes
  • FIX: RPGWIZ - When converting CALL/CALLB operations to CALLPs with CVTCALL(*YES2), then:
    1. Place the DIM statement on the prototype field if it is an array.
    2. Strip the parenthesis from the prototype field if it is an array element.
    3. Correctly convert "named" parameter lists.
  • FIX: RPGWIZ - When converting *ENTRY PLIST to procedure interface with CVTENTRY(*YES2), then place the DIM statement on the prototype field if it is an array.
  • FIX: RPGWIZ - When converting fixed calculation specifications to free form with FMTCALC(*FREE), make sure the /END-FREE tag is placed before any array data.
  • FIX: RPGWIZ - When converting to free-form RPG, clear out the "C" specification type in position 6 when positions 7-80 are blank.

January 6, 2003

Version 3.05
Other Fixes
  • FIX: RPGWIZ - If the AS/400 language id is set to DEU (for German), then properly determine the field types and lengths from a German compile listing, which will allow for the proper conversion of MOVE and MOVEL operations to EVALs.
  • FIX: RPGWIZ - When redefining data structures with REDEFINEDS(*YES) specified, allow for subfields that have blank field names.

December 23, 2002

Version 3.04
Other Fixes
  • FIX: RPGWIZ - Retain level break (L0-L9) and last record (LR) indicators when converting CASxx, LOOKUP and CALL/CALLB statements.

December 9, 2002

Version 3.03
Other Fixes
  • FIX: RPGWIZ - Determine the nesting correctly for CASxx statements. This was causing a problem when converting a DO loop to a FOR loop which contained CASxx statements within it. It was also not showing indented source listings correctly which contained CASxx statements.

November 19, 2002

Version 3.02
Other Fixes
  • FIX: RPGWIZ - Correctly convert left-hand indicators to IF structures when also converting comments to slashes with CMTDESIG(*SLASHES). A comment immediately prior to a left-hand indicator was not being recognized properly.

October 17, 2002

Version 3.01
Other Fixes
  • FIX: GENERAL- When upgrading to a new version of the Toolbox, use the correct disk ASP when saving the existing physical files.
  • FIX: GENERAL- When upgrading to a new version of the Toolbox, retain the object authority on the data areas of @SEUPLUS and @SNIPPETS.
  • FIX: RPGWIZ- When converting MOVE, MOVEL, Z-ADD and Z-SUB operations to EVAL operations and if EXAMINEFLD(*YES) is specified, correctly calculate the length of numeric variables when decimal positions are also specified.
  • FIX: RPGWIZ- When converting MOVE operations to EVALs and if EXAMINEFLD(*YES) is specified; DO NOT convert the MOVE if moving numeric to numeric and the result length/decimals are larger than factor 2, unless the (P)added operation extender was specified on the MOVE.

October 2, 2002

Version 3.00
Other Fixes
  • FIX: RPGWIZ- When converting opcodes to free-form RPG with FMTCALC(*FREE), remove any extra spaces between the opcode and operation extender or within the operation extender. Example:

Before

*MDY        TEST ( ED)              WORKDATE

After

TEST(ED) *MDY WORKDATE
  • FIX: GENERAL- When indenting free form nested logic, do not indent a constant which contains a hyphen for a continuation character.
  • FIX: GENERAL- Save the CHGDFT command into the backup RPGTBnnnnn library when installing a new version of the Toolbox over an existing installation.

September 30, 2002

Version 2.09 BETA
Enhancements
  • ENHANCE: RPGWIZ- When converting MOVE, CAS or COMP operations with result indicators, place parenthesis around the new indicator compare.

Before

MOVE      CUST_5A       WORK_5A              98

After

EVAL      WORK_5A = CUST_5A
EVAL      *IN98 = (WORK_5A = *BLANKS)
  • ENHANCE: RPGWIZ- When inserting file I/O bifs for any CHAIN, DELETE, SETLL or SETGT operations with a not-found indicator, place a space between the inserted NOT and %FOUND.

Before

KLIST01       DELETE    CUSTMAS                          99

After

KLIST01       DELETE(E) CUSTMAS
EVAL      *IN99 = NOT %FOUND(CUSTMAS)
  • ENHANCE: RPGWIZ- Changed behavior of CASELOGICN(*MIXED2) option to create any new IBM built-in functions in mixed case, versus upper case.
  • ENHANCE: RPGWIZ- When converting to free form RPG with FMTCALC(*FREE), convert a error result indicator to a %ERROR BIF and qualify the opcode with an (E) for the opcodes of ACQ, CLOSE, COMMIT, DEALLOC, DSPLY, FEOD, IN, NEXT, OPEN, OUT, POST, REL, RESET, ROLBK, TEST and UNLOCK.
  • ENHANCE: RPGWIZ- When converting to free form RPG with FMTCALC(*FREE) and if the source already contains some free form logic, then reuse existing /free and /end-free tags when possible.
  • ENHANCE: RPGWIZ- When compressing expressions with CMPEXP(*YES), do not extend the expression beyond column 76 so users with 24x80 sized screens can view the entire expression in SEU without having to window right.
  • ENHANCE: RPGWIZ- When compressing expressions with CMPEXP(*YES), don't break a constant in half if the entire constant can fit into the next line.
  • ENHANCE: SEUPLUS- When compressing expressions with the COM line command, do not extend the expression beyond column 76 so users with 24x80 sized screens can view the entire expression in SEU without having to window right.
  • ENHANCE: SEUPLUS- When compressing expressions with the COM line command, don't break a constant in half if all of it can fit into the next line.
Other Fixes
  • FIX: RPGWIZ- When compressing expressions with CMPEXP(*YES), properly interpret any existing plus (+) line continuation character within a constant that spans multiple lines.
  • FIX: RPGWIZ- When compressing expressions with CMPEXP(*YES) and if an expression contains a constant that spans multiple lines, use the plus (+) continuation symbol if the next constant character is not blank, otherwise use the minus (-) symbol.
  • FIX: RPGWIZ- When compressing expressions with CMPEXP(*YES), watch out for left hand indicators when determining the last line of an expression.
  • FIX: RPGWIZ- When compressing expressions with CMPEXP(*YES), allow breaking an expression into the next line after a right parenthesis ) is found.
  • FIX: RPGWIZ- When compressing expressions with CMPEXP(*YES), don't change the source date or remove right-hand comments if the expression is not compressed.
  • FIX: RPGWIZ- When converting to free form RPG with FMTCALC(*FREE), do not indent any secondary lines for long expressions if INDNEST(*LEAVE) is also specified.
  • FIX: RPGWIZ- When converting left hand indicators to IF structures with CVTLEFT(*YES) and if a CALL or CALLB operation is encountered with both a left hand indicator and an operation extender, then keep any of its following PARM statements within the new IF structure.
  • FIX: SEUPLUS- When formatting expressions using the expression editor or the COM (compress expression) line command and if the expression contains a constant that spans multiple lines, use the plus (+) continuation symbol if the next constant character is not blank, otherwise use the minus (-) symbol.
  • FIX: SEUPLUS- When using the line commands of EE (edit expression) or COM (compress expression), properly interpret any existing plus (+) line continuation character within a constant that spans multiple lines.
  • FIX: SEUPLUS- If a user saved the RPGWIZ command settings with SAVECMD(*YES), use the saved target release (TGTRLS) setting the next time the line commands of Z or ZZ are used.
  • FIX: SEUPLUS- By default, do not save the RPGWIZ command settings using SAVECMD(*NO) for the Z, ZZ, ZP and ZZP line commands.

September 24, 2002

Version 2.08 BETA
Enhancements
  • ENHANCE: RPGWIZ- Added new keyword of CVTENTRY which allows you to convert the *ENTRY PLIST into a Prototype and Procedure Interface within the D specs.
  • ENHANCE: RPGWIZ- Added new keyword of CVTCALL which allows you to convert CALL and CALLB operations to CALLP operations. RPGWIZ Will also create corresponding prototypes in the D specs. Works with both parameters defined after the CALL/CALLB and parameters defined in a parameter list (PLIST).
  • ENHANCE: RPGWIZ- Added new keyword of CVTDO which allows you to convert DO operations to FORs (if on OS/400 release V4R4 or higher).

Before

5           DO       LIMIT       INDEX
ENDDO

After

FOR      INDEX = 5 TO LIMIT
ENDFOR
  • ENHANCE: RPGWIZ- Added new keyword of CVTLOOKUP which allows you to convert LOOKUP operations to %LOOKUP and %TLOOKUP built-in functions (if on OS/400 release V5R1 or higher).
  • ENHANCE: RPGWIZ- Added new keyword of CVTZADDSUB which allows you to have more finite control over the conversion of Z-ADD and Z-SUB operations (versus controlled through the CVTADDSUB keyword). Available options are *NO, *YES and *YES2. The option *YES2 will ignore potential overflow problems even if EXAMINEFLD(*YES) is specified.
  • ENHANCE: RPGWIZ- Added new keyword of CVTGOTO which allows you to convert any GOTOs which "jump to an end of a subroutine" to either: "LEAVESR" operations if on OS/400 release V4R4 or higher and you also are not converting subroutines to procedures OR "RETURN" operations if you are also converting subroutines to sub-procedures.
  • ENHANCE: RPGWIZ- Added new keyword of CVTCAT which allows you to convert CAT operations to EVALs. The *YES option will convert CAT(P) operations and *YES2 will additionally convert CAT operations without the (P) extender.

Before

FIRST         CAT(P)    LAST:1        FULLNAME

After

EVAL      FULLNAME = %TRIM(FIRST) + ‘ ’ + LAST
  • ENHANCE: RPGWIZ- Added new keyword of CMPEXP which allows you to compress all expressions within your source member. This option will remove any extra spaces from each expression and will fit the reformatted expression into the minimum number of lines needed. Works with both extended factor 2 and free form expressions.

Before

IF        STATE    =    'NE'    OR
STATE    =    'IA'

After

IF        STATE = 'NE' OR STATE = 'IA'
  • ENHANCE: RPGWIZ- Added new keyword called CMTBLANK which allows you to remove the comment designator (* or //) from blank comment lines. ENHANCE: RPGWIZ- Added a new option called *YES2 to the FILEBIF keyword which will allow you to qualify any inserted file I/O BIFs with the name found in factor2. Previously, there was no option to qualify the newly inserted I/O BIFs.

Before

KLIST01       CHAIN     CUSTMAS                      98

After

KLIST01       CHAIN     CUSTMAS
EVAL      *IN98 = NOT%FOUND(CUSTMAS)
  • ENHANCE: RPGWIZ- Support the conversion of MOVE and MOVEL operations which contain both left and right hand indicators.

Before

01            MOVE     CUST_5A       WORK_5A         98

After

IF       *IN01 = *ON
EVAL     WORK_5A = CUST_5A
EVAL     *IN98 = WORK_5A = *BLANKS
ENDIF
  • ENHANCE: RPGWIZ- When converting subroutines to sub-procedures with CVTSUBR(*YES), also convert existing LEAVESR operations contained within them to RETURN operations.

Before

LEAVESR

After

RETURN
  • ENHANCE: RPGWIZ- When converting subroutines to sub-procedures with CVTSUBR(*YES), invalidate any existing RETURN statements within them by changing the spec type to an X, since the RETURN's behavior is different within a sub-procedure.
  • ENHANCE: RPGWIZ- When creating new EVALs that span more than 1 line, make better use of the space available in extended factor 2.
  • ENHANCE: RPGWIZ- Changed defaults on the existing RPGWIZ keywords to CASELOGICN(*UPPER), CMTSPECTP(*REMOVE), DOCNEST(*NO).
  • ENHANCE: GENERAL- Created new DSPIND command to allow you to display or print an indented source listing for a RPG IV source member. Connector lines are also drawn between the beginning and ending of control structures.
  • ENHANCE: GENERAL- Created new HLTCMT command to allow highlighting just the comment lines in CMD, CLP, CLLE, DSPF, LF, PF, PRTF, RPG, RPGLE, RPT, SQLRPG and SQLRPGLE member types. You can also use this command to remove highlighting from comments.
  • ENHANCE: GENERAL- Enhanced the CRTOPT command to allow the creation of PDM options for the HLTCMT (Highlight Comments) and DSPIND (Display Indented Source) commands.
  • ENHANCE: GENERAL- Created a menu which shows all available RPG Toolbox commands, which can be executed right from this menu. To access, type the OS/400 command "GO RPGTOOLBOX/MENU".
  • ENHANCE: GENERAL- Changed CRTOPT command to create PDM option RF with keywords CVTENTRY(*YES) and CVTCALL(*YES) specified to help maximize the conversion to free format.
  • ENHANCE: SEUPLUS- Created the new block line command of HC to allow highlighting just the comments within a section of source code.
  • ENHANCE: SEUPLUS- Created the new block line command of RH to allow the removal of highlighting from comments within a section of source code.
  • ENHANCE: SEUPLUS- Created the new block line command of DI to display an indented source listing for a section of source code.
  • ENHANCE: SEUPLUS- Created the new block line command of LI to print an indented source listing for a section of source code.
  • ENHANCE: SEUPLUS- Enhanced the existing line commands of CMT and CMTB to allow commenting-out and reactivating lines in CMD, CLP, CLLE, DSPF, LF, PF, PRTF, RPG, RPT and SQLRPG member types. Previously, these line commands only supported RPGLE and SQLRPGLE member types.
  • ENHANCE: SEUPLUS- Enhanced all the existing coloring line commands to allow coloring slash/asterisk comment lines within CLP, CLLE and CMD source member types.
  • ENHANCE: SEUPLUS- Changed the default on the F7 function key within SEU to run the VV (View Variable) command. You can now just position the cursor on a variable and press F7 to view its type and length.
  • ENHANCE: SEUPLUS- Created the new line command of I/* to allow inserting 3 comment lines into CLP, CLLE or CMD source member types. Uses the COMMENT3 snippet.
  • ENHANCE: SEUPLUS- Changed the line command of COM (compress expression) to keep a reformatted expression from extending beyond column 76 so it remains within the SEU display area.
  • ENHANCE: SNIPPETS- Added the following new source code snippets:
DDDS      - Define standard Data Structure
DDDSOC    - Define multiple Occurrence Data Structure
DDDSEX    - Define externally Defined Data Structure
DDARRAYRT - Define Run-Time Array
DDARRAYCT - Define Compile-Time Array
DDARRAYPT - Define Prerun-Time Array
DDFIELD   - Regular Standalone Field
DDCONST   - Define Constant
DDPI      - Define Procedure Interface
DDPR      - Define Prototype
PROC      - Define Procedure
COMMENT3  - Inserts 3 /*  */ comments into a CLP or CLLE source member types
COMMENT4  - Inserts 3 /*  */ comments into a CMD source member type
  • ENHANCE: SNIPPETS- Made enhancements to the source code snippets of DOU, DOW, IF, ELSEIF, WHEN and SELECT.
Other Fixes
  • FIX: RPGWIZ- If inserting file I/O BIFs for a file operation which has the same error indicator as the I/O indicator, then combine the compares into just one EVAL operation:

Before

KLIST01       DELETE    CUSTMAS                      9999

After

KLIST01       DELETE(E) CUSTMAS
EVAL      *IN99 = %ERROR OR NOT%FOUND(CUSTMAS)
  • FIX: RPGWIZ- When converting left hand indicators with CVTLEFT(*YES), do not carry a level break (L1-L9) or last record (LR) indicator into subsequent lines of an expression.

Before

LR  TEST      IFEQ      'A'
LR  TEST      OREQ      'B'
LR            END

After

LR            IF        TEST = 'A'
OR TEST = 'B'
LR            ENDIF

 

  • FIX: RPGWIZ- When converting CASxx operations to SELECT/WHEN with CVTCAS(*YES) and if you specify to change the case in the old logic with CASELOGICO, then convert the first WHEN statement properly to the selected case.
  • FIX: GENERAL- Do not document or indent the beginning and ending of BEGSR and ENDSR opcodes with the DOCNST and INDNST commands.

June 28, 2002

Version 2.07
Enhancements
  • ENHANCE: RPGWIZ- Allow specifying TOFILE(*FROMFILE) on the RPGWIZ command so the from-file name can be defaulted in for the destination source file name.
Other Fixes
  • FIX: RPGWIZ- When EXAMINEFLD(*YES) and CVTMOVEL(*EVAL) is specified, only convert a MOVEL that has numeric types in both factor 2 and the result when the field lengths match.
  • FIX: RPGWIZ- When converting left hand indicators to IF structures with CVTLEFT(*YES), allow for up to 40 left hand indicators on a single operation, versus 20.
  • FIX: RPGWIZ- When converting to free-form syntax with FMTCALC(*FREE), do not truncate positions 79-80 in a converted in-line comment.
  • FIX: RPGWIZ- When converting to free-form syntax with FMTCALC(*FREE), allow for blank or comment lines which may be inserted within multi-line expressions.
  • FIX: SEUPLUS- Properly process the line commands of DB, DB2 or DFD when field exit is pressed after entering the command.

April 18, 2002

Version 2.06
Enhancements
  • ENHANCE: Compressed the RPG Toolbox installation file from 5Mb to 2Mb.
  • ENHANCE: RPGWIZ- Dramatically enhanced the conversion of MOVE and MOVEL operations when EXAMINEFLD(*YES) is specified:
    • If moving fields of different lengths, use %SUBST where possible. Examples:

Before

MOVEL    ORDR_2A       WORK_5A
MOVE     CUST_3A       WORK_5A

After

EVAL     %SUBST(WORK_5A:1:2) = ORDR_2A
EVAL     %SUBST(WORK_5A:3:3) = CUST_3A

Before

MOVE     WORK_5A       ORDR_2A

After

EVAL     ORDR_2A = %SUBST(WORK_5A:4:2)
  • If result indicator(s) are specified, then convert those indicators to EVAL(s) following the operation. Example:

Before

MOVE     CUST_5A       WORK_5A                      98

After

EVAL     WORK_5A = CUST_5A
EVAL     *IN98 = WORK_5A = *BLANKS
  • If a MOVE is padded(P) and the result field is larger than factor2, then blank out the field before assigning the value. Example:

Before

MOVE(P)  CUST_5A       WORK_10A

After

EVAL     WORK_10A = *BLANKS
EVAL     %SUBST(WORK_10A:6:5) = CUST_5A
  • If moving *BLANKS to a numeric field, then convert to use *ZEROS within the resulting EVAL. Example:

Before

MOVE     *BLANKS       WORK_5N

After

EVAL     WORK_5N = *ZEROS
  • If moving *ZEROS to an alphanumeric field, then convert to using a string of 0s instead. Example:

Before

MOVE     *ZEROS        WORK_5A

After

EVAL     WORK_5A = '00000'
  • If moving numeric to an alpha field, use %EDITC(num:'X') Example:

Before

MOVE     WORK_5N        WORK_5A

After

EVAL     WORK_5A = %EDITC(WORK_5N:'X')
  • If moving a non-date field to a DATE field, convert to use the %date bif. Example:

Before

MOVE     ORDT_10A       WORK_D

After

EVAL     WORK_D = %DATE(ORDT_10A)
  • If moving a non-time field to a TIME field, convert to use the %time bif. Example:

Before

MOVE     ORTM_10A       WORK_T

After

EVAL     WORK_T = %TIME(ORTM_10A)
  • If moving a non-timestamp field to a TIMESTAMP field, convert to use the %timestamp bif. Example:

Before

MOVE     ORTZ_10A       WORK_Z

After

EVAL     WORK_Z = %TIMESTAMP(ORTZ_10A)
  • Convert MOVEs containing indicator(*INxx) variables in factor 2 or the result field. Example:

Before

MOVE     '1'            *IN99
MOVE     '0'            *IN(50)

After

EVAL     *IN99 = *ON
EVAL     *IN(50) = *OFF
  • Convert MOVEs containing array elements in factor 2 or the result field. Example:

Before

MOVE     WORK_5A        CUST_5A(X)
MOVE     CUST_5A(X)     ORDR_5A

After

EVAL     CUST_5A(X) = WORK_5A
EVAL     ORDR_5A = CUST_5A(X)
  • ENHANCE: RPGWIZ- Allow for case conversion of existing free-form RPG logic to lower case, upper case or mixed case with CASELOGICO parameter.
  • ENHANCE: RPGWIZ- Allow for case conversion of in-line and right-hand comments within existing free-form RPG logic to lower case or upper case with CASECMTIN and CASECMTRH parameters. ENHANCE: RPGWIZ- Allow for highlighting of in-line comments within existing free-form RPG logic with HIGHCOMM parameter.
  • ENHANCE: RPGWIZ- When converting CASxx structures with the CVTCAS(*YES) parameter specified, convert CASxx structures to SELECT/WHEN structures if NO right hand indicators are used, otherwise convert to IF/ELSE structures.
Other Fixes
  • FIX: RPGWIZ- Correctly determine the length of numeric constants when EXAMINEFLD(*YES) is specified and a decimal point is in the constant. Before the fix, RPGWIZ was only determining the length as the value on the left side of the decimal point.
  • FIX: RPGWIZ- When converting CASxx structures with the CVTCAS(*YES) parameter specified, do not convert CASxx structures if left hand indicators are used within the structure.
  • FIX: RPGWIZ- When converting to free-form RPG, proceed any right-hand comments in the new free-form lines with // notation.
  • FIX: RPGWIZ- When converting to free-form RPG, do not append a () to a CALLP if it already has parameters specified.
  • FIX: RPGWIZ- When converting to free-form RPG, compress out any spaces between the operation code and the operation extender. Example:

Before

ADD  (H) WORK_5N        ORDR_5N

After

EVAL(H) ORDR_5N = WORK_5N
  • FIX: RPGWIZ- When converting to free-form RPG, do not convert any ENDSR opcodes which contain a tag value in factor 1.
  • FIX: RPGWIZ- When converting left-hand indicators to IF structures with CVTLEFT(*YES) and if a CALLP operation has a left-hand indicator, then end the new IF structure immediately after the CALLP. This covers the potential scenario if the procedure called turns on/off indicators and the operation following the CALLP is dependent on one of those indicators.
  • FIX: RPGWIZ- Increased the maximum record limit of the RPGWIZ work file BXP020 from 10,000 records to 50,000 records.
  • FIX: RPGWIZ- Allow the user to convert a block of source containing only *LIKE DEFINEs.
  • FIX: SEUPLUS- When using the SEUPLUS line command of IEX, allow the user to specify the case of the C specification character. C or c.
  • FIX: SEUPLUS- When using the SEUPLUS line commands of E or EE, retain the case of the existing specification type, versus forcing it to capital C.
  • FIX: SEUPLUS- Corrected User Space overflow problems when inserting large snippets of source code with the SEUPLUS IX command.
  • FIX: SEUPLUS- Do not show this error message "FAILED: Snippet name in source member already exists in the database." when bringing up a list of snippets more than one time.

February 22, 2002

Version 2.05
Enhancements
  • ENHANCE: Added new SEU PLUS line command substitution parameters of &SRCMBR, &SRCFIL and &SRCLIB for substituting in the current source member name, file name and library name into the command. See the new SEU PLUS line command called CPYSRC for example of how these new substitution parameters are implemented.
  • ENHANCE: Added the ability to save Toolbox Memory to a source member.
  • ENHANCE: Show the sequence number of any lines copied/deleted into Toolbox Memory through SEU PLUS.
Other Fixes
  • FIX: When specifying CMTDESIG(*SLASHES), start the // at position 7. It was incorrectly starting it at position 6.
  • FIX: When converting to *FREE format and if // already used as the fixed format comment designator, only shift the // into position 8 if the // started at position 7.

January 25, 2002

Version 2.04
Other Fixes
  • FIX: When converting REALLOC opcode to %REALLOC, make both the pointer and size as parms (not just the size)
  • FIX: When converting a CALLP to free format, put () after the procedure.
  • FIX: Calculate INTEGER lengths properly when converting from/to lengths in a data structure.

December 17, 2001

Version 2.03
Enhancements
  • ENHANCE: Increased the allowable size for a snippet value from 20 to 40.
  • ENHANCE: Added the snippet default values of *TIME, *USER, *MBRNAME and *MBRTEXT. See the STARTRPG4 snippet for an example of how these special values are used.
  • ENHANCE: Allow controlling authority to add/change/delete SEU line commands and Snippets using the @SEUPLUS and @SNIPPETS data areas.
Other Fixes
  • FIX: When converting to free format, do not convert lines with level breaks.
  • FIX: User cannot create a SEUPLUS line command which begins with the letter F or P, since reserved for IBM.
  • FIX: Don't allow the snippet variable length to be more than 40 or less than 1.
  • FIX: Allow viewing copy books(VCB) from SEU, even if comments entered on the right side of copy book member name.
  • FIX: Stop overriding the current library in the library list with RPGTOOLBOX. Use a different technique to locate data files.
  • FIX: Remove highlighting from %ABS and %ADDR snippets.
NOTE:

If on V4R2, make sure have IBM PTF SF56369 or SF65048 for 5769PW1.

September 24, 2001

Version 2.02
Other Fixes
  • FIX: Do not convert left hand indicators on DO, DOU, DOW and IF operations.
  • FIX: Use different date technique in SEU PLUS and authorization program to accommodate international clients.

September 7, 2001

Version 2.01
Enhancements
  • ENHANCE: Updated the manual to better explain how to use some features.
  • ENHANCE: Convert CAT operations to EVAL operations with OPCODEBIF(*YES) option.
  • FIX: Allow target source file to be a different length than 112.

September 1, 2001

Version 2.00
Enhancements
  • ENHANCE: Product released.

 

Copyright © HelpSystems, LLC.
All trademarks and registered trademarks are the property of their respective owners.
Last Published: 201912051020