Script Action not able to call outbound rest message even though the event is processed

Swarnarghya
Tera Expert

We have a business rule which is scheduling one event in the event queue. The script action will run once that event is processed. And  we have an event queue scheduled where we are processing the event after half an hour by using delay method in our business rule. The event is getting processed in the event logs but the script action is unable to call the outbound rest message.

find_real_file.png

Can you please help us why this is not working?

 

PS: Manual trigger of rest message is working fine

1 ACCEPTED SOLUTION

If your instance is domain separated then Script action should be in global domain.

So just add this line in your script action

gs.info('My script action triggered');

If this log doesn't come then the issue is not with script

Other solution

1) make your BR as Async update and add the entire REST Message code inside BR

That should work fine

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

18 REPLIES 18

If your instance is domain separated then Script action should be in global domain.

This line resolves the issue. Thanks a lot

Glad to help.

Please mark appropriate responses helpful as well.

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Anil Lande
Kilo Patron

Also make sure you are passing correct GlideRecord object while triggering event which is used in script action script.

In your script you are using current.u_uid.toString(), I hope you are passing same table GR object while triggering event.

 

Thanks,
Anil Lande

Please appreciate the efforts of community contributors by marking appropriate response as correct answer and helpful, this may help other community users to follow correct solution in future.
Thanks
Anil Lande

BR Script:

(function executeRule(current, previous /*null when async*/ ) {

var when = new GlideDateTime();
var delay = new GlideTime();
delay.setValue("01:30:00");
when.add(delay);
gs.eventQueueScheduled("Resolution_notification_dely", current, "", "", when);

})(current, previous);