
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-16-2020 02:20 PM
All:
I have created the following UI Action to execute a flow but it is not working.
(function() {
try {
var rec_id = g_form.getUniqueValue();
var gr = new GlideRecord('x_cpts_onboarding_cpts_referral_data');
var inputs = {};
inputs['current'] = gr.get(rec_id); // GlideRecord of table:
inputs['table_name'] = 'x_cpts_onboarding_cpts_referral_data';
// Start Asynchronously: Uncomment to run in background.
// sn_fd.FlowAPI.startFlow('x_cpts_onboarding.invite_to_apply', inputs);
// Execute Synchronously: Run in foreground.
sn_fd.FlowAPI.executeFlow('x_cpts_onboarding.invite_to_apply', inputs);
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
The trigger condition I have set in the flow is for a record update and not create.
Per an earlier community post
https://community.servicenow.com/community?id=community_question&sys_id=d25c8167db00149c23f4a345ca9619d5
I have also set the When to Run the Flow value to "Run for non-Interactive Session", but the flow is still not triggering.
Appreciate any assistance from this group.
Mahesh
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-16-2020 04:34 PM
Hi,
Try this. This is server side code snippet so please make sure you run this on the server side of UI action.
(function() {
try {
var rec_id = current.sys_id;
var gr = new GlideRecord('x_cpts_onboarding_cpts_referral_data');
if (gr.get(rec_id)) {
var inputs = {};
inputs['current'] = current; // GlideRecord of table:
inputs['table_name'] = 'x_cpts_onboarding_cpts_referral_data';
// Start Asynchronously: Uncomment to run in background.
// sn_fd.FlowAPI.startFlow('x_cpts_onboarding.invite_to_apply', inputs);
// Execute Synchronously: Run in foreground.
sn_fd.FlowAPI.executeFlow('x_cpts_onboarding.invite_to_apply', inputs);
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
}
})();
Thanks & Regards,
Sharjeel
Muhammad

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-16-2020 04:34 PM
Hi,
Try this. This is server side code snippet so please make sure you run this on the server side of UI action.
(function() {
try {
var rec_id = current.sys_id;
var gr = new GlideRecord('x_cpts_onboarding_cpts_referral_data');
if (gr.get(rec_id)) {
var inputs = {};
inputs['current'] = current; // GlideRecord of table:
inputs['table_name'] = 'x_cpts_onboarding_cpts_referral_data';
// Start Asynchronously: Uncomment to run in background.
// sn_fd.FlowAPI.startFlow('x_cpts_onboarding.invite_to_apply', inputs);
// Execute Synchronously: Run in foreground.
sn_fd.FlowAPI.executeFlow('x_cpts_onboarding.invite_to_apply', inputs);
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
}
})();
Thanks & Regards,
Sharjeel
Muhammad

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-16-2020 04:57 PM
Thank you very much Sharjeel! I guess I was using some client-side functions in a server-side script.
I am just getting familiar with scripting and was not aware of this.
Again, thank you very much!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-16-2020 05:11 PM
Happy to Help 🙂
FYI, there were two things that I fixed. First you guessed it right, you had used g_form which is client side API and cannot be used on server side. Second was the value you were setting for inputs['current'], it requires a GlideRecord object instead you were setting the sys_id of the record. In UI action server side code we have current as a GlideRecord Object for the table UI action created for.
I hope this helps!
Thanks & Regards,
Sharjeel
Muhammad

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-16-2020 09:11 PM
Interesting point on the second error. On snguru.com there was a list of gliderecord functions he does through and the gr.get(sys_id) used after the GlideRecord statement I though fetched the entire record from the table.
Clearly, that is not what was happening or I just used it incorrectly.
Thanks a bunch again!