Verifying no inefficient business rules exist

  • Slow transaction response times.
  • General slow performance throughout the instance.
  • Semaphores appear to be locked or have long running times.
  • Local host logs display a slow business rule message.


  • Scripts are stuck in an infinite loop.
  • Queries returned a large result set. 
  • Script created an inefficient query by using LIKE instead of = in the Where clause or is running full table scans on large tables.
  • There are global business rules that do not apply to every transaction.
  • Nested queries exist in MySQL server. Many nested queries are capable of bringing your MySQL database to a halt under certain data conditions.



 To verify that business rules are efficient:

    1. Log in to your instance and navigate to System Diagnostics > Debug Business Rule to turn on business rule debugging.

      System Diagnostics navigation menu that includes the option to select Debug Business Rule.

    1. Load the form or run the transaction in question.

    1. Analyze the debugging output for long transaction times.

      Debug output screen displaying long transaction times.

    1. Tail the logs while loading the form or transaction in question. 

      Sample tail log of long transaction times.


To resolve a business rule issue:

      1. Navigate to System Definition > Business Rules and open the business rule record in question.

      1. Clear the Active check box to disable the business rule.

      1. Click the Update button to save the record.

      1. The next step in the resolution process depends on the part of the business rule that is causing the issue. The following table lists the common issues found when working with business rules and how to resolve them. 

          1. Global business rules may not need to be global

            • Set the business rule to run on a specific table and specify a condition(s). 

          1. JavaScript errors

              • Function calls are generating errors

                1. Verify the function exists.
                2. Verify the function is spelled correctly.
                3. Search for any parameter requirements.

            • Variables are generating errors

              1. Verify the variables are spelled correctly.
              2. Review the data type of the variable(s) in question.
              3. Review the value of the variable(s) in question.
              4. Verify the value has been initialized.

        1. System is generating a large result set 

          • Verify that the GlideRecord query filters out all unnecessary results. 


If the issue continues to exist after trying the steps in this article:


Additional Information

For more information on related topics, review the following:

Article Information

Last Updated:2017-10-31 08:27:31