Checkstyle Rules Description


App

Rule Level Description Advice Tags
check-app-with-mismatch-version-toolkits CRITICAL Check if the application has mismatch version toolkits. Toolkits version mismatch may lead to functionality missing or runtime error. Implementation
check-app-too-many-toolkit MAJOR Check the total number of the toolkit 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-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 ofevery toolkit in the application and ensure it is more not  than 50MB Keep the toolkit sizes small, please Check the size of the tookits. Performance
check-app-with-too-many-advancedintegrationservice MINOR Check the total number of the integration service in the process application to ensure it is not more than 25. For maintenance purpose, 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 service in the process application to ensure it is not more than 25. For maintenance purpose, 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 purpose, 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 purpose, 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 service in the process application to ensure it is not more than 25. For maintenance purpose, 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 set in the process application to ensure it is not more than 25. For maintenance purpose, keep only what is needed to reduce so many(more than 25) environment variables sets. Maintenance
check-app-with-too-many-exposedprocess-variable MINOR Check the total number of the exposed process in the process application to ensure it is not more than 25. For maintenance purpose, 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 service in the process application to ensure it is not more than 50. For maintenance purpose, 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 service in the process application to ensure it is not more than 50. For maintenance purpose, smart folders can be created to manage so many(more than 50) human services. Maintenance
check-app-with-too-many-report MINOR Check the total number of the report  in the process application to ensure it is not more than 15. For maintenance purpose, smart folders can be created to manage so many(more than 15) reports. Maintenance
check-app-with-too-many-servicelevelagreement MINOR Check the total number of the service level agreement  in the process application to ensure it is not more than 15. For maintenance purpose, smart folders can be created to manage so many(more than 15) service level agreement. Maintenance
check-app-with-too-many-undercoveragent MINOR Check the total number of the under coveragent  in the process application to ensure it is not more than 25. For maintenance purpose, smart folders can be created to manage so many(more than 25) under coveragent. Maintenance
check-app-with-too-many-webservice MINOR Check the total number of the webservice  in the process application to ensure it is not more than 25. For maintenance purpose, smart folders can be created to manage so many(more than 25) webservice. Maintenance
check-app-with-too-many-integrationservice MINOR Check the total number of the integration service in the process application to ensure it is not more than 25. For maintenance purpose, smart folders can be created to manage so many(more than 25) integration services. 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 purpose, smart folders can be created to manage so many(more than 50) service flows. Maintenance

Bussiness Object

Rule Level Description Advice Tags
check-shared-business-object MAJOR Check each of the business object 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 object to ensure the attribute number of  the business object in ‘the process app’ is more than 50. Business processes should store only the data that is needed for the process or a service in the process as the process runs Performance
check-businessobject-documentation MINOR Check the the documentation in the business object to ensure it is not empty. For maintenance purpose, 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 can be set to each artifact. Documentation
check-businessobject-properties-documentation MINOR Check each of the properties in the business object to  ensure the document of the property is not empty .
For maintenance purpose, 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 can be set to each artifact. Documentation

Case Solution

Rule Level Description Advice Tags Reference
check-case-without-casetype CRITICAL Check the process app and ensure that each case solution contains al least one case type. At least one case type must be defined in case solution. Implementation  
check-case-without-role CRITICAL Check the process app and ensure that each case solution contains al least one role. At least one role must be defined in case solution. Implementation  
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 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 re-factor the implementation to use smaller JavaScript blocks JavaScript IBM BPM Performance Tuning and Best Practices
check-page-javascirpt-coding-style MAJOR Check the JavaScript code in the pages and ensure that each JavaScript code  comply 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 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 re-factor the implementation to use smaller JavaScript blocks JavaScript IBM BPM Performance Tuning and Best Practices
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 page is used in the case solution. he unused properties should be deleted. Redundant  
check-casetype-documentation MINOR Check all of the casetypes’ documents and ensure that  each case type document is not empty. For maintenance purpose, 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 can be set to each artifact. Documentation  
check-page-documentation MINOR Check all of the pages’ documents and ensure that the each page’s document is not empty. For maintenance purpose, 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 can be set to each artifact. Documentation  
check-property-documentation MINOR Check all of the properties’ documents and ensure that the each property’s document is not empty. For maintenance purpose, 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 can be set to each artifact. Documentation  
check-role-documentation MINOR Check all of the roles’ documents and ensure that the each role’s document is not empty. For maintenance purpose, 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 can be set to each artifact. Documentation  

Case Type

Rule Level Description Advice Tags
check-casetype-without-activity MAJOR Check the case types in icm soulution, ensure that each  case type contains at least one activity At least one activity must be defined in case type. Implementation
check-unused-casepagelayout MAJOR Check the case pages in icm soulution, 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 propertyviews in icm soulution, ensure that eachpropertyview is used in the case solution. The unused property views should be deleted. Redundant
check-unused-rule MAJOR Check the rules in icm soulution, ensure that rule is used in the case solution. The unused rules should be deleted. Redundant
check-activity-documentation MINOR Check if the document of the activity in case solution is empty. For maintenance purpose, 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 can be set to each artifact. Documentation
check-casepagelayout-documentation MINOR Check if the document of the casepagelayout in case solution is empty. For maintenance purpose, 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 can be set to each artifact. Documentation
check-propertyview-documentation MINOR Check if the document of the propertyview in case solution is empty. For maintenance purpose, 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 can be set to each artifact. Documentation
check-rule-documentation MINOR Check if the document of the rule in case solution is empty. For maintenance purpose, 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 can be set to each artifact. Documentation

Coach View

Rule Level Description Advice Tags Reference
check-coachview-reach-endpoint MAJOR Check all of the coaches, ensure that each coash has wired to an end node. Coaches in human service 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 coas view dose 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  
check-coachcontrol-with-no-binding-value MINOR heck the controls in each service to ensure the control is binding with a value .
Every coach view should have a binding value. Implementation  

Migration

Rule Level Description Advice Tags Reference
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 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 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-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 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 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-ad-hoc-start-event MINOR Ad hoc start events are detected. Ad hoc start events are deprecated and are not supported in web Process Designer. These events are converted to a Start Message event with no UCA implementation when the BPD is converted to 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-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 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 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 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 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 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 by 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 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 end-points. 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-ECMservices MINOR ECM services is 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 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 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-bpd-searchable-field CRITICAL Check the total number of searchable field 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-component-need-exception-handle CRITICAL Check the components in an BPD to ensure the activity component  which name maches with the naming conversion of “^exception”   to be handled .
The exception thrown runtime should be well handled. InfiniteLoop  
check-bpd-gateway-condition CRITICAL Check if the component of its lane in the BPD is in complete gateway condition . Decision gates with conditions should be implemented properly Implementation  
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-auto-tracking-enable MAJOR Check if the process is auto tracking enabled or not. Auto-tracking is enabled by default for Proesses. This capability is important for many Proesses 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 Proesses that do not require tracking and reporting business metrics. Performance IBM BPM Performance Tuning and Best PracticesIBM BPM Developer Forum
check-bpd-activity-contain-tostring-datamapping MAJOR Check if the activity contains tostring datamapping. Activity contains a Data Mapping which makes use of the toString function on a potentially large variable could cause performance issues. Performance  
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-condition-javascript-coding-style MAJOR Check if the condition JavaScript code comply with the general JavaScript coding style JavaScript codes should comply with the general JavaScript coding style. JavaScript  
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-duplicated-EPVs MAJOR Check if there are duplicated Epvs in process.  BPD or process should not contain duplicated EPVs which is not meaningful. Redundant  
check-bpd-event-end-contains-script MAJOR Check if the end event contains script code. For maintenance purpose, 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 situation can happen when the end event of a process is of ‘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 instancesSetting 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 purpose, 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-humanservice-in-system-lane MAJOR Check the components of its lane in the BPD to ensure the Activities with human service is not implemented in a system lane . System lane should not contain any human task. Performance  
check-bpd-implementation-coding-style MAJOR Check if the implementation JavaScript code comply 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 . Message event should have a UCA attached to it. Implementation  
check-bpd-not-fully-implemented MAJOR Check if the bpd is fully implemented. 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 have an attach activity . If the activity is not necessary for a process or bpd you should delete it. Otherwise, add implementaion to the activity. Implementation  
check-bpd-step-incorrectly-referenced MAJOR Check the documentation of the participant to ensure it is not empty. Redundant component which 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 should be deleted. Unused variables should be deleted. Redundant  
check-lane-participant-not-default MAJOR Check if the attached participant of all a lane is all user. Assigning a swimlane to default all users could lead to performance problem 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 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 would 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, that may cause negative performance implications. Please consider changing your group members. Performance  
check-sequential-activities-in-system-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. AKA 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 ‘Optimize Execution for Latency’(Available since BPM8.5.5) checkbox in process overview, or by replacing it with BPEL process. Or consider implement it in BPM Advanced or as an external service. Performance  
check-bpd-error-not-fully-implemented MAJOR The Error is not implemented. Please add 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-activity-narrative MINOR Check the components of every lane in an BPD to ensure the narrative of the activity component is not empty . For user experience purpose, Business user should have a way to know the details of the task from portal. It is strongly recommended that narrative should be set to every activity. Documentation  
check-bpd-activity-subject MINOR Check the components of every lane in an BPD to ensure the subject of the activity component is not empty . For user experience purpose, business user should have a way to know the target of the task from portal. It is strongly recommended that subject should be set to every activity. Documentation  
check-bpd-documentation MINOR Check documentation in the BPD to ensure it is not empty. For maintenance purpose, 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 can be set to each artifact. Documentation  
check-participant-documentation MINOR Check the documentation of the participant to ensure it is not empty. For maintenance purpose, 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 can be set to each artifact. Documentation  

Service

Rule Level Description Advice Tags Reference
check-service-exception-loop-item CRITICAL Check the items of the service, ensure that there is no exception event loop item. The item in service should avoid event loop exception. InfiniteLoop  
check-service-javascript-length-pro CRITICAL Check the JavaScript code in the items of the service, 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 re-factor the implementation to use smaller JavaScript blocks. JavaScript IBM BPM Performance Tuning and Best Practices
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-app-unused-service MAJOR Check if there is unused service in process app. Services should be used by other artifacts or defined as an exposed human service. Redundant services should be deleted. Redundant  
check-humanservice-with-too-many-coach MAJOR Check the total numeber of the coach count in the service to ensure it is not more than 5. For maintenance purpose, human service should only include necessary coaches. Maintenance  
check-service-duplicated-EPVs MAJOR Check if there are duplicated EPVs in each service. 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. Service should not contain duplicated resource bundles which is not meaningful. Redundant  
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 purpose, 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-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-not-implemented MINOR Check  the service flows to ensure that there is no infinite loop. There is an infinite loop in the service flow. Please have a look at it! Implementation  
check-service-item-contain-tostring-datamapping MAJOR Check all the items in services, check if the item contains tostring datamapping. 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 MAJOR Check all the assignment JavaScript code in each servic, 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 MAJOR Check all the implementation JavaScript code in each servic, 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-save-context-checked MAJOR Check the items of the service, 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-javascript-length MAJOR Check the JavaScript code in the items of the service, 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 re-factor 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 and ensure all of the services are fully implemented. The service in the process app should be implemented properly. If it is not necessary, you should delete it. Implementation  
check-service-SOPE-directly-follow-postpone-object MAJOR Check the items of the service, ensure the Stay on Page Event (SOPE) object is 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, 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 the messy presentation of, therefore a more difficult to maintain service. Implementation  
check-service-unused-variables MAJOR Check the variables in service, ensure that there is no unused variables. The unused variables should be deleted. Redundant  
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-error-not-fully-implemented MAJOR The Error is not implemented. Please add 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-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 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 parameterized query instead. SAST OWASP Injection
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
check-service-documentation MINOR Check the services in process app, ensure that there is no service whose document is empty. For maintenance purpose, 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 can be set to each artifact.
Documentation  
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-coachcontrol-with-no-binding-value MINOR The coach control does not have a binding value. Coach control may need a binding value. Implementation  

Variable

Rule Level Description Advice Tags Reference
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 contatin the word Untitled”. The name of the variable should be set properly. It should comply with the defined naming convensions. Names that contain the string ‘Untitled’ are not allowd. NamingConversion  
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 contatin the word Untitled”. The name of the variable should be set properly. It should comply with the defined naming convensions. Names that contain the string ‘Untitled’ are not allowd. 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
check-bpd-variables-documentation MINOR Check the private variables of the BPD to ensure the documentation of a variable is not empty.

For maintenance purpose, 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 can be set to each artifact. Documentation  
check-service-variables-documentation MINOR Check the input variables of the service  to ensure the documentation of a variable is not empty.

For maintenance purpose, 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 can be set to each artifact. Documentation  

Web Service

Rule Level Description Advice Tags
check-webservice-documentation MINOR Check the webservice in process app to ensure the documentation of a webservice is not empty.

For maintenance purpose, 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 can be set to each artifact. Documentation
check-webservice-operation-documentation MINOR Check the webservice operation in webservice  to ensure the documentation of a webservice operation is not empty.

For maintenance purpose, 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 can be set to each artifact. Documentation

Categories:

Updated: