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

On this page:

3.0.0-beta2

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
If an exception is thrown while processing violations, a message will be given in the stage "Running extensions after analysis" and next file will be processed. This is a fix to the behavior where one exception would terminate extension.

3.0.0-beta1

Resolved Issues

Customer Ticket IdDetails
25627Incorrect RPG content in the local base and hence Dashboard.
24431No RPG Configuration found in TCC.

3.0.0-alpha1

Updates

Quality Rule changes 

Bookmarks added

Following QRs now have bookmarks:

IDRPG languageRule name
1012026CL400Do not use MONMSG CPF0000 without EXEC  (CL400)
1012024CL400Avoid use of OPNQRYF  (CL400)
1012022CL400Avoid use of *NOMAX  (CL400)
1012020CL400Avoid use of RCLRSC  (CL400)
1012018CL400Avoid use of DLYJOB  (CL400)
1012014CL400Avoid locking object by ALCOBJ command    (CL400)
1012010CL400MONMSG command must be formated    (CL400)
1009098RPG300Avoid using plain END statement, use the explained END statement like ENDIF, ENDDO, etc  (RPG300)
1009096RPG300Better to use QUALIFIED datastructures  (RPG300)
1009090RPG300Avoid using obsolete "Bit Operations" statements in RPG Programs  (RPG300)
1009072RPG300Avoid using dynamic SQL (EXECUTE IMMEDIATE)  (RPG300)
1009070RPG300Avoid using NOT IN  (RPG300)
1009068RPG300Avoid using NOT EXISTS  (RPG300)
1009066RPG300Avoid Programs with too many WHERE Clauses  (RPG300)
1009062RPG300Avoid Programs with Subqueries  (RPG300)
1009060RPG300Avoid Programs with SELECT * statement  (RPG300)
1009058RPG300Avoid Programs With Queries using GROUP BY  (RPG300)
1009056RPG300Avoid Programs With Queries on more than 4 Tables  (RPG300)
1009054RPG300

Avoid Programs with COUNT(*) statement  (RPG300)

1009034RPG300Avoid Subroutines with nested if Statements  (RPG300)
1008108RPG400Avoid using GOTO statement in RPG Programs  (RPG400)
1008106RPG400Avoid obsolete L-spec  (RPG400)
1008104RPG400Avoid obsolete E-spec  (RPG400)
1008102RPG400Avoid using I-spec (RPG-IV only)  (RPG400)
1008100RPG400Avoid using O-spec; use Printer Files instead  (RPG400)
1008098RPG400Avoid using plain END statement, use the explained END statement like ENDIF, ENDDO, etc  (RPG400)
1008096RPG400Better to use QUALIFIED data structures  (RPG400)
1008092RPG400Avoid using obsolete "Call Operations" statements in RPG Programs (RPG-IV only)  (RPG400)
1008090RPG400Avoid using obsolete "Bit Operations" statements in RPG Programs  (RPG400)
1008088RPG400Avoid using obsolete "Definition/Allocation/Array Operations" statements in RPG Programs (RPG-IV only)  (RPG400)
1008086RPG400Avoid using obsolete "Date Operations" statements in RPG Programs (RPG-IV only)  (RPG400)
1008084RPG400Avoid using obsolete "Conditional Operations" statements in RPG Subroutines (RPG-IV only)  (RPG400)
1008082RPG400Avoid using obsolete "Assignment Operations" statements in RPG Programs (RPG-IV only)  (RPG400)
1008080RPG400Avoid using obsolete "String Operations" statements in RPG Programs (RPG-IV only)  (RPG400)
1008078RPG400Avoid using obsolete "Arithmetic Operations" Statement in RPG Programs (RPG-IV only)  (RPG400)
1008072RPG400Avoid using dynamic SQL (EXECUTE IMMEDIATE)  (RPG400)
1008070RPG400Avoid using NOT IN  (RPG400)
1008068RPG400Avoid using NOT EXISTS  (RPG400)
1008066RPG400Avoid Programs with too many WHERE Clauses  (RPG300)
1008062RPG400Avoid Programs with Subqueries  (RPG400)
1008060RPG400Avoid Programs with SELECT * statement  (RPG400)
1008058RPG400Avoid Programs With Queries using GROUP BY  (RPG400)
1008056RPG400Avoid Programs With Queries on more than 4 Tables  (RPG400)
1008054RPG400

Avoid Programs with COUNT(*) statement  (RPG400)

1008034RPG400Avoid Subroutines with nested IF  statements  (RPG400)

Violation granularity

All the violations for QRs under the heading "Bookmarks For QRs" will have their violations reported to nearest RPG artifact instead of top level artifact as it was till version before as detailed below:

RPG400

  • RPG400 Subroutine FreeFormat
  • RPG400 Procedure
  • RPG400 Procedure FreeFormat
  • RPG400 Program
  • RPG400 MainSubroutine
  • RPG400 Subroutine
  • RPG400 Procedure Prototype
  • RPG400 Copy Member

RPG300

  • RPG300 Program
  • RPG300 MainSubroutine
  • RPG300 Subroutine
  • RPG300 Copy Member

CL400

  • CL400 Program
  • CL400 Subroutine

Deleted QRs

Following QRs have been removed and their results will no longer be available.

QR IDTitle LanguageReason
1008036Avoid Programs with High RAW SQL Complexity (RPG400)RPG400Results of these QRs are available in QR "Avoid Programs With Queries on more than 4 Tables  (RPG400)" (1008056)
1008064Avoid Programs with too many FROM Clauses (RPG400)RPG400
1009064Avoid Programs with too many FROM Clauses  (RPG300)RPG300Results of these QRs are available in QR "Avoid Programs With Queries on more than 4 Tables (RPG300)" (1009056)

Resolved issues

The following table lists the bugs fixed in RPG 3.0.0-alpha.

Internal IDTicket IDSummary
RPG-558-COST_ConfigData_UA_RPG_Config_CAST_Suported.xml not installed