The Zurich release has arrived! Interested in new features and functionalities? Click here for more

Send the 5 approval records at the same time

Venky Kshatriy2
Tera Contributor

Hi Team,

 

I have created on catalog item, that item contains the MRVS, inside the MRVS we have the approver's values.  i am sending the approvals by using the Flow designer, for MRVS to get one by one approval i used FOR EACH Logic ,the approval records created but I WANT TO CRATE THE ALL APPROVAL RECORDS AT A TIME.

 

Ex: MRVS contains the 5 records now we have 5 approvers i need to create 5 approvals records same time.

 

If any one knows could pls help on this 

Advance thanks Team

VenkyKshatriy2_0-1739186861410.png

 

1 ACCEPTED SOLUTION

Community Alums
Not applicable

Hi @Venky Kshatriy2 

 for (var i = 0; i < vk.length; i++) {
      var approver = vk[i].engagement_partner;
      gs.log('first approver'+approver);
      approvers.push({
          sysapproval: requestId,
          approver: approver,
          state: 'requested
 });
      gs.log('second approver'+approvers);
}
Remove following code:
var approvalGr = new GlideRecord('sysapproval_approver');
      approvalGr.initialize();
   

    for (var j = 0; j < approvers.length; j++) {
      gs.log('view thw rule')
      var vj = approvers[j];
      gs.log('mainvalues'+vj);
      var approval = approvalGr.createRecord();
      approval.sysapproval = vc;
      approval.approver = vj;
      approval.state = 'requested';
      approval.insert();
}
instead, add following:
if (approvers.length > 0) {
    var approvalGr = new GlideRecord('sysapproval_approver');
    approvers.forEach(function(approvalData) {
    approvalGr.initialize();
    approvalGr.sysapproval = approvalData.sysapproval;
    approvalGr.approver = approvalData.approver;
    approvalGr.state = approvalData.state;
    approvalGr.insert();
}
else gs.info('No approvers found, skipping approval record creation.');
});

View solution in original post

22 REPLIES 22

Thanks @Community Alums  In scripted Custom action should I use the current.variables method.In flow i used, but scripted custom action we need inputs right.

Community Alums
Not applicable

Yupe, you try with following inputs:

 

  • mrvs_field (List): A list of records from the MRVS.
  • request_sys_id (String): The Sys ID of the catalog request (or record).

and in script use:

var mrvsField = inputs.mrvs_field;

var requestSysId = inputs.request_sys_id;

 

 

Thnaks @Community Alums  I created scripted custom action but one by one approval record created

 

Community Alums
Not applicable

Hi @Venky Kshatriy2 , please share the snap of your script.

(function execute(inputs, outputs) {


var vk = inputs.approvers;
var vc = inputs.req;
gs.log("inside the values"+vk+vc);

var approvers = [];
gs.log('all approvers'+approvers);

    for (var i = 0; i < vk.length; i++) {
      var approver = vk[i].engagement_partner;
      gs.log('first approver'+approver);
      approvers.push(approver);
      gs.log('second approver'+approvers);
}
var approvalGr = new GlideRecord('sysapproval_approver');
      approvalGr.initialize();
   

    for (var j = 0; j < approvers.length; j++) {
      gs.log('view thw rule')
      var vj = approvers[j];
      gs.log('mainvalues'+vj);
      var approval = approvalGr.createRecord();
      approval.sysapproval = vc;
      approval.approver = vj;
      approval.state = 'requested';
      approval.insert();
}
})(inputs, outputs);