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

SooraC
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
Kilo Patron
Kilo 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
Kilo Patron

Hi @SooraC ,

 

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

 


Please mark this response as correct and helpful if it helps you can mark more that one reply as accepted solution

SooraC
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!

@SooraC , 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.


Please mark this response as correct and helpful if it helps you can mark more that one reply as accepted solution

SooraC
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();'