- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-20-2023 03:34 AM
Hi,
So basically from a parent flow designer, I am raising a child RITM by setting the values of the child requested form. The need here is to populate one particular variable based on the below mapping.
Script in flow for child RITM:
(function execute(inputs, outputs) {
// ... code ...
var userid = inputs.requested_for.getUniqueValue();
outputs['user_email'] = userid;
var grMail = new GlideRecord('sys_user');
grMail.addQuery('sys_id',userid);
grMail.query();
if(grMail.next()){
var email = grMail.getValue('email');
outputs['user_email'] += email;
}
var catItem = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.varaible')['catalog'];
var environment = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables1')['vdi'];
var reqHelp = new GlideappCalculationHelper();
var reqID = inputs.request.getUniqueValue();
outputs['reqid'] = reqID;
reqHelp.addItemToExistingRequest(reqID, catItem, 1);
//reqHelp.rebalanceRequest(reqID);
var grReqItem = new GlideRecord('sc_req_item');
grReqItem.addQuery('request', reqID);
grReqItem.addQuery('cat_item', catItem);
grReqItem.addQuery('parent', reqID);
grReqItem.query();
outputs['grreqitem'] = grReqItem;
if (grReqItem.next()) {
grReqItem.setValue('stage', 'Request for Approval');
grReqItem.setValue('approval', 'not requested');
grReqItem.setValue('u_requested_for', inputs.requested_for);
// grReqItem.varaibles.requested_for = current.varaibles.requested_for;
grReqItem.variables.approver = inputs.approver;
grReqItem.variables.vdi_desktop_environment = environment; // this should appear based on user selected in requested for.
grReqItem.variables.do_you_need_to_receive_user_documentation = 'Yes';
grReqItem.update();
}
})(inputs, outputs);
**********************************************
Mapping for VDI Environment
Employment Type | Service Function | VDI Environment |
Contractor | Audit | Contingent Worker DaaS Audit |
Contractor | Advisory | Contingent Worker DaaS Advisory |
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-20-2023 05:45 AM
@shivani39 Here is the updated script.
(function execute(inputs, outputs) {
// ... code ...
var userid = inputs.requested_for.getUniqueValue();
outputs['user_email'] = userid;
var grMail = new GlideRecord('sys_user');
grMail.addQuery('sys_id',userid);
grMail.query();
if(grMail.next()){
var email = grMail.getValue('email');
outputs['user_email'] += email;
}
var catItem = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.varaible')['catalog'];
// var environment = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables1')['vdi'];
var environment2 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables2')['vdi2'];
var environment3 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables3')['vdi3'];
var environment4 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables4')['vdi4'];
var environment5 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables5')['vdi5'];
var environment6 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables6')['vdi6'];
var environment7 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables7')['vdi7'];
var reqHelp = new GlideappCalculationHelper();
var reqID = inputs.request.getUniqueValue();
outputs['reqid'] = reqID;
reqHelp.addItemToExistingRequest(reqID, catItem, 1);
//reqHelp.rebalanceRequest(reqID);
var grReqItem = new GlideRecord('sc_req_item');
grReqItem.addQuery('request', reqID);
grReqItem.addQuery('cat_item', catItem);
grReqItem.addQuery('parent', reqID);
grReqItem.query();
outputs['grreqitem'] = grReqItem;
if (grReqItem.next()) {
grReqItem.setValue('stage', 'Request for Approval');
grReqItem.setValue('approval', 'not requested');
grReqItem.setValue('u_requested_for', inputs.requested_for);
// grReqItem.varaibles.requested_for = current.varaibles.requested_for;
grReqItem.variables.approver = inputs.approver;
if(inputs.requested_for.u_employment_type =='Contractor' && inputs.requested_for.u_service_function == 'Audit' )
{
grReqItem.variables.vdi_desktop_environment = environment2;
}
else if(inputs.requested_for.u_employment_type =='Contractor' && inputs.requested_for.u_service_function == 'Advisory' )
{
grReqItem.variables.vdi_desktop_environment = environment3;
}
else if(inputs.requested_for.u_employment_type =='Contractor' && inputs.requested_for.u_service_function == 'Tax' )
{
grReqItem.variables.vdi_desktop_environment = environment4;
}
else if(inputs.requested_for.u_employment_type =='Contractor' && inputs.requested_for.u_service_function == 'NBPG' )
{
grReqItem.variables.vdi_desktop_environment = environment5;
}
else if(inputs.requested_for.u_employment_type =='US Employee' && inputs.requested_for.u_service_function == 'Audit' )
{
grReqItem.variables.vdi_desktop_environment = environment5;
}
else if(inputs.requested_for.u_employment_type =='US Employee' && inputs.requested_for.u_service_function == 'Advisory' ){
grReqItem.variables.vdi_desktop_environment = environment6;
}
else if(inputs.requested_for.u_employment_type =='US Employee' && inputs.requested_for.u_service_function == 'Tax' ){
grReqItem.variables.vdi_desktop_environment = environment6; //Set the right environment here for US Employee and Tax
}
else if(inputs.requested_for.u_employment_type =='US Employee' && inputs.requested_for.u_service_function == 'NBPG' ){
grReqItem.variables.vdi_desktop_environment = environment6; //Set the right environment here for US Employee and NBPG
}
// grReqItem.variables.vdi_desktop_environment = environment;
grReqItem.variables.do_you_need_to_receive_user_documentation = 'Yes';
grReqItem.variables.e_mail_address_to_receive_documentation = email;
grReqItem.variables.high_risk_vdi = 'Yes';
grReqItem.update();
}
})(inputs, outputs);
In this script I have replaced else with else If statements and added missing conditions for US Employee and Tax/NBPG service function.
There are better ways to refactor this code but I will suggest them later once this one addresses your current implementation.
Please mark my answers correct and helpful if it addresses your question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-20-2023 05:17 AM
Please check my another response I have given above

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-20-2023 05:45 AM
@shivani39 Here is the updated script.
(function execute(inputs, outputs) {
// ... code ...
var userid = inputs.requested_for.getUniqueValue();
outputs['user_email'] = userid;
var grMail = new GlideRecord('sys_user');
grMail.addQuery('sys_id',userid);
grMail.query();
if(grMail.next()){
var email = grMail.getValue('email');
outputs['user_email'] += email;
}
var catItem = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.varaible')['catalog'];
// var environment = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables1')['vdi'];
var environment2 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables2')['vdi2'];
var environment3 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables3')['vdi3'];
var environment4 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables4')['vdi4'];
var environment5 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables5')['vdi5'];
var environment6 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables6')['vdi6'];
var environment7 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables7')['vdi7'];
var reqHelp = new GlideappCalculationHelper();
var reqID = inputs.request.getUniqueValue();
outputs['reqid'] = reqID;
reqHelp.addItemToExistingRequest(reqID, catItem, 1);
//reqHelp.rebalanceRequest(reqID);
var grReqItem = new GlideRecord('sc_req_item');
grReqItem.addQuery('request', reqID);
grReqItem.addQuery('cat_item', catItem);
grReqItem.addQuery('parent', reqID);
grReqItem.query();
outputs['grreqitem'] = grReqItem;
if (grReqItem.next()) {
grReqItem.setValue('stage', 'Request for Approval');
grReqItem.setValue('approval', 'not requested');
grReqItem.setValue('u_requested_for', inputs.requested_for);
// grReqItem.varaibles.requested_for = current.varaibles.requested_for;
grReqItem.variables.approver = inputs.approver;
if(inputs.requested_for.u_employment_type =='Contractor' && inputs.requested_for.u_service_function == 'Audit' )
{
grReqItem.variables.vdi_desktop_environment = environment2;
}
else if(inputs.requested_for.u_employment_type =='Contractor' && inputs.requested_for.u_service_function == 'Advisory' )
{
grReqItem.variables.vdi_desktop_environment = environment3;
}
else if(inputs.requested_for.u_employment_type =='Contractor' && inputs.requested_for.u_service_function == 'Tax' )
{
grReqItem.variables.vdi_desktop_environment = environment4;
}
else if(inputs.requested_for.u_employment_type =='Contractor' && inputs.requested_for.u_service_function == 'NBPG' )
{
grReqItem.variables.vdi_desktop_environment = environment5;
}
else if(inputs.requested_for.u_employment_type =='US Employee' && inputs.requested_for.u_service_function == 'Audit' )
{
grReqItem.variables.vdi_desktop_environment = environment5;
}
else if(inputs.requested_for.u_employment_type =='US Employee' && inputs.requested_for.u_service_function == 'Advisory' ){
grReqItem.variables.vdi_desktop_environment = environment6;
}
else if(inputs.requested_for.u_employment_type =='US Employee' && inputs.requested_for.u_service_function == 'Tax' ){
grReqItem.variables.vdi_desktop_environment = environment6; //Set the right environment here for US Employee and Tax
}
else if(inputs.requested_for.u_employment_type =='US Employee' && inputs.requested_for.u_service_function == 'NBPG' ){
grReqItem.variables.vdi_desktop_environment = environment6; //Set the right environment here for US Employee and NBPG
}
// grReqItem.variables.vdi_desktop_environment = environment;
grReqItem.variables.do_you_need_to_receive_user_documentation = 'Yes';
grReqItem.variables.e_mail_address_to_receive_documentation = email;
grReqItem.variables.high_risk_vdi = 'Yes';
grReqItem.update();
}
})(inputs, outputs);
In this script I have replaced else with else If statements and added missing conditions for US Employee and Tax/NBPG service function.
There are better ways to refactor this code but I will suggest them later once this one addresses your current implementation.
Please mark my answers correct and helpful if it addresses your question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-20-2023 06:14 AM
Hi Sandeep,
Yes I have tried with else if statement, unfortunately now child RITM is not triggering only.
With my very initial script, child ritm is getting created but with new mapping its not.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-20-2023 06:24 AM
@shivani39 it looks like script is crashing somewhere, I recommend adding gs.info(); logs at different lines and see till which line the script is executing. This will help you pinpoint the exact location where the aforementioned script is breaking.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-20-2023 05:20 AM
Since we cannot hardcode the value,I have remodified the script with your script. Could you please check and confirm if this works.
(function execute(inputs, outputs) {
// ... code ...
var userid = inputs.requested_for.getUniqueValue();
outputs['user_email'] = userid;
var grMail = new GlideRecord('sys_user');
grMail.addQuery('sys_id',userid);
grMail.query();
if(grMail.next()){
var email = grMail.getValue('email');
outputs['user_email'] += email;
}
var catItem = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.varaible')['catalog'];
// var environment = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables1')['vdi'];
var environment2 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables2')['vdi2'];
var environment3 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables3')['vdi3'];
var environment4 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables4')['vdi4'];
var environment5 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables5')['vdi5'];
var environment6 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables6')['vdi6'];
var environment7 = new global.KPMGCustomProperties().getVariable1Value1('hrlp.workflow.variables7')['vdi7'];
var reqHelp = new GlideappCalculationHelper();
var reqID = inputs.request.getUniqueValue();
outputs['reqid'] = reqID;
reqHelp.addItemToExistingRequest(reqID, catItem, 1);
//reqHelp.rebalanceRequest(reqID);
var grReqItem = new GlideRecord('sc_req_item');
grReqItem.addQuery('request', reqID);
grReqItem.addQuery('cat_item', catItem);
grReqItem.addQuery('parent', reqID);
grReqItem.query();
outputs['grreqitem'] = grReqItem;
if (grReqItem.next()) {
grReqItem.setValue('stage', 'Request for Approval');
grReqItem.setValue('approval', 'not requested');
grReqItem.setValue('u_requested_for', inputs.requested_for);
// grReqItem.varaibles.requested_for = current.varaibles.requested_for;
grReqItem.variables.approver = inputs.approver;
if(inputs.requested_for.u_employment_type =='Contractor' && inputs.requested_for.u_service_function == 'Audit' )
{
grReqItem.variables.vdi_desktop_environment = environment2;
}
else{
if(inputs.requested_for.u_employment_type =='Contractor' && inputs.requested_for.u_service_function == 'Advisory' )
{
grReqItem.variables.vdi_desktop_environment = environment3;
}
}
else{
if(inputs.requested_for.u_employment_type =='Contractor' && inputs.requested_for.u_service_function == 'Tax' )
{
grReqItem.variables.vdi_desktop_environment = environment4;
}
}
else{
if(inputs.requested_for.u_employment_type =='Contractor' && inputs.requested_for.u_service_function == 'NBPG' )
{
grReqItem.variables.vdi_desktop_environment = environment5;
}
}
else{
if(inputs.requested_for.u_employment_type =='US Employee' && inputs.requested_for.u_service_function == 'Audit' )
{
grReqItem.variables.vdi_desktop_environment = environment5;
}
}
else{
if(inputs.requested_for.u_employment_type =='US Employee' && inputs.requested_for.u_service_function == 'Advisory' )
{
grReqItem.variables.vdi_desktop_environment = environment6;
}
}
// grReqItem.variables.vdi_desktop_environment = environment;
grReqItem.variables.do_you_need_to_receive_user_documentation = 'Yes';
grReqItem.variables.e_mail_address_to_receive_documentation = email;
grReqItem.variables.high_risk_vdi = 'Yes';
grReqItem.update();
}
})(inputs, outputs);
******************************
Is this correct?