Requested for on RITM is not updated

Blessy2
Tera Contributor

Hi,

 

I have a requirement to update the 'Requested for' (on both REQ and RITM) filed based on what is entered in the 'contact' field in the catalog item during the request submission.

 

For example: ABC is a catalog item and there is a field called 'contact' in the item which is a reference to the 'user' table. During the request submission if I choose 'Abel' in contact field and submit the request, the 'requested for' of the REQ and RITM should be updated to 'Abel' not the logged in user.

 

For this I have written the script in the workflow.

Below is the script:

 

var reqRecord = current.request.getRefRecord();

reqRecord.requested_for = current.variables.request_for;

reqRecord.update();

 

This was working earlier but not sure why it isn't working now. No matter what I select in the 'contact' field the 'requested for' of the REQ and RITM is set to the logged in user.

 

Could this be because of the 'San Diego' version or the patch upgrades? 

Is there any way I can achieve this may be using a business rule?

 

Requesting the suggestions, Thank you in advance.

18 REPLIES 18

If it worked after insert and did not work in workflow that means there is some after insert BR running on either request or RITM table which is setting the value of requested for. The reason could be the workflow executing before BR and BR overwriting the value of requested for to current loggedin user.


Please mark the answer correct/helpful accordingly.


Raghav
MVP 2023

@Blessy2 Refer below servicenow doc, it shows that BR runs after workflows

https://docs.servicenow.com/en-US/bundle/tokyo-servicenow-platform/page/administer/service-administr... 


Raghav
MVP 2023

Tuan Vu
Kilo Guru

Hi @Blessy2 , You should try the script below to ensure reqRecord is a valid record. 

var reqRecord = current.request.getRefRecord();

if (reqRecord.isValidRecord()) {

  reqRecord.requested_for = current.variables.request_for;

  reqRecord.update();
}

else {
  gs.info('reqRecord is not valid')
}

Blessy2
Tera Contributor

Hi @Tuan Vu, Thanks for the response. It's not working this way too. I tried to do a log for "reqRecord.requested_for" and have seen that the sys_id of the contact is captured. The issue is "the update" is not happening.

Trying the same with Business rule (after -insert, update), still no output. On insert of the record, requested for is not updated. But on update it's working.