How do you write script to add Approvers under a catalog task?

schoi
Tera Contributor

Hi team, 

 

On submit, I want to modify the script to add 'Approvers' when automatically creating a Catalog Task. I currently have this code:

  var app = new GlideRecord('sysapproval_approver');
  app.initialize();
  app.approver = '[sys_id]';
  app.insert();
 
 
but it doesn't add any approvers. 

 

Screenshot 2024-11-21 153237.png
Would any of you know how to modify the script to add "Approvers"?
1 ACCEPTED SOLUTION

Brad Bowman
Mega Patron

You can create approvals via script, but in this case you also want to link the approval to the sc_task record so that it shows on the Related List.  Your current script may be creating orphaned approval records, or there could be a Business Rule or Data Policy in place to prevent the insert if not all of the required fields are populated. Here the fields that I have populated when creating approval records via script.  I've only ever created approvals at the RITM level - when approval is required before the flow/workflow continues to scripts/Catalog task, etc. but the script should work the same at the Catalog Task level...

var app = new GlideRecord('sysapproval_approver');
app.newRecord(); //newer method than initialize(), but either still works
app.approver = '[sys_id of user]';
app.sysapproval = '[sys_id of sc_task record]';
app.source_table = 'sc_task';
app.document_id = '[sys_id of sc_task record]';
app.state = 'requested';
app.insert();

 

View solution in original post

10 REPLIES 10

AshishKM
Kilo Patron

Hi @schoi ,

 

The approvals applied on RITM and configured in workflow/or/flow.

If you are trying to add more approval, add them at RITM level.

 

-Thanks,

AshishKm

 

schoi
Tera Contributor

Thank you so much for your response, @AshishKM !

Does this mean that it is not recommended to add "Approvers" to a Catalog Task that is not associated with an RITM? If that's the case, could you clarify why the option to add "Approvers" exists for these tasks? 

Currently, we have a flow where Catalog Tasks are created without being linked to an RITM. I am working on writing a script to add "Approvers", but I've been running into some challenges.

I appreciate your insight!

@schoi , are you not using catalog item from sc_cat_item table, how come SCTASK are generated without REQ=>RITM.

 

seems like , flow is creating direct record in sc_task ... so this will consider as record producer on catalog task table directly. if that is the case , you can add approval in flow.

schoi
Tera Contributor

Hi @AshishKM, got it! Since sc_task could have approvers, how could I add approvers by modifying a script? As mentioned above, this script is not working:

'  var app = new GlideRecord('sysapproval_approver');

  app.initialize();
  app.approver = '[sys_id]';
  app.insert();'