This documentation is not maintained. Please refer to doc.castsoftware.com/technologies to find the latest updates.


2.0.10

Other Updates

Details
RPG Extension will no longer create incorrect "<unnamed>" objects
Incorrect access links are removed
Missing links to subroutines are created
Missing transac links are now created
Subroutines with leading special characters are created correctly

Rules

Rule IdNew RuleDetails
1009126FALSEQR: "Avoid defining File Disk if not used (RPG300)" will now give violations

2.0.9

Other Updates

Details
RPG Analyzer no longer supports the .dds file extension.
The link type "callTransacLink" to subroutines for CASxx functions are now created correctly.
The link type "callProgLink" using CALL PGM are now created correctly.
The link type "callLink" using special characters are now created correctly.
The link type "callPerformLink" will now be created correctly to CL400 Programs.
Incorrect "accessLink" type links are no longer created.
Correct "accessLink" type links are now created with search arguments.
"AccessLink" type links to FileDisks are now created correctly.

2.0.8

Note

Extension withdrawn.

2.0.7

Resolved Issues

Customer Ticket IdDetails
27832Assessment Model BackFiredFP ratio changed after migration from 8.3.3 to 8.3.29
28441While migrating 8.3.3 to 8.3.29, Error - EntityType "dmtcoediscovererrpg.CL400Discoverer" not found is displayed.
28438Write statement not resolved in RPGLE, and call to a CL prog from SQLRPGLE not resolved.

Other Updates

Details
Base_RPG.TCCSetup is now present under Configuration\TCC folder and will be automatically loaded.

RPG 2.0.6

Resolved issues

The following table lists the bugs fixed in RPG 2.0.6:

Internal IDTicket IDSummary
RPG-59615373

Some RPG files can not be analyzed when windows locale is setting to Chinese.

RPG-59516966

Links are not coming from RPG400 Subroutine to Database Tables.

As part of the fix, a "useLink" will be created to tables/views when a table or view is referred to in a READE, Chain, SETGT or SETLL in RPG400.

RPG 2.0.5

Updates

Quality Rule changes

The following changes have been introduced in this release:

  • Avoid Logical File without associated Physical File (DDS400) - 1011010: A bug has been fixed which was causing false violations for this Quality Rule when the physical file is not present but the DB400 record is. After installing this release of the extension and the generation of a post upgrade snapshot on the same source code, results may differ for the above Quality Rule: i.e. less violations may be reported depending.

Resolved issues

RPG 2.0.5 contains all bug fixes from the following previous releases. The following table lists all bugs fixed in RPG 2.0.5:

Internal IDTicket IDSummary
RPG-572
RPG Extension pre-processors will now include debug messages when analysis launched with "Include Debug Messages" flag turned on.
RPG-55510551RPG preprocessing messages are confusing
RPG-55911729False Violation - RPG Rule 'Avoid Logical File without associated Physical File (DDS400)'

RPG 2.0.4

Updates

Log improvements for the RPG Preprocessor

  • Improvements have been introduced with regard to the log files that are produced during an analysis of RPG code with the extension. Specifically, the logs produced by the RPG Preprocessor have been improved in this release of the extension.

Quality Rule changes

The following changes have been introduced in this release:

  • Avoid Procedures with more than X lines of code (RPG400) - 1008122: The default parameter used to determine the number of lines of code has been changed to 500, i.e. violations will only occur where the line of code value is above 500.
  • Avoid Procedures with more than X lines of code (RPG400) - 1008120: The default parameter used to determine the number of lines of code has been changed to 500, i.e. violations will only occur where the line of code value is above 500.
  • Avoid Programs with more than X lines of code (RPG400) - 1008118: The default parameter used to determine the number of lines of code has been changed to 2000, i.e. violations will only occur where the line of code value is above 2000.
  • Specify Error Subroutine for File Exception Handling (RPG400) - 1008074: The Quality Rule has been updated as follows and violations should now occur in the following situations:
    • if the file has file specification (INFSR)
      • and it does not have an include link to a copybook which has a routine named '*pssr'
      • and if it itself does not have routine named '*pssr'
  • Avoid Logical File without associated Physical File (DDS400) - 1011010: The Quality Rule has been updated to consider the DB400 record and table if the corresponding Physical File file is not present in the analysis. Additional links are also created in this scenario:

    • DDS400 RecordStructureLF ==== referLink ===> DB400 Table

    • DDS400 RecordStructureLF ==== callLink ===> DB400 Record

Note that after installing this release of the extension and the generation of a post upgrade snapshot on the same source code, results may differ for the above Quality Rules: i.e. more or less violations may be reported depending on the changes introduced.

Resolved issues

RPG 2.0.4 contains all bug fixes from the following previous releases. The following table lists all bugs fixed in RPG 2.0.4:

R&D IDSummary

RPG-551

Remove RPG Technology extension.txt file from extension

RPG-550

RPG extension log mechanism does not handle migration\update correctly

RPG-549Manual Preprocessor should not be given as part of package
RPG-541

Have the log of preprocessor of extension in same location indicated CAST MS preferences

RPG-540

Avoid Logical File without associated Physical File should consider db400 record and table if corresponding pf file isn't present

RPG-539

Ignore the File Specification if the program contains a PSSR subroutine in the rule Specify Error Subroutine for File Exception Handling

RPG-538Default value for parameter of the rule Avoid Procedures with more than X lines of code (RPG400)
RPG-537Default value for parameter of the rule Avoid Subroutines with more than X lines of code (RPG400)
RPG-536Default value for parameter of the rule Avoid Programs with more than X lines of code (RPG400)
RPG-512

Update Launch.bat in order to return an error code when preprocessing fails

RPG 2.0.3

Resolved issues

RPG 2.0.3 contains all bug fixes from the following previous releases. The following table lists all bugs fixed in RPG 2.0.3:

R&D IDSummary

RPG-527

False Violation RPG : Avoid artifacts having recursive calls - false links to be removed - this fix removed this limitation.

RPG 2.0.2

Resolved issues

RPG 2.0.2 contains all bug fixes from the following previous releases. The following table lists all bugs fixed in RPG 2.0.2:

R&D IDSummary

RPG-516

False Violation RPG - Avoid using obsolete "Conditional Operations" statements in RPG Subroutines (RPG-IV only) (RPG400)

RPG-517False Violation RPG - Avoid unreferenced Subroutines (RPG400)
RPG-518

False Violation RPG - Avoid defining File Disk if not used (RPG400)

RPG-520

False Violation RPG - Avoid unreferenced Copy Members (RPG400)

RPG-521

False Violation RPG - Avoid Logical File without associated Physical File (DDS400)

RPG-523

False Violation RPG - Violated Rule Avoid using obsolete "Call Operations" statements in RPG Programs (RPG-IV only) (RPG400)

RPG-525

The total Complexity is not correctly computed for RPG application

RPG 2.0.1

Resolved issues

RPG 2.0.1 contains all bug fixes from the following previous releases. The following table lists all bugs fixed in RPG 2.0.1:

R&D IDSummary
RPG-507Subroutines are not created when a special character is before the control character
RPG-508Mainsection is not at the right position when the program has some free format comments
RPG-509Empty comment lines are not trasnformed by the preprocessor
RPG-511Mixed format for begsr and endsr

RPG 2.0.0

Updates

Note that:

  • RPG 2.0.x should be installed ONLY on new CAST AIP schemas or schemas on which RPG 1.x extensions have never been installed. There is therefore no upgrade path between RPG 1.x and RPG 2.x.
  • when re-analyzing the same source code with RPG 2.x, results will differ to those produced by the RPG 1.x extensions - the results are not comparable.

RPG 2.0 is a major functional and technical improvement of the RPG extension. Many changes have been introduced in order to obtain an accurate Function Point count and better Quality/Sizing results.Below are the main changes that have been integrated into this release of the extension.

  • RPG 2.0 supports COPY Members that were previously created as RPG Programs. A specific type called "RPG400 Copy Member" is used for this object. A COPY Member:

    • Is included by an RPG Program
    • can contain all object types identical to those contained in an RPG400 Program except the "Main" object type.
    • Can contain a Procedure Prototype or a Procedure
  • The languages have been restructured to match RPG terminology. The new structure has been implemented to improve transaction resolution and obtain accurate FP count:
    • DDS400 now contains the types "DB400 Physical File" and "DB400 Logical File", the corresponding properties and the sub-object "DB400 RecordStructure"
    • DB400 is now used to represent the SQL Tables and Views when the corresponding database (DB2 UDB for ISeries SQL) is not delivered. The tables and views are created based on the "Create table" / "Create view" statement provided in *.SQL files and also with the Physical and Logical File delivered in *.PF and *.LF files. Note that the recommended process is to deliver and analyze the real DB2 UDB databases.
  • In RPG 2.0, embedded SQL is now supported, primarily to obtain Usiud links from RPG400 and CL400 objects to SQL Tables and SQL Views. The resolution of these link types requires that the database (DB2 UDB) is delivered and analyzed, however, the DB400 extractor can be used to simulate this database.
    • The following source code is considered as embedded SQL:
      • For RPG400: C/EXEC SQL … C/END-EXEC
      • For RPG Free Format: EXEC SQL … ;
      • For CL: RUNSQL(…)
    • Dynamic execution is not supported.
  • RPG 2.0 provides a first level of support for Free Format
  • RPG 2.0 does not support CTDATA structure 
  • RPG 2.0 supports CL400 Subroutines. Previously only CL400 Programs were supported.  RPG 2.0 identifies CL400 Subroutines defined inside CL400 Programs. 
  • RPG 2.0 provides a better count of comment lines for RPG And CL objects. 
  • RPG 2.0 has specific pre-processors for each language: the preprocessor per language only considers the files with the expected extensions. This change will significantly improve the performance of the automatic preprocessing step.