Cannot get the workflow to trigger as expected


Description

Cannot get the "Tuition Reimbursement(scoped)" workflow to trigger as expected

Cause

The conditions defined on the workflow might not be met because of a Dictionary Override in place

Resolution

The workflow "Tuition Reimbursement(scoped)" has a condition: hr_service=<sys_id of the HR service>^state=10^EQ
The state value '10' is "Ready' which is set by a UI action "Ready for Work" on the hr case table.
In the OOTB the "sn_hr_core_case_total_rewards" record is created in the "Draft" state which is the default value set on the 'State" dictionary entry of the Task table.
https://<instancename>.service-now.com/nav_to.do?uri=sys_dictionary.do?sys_id=159020730f032100871de388b1050e2b
But if there is a dictionary override set for the Default value and when a record is created on the "sn_hr_core_case_total_rewards" table, it sets the State value to 18 which is "Work In Progress".
The UI action "Ready for Work" is only available when the state on the "sn_hr_core_case_total_rewards" record is "Draft" (1).
When the UI action is performed, the state value is set to "10" (Ready) and then the workflow is triggered.
Also, there is a Business rule OOTB which sets the "Assigned To" value if it is empty before the workflow triggers.
Business rule: Auto Assign
https://<instancename>.service-now.com/nav_to.do?uri=sys_script.do?sys_id=4c564cd79f221200d9011977677fcf4a

In order to make things work as expected(OOTB):

Either update the workflow condition to use state=18 instead of state=10.

  1. Navigate to the workflow in the editor
  2. Checkout
  3. Open the conditions and update the state to '18'.

OR

Remove the dictionary override set on the State dictionary which sets the state to '18'.

  1. Navigate to the Dictionary Override record on the state dictionary entry.
  2. Uncheck the 'Override default value' checkbox and remove the value from the 'Default Value' field.
  3. Click Update.