ServiceNow:从业务规则启动异步脚本

时间:2014-10-30 17:00:27

标签: servicenow

我有一个需要在事件更新之前运行的业务规则。问题是这个脚本需要从“脚本包含”中启动一个很慢的函数。我希望这个调用是异步的,以便表单可以加载。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:4)

我假设您已经了解async business rules,并且那些不适合您,因为您还需要同步执行某些操作。

您可以使用脚本中的GlideRunScriptJob在后​​台线程上执行脚本。如果您已经有一个脚本,只需将其作为字符串传递给GlideRunScriptJob上的scheduleScript方法,如下所示:

var job = new GlideRunScriptJob();
job.scheduleScript("new CustomScriptInclude().foo()");

答案 1 :(得分:2)

您也可以使用事件和脚本操作执行此操作。因此,在业务规则中,您将生成事件并将脚本操作附加到该事件。然后在处理事件时运行该脚本。

如果您希望将来运行它,可以使用gs.eventQueueScheduled函数来安排事件在将来某个时间触发:

gs.eventQueueScheduled(event.name,current,parameter1,parameter2,运行事件的数据和时间);