cachéQuality 1.3.7

SonarQube compatibility

7.3, 7.2, 7.1, 7.0, 6.7 (LTS), 6.6, 6.5, 6.4, 6.3, 6.2, 6.1, 6.0, 5.6 (LTS), 5.5, 5.4, 5.3, 5.2

Caché compatibility

2017.2, 2017.1, 2016.2, 2016.1

Java compatibility

Oracle JDK 8, Oracle JDK 9, Oracle JDK 10

What's new

  • Recognize more keywords on @Relationship annotation: Calculated, SqlComputeCode, SqlComputed, Transient
  • Recognize specifications on class Query: CONTAINID, ROWSPEC, COMPILEMODE and SELECTMODE
  • Recognize the delimiters #classcontext and #endclasscontext
  • Accept instructions without quotation marks on &html statement
  • Recognize inheritance for rules evaluation
  • Recognize resulSet.Data("...") as %String type
  • Recognize a relationship accessor in a class
  • Recognize empty string as false when evaluting a boolean type
  • Support for ObjectScript function $MVOCONV
  • New "Best Practice" option for rule Variable not found to allow strict or flexible evaluation (previous versions were strict evaluation). Next are additional validations when Best Practice mode is enabled:
    • ByRef variables must be initialized
    • Exception variable in catch clause must be initialized
    • SQLCODE is considered declared and intialized after a &sql statement
    • Assignment to :variable in a &sql statement must be initialized


  • Recognize property SqlViewName
  • Allow optional postconditional on TSTART
  • RFC metric was accounting references to any Method/ClassMethod more than once
  • Method not found rule reviewed for a better exclusion of %ShortPackageNames
  • Class not declared abstract rule has been reviewed accordingly to abstract definition discussed with different COS developer teams: A class should be abstract if all methods are empty or declared as abstract, then class should be abstract
  • Properly distinguish a variable that starts with sql in a logic sentence from &sql function
  • Recognize multiline comments after commands and method calls were without a space separator
  • Don't trigger Class not found rule for system classes. Now will recognize system classes if declared zn %SYS%
  • Don't trigger Method not found rule for system classes. Now will recognize system classes if declared zn %SYS%
  • Dont' trigger Missing argument(s) in method call rule when using ByRef and/or Output parameters
  • Dont' trigger Method not found rule for system classes
  • Review of accepted system variables on Variable not found rule to avoid false positives
  • Recognize comments inside a &html