- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-01-2023 01:21 AM
Hello Guys,
based on the Divison selected , i.e. a (reference field) from the department table, I want to trigger approvals based on the below selections. I'm not able to achieve it and require your help in creating a workflow that checks the current value of the division ( which is fetching from department table) and trigger approvals accordingly.
the conditions are as follows:
Division | LEVEL 1 APPROVER | LEVEL 2 APPROVER |
Australia Commercial | Line Manager( of the requester) | Approval Group Name: Australia Commercial BCD |
Australia Retail | Line Manager( of the requester) | Approval Group Name: Australia Retail BCD |
Corporate Centre and Services | Line Manager( of the requester) | Approval Group Name: Corporate Centre and Services BCD |
Group Services | Line Manager( of the requester) | Approval Group Name: Group Services BCD |
Group Technology | Line Manager( of the requester) | Approval Group Name: Group Tech BCD |
Institutional | Line Manager( of the requester) | Approval Group Name: Institutional BCD |
New Zealand | Line Manager( of the requester) | Approval Group Name: New Zealand BCD |
Pacific | Line Manager( of the requester) | Approval Group Name: Pacific BCD |
Technology COO Domains | Line Manager( of the requester) | Approval Group Name: Technology COO Domains BCD |
I'm using the below script for this but it's not working for me. can someone please help.
var division = current.division.getDisplayValue(); // Division value fetched from the Department table
var answer = [];
var approvalGroup = '';
// Set the appropriate approval group based on the division
switch (division) {
case 'Australia Commercial':
approvalGroup = 'Australia Commercial BCD';
break;
case 'Australia Retail':
approvalGroup = 'Australia Retail BCD';
break;
case 'Corporate Centre and Services':
approvalGroup = 'Corporate Centre and Services BCD';
break;
case 'Group Services':
approvalGroup = 'Group Services BCD';
break;
case 'Group Technology':
approvalGroup = 'Group Tech BCD';
break;
case 'Institutional':
approvalGroup = 'Institutional BCD';
break;
case 'New Zealand':
approvalGroup = 'New Zealand BCD';
break;
case 'Pacific':
approvalGroup = 'Pacific BCD';
break;
case 'Technology COO Domains':
approvalGroup = 'Technology COO Domains BCD';
break;
default:
// No matching division, handle the case if needed
break;
}
var groupSysID = '';
var groupGR = new GlideRecord('sys_user_group');
groupGR.addQuery('name', approvalGroup);
groupGR.query();
if (groupGR.next()) {
groupSysID = groupGR.getValue('sys_id');
}
answer.push(groupSysID);
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-01-2023 03:37 AM - edited ‎08-01-2023 03:52 AM
Hi @Anubhav Srivas1 ,
Try using ,
var division = current.variables.division.getDisplayValue(); // Division value fetched from the Department table
var answer = [];
var approvalGroup = '';
// Set the appropriate approval group based on the division
switch (division) {
case 'Australia Commercial':
approvalGroup = 'Australia Commercial BCD';
break;
case 'Australia Retail':
approvalGroup = 'Australia Retail BCD';
break;
case 'Corporate Centre and Services':
approvalGroup = 'Corporate Centre and Services BCD';
break;
case 'Group Services':
approvalGroup = 'Group Services BCD';
break;
case 'Group Technology':
approvalGroup = 'Group Tech BCD';
break;
case 'Institutional':
approvalGroup = 'Institutional BCD';
break;
case 'New Zealand':
approvalGroup = 'New Zealand BCD';
break;
case 'Pacific':
approvalGroup = 'Pacific BCD';
break;
case 'Technology COO Domains':
approvalGroup = 'Technology COO Domains BCD';
break;
default:
// No matching division, handle the case if needed
break;
}
var groupSysID = '';
if(approvalGroup!=''){
var groupGR = new GlideRecord('sys_user_group');
groupGR.addQuery('name', approvalGroup);
groupGR.query();
if (groupGR.next()) {
groupSysID = groupGR.getValue('sys_id');
}
}
answer.push(groupSysID);
Assuming your field name is 'division'!
Thanks and Regards,
Rahul
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-01-2023 03:37 AM - edited ‎08-01-2023 03:52 AM
Hi @Anubhav Srivas1 ,
Try using ,
var division = current.variables.division.getDisplayValue(); // Division value fetched from the Department table
var answer = [];
var approvalGroup = '';
// Set the appropriate approval group based on the division
switch (division) {
case 'Australia Commercial':
approvalGroup = 'Australia Commercial BCD';
break;
case 'Australia Retail':
approvalGroup = 'Australia Retail BCD';
break;
case 'Corporate Centre and Services':
approvalGroup = 'Corporate Centre and Services BCD';
break;
case 'Group Services':
approvalGroup = 'Group Services BCD';
break;
case 'Group Technology':
approvalGroup = 'Group Tech BCD';
break;
case 'Institutional':
approvalGroup = 'Institutional BCD';
break;
case 'New Zealand':
approvalGroup = 'New Zealand BCD';
break;
case 'Pacific':
approvalGroup = 'Pacific BCD';
break;
case 'Technology COO Domains':
approvalGroup = 'Technology COO Domains BCD';
break;
default:
// No matching division, handle the case if needed
break;
}
var groupSysID = '';
if(approvalGroup!=''){
var groupGR = new GlideRecord('sys_user_group');
groupGR.addQuery('name', approvalGroup);
groupGR.query();
if (groupGR.next()) {
groupSysID = groupGR.getValue('sys_id');
}
}
answer.push(groupSysID);
Assuming your field name is 'division'!
Thanks and Regards,
Rahul

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-01-2023 06:29 AM
If I would be you, I would create custom table to hold all data to trigger approvals. Make sure that custom table extends from "Data Lookup Matcher Rules" table to be able to use data lookup definition. Then by using data lookup definitions, you could achieve your goal to trigger approvals. Then you need to adjust workflow / flow designer to send the approval accordingly.