Triggering a rest message via a catalog task in flow designer

Arka Banerjee1
Tera Contributor

Hi All,

 

I am having a requirement where I need to trigger a rest message via a catalog task that's created on a catalog item. The catalog item is using flow designer as process flow. Now in pretty much every other catalog item, we have a workflow which is having a catalog task activity where we are triggering the rest message script using the advanced script tab and in there we are setting some values of fields in the task as well using task.fieldname. How can I achieve this using a flow designer. Can someone please help! PFB script used in task advanced tab

 

var dur = activity.vars.duration.getDisplayValue().slice(0, 1);
gs.log("WORKFLOW: " +dur);


var fulldate;
var scheduleID = current.cat_item.u_schedule.sys_id.toString();
var scheduleDuration;

var gr = new GlideRecord('cmn_schedule_span');
gr.addEncodedQuery('schedule='+scheduleID+'^');
gr.query();
if(gr.next())

{
var hr = gr.end_date_time.getDisplayValue().slice(9, 11) - gr.start_date_time.getDisplayValue().slice(9, 11);

var min = gr.end_date_time.getDisplayValue().slice(12, 14) - gr.start_date_time.getDisplayValue().slice(12, 14);

scheduleDuration = hr + (min/60);

}

var gdt = new GlideDateTime();
var dur = new GlideDuration(60 * 60 * scheduleDuration * 1000 * dur);
var schedule = new GlideSchedule(scheduleID);
fulldate = schedule.add(gdt, dur, '');
task.due_date = fulldate.getDisplayValue();
var tsk_id = task.setNewGuid();
var ritmSysId = current.sys_id;
var workflowKeyList = ["Some value"];
var operation = 'Add';
var parentOpe = 'Modify';

var assignGrp;
var assignedto;
var assignetoTask;

var status = new ScriptIncludeName().FunctionName(current, ritmSysId, tsk_id, workflowKeyList, parentOpe, operation); //This is the function which contains the script for triggering the rest message in script include
gs.log("postStatus :" + status);

httpMessage = new ScriptIncidename().functionName(status);

//Update task accordingly
if (status == '201') {
var fulfillmentGroup = activity.vars.task_fulfillment_group;
task.assigned_to = new ScriptIncidename().Functionname(fulfillmentGroup);
task.state = '2';

task.work_notes = 'some message.\r\n' + httpMessage;
task.update();
} else {
task.work_notes = "some message.\r\n" + httpMessage;
task.update();
}

2 REPLIES 2

Will Hallam
ServiceNow Employee
ServiceNow Employee

Create a custom Action which includes a REST step; you can pass any needed fields/parms in via the standard Flow Designer pill or picker interface.

 

https://docs.servicenow.com/bundle/tokyo-application-development/page/administer/flow-designer/conce...

Hi Will,

 

Thanks for the reply. Can you kindly elaborate a bit so that I can achieve my specific requirement of triggering the rest message and doing necessary updates to the task as per the script shared when the task is created.

 

Thanks!