Contact (Caller_ID) on the incident form disappears for ITIL user when the Caller is set to inactive.
Steps to Reproduce
1. In OOB Madrid instance, create the following UI Policy.
Short description: "Testsnc"
2. To the above UI Policy, create a UI Policy action as follows:
Field name: "caller_id.active"
Mandatory, Visibile, Read only --> you can either set them to anything, or leave it as "Leave alone" (doesn't matter)
3. Make "Abel Tuter" caller for some open incidents:
4. Make sure "Abel Tuter" doesn't have any roles, and de-activate him.
Locked out: true
5. Impersonate "ITIL user", and access the incident's list to which "Abel Tuter" is the caller.
6. From incident list view, "caller_id" displays value for "Abel Tuter"
7. Open any record, and see that "Caller (caller_id)" field is empty and mandatory.
"Caller (caller_id)" field should display its value.
"Caller (caller_id)" field is empty and mandatory.
Workaround: Any 'one' of the following should work, based on customer's requirement:
1. Adding "&& (!gs.hasRole("itil"))" to the condition of 'User query' business rule will be a workaround, so it doesn't execute for ITIL users.
2. Finding and de-activating the UI Policy/Client script acting on the dot walked fields from the reference field that's affected. In this case UI policy that we created that acts on "caller_id.active" field.
Related Problem: PRB1341948