WMB/IIB rules complete

Rules

* more details available from following the link

R343* That LOOP label looks to be non-descriptive (WMB)
R342* A mapping node is calling an ESQL method that accesses the DB (WMB)
R341* The OR condition can be split to allow correct representation of condition coverage (WMB)
R339* Kafka Topic does not match the naming standard (WMB)
R338* KafkaConsumer nodes should use SSL (WMB)
R337* There are 2 or more of the same target endpoint name (WMB)
R336* The invoke target has not been found (WMB)
R335* ESQL code has been commented out. It should be removed before code checkin (with threshold) (WMB)
R334* R334 – Propagating to an unknown label (WMB)
R333* The FOR loop is empty (WMB)
R332* The main() function may not have a valid return value so messages may not be propagated (WMB)
R331* R331 – Function has 0 or only 1 return value (WMB)
R330* R330 – Multiple blank lines between code (except between procedures) (WMB)
R329* R329 – Multiple blank lines between code (WMB)
R328* R328 – Function or procedure name is longer then the threshold (WMB)
R327* Function or procedure is recursive (calls itself) (WMB)
R326* Propagate to label found (WMB)
R325* This function has an excessive number of returns (WMB)
R324* This assignment is meaningless (WMB)
R323* Parentheses (brackets) are redundant in this case (WMB)
R321* HTTPInput node should use XML error handling (WMB)
R320* EXTERNAL variables (UDP) should be camelcase (HN) (WMB)
R319* BOOLEAN ESQL variables should be named ‘b’ (HN) (WMB)
R318* The WHILE loop conditions are never updated (and may not exit validly) (WMB)
R317 The COMPUTE mode is ‘message and exception’ but the message and/or exception is never modified, could be set to ‘message’ or ‘LocalEnvironment’ (WMB)
R316 The message model library name should be in one of the allowed naming patterns (WMB)
R315 The message model library contains no schema (xsd) files (WMB)
R314 The procedure is empty (WMB)
R313 Compute/Filter nodes that access the DB should have ‘treat errors as warnings’ set and ‘throw exception on DB error’ unset (WMB)
R312 All Message Model Libraries carry a sub-folder named after the Library itself (WMB)
R311 Use space or tab before and after ‘=’ (equals) (WMB)
R310 Only the exceptionList is modified. Compute mode could be ‘exception’ (WMB)
R309 The COMPUTE mode is ‘message and local environment’ but the message and/or local environment is never modified, could be set to ‘message’ or ‘LocalEnvironment’ (WMB)
R308* SHARED ROW checks not found (WMB)
R307* An XML value has not been assigned from FIELDVALUE (WMB)
R306 The COMPUTE mode is ‘message’ (default) but the localenvironment or exceptionlist has been modified (WMB)
R305 The COMPUTE mode is ‘all’ but message, outputenvironment and exceptionlist are not modified (WMB)
R304 The COMPUTE mode is ‘localenvironment’ but the message is being modified, should be set to ‘localenvironment and message’ or ‘message’ (WMB)
R303 The COMPUTE mode is ‘message’ (default) but the message is never modified, could be set to ‘local environment’ (WMB)
R302* Use a SELECT+THE in preference to a while loop (WMB)
R301* Prefer EXTERNAL variables to be local to the module making use of them (WMB)
R300 The ESQL format is not formatted correctly (WMB)
R299 Multiple nested IF conditions. Use ELSEIF or CASE statement to get quicker dropout (WMB)
R298* Subelements should be named using camel case (WMB)
R297* The name terminals do not match the standards (WMB)
R296 Filter node name does not match allowed formats (WMB)
R295 Validation node used (WMB)
R294 MQHeader node used (WMB)
R293 Transaction mode should be ‘automatic’ to use persistent messages (WMB)
R292 Variables should have meaningful names (WMB)
R291* Avoid looping connections of the nodes back onto themselves (WMB)
R290 Use braces around conditions to make the code more readable (WMB)
R289* A global ESQL variable is only used once. It could be a local variable (WMB)
R288 An XSL template has been declared but not used/referenced (XSL)
R287 An XSL function has been declared but not used/referenced (XSL)
R286* Messageflow looks to be a subflow (WMB)
R285 Propagated OutputRoot.Properties may not be accurately set before data is parsed / output (WMB)
R284 EXTERNAL variables (UDP) should be camelcase (WMB)
R283 The XSL contains an xsl:message element with terminate set to ‘no but it is set as ‘alert’, ‘error’ or ‘emergency’ (XSL)
R282 Using the lengthy axis specifiers like child::, attribute:: or parent::node() (XSL)
R281 Using the XSLT 1.0 mode (XSL)
R280 Using the deprecated namespace axis, when working in XSLT 2.0 mode (XSL)
R279 The stylesheet is not generating any useful output. Please relook at the stylesheet logic (XSL)
R278 Probably bad name of the variable or argument (XSL)
R277 Using a single character name for variable/function/template. Use meaningful names for these features. (XSL)
R276 Incorrectly using the boolean constants as ‘true’ or ‘false’ (XSL)
R275 You might be confusing a variable reference with a node reference (XSL)
R274 Creating an element node using the xsl:element instruction when could have been possible directly (XSL)
R273 Setting disable-output-escaping attribute to ‘no’ is redundant (XSL)
R272 Have set the disable-output-escaping attribute to ‘yes’. Please relook at the stylesheet logic (XSL)
R271* The function or template’s size/complexity is high. There is need for refactoring the code (XSL)
R270 Using the output method ‘xml’ when generating HTML code (XSL)
R269 There are two or more templates that have the same name (XSL)
R268 There are two or more templates that apply the same match (XSL)
R267 Too many low granular templates in the stylesheet (10 or more) (XSL)
R266 An xsl:template is empty (WMB)
R265 There is no space after comma or there are no spaces around the math operators (XSL)
R264* SELECT from repeatable data structures should be FROM[] (WMB)
R263 WHILE loop has been used, check whether it can be replaced with a FOR loop (WMB)
R262 Queue name for MQInputNode should match pattern .IN[_ | _] (only UpperCase) (WMB)
R261 CARDINALITY has been used (WMB)
R260 Optional or mandatory should be explicitly set on xs:string elements (WMB)
R259 THROW statement should include at least 2 params one of which should be MessageFlowLabel (WMB)
R258* MessageSet path should be in one of the allowed naming patterns (WMB)
R257* Subflow name should be in one of the allowed naming patterns (WMB)
R256* Messageflow name should be in one of the allowed naming patterns (WMB)
R255* Messageflow schema should be in one of the allowed naming patterns (WMB)
R254 EXTERNAL variables (UDP) should be camelcase (WMB)
R253 CopyMessageHeaders found (WMB)
R252 CopyEntireMessage found. Prefer ‘SET OutputRoot = InputRoot;’ (WMB)
R251 Using name() function instead of local-name() (XSL)
R250 There are redundant namespace declarations in the xsl:stylesheet element (XSL)
R249 Version 2.0 style sheet using ‘node-set’ (XSL)
R248 The could be assigned using a ‘select’ (XSL)
R247* Use FIELDTYPE over EXISTS for checking list elements (WMB)
R246 Input URL path should be promoted (WMB)
R245 A hard coded mapping was found in the ESQL (allow empty string) (WMB)
R244* WSDL operation does not start with a verb (RS) (WMB)
R243* REFERENCE TO should match regular expression (WMB)
R242* Declared NAMESPACE should match regular expression (WMB)
R241* ROUND_HALF_UP should be used (WMB)
R240 Reference variables should always be declared against a known structure (WMB)
R239 Messageflow/subflow missing version (WMB)
R238 Messageflow/subflow missing long description (WMB)
R237 Messageflow/subflow missing short description (WMB)
R236 Global variables should be in Common_Variables.esql (WMB)
R235 Global functions should be in Common_Functions.esql (WMB)
R234 Queue name and node name cannot be the same (WMB)
R233 MQOutputNode queuename and destinationmode ‘destinationlist’ used (WMB)
R232 Anonymous field references should only be used where they are required (*[<]) (WMB)
R231 WHILE loop should be FOR loop (WMB)
R230 THROW Statement should use COALESCE or parameters to prevent secondary errors (WMB)
R229 General variables should be defined at the top of the function before any code, unless defined and used within a nested code block (WMB)
R228 LocalEnvironment values should be under the Variables subtree (WMB)
R227 HTTPInput node should use Http error handling (WMB)
R226 User defined SOAP headers should be set to ‘must understand’ (WMB)
R225* Function, procedure or module name does not match regular expression provided (WMB)
R224 Use space before and after ‘=’ (equals) (WMB)
R223 Commit mode should be ’0-COMMIT_THEN_SEND’, for IMSRequest node (WMB)
R222 Ensure Message Domain is set to ‘BLOB’ for IMS Request (WMB)
R221 Use connection properties set. Set configuration service to ‘IMSConnectService’ for IMSRequest node (WMB)
R220 IF / ELSE could be a single COALESCE statement (WMB)
R219 Filter node following a Compute node is redundant (WMB)
R218 Topic Wildcard contains WILDCARD(BLOCK) recommend WILDCARD(PASSTHRU) (MQ)
R217 MQINPUT node should not have ‘Failure terminal’ event configured (WMB)
R216 MQINPUT node should not have ‘Transaction rollback’ event configured (WMB)
R215 FILEOUTPUT node should not be used (WMB)
R214 BOOLEAN ESQL variables should be named ‘is’ (WMB)
R213 String concatenations must not be chained more than 3 times (WMB)
R212 The COMPUTE node does not have a return value (WMB)
R211 The FILEREAD node ‘no match’ terminal should be connected (WMB)
R210 The MQGET node ‘no message’ terminal should be connected (WMB)
R209 The MQGET node ‘warning’ terminal should be connected (WMB)
R208 The HTTP Async request node ‘failure’ terminal should be connected (WMB)
R207 The SOAP Async node ‘fault’ terminal should be connected (WMB)
R206 The SCA node ‘fault’ terminal should be connected (WMB)
R205 The filter node ‘unknown’ terminal should be connected (WMB)
R204* Constant does not match the regular expression provided (WMB)
R203 MQOUTPUT nodes validation should be set to ‘content and value’ (WMB)
R202 SOAP Request node does not have its SOAP Fault terminal wired (WMB)
R201* MQMD UserIdentifier has been changed (WMB)
R200 The message flow attempts to reply to a non-existent request (WMB)
R199* Number of nodes in a subflow exceeded (WMB)
R198* Number of nodes in a msgflow exceeded (WMB)
R197 THROW USER EXCEPTION MESSAGE ’3001′ found (WMB)
R196* A hard coded mapping was found in the ESQL (WMB)
R195* COMPUTE node is the last node in the flow (WMB)
R194 The node name is a duplicate within the flow (WMB)
R193 The ESQL format is not formatted correctly (WMB)
R192 Note on subflow should contain Name, Author, Date and description (WMB)
R191 Note on msgflow should contain Name, Author, Date and description (WMB)
R190* File does not contain header comments (ignore case) (WMB)
R189 IF/ELSE could be CASE (WMB)
R188 DECLARE could be combined (WMB)
R187 Mapping nodes should not be used (WMB)
R186* A DELETE FROM a table with no criteria has been found, all rows will be deleted (WMB)
R185 Module names should not contain a space, later versions of IIB cannot have a space in a module name (WMB)
R184 Module names should be named using camel case (WMB)
R183 The Function/Procedure/Module does not contain a comment (multiple) (WMB)
R182 It is good programming practice to give an EXTERNAL variable an initial value – blanks are allowed (WMB)
R181 Commit mode should be ’1-SEND_THEN_COMMIT’, Sync level ’0-NONE’ for IMSRequest node (WMB)
R180 BOTHRESH and BOQNAME should not be defined for a backout queue (MQ)
R179 Module names should be named using camel case (WMB)
R178 Header files should contain author, version and date (ESQL only) (WMB)
R177 Use SOAP domain over XML or XMLNSC (WMB)
R176* That child element may not be valid in that domain (WMB)
R175 The message domain may not be valid (MQMD, SOAP, XML, XMLNSC, BLOB, JSON. MRM) (WMB)
R174 Assigning to null will delete the field in the output, did you want to set the field to empty instead? (WMB)
R173 SOAP.Context.SOAP_Version is not 1.1 or 1.2 (WMB)
R172 EVAL statements may pose security issues (WMB)
R171 The rule template has flagged only priveledged execution groups should be able to read and write files to the file system (WMB)
R170 The rule template has flagged all MQ flows to be deployed to at least 2 execution groups (WMB)
R169* ESQL code has been commented out. It should be removed before code checkin (WMB)
R168* COMPUTE node should throw exception on database error (WMB)
R167 TODO found in mapping node (WMB)
R166 IF condition missing ELSE (WMB)
R165* “Properties” is not included in the map and will be left empty when the node finishes (WMB)
R164 CopyEntireMessage makes calling CopyMessageHeaders redundant (WMB)
R163 The name doesn’t help understanding the code (it may be meaningless) (XSL)
R160 An XSL variable has used but not declared (XSL)
R159 An XSL variable has been declared but not used/referenced (XSL)
R152 An xsl:otherwise, xsl:for-each, xsl:if or xsl:when is empty (XSL)
R151 An xsl:choose is missing a fall through xsl:otherwise (XSL)
R150 An xsl:choose with only 1 when condition could be replaced with an xsl:if (XSL)
R148 The XSL contains an xsl:message element with terminate set to ‘yes’. That will stop the XSLT processor (XSL)
R147 The XSL contains an xsl:message element. These are usually only used in non-production code (XSL)
R146 The XPATH contains //. // selects nodes from anywhere in the document and can affect performance of the XSL (XSL)
R145 The channel XMITQ and does not have a matching transmission queue (MQ)
R144 The channel name defined may not be compliant with the naming standard (MQ)
R143 Found CF02_CC01_GenerateLogEvents but CaptureBusinessKeys not set (BHP)(WMB)
R142 The Function/Procedure/Module does not contain a comment (reporting only once) (WMB)
R141 The line contains both code and comments. Trailing comments are discouraged(WMB)
R140 The queue name defined may not be compliant with the naming standard (MQ)
R139 SUB(subscription) does not match DEST queue (MQ)
R138 TOPICSTR has non recommended characters (MQ)
R137 The MessageSet name does not match the pattern [_]_{COMMON|}_[]_MSP (WMB)
R136 MessageSet name is longer then 30 characters (WMB)
R135 Flows should write to alias queue not the queue directly (WMB)
R134 The library name does not match the pattern ICC_CMM_* (WMB)
R133 The library name is longer than 30 characters (BHP)(WMB)
R132 The node name and ESQL module do not match (WMB)
R131 The COMPUTE node does not have a name (WMB)
R130 MQInput nodes transactionMode should be set to ‘yes’ (WMB)
R129 Function and procedure names should start with upper case (WMB)
R128 Try/catch nodes should be only via a subflow (WMB)
R127 Native IIB input/output nodes should be only via a subflow (WMB)
R126 Should check that the last MOVE completed (WMB)
R125* Parameters should have a direction (WMB)
R124 Function and procedure names should start with lower case (WMB)
R123 Variables should start with a lower case (WMB)
R122 Should not include CC01_GenerateLogEvents subflow (WMB)
R121 Header files should contain author, version and date (ESQL and Message flows) (WMB)
R120 Constant declarations should be in UPPER_CASE (WMB)
R119 BACKOUT queue name does not match the pattern *.BACKOUT(MQ)
R118 Listener name does not match pattern (MQ)
R117 Queue description is longer then 100 characters(MQ)
R116 Queue is set as clustered (MQ)
R115 BOTHRESH and BOQNAME should be defined(MQ)
R114 Queues should be based on templates(MQ)
R113 Queues defined should have descriptions(MQ)
R112 BAR files should be generated and not part of the project(WMB)
R111 CopyEntireMessage makes calling CopyMessageHeaders redundant(WMB)
R110 The input node has been set to allow multiple instances (WMB)
R109 Java Compute nodes should not be used (WMB)
R108 Trace nodes should not be used (WMB)
R107 Duplicate method (WMB)
R106 Reading whole file may cause issues with performance. Split into batches where possible (WMB)
R105* The schema name is not matching what has been set in the property file (WMB)
R104 Module names should be named using camel case (WMB)
R103* The default schema is being used which that should be avoided (WMB)
R102 COMPUTE nodes are not allowed (ESQL code should be avoided) (WMB)
R101 MQInputNode domain should use XMLNSC over XMLNS (WMB)
R100 The XSL cache is set to 0, so style sheets will be compiled each time the node runs (WMB)
R99 The MQGet node has an infinite timeout set. This may cause flows to never complete if the requested message is not available (WMB)
R98 The timeouts on the nodes in the flow are potentially longer than the allowed delay on the input node (WMB)
R97 The AggregateControl Node has an infinite timeout set. This may cause flows to never complete if all replies do not arrive (WMB)
R96 Flow contains an MQReplyNode without an MQInputNode (WMB)
R95 The main method is referred to by more then 1 COMPUTE node (WMB)
R94 The COMPUTE node never creates an output message(WMB)
R93 The COMPUTE mode is message but the message is never read or written (WMB)
R92* The condition is more complicated then the threshold (WMB)
R91 The filter node may only have one return value (WMB)
R90 The flow contains a duplicate UDP/property default value (WMB)
R89 Classification entry is not set for online (WMB)
R88* A terminal that has been deprecated is being used (WMB)
R87 The MQInputNode Transaction mode should be ‘yes’. (WMB)
R86 The faultstring Fault element has to be a FaultString type and not a String type (WMB)
R85 The
element does not have the namespace field set to ‘##any’ (WMB)
R84 The xml.xsd file is not imported in the soapenv11.xsd (WMB)
R83 The Monitoring Events Global Transaction Correlator is not ‘$Environment/monitoring/globalTransactionId’ (applies to JMS nodes) (WMB)
R82 The Monitoring Events Global Transaction Correlator is not ‘$Root/MQRFH2/usr/globalTransactionId’ (applies to MQ nodes) (WMB)
R81 The Monitoring Events Global Transaction Correlator is not ‘$Root/SOAP/Header/businessHeader/globalTransactionId’ (applies to SOAP nodes) (WMB)
R80 The Monitoring Events Parent Transaction Correlator is not ‘automatic’ (WMB)
R79 The Monitoring Events Local Transaction Correlator is not ‘automatic’ (WMB)
R78 The UOW on the monitoring event is not set to ‘none’ (WMB)
R77 The Publication node does not have the required monitoring events added (WMB)
R76 The JMS output node does not have the required monitoring events added (WMB)
R75 The MQ output node does not have the required monitoring events added (WMB)
R74 The SOAP Request node does not have the required monitoring events added (WMB)
R73 The MQ input node does not have the required monitoring events added (WMB)
R72 The SOAP input node does not have the required monitoring events added (WMB)
R71 The input node has no catch handler connected. Errors may not be able to be tracked or may be lost (WMB)
R70 InputNode ‘Build tree using XML schema data types’ not set (WMB)
R69 MQInputNode domain should be XMLNSC (WMB)
R68 InputNode validation is not set to ‘content and value’ (WMB)
R65* The message flow does not consistently reply to messages/requests (WMB)
R55* The COMPUTE nodes connections are inconsistent (WMB)
R46* CASE has no default ELSE statement (WMB)
R45* CASE statement has single WHEN. Could be replaced by an IF statement (WMB)
R42* The parameter on a method/procedure has a short name (and is likely to be meaningless) (WMB)
R37* Check node found in the flow. Check node has deprecated by the validation node (WMB)
R34* The node has a very long delay waiting for a response. This will cause blocking of the runtime and could suggest issue with the design/architecture (WMB)
R29* The function or procedure is longer than the threshold (WMB)
R28* Cyclomatic Complexity is higher then the threshold (WMB)
R21* Avoid using CARDINALITY within loops (WMB)
R19* The line is extra long and may cause issues being viewed (WMB)
R17* Atomic code may call another atomic block (deadlock possible) (WMB)
R12* MQ Queue used in the code but not not listed in the definition file (WMB)
R8* A column being referenced has not been indexed. This may be a performance issue (WMB)
R7* A column being referenced has not been found in the DB schema (WMB)
R6* A table being referenced has not been found in the DB schema (WMB)
R5* Unused variable or unused parameters in procedure of function call (WMB)
R4 JDBC has not been configured (WMB)
R3 Use XMLNSC over XMLNS (WMB)
R2 Negative IF / ELSE condition (WMB)
R1* Keywords should be in upper case (WMB)