What's new?
RPG 2.0
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.
- The following source code is considered as embedded SQL:
- 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 (see RPG 2.0 - Analysis Configuration).
RPG 2.0.1
- Bug fixing only - see RPG 2.0 - Bug Fix List.
RPG 2.0.2
- In this version, we provide a more accurate counting of the number of code lines: blank lines are now correctly identified and counted. They are included in the number of comment lines.
- Bug fixing - see RPG 2.0 - Bug Fix List
RPG 2.0.3
- Bug fixing only - see RPG 2.0 - Bug Fix List.
RPG 2.0.4
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. You can find out more information in RPG 2.0 - Analysis Configuration.
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'
- if the file has file specification (INFSR)
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
Bug fixing
- Bug fixing - see RPG 2.0 - Bug Fix List
- Function Points (transactions): a green tick indicates that OMG Function Point counting and Transaction Risk Index are supported
- Quality and Sizing: a green tick indicates that CAST can measure size and that a minimum set of Quality Rules exist
Function Points (transactions) | Quality and Sizing |
---|---|
CAST recommends that you always install the latest release of an extension.
AIP 8.0.x | AIP 8.1.x | AIP 8.2.x |
---|---|---|
Supported DBMS servers
DBMS | Supported |
---|---|
CSS2 | |
Oracle | |
Microsoft SQL Server |
Supported Versions of RPG
This version of the extension provides partial support for the following RPG versions:
- RPG III
- RPG IV
Partial support is also provided for the code generated for these versions by:
- ADELIA
- SYNON
Please note that this extension supports RPG in the following formats:
- AS400
- ILE format
- Free-Format (note that support is "partial")
RPG MetaModel
Below you can find a description of the RPG MetaModel, please click the image to download a full scale PDF version:
Objects List
The following objects are displayed in CAST Enlighten:
MENU
Icon | Object Name | |
---|---|---|
1 | MENU Bar | |
2 | MENU Item | |
3 | MENU Project |
CL400
Icon | Object Name | |
---|---|---|
1 | CL400 Program | |
2 | CL400 Project | |
3 | CL400 Subroutine |
DB400
Icon | Object Name | |
---|---|---|
1 | DB400 Project | |
2 | DB400 Physical File | |
3 | DB400 Logical File | |
4 | DB400 Table | |
5 | DB400 view | |
6 | DB400 index |
DD400
Icon | Object Name | |
---|---|---|
1 | DDS400 Project | |
2 | DDS400 Section | |
3 | DDS400 PRTF File | |
4 | DDS400 DSPF File | |
5 | DDS400 Physical File | |
6 | DDS400 Logical File | |
7 | DDS400 RecordstructureLF | |
8 | DDS400 RecordstructurePF | |
9 | DDS400 Joinstructure |
RPG 300
Icon | Object Name | |
---|---|---|
1 | RPG/300 Project | |
2 | RPG/300 Program | |
3 | RPG/300 MainSubroutine | |
4 | RPG/300 Subroutine | |
5 | RPG/300 File Printer | |
6 | RPG/300 File Disk | |
7 | RPG/300 File Workstn | |
8 | RPG/300 File Special | |
9 | RPG/300 File Seq | |
10 | RPG/300 Rule | |
11 | RPG/300 Copy Member | |
12 | RPG/300 File Disk Record | |
13 | RPG/300 SQL Statement/Structure | |
14 | RPG/300 Data Structure | |
15 | RPG/300 Procedure | |
16 | RPG/300 Local Record Structure |
RPG 400
Icon | Object Name | |
---|---|---|
1 | RPG/400 Project | |
2 | RPG/400 Program | |
3 | RPG/400 MainSubroutine | |
4 | RPG/400 Subroutine | |
5 | RPG/400 Subroutine FreeFormat | |
6 | RPG/400 File Printer | |
7 | RPG/400 File Disk | |
8 | RPG/400 File Workstn | |
9 | RPG/400 File Special | |
10 | RPG/400 File Seq | |
11 | RPG/400 Procedure | |
12 | RPG/400 Procedure FreeFormat | |
13 | RPG/400 Procedure Prototype | |
14 | RPG/400 Bound Service Program | |
15 | RPG/400 Copy Member | |
16 | RPG/400 Rule | |
17 | RPG400 Data Structure | |
18 | RPG/400 Module | |
19 | RPG/400 File Disk Record | |
20 | RPG/400 Local Record Structure | |
21 | RPG/400 SQL Structure |
Documentation of RPG Quality Rules and Metrics
Documentation of all CAST Metrics and Quality Rules specific to the extension is delivered via a compiled HTML Help file (CHM). Please ensure that once the CHM has been downloaded you right-click on the CHM file in Windows Explorer and choose Properties > Unblock. This will ensure that the CHM is readable on your own PC.
Version | CHM |
---|---|
2.0.x | Download CHM |