Condition Checker filter issue causes potential data impact in the Contract table [ast_contract]


Description

When Scheduled Jobs "Contract Compliance Checks" and "Contract: Run Condition Checks" run, they are using Condition Checker to determine changes in Contracts. A regression introduced in Paris Patch 4 (or above), Orlando Patch 9 (or above), and Quebec EA where the evaluation of the filter condition may cause potential data impact to the following [ast_contract] Contract fields:

 

Steps to Reproduce

  1. Activate the Contract Management plugin [com.snc.contract_management].
  2. Create one [ast_contract] record.
  3. Proceed with the process to set the Substate to 'Renewal Approved'.
  4. Run the scheduled Job "Contract Compliance Checks".
  5. Check the record created in steps 2-3. Observe unexpected results on the Start and End date fields for example.
 

Workaround

This problem has been fixed. If you are able to upgrade, review the Fixed In section to determine the latest version with a permanent fix your instance can be upgraded to.

If a workaround is needed, the following steps will replace the script include in your instance with the correct script include and mark it as customized so that future upgrades will not overwrite it. Please note that if you have customized the script include already with your business requirements, you will need to re-apply those customizations to the corrected script include and avoid the code related to the PRB. See question #2 in the FAQ section.

1) Log into the instance as the Admin user.

2) Download and import the attached XML file.

 


 

FREQUENTLY ASKED QUESTIONS (FAQs)

 

1. What is the scope of the issue and how am I affected?

Paris Patch 4 and Orlando Patch 9 introduced a regression to the script include "ConditionChecks", which may have caused unexpected results to (ast_contract) Contract Start/End dates fields.

 

2. How do I determine if my instance is affected or, could be affected after an upgrade?

If your instance is on an affected release:

a) Check the script include: ConditionChecks

b) Look for line 73 in the script: var filter = new GlideFilter(check.filter, 'field-condition');

c) If this line exists, then your instance might be impacted so please apply the workaround.

 

If your instance is not on an affected release and you are planning to upgrade please follow the steps below:

a) Check sys_update_xml table (Customer updates)

b) Look for target name = ConditionChecks

c) If no record is found, please apply the workaround.

 

3. After the workaround has been applied, do I still have to upgrade to the Hotfix/Patched Version?

No, you do not need to upgrade to the Hotfix/Patched Version.

 

4. Will an upgrade revert this workaround?

No, there will not be any impact or changes made to the script include during an upgrade. Note that the script include will be marked as customized so please do not check 'replace_on_upgrade'.

 

5. Where can I find more information on Contract Management?

Refer to https://docs.servicenow.com/bundle/paris-it-asset-management/page/product/contract-management/concept/c_ContractManagement.html

 

 

Related Problem: PRB1472411