Checkstyle Rules Description


App

Rule Level Description Advice Tags
check-app-too-many-toolkit MAJOR Check the total number of the toolkits in the application to ensure it is not more than 25. A process application that includes a large number of toolkits will have runtime performance issues. Avoid deeply nested toolkit hierarchy (toolkits that include toolkits that include toolkits…). Create toolkits as per logical domains instead of creating one huge toolkit, and prior to deployment create temporary toolkits that contain only the artifacts actually used in your process application. Performance
check-app-with-mismatch-version-toolkits CRITICAL Check if the application has mismatched version toolkits. Toolkits version mismatch may lead to functionality missing or runtime errors. Implementation
check-app-with-too-many-advancedintegrationservice MINOR Check the total number of the integration services in the process application to ensure it is not more than 25. For maintenance purposes, smart folders can be created to manage so many (more than 25) integration services. Maintenance
check-app-with-too-many-ajaxservice MINOR Check the total number of the ajax services in the process application to ensure it is not more than 25. For maintenance purposes, smart folders can be created to manage so many (more than 25) ajax services. Maintenance
check-app-with-too-many-bpd MINOR Check the total number of the BPDs in the process application to ensure it is not more than 15. For maintenance purposes, smart folders can be created to manage so many (more than 15) BPDs. Maintenance
check-app-with-too-many-businessobject MINOR Check the total number of the business objects in the process application to ensure it is not more than 50. For maintenance purposes, smart folders can be created to manage so many (more than 50) business objects. Maintenance
check-app-with-too-many-decisionservice MINOR Check the total number of the decision services in the process application to ensure it is not more than 25. For maintenance purposes, smart folders can be created to manage so many (more than 25) decision services. Maintenance
check-app-with-too-many-environmentvariableset MINOR Check the total number of the environment variable sets in the process application to ensure it is not more than 25. For maintenance purposes, keep only what is needed to reduce so many (more than 25) environment variable sets. Maintenance
check-app-with-too-many-exposedprocess-variable MINOR Check the total number of the exposed processes in the process application to ensure it is not more than 25. For maintenance purposes, keep only what is needed to reduce so many (more than 25) exposed process variables. Maintenance
check-app-with-too-many-generalsystemservice MINOR Check the total number of the general system services in the process application to ensure it is not more than 50. For maintenance purposes, smart folders can be created to manage so many (more than 50) general system services. Maintenance
check-app-with-too-many-humanservice MINOR Check the total number of the human services in the process application to ensure it is not more than 50. For maintenance purposes, smart folders can be created to manage so many (more than 50) human services. Maintenance
check-app-with-too-many-integrationservice MINOR Check the total number of the integration services in the process application to ensure it is not more than 25. For maintenance purposes, smart folders can be created to manage so many (more than 25) integration services. Maintenance
check-app-with-too-many-report MINOR Check the total number of the reports in the process application to ensure it is not more than 15. For maintenance purposes, smart folders can be created to manage so many (more than 15) reports. Maintenance
check-app-with-too-many-serviceflow MINOR Check the total number of the service flows in the process application to ensure it is not more than 50. For maintenance purposes, smart folders can be created to manage so many (more than 50) service flows. Maintenance
check-app-with-too-many-servicelevelagreement MINOR Check the total number of the service level agreements in the process application to ensure it is not more than 15. For maintenance purposes, smart folders can be created to manage so many (more than 15) service level agreements. Maintenance
check-app-with-too-many-undercoveragent MINOR Check the total number of the under coveragents in the process application to ensure it is not more than 25. For maintenance purposes, smart folders can be created to manage so many (more than 25) under coveragents. Maintenance
check-app-with-too-many-webservice MINOR Check the total number of the webservices in the process application to ensure it is not more than 25. For maintenance purposes, smart folders can be created to manage so many (more than 25) webservices. Maintenance
check-toolkit-nested-level MAJOR Check the level of the nested toolkit in the process application to ensure it is not more than 4 Do not have deeply nested toolkit hierarchy. Please check the level of the toolkit hierarchy. Performance
check-app-toolkit-size MAJOR Check the size of every toolkit in the application and ensure it is not more than 50MB Keep the toolkit sizes small, please check the size of the toolkits. Performance

Business Object

Rule Level Description Advice Tags
check-businessobject-documentation MINOR Check the documentation in the business object to ensure it is not empty. For maintenance purposes, a documentation or description for each BPM artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that a documentation or description be set for each artifact. Documentation
check-businessobject-properties-documentation MINOR Check each of the properties in the business object to ensure the documentation of the property is not empty. For maintenance purposes, a documentation or description for each BPM artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that a documentation or description be set for each artifact. Documentation
check-shared-business-object MAJOR Check each of the business objects to ensure it is not a shared object. If a shared business object is a large object, it can cause database bloat and other runtime performance issues. Performance
check-too-big-businessobject-used MAJOR Check each of the business objects to ensure the attribute number of the business object in ‘the process app’ is not more than 50. Business processes should store only the data that is needed for the process or a service as the process runs. Performance

Case Solution

Rule Level Description Advice Tags Reference
check-casetype-documentation MINOR Check all of the case types’ documents and ensure that each case type’s documentation is not empty. For maintenance purposes, a documentation or description for each CaseType artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that a documentation or description be set for each artifact. Documentation  
check-case-without-casetype CRITICAL Check the process app and ensure that each case solution contains at least one case type. At least one case type must be defined in a case solution. Implementation  
check-case-without-role CRITICAL Check the process app and ensure that each case solution contains at least one role. At least one role must be defined in a case solution. Implementation  
check-page-documentation MINOR Check all of the pages’ documents and ensure that each page’s documentation is not empty. For maintenance purposes, a documentation or description for each CaseType artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that a documentation or description be set for each artifact. Documentation  
check-page-javascript-coding-style MINOR Check the JavaScript code in the pages and ensure that each JavaScript code complies with the general JavaScript coding style. JavaScript codes should comply with the general JavaScript coding style. JavaScript  
check-page-javascript-length MAJOR Check the JavaScript code in the pages and ensure that the line number is less than 100 lines. Avoid large JavaScript blocks because JavaScript is interpreted and therefore slower to process than other compiled mechanisms such as Java code. Large JavaScript blocks can also produce very large Document Object Model (DOM) trees. As a general guideline, limit a JavaScript block to 100 lines. If your implementation exceeds this value, re-evaluate the design and refactor the implementation to use smaller JavaScript blocks. JavaScript IBM BPM Performance Tuning and Best Practices
check-page-javascript-length-pro CRITICAL Check the JavaScript code in the pages and ensure that the line number is less than 300 lines. Avoid large JavaScript blocks because JavaScript is interpreted and therefore slower to process than other compiled mechanisms such as Java code. Large JavaScript blocks can also produce very large Document Object Model (DOM) trees. As a general guideline, limit a JavaScript block to 300 lines. If your implementation exceeds this value, re-evaluate the design and refactor the implementation to use smaller JavaScript blocks. JavaScript IBM BPM Performance Tuning and Best Practices
check-property-documentation MINOR Check all of the properties’ documents and ensure that each property’s documentation is not empty. For maintenance purposes, a documentation or description for each CaseType artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that a documentation or description be set for each artifact. Documentation  
check-role-documentation MINOR Check all of the roles’ documents and ensure that each role’s documentation is not empty. For maintenance purposes, a documentation or description for each CaseType artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that a documentation or description be set for each artifact. Documentation  
check-unused-page MAJOR Check all of the pages in the ICM solution and ensure that each page is used in the case solution. The unused pages should be deleted. Redundant  
check-unused-property MAJOR Check all of the properties in the ICM solution and ensure that each property is used in the case solution. The unused properties should be deleted. Redundant  

Case Type

Rule Level Description Advice Tags
check-activity-documentation MINOR Check if the documentation of the activity in the case solution is empty. For maintenance purposes, a documentation or description for each Case property artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that a documentation or description be set for each artifact. Documentation
check-casepagelayout-documentation MINOR Check if the documentation of the case page layout in the case solution is empty. For maintenance purposes, a documentation or description for each Case property artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that a documentation or description be set for each artifact. Documentation
check-casetype-without-activity MAJOR Check the case types in the ICM solution, ensure that each case type contains at least one activity At least one activity must be defined in a case type. Implementation
check-propertyview-documentation MINOR Check if the documentation of the property view in the case solution is empty. For maintenance purposes, a documentation or description for each Case property artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that a documentation or description be set for each artifact. Documentation
check-rule-documentation MINOR Check if the documentation of the rule in the case solution is empty. For maintenance purposes, a documentation or description for each Case property artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that a documentation or description be set for each artifact. Documentation
check-unused-casepagelayout MAJOR Check the case pages in the ICM solution, ensure that each case page layout is used in the case solution. The unused case page layouts should be deleted. Redundant
check-unused-propertyview MAJOR Check the property views in the ICM solution, ensure that each property view is used in the case solution. The unused property views should be deleted. Redundant
check-unused-rule MAJOR Check the rules in the ICM solution, ensure that each rule is used in the case solution. The unused rules should be deleted. Redundant

Coach View

Rule Level Description Advice Tags Reference
check-coachcontrol-with-no-binding-value MINOR Check the controls in each service to ensure the control is binding with a value. Every coach view should have a binding value. Implementation  
check-coachview-reach-endpoint MAJOR Check all of the coaches, ensure that each coach is wired to an end node. Coaches in human services can be resource-consuming for the server. For developing efficient coaches, always wire coaches to end nodes. Performance IBM BPM Performance Tuning and Best Practices
check-mixed-js-libraries-on-coach MINOR Check all of the coaches, ensure that each coach view does not have mixed JavaScript Libraries in the process application Do not mix Coach Views written with different JavaScript libraries. Loading and initializing different libraries takes time. Performance  

Migration

Rule Level Description Advice Tags Reference
check-ad-hoc-start-event MINOR Ad hoc start events are detected. Ad hoc start events are deprecated and are not supported in the web Process Designer. These events are converted to a Start Message event with no UCA implementation when the BPD is converted to a process. You need to change the event to an ad hoc activity and implement it as a subprocess. Migration Converting BPDs to processes
check-bpd-component-contains-inner-table-in-data-mapping CRITICAL Use of internal tables detected in the implementation of the item. A component or item’s Script/Conditions Script/Pre&Post Assignments/Pre&Post Execution Script/SQL Input Mapping may contain IBM BAW database tables (for example, the DB tables with the prefix “LSW”). This is a VERY bad implementation and can corrupt your environment or cause migration headaches in the future. Use IBM BAW APIs to retrieve information. If there are no APIs available for a specific purpose, contact the IBM BAW support team for assistance. Migration Top 5 things you need to know about IBM BPM on Cloud
check-bpd-component-contains-inner-table-in-script CRITICAL Use of internal tables detected in the implementation of the item. A component or item’s Script/Conditions Script/Pre&Post Assignments/Pre&Post Execution Script/SQL Input Mapping may contain IBM BAW database tables (for example, the DB tables with the prefix “LSW”). This is a VERY bad implementation and can corrupt your environment or cause migration headaches in the future. Use IBM BAW APIs to retrieve information. If there are no APIs available for a specific purpose, contact the IBM BAW support team for assistance. Migration Top 5 things you need to know about IBM BPM on Cloud
check-bpd-icon-settings-deprecated MINOR Icon settings on process nodes in BPD are detected. There is no equivalent artifact for icon settings on process nodes in the Web Process Designer, and therefore they are ignored when converting BPDs to processes. Migration Converting BPDs to processes
check-bpd-javascript-live-connect MINOR LiveConnect API is called in the scripts. LiveConnect API is deprecated in BAW on the container, please replace it with Vanilla JavaScript. Migration  
check-bpd-milestones-deprecated MINOR Milestones in BPD are detected. There is no equivalent artifact for milestones in the Web Process Designer, and therefore they are ignored when converting BPDs to processes. Migration Converting BPDs to processes
check-bpds-deprecated MINOR BPDs are detected. The BPDs that are created in the desktop Process Designer are not supported in containers. To convert BPDs into processes, please use BPD Conversion in the web Process Designer. Migration Converting BPDs to processes
check-bpd-simulation-configurations-deprecated MINOR Simulation configurations in BPD are detected. There is no equivalent artifact for simulation configurations in the Web Process Designer, and therefore they are ignored when converting BPDs to processes. Migration Converting BPDs to processes
check-coachview-using-deprecated-coach-views MINOR Artifacts using deprecated Coach Views are detected. To convert deprecated coach views into UI views, please use UI Conversion in the web Process Designer. Migration Converting deprecated coach views into UI views
check-deprecated-task-routing-policy MINOR Deprecated assignment types are detected. The assignment types such as Last User in Lane, Routing Policy and List of Users are not supported in the web Process Designer because they are deprecated in the desktop Process Designer. To achieve the same effect as these assignment types, you need to implement the function manually by using a team filter or retrieval service. Migration Converting BPDs to processes
check-external-implementations-deprecated MINOR External Implementations are detected. The external implementations that are created in the desktop Process Designer are not supported in containers. To convert external implementations into external services, please use Service Conversion in the web Process Designer. Migration Converting external implementations
check-heritage-coaches-deprecated MINOR Heritage Coaches are detected. The Heritage Coaches that are created in the desktop Process Designer are not supported in containers. To migrate Heritage Coaches, please re-implement them using the BPM UI Toolkit. Migration Where to edit Process Designer artifacts
check-heritage-services-deprecated MINOR Heritage Services are detected. The heritage services that are created in the desktop Process Designer are not supported in containers. To convert heritage services into service flows, please use Service Conversion in the web Process Designer. Migration Converting heritage services
check-historical-analysis-scenarios-deprecated MINOR Historical Analysis Scenarios are detected. The Historical Analysis Scenarios that are created in the desktop Process Designer are not supported in containers. Migration Where to edit Process Designer artifacts
check-ibm-case-manager-integration-services-deprecated MINOR IBM Case Manager Integration Services are detected. The IBM Case Manager Integration Services that are created in the desktop Process Designer are not supported in containers. In the web Process Designer, use a process with ad-hoc activities instead of the IBM Case Manager Integration Service. Migration Where to edit Process Designer artifacts
check-inline-web-service-configuration MINOR An inline Web Service Configuration is detected. The in-line configuration will be lost when converting an Integration Service that has an inline Web Service integration into a service flow. You need to change the Web Service integration to using the server tab-based definitions prior to converting the service flow. Migration Converting integration services with web service integrations
check-key-performance-indicators-deprecated MINOR Key Performance Indicators are detected. The Key Performance Indicators that are created in the desktop Process Designer are not supported in containers. Migration Where to edit Process Designer artifacts
check-managed-asset-size MINOR The managed asset size is more than 5242880 Do not attach large files like Java library files as IBM BPM application-managed files. These files can negatively affect the database input/output and the size and use of managed asset caches. Migration  
check-server-item-endpoint-hardcoded MINOR Hard-coded endpoint is detected. Avoid hardcoded service endpoints. This is a VERY bad implementation and can corrupt your environment or cause migration headaches in the future. Migration Top 5 things you need to know about IBM BPM on Cloud
check-service-item-contains-inner-table-in-data-mapping CRITICAL Use of internal tables detected in the implementation of the item. A component or item’s Script/Conditions Script/Pre&Post Assignments/Pre&Post Execution Script/SQL Input Mapping may contain IBM BAW database tables (for example, the DB tables with the prefix “LSW”). This is a VERY bad implementation and can corrupt your environment or cause migration headaches in the future. Use IBM BAW APIs to retrieve information. If there are no APIs available for a specific purpose, contact the IBM BAW support team for assistance. Migration Top 5 things you need to know about IBM BPM on Cloud
check-service-item-contains-inner-table-in-script CRITICAL Use of internal tables detected in the implementation of the item. A component or item’s Script/Conditions Script/Pre&Post Assignments/Pre&Post Execution Script/SQL Input Mapping may contain IBM BAW database tables (for example, the DB tables with the prefix “LSW”). This is a VERY bad implementation and can corrupt your environment or cause migration headaches in the future. Use IBM BAW APIs to retrieve information. If there are no APIs available for a specific purpose, contact the IBM BAW support team for assistance. Migration Top 5 things you need to know about IBM BPM on Cloud
check-service-item-ECMservices MINOR ECM services are detected for migrating to IBM BPM on Cloud. When running on IBM BPM on Cloud, an external IBM ECM server that is located in a remote data center might have performance issues. Migration Top 5 things you need to know about IBM BPM on Cloud
check-service-javascript-live-connect MINOR LiveConnect API is called in the scripts. LiveConnect API is deprecated in BAW on the container, please replace it with Vanilla JavaScript. Migration  
check-service-using-deprecated-coach-views MINOR Artifacts using deprecated Coach Views are detected. To convert deprecated coach views into UI views, please use UI Conversion in the web Process Designer. Migration Converting deprecated coach views into UI views
check-simulation-analysis-scenarios-deprecated MINOR Simulation Analysis Scenarios are detected. The Simulation Analysis Scenarios that are created in the desktop Process Designer are not supported in containers. Migration Where to edit Process Designer artifacts

Process

Rule Level Description Advice Tags Reference
check-auto-tracking-enable MAJOR Check if the process has auto-tracking enabled or not. Auto-tracking is enabled by default for Processes. This capability is important for many Processes because it enables the gathering, tracking, and reporting of key business metrics. However, an additional cost exists as a result of auto-tracking because the events are processed by the Performance Data Warehouse and persisted in the database. Disable auto-tracking for Processes that do not require tracking and reporting business metrics. Performance IBM BPM Performance Tuning and Best Practices, IBM BPM Developer Forum
check-bpd-activity-contain-tostring-datamapping MAJOR Check if the activity contains toString data mapping. Activity contains a Data Mapping which makes use of the toString function on a potentially large variable could cause performance issues. Performance  
check-bpd-activity-narrative MINOR Check the components of every lane in a BPD to ensure the narrative of the activity component is not empty. For user experience purposes, business users should have a way to know the details of the task from the portal. It is strongly recommended that a narrative should be set for every activity. Documentation  
check-bpd-activity-subject MINOR Check the components of every lane in a BPD to ensure the subject of the activity component is not empty. For user experience purposes, business users should have a way to know the target of the task from the portal. It is strongly recommended that a subject should be set for every activity. Documentation  
check-bpd-component-javascript-contains-sleep MAJOR Check if the JavaScript uses java.lang.Thread.currentThread().sleep. JavaScript should not contain java.lang.Thread.currentThread().sleep. JavaScript  
check-bpd-component-need-exception-handle CRITICAL Check the components in a BPD to ensure the activity component whose name matches the naming convention of “^exception” is handled. The exception thrown at runtime should be well handled. InfiniteLoop  
check-bpd-component-sql-injection-in-data-mapping MAJOR The component’s SQL Input Mapping may contain SQL injection. The SQL Input Mapping is constructed using untrusted data and vulnerable to SQL injection. Use SQLStatement.parameters to write parameterized query instead. SAST OWASP Injection
check-bpd-component-sql-injection-in-script MAJOR The component’s Script/Conditions Script/Pre&Post Assignments may contain SQL injection. The SQLStatement.sql is constructed using untrusted data and vulnerable to SQL injection. Use SQLStatement.parameters to write parameterized query instead. SAST OWASP Injection
check-bpd-contains-infinite-loop MAJOR Potential infinite loop is detected. Potential infinite loop is detected. A loop without any exit criteria will result in an infinite loop. Please review. Implementation  
check-bpd-documentation MINOR Check the documentation in the BPD to ensure it is not empty. For maintenance purposes, documentation or a description for each BPM artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that documentation or a description be set for each artifact. Documentation  
check-bpd-duplicated-EPVs MAJOR Check if there are duplicated EPVs in the process. A BPD or process should not contain duplicated EPVs, which is not meaningful. Redundant  
check-bpd-error-not-fully-implemented MAJOR The Error is not implemented. Please add an Error code and Error mapping configuration for this Error. If an error without configuration is triggered, it will throw its own exception and cannot handle errors normally. Implementation  
check-bpd-event-end-contains-script MAJOR Check if the end event contains script code. For maintenance purposes, the start or end event in the BPD should not contain any JavaScript code. If necessary, the JavaScript code defined in the event should be implemented in another component. Maintenance  
check-bpd-event-end-delete-instance-data MINOR The terminate end event is set to delete all terminated instance runtime data. When the BPD runtime performs frequent deletions, IBM Business Automation Workflow is as frequently performing the purge of the corresponding documents which should be deleted from the Process Portal Search index. When this purge is too frequently performed, it can impact the overall performance of the BPD runtime engine and also cause deadlocks on the BPM_INSTANCE_INDEX and the BPM_TASK_INDEX tables. Such a situation can happen when the end event of a process is of the ‘Terminate’ type and the event property ‘Delete all terminated instance runtime data’ is checked. Upgrade BAW to 23.0.1+ and install all fix packs to fix the issue. Performance IBM BAW: Performance degradation and deadlocks can be observed when there are frequent deletions of process instances, Setting the purge-minimum-interval property has no effect - IBM Business Automation Workflow
check-bpd-event-start-contains-script MAJOR Check if the start event contains script code. For maintenance purposes, the start or end event in the BPD should not contain any JavaScript code. If necessary, the JavaScript code defined in the event should be implemented in another component. Maintenance  
check-bpd-gateway-condition CRITICAL Check if the component of its lane in the BPD has a complete gateway condition. Decision gates with conditions should be implemented properly. Implementation  
check-bpd-humanservice-in-system-lane MAJOR Check the components of its lane in the BPD to ensure the Activities with human service are not implemented in a system lane. A system lane should not contain any human tasks. Performance  
check-bpd-implementation-javascript-coding-style MINOR Check if the implementation JavaScript code complies with the general JavaScript coding style. JavaScript codes should comply with the general JavaScript coding style. JavaScript  
check-bpd-message-event MAJOR Check the components of the lane in the BPD to ensure the attached UCA ID of the message event is not empty. A message event should have a UCA attached to it. Implementation  
check-bpd-not-fully-implemented MAJOR Check if the BPD is fully implemented. A BPD should be implemented. If the BPD is not necessary, you should delete it. Implementation  
check-bpd-phantom-steps MAJOR Check the components of the lane in the BPD to ensure the activity component has an attached activity. If the activity is not necessary for a process or BPD, you should delete it. Otherwise, add implementation to the activity. Implementation  
check-bpd-searchable-field CRITICAL Check the total number of searchable fields in a BPD or Process to ensure it is not more than 25. Business variables add more overhead to the Process Server, so limit business data searches to only those fields that need to be searchable in the Process Portal. As a general guideline, rarely are more than 25 searchable variables required in a Process. If your implementation has more searchable variables than this, reevaluate your design and refactor as needed to reduce the number of searchable variables. Performance IBM BPM Performance Tuning and Best Practices
check-bpd-step-incorrectly-referenced MAJOR Check the documentation of the participant to ensure it is not empty. A redundant component that is not linked in the end-to-end process flow should be deleted. Redundant  
check-bpd-unused-variables MAJOR Check if the process or BPD has unused variables that should be deleted. Unused variables should be deleted. Redundant  
check-delete-completed-task CRITICAL Check if the component is a system task and is set to delete on completion. It’s recommended that you enable Delete Task on Completion for tasks in a system swim lane, because large volumes of completed tasks can greatly impact the performance of instance migration. Performance IBM BPM Performance Tuning and Best Practices
check-lane-participant-not-default MAJOR Check if the attached participant of all lanes is set to all users. Assigning a swimlane to default all users could lead to performance problems when there is a large user registry. Especially if the LDAP is configured, when you run an activity in the lane, it will attempt to populate all the users in your LDAP registry, which can be typically very large. Performance  
check-MIL-system-activity MAJOR Check if there is a system lane activity that uses multi-instance loops. Do not use MILs for batch or system lane activities. This pattern can generate an excessive number of tokens for the BPD to process. Also, activities in MILs in the system lane are run on a single thread, which is clearly not optimal on multiprocessor core servers. Performance IBM BPM Performance Tuning and Best Practices
check-participant-all-users MAJOR Check if the participant contains a group set to all users. The participant group should better not contain all users (tw allusers). If it does, that means any user in the LDAP can see all of the tasks assigned to this group, which may cause negative performance implications. Please consider changing your group members. Performance  
check-participant-documentation MINOR Check the documentation of the participant to ensure it is not empty. For maintenance purposes, documentation or a description for each BPM artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that documentation or a description be set for each artifact. Documentation  
check-sequential-activities-in-lane MAJOR ‘String of Pearls’ problem detected. Sequential system lane activities or human activities within the same lane should be highlighted as something to avoid, also known as the ‘String of Pearls’ problem. Sequential activities within the same lane almost always can be merged. Also, sequential activities, especially when used in the system lane, can have a major impact on performance. Performance IBM BPM Performance Tuning and Best Practices
check-stp-bpd MAJOR An STP-like BPD was found. Its performance can be optimized by checking the ‘Optimize Execution for Latency’ checkbox (Available since BPM 8.5.5) in the process overview, or by replacing it with a BPEL process. Or consider implementing it in BPM Advanced or as an external service. Performance  

Service

Rule Level Description Advice Tags Reference
check-app-unused-service MAJOR Check if there are unused services in the process app. Services should be used by other artifacts or defined as an exposed human service. Redundant services should be deleted. Redundant  
check-coach-with-too-many-coach-view CRITICAL The number of coach views in the coach is more than 500. Simplify the coach. Consider redesigning the complex coach into separate coaches to reduce the number of coach views per coach. Performance IBM BPM UI Performance
check-humanservice-with-too-many-coach MAJOR Check the total number of coaches in the service to ensure it is not more than 5. For maintenance purposes, a human service should only include necessary coaches. Maintenance  
check-service-coachcontrol-with-no-binding-value MINOR The coach control does not have a binding value. A coach control may need a binding value. Implementation  
check-service-documentation MINOR Check the services in the process app to ensure that there is no service whose documentation is empty. For maintenance purposes, documentation or a description for each BPM artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that documentation or a description be set for each artifact. Documentation  
check-service-duplicated-EPVs MAJOR Check if there are duplicated EPVs in each service. A service should not contain duplicated EPVs, which is not meaningful. Redundant  
check-service-duplicated-resource-bundles MAJOR Check if there are duplicated resource bundles in each service. A service should not contain duplicated resource bundles, which is not meaningful. Redundant  
check-service-error-not-fully-implemented MAJOR The Error is not implemented. Please add an Error code and Error mapping configuration for this Error. If an error without configuration is triggered, it will throw its own exception and cannot handle errors normally. Implementation  
check-service-event-end-contains-script MAJOR Check the items of the service. If an item is an exit point, check if it contains script code. For maintenance purposes, the exit point in the service should not contain any JavaScript code. If necessary, JavaScript code defined in the exit point should be implemented in another item. Maintenance  
check-service-exception-loop-item CRITICAL Check the items of the service to ensure that there is no exception event loop item. The item in the service should avoid an event loop exception. InfiniteLoop  
check-service-item-contain-mixed-js-libraries MINOR Do not mix Coach View Libraries in services. Do not mix Coach Views written with different JavaScript libraries. Loading and initializing different libraries takes time. Performance  
check-service-item-contains-infinite-loop MAJOR Potential infinite loop is detected. Potential infinite loop is detected. A loop without any exit criteria will result in an infinite loop. Please review. Implementation  
check-service-item-contains-sleep MAJOR Check if the JavaScript uses java.lang.Thread.currentThread().sleep. JavaScript should not contain java.lang.Thread.currentThread().sleep. Implementation  
check-service-item-contain-tostring-datamapping MAJOR Check all the items in services to see if any item contains toString data mapping. A Service task contains a Data Mapping which makes use of the toString function on a potentially large variable. Performance  
check-service-item-execution-assignment-javascript-coding-style MINOR Check all the assignment JavaScript code in each service to ensure that the JavaScript codes comply with the general JavaScript coding style. JavaScript codes should comply with the general JavaScript coding style. JavaScript  
check-service-item-implementation-javascript-coding-style MINOR Check all the implementation JavaScript code in each service to ensure that the JavaScript codes comply with the general JavaScript coding style. JavaScript codes should comply with the general JavaScript coding style. JavaScript  
check-service-item-not-implemented MAJOR Check the service flows to ensure that there is no infinite loop. There is an infinite loop in the service flow. Please review it! Implementation  
check-service-item-save-context-checked MAJOR Check the items of the service to ensure that the save execution context is off. Save execution context should be turned off for all activities. Use of save execution context where it is not necessary can lead to performance issues. Performance  
check-service-item-sql-injection-in-data-mapping MAJOR The service item’s SQL Input Mapping may contain SQL injection. The SQL Input Mapping is constructed using untrusted data and vulnerable to SQL injection. Use SQLStatement.parameters to write a parameterized query instead. SAST OWASP Injection
check-service-item-sql-injection-in-script MAJOR The service item’s Script/Pre&Post Execution Script may contain SQL injection. The SQLStatement.sql is constructed using untrusted data and vulnerable to SQL injection. Use SQLStatement.parameters to write a parameterized query instead. SAST OWASP Injection
check-service-javascript-length MAJOR Check the JavaScript code in the items of the service to ensure that the line number of the item is not more than 100. Avoid large JavaScript blocks because JavaScript is interpreted and therefore is slower to process than other compiled mechanisms such as Java code. Large JavaScript blocks can also produce very large Document Object Model (DOM) trees. As a general guideline, limit a JavaScript block to 100 lines. If your implementation exceeds this value, re-evaluate the design and refactor the implementation to use smaller JavaScript blocks. JavaScript IBM BPM Performance Tuning and Best Practices
check-service-javascript-length-pro CRITICAL Check the JavaScript code in the items of the service to ensure that the line number of the item is not more than 300. Avoid large JavaScript blocks because JavaScript is interpreted and therefore is slower to process than other compiled mechanisms such as Java code. Large JavaScript blocks can also produce very large Document Object Model (DOM) trees. As a general guideline, limit a JavaScript block to 300 lines. If your implementation exceeds this value, re-evaluate the design and refactor the implementation to use smaller JavaScript blocks. JavaScript IBM BPM Performance Tuning and Best Practices
check-service-not-fully-implemented MAJOR Check all the services to ensure they are fully implemented. The service in the process app should be properly implemented. If it is not necessary, you should delete it. Implementation  
check-service-SOPE-directly-follow-postpone-object MAJOR Check the items of the service to ensure the Stay on Page Event (SOPE) object does not directly follow a Postpone object in a Service. A Stay on Page Event (SOPE) object should not directly follow a Postpone object in a Service. Implementation  
check-service-step-incorrectly-referenced MAJOR Check all of the items in services to ensure that all of the items are connected in the service. All unconnected components should be removed from services. Having unconnected components in services can lead to a messy presentation, therefore making the service more difficult to maintain. Implementation  
check-service-unused-variables MAJOR Check the variables in the service to ensure that there are no unused variables. Unused variables should be deleted. Redundant  
check-service-with-too-many-nested-cshs MAJOR The number of nested client-side human services in the client-side human service is more than 25. Too many nested client-side human services in one client-side human service will cause performance problems. Redesign the client-side human service to not reference so many nested client-side human services. Consider using a series of client-side human services with fewer references to nested client-side human services. Performance Client-side Human Service Performance Troubleshooting

Variable

Rule Level Description Advice Tags Reference
check-bpd-variables-documentation MINOR Check the private variables of the BPD to ensure the documentation of a variable is not empty. For maintenance purposes, documentation or a description for each BPM artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that documentation or a description be set for each artifact. Documentation  
check-bpd-variables-naming-conversion MAJOR Check the private variables of the BPD to ensure the name is not set to “Untitled” or some string containing the word “Untitled”. The name of the variable should be set properly. It should comply with the defined naming conventions. Names that contain the string ‘Untitled’ are not allowed. NamingConversion  
check-service-variables-documentation MINOR Check the input variables of the service to ensure the documentation of a variable is not empty. For maintenance purposes, documentation or a description for each BPM artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that documentation or a description be set for each artifact. Documentation  
check-service-variables-naming-conversion MAJOR Check the private variables of the service to ensure the name is not set to “Untitled” or some string containing the word “Untitled”. The name of the variable should be set properly. It should comply with the defined naming conventions. Names that contain the string ‘Untitled’ are not allowed. NamingConversion  
check-service-with-too-many-inputvariables MAJOR Check the total number of the input variables in the service to ensure it is not more than 15. Variables are persisted to the database when execution contexts are saved, which happens fairly frequently (for example, when changing from BPD to service execution, and when running each coach). These persistence operations are expensive. It is recommended that if possible, minimize the number of variables used. Performance IBM BPM Performance Tuning and Best Practices
check-service-with-too-many-outputvariables MAJOR Check the total number of the output variables in the service to ensure it is not more than 15. Variables are persisted to the database when execution contexts are saved, which happens fairly frequently (for example, when changing from BPD to service execution, and when running each coach). These persistence operations are expensive. It is recommended that if possible, minimize the number of variables used. Performance IBM BPM Performance Tuning and Best Practices

Web Service

Rule Level Description Advice Tags
check-webservice-documentation MINOR Check the web service in the process app to ensure the documentation of a web service is not empty. For maintenance purposes, documentation or a description for each BPM artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that documentation or a description be set for each artifact. Documentation
check-webservice-operation-documentation MINOR Check the web service operation in the web service to ensure the documentation of a web service operation is not empty. For maintenance purposes, documentation or a description for each BPM artifact is necessary. A well-described artifact can be very helpful for users to have a better understanding of the artifact. It is strongly recommended that documentation or a description be set for each artifact. Documentation