我有一个需要在事件更新之前运行的业务规则。问题是这个脚本需要从“脚本包含”中触发一个很慢的函数。我希望这个调用是异步的,以便可以加载表单。
有没有办法做到这一点?
我假设您已经了解异步业务规则,并且这些规则对您不起作用,因为您还需要同步执行某些操作。
您可以使用GlideRunScriptJob
from script 在后台线程上执行脚本。如果您已经有一个脚本,您只需将其作为字符串传递给scheduleScript
GlideRunScriptJob 上的方法,如下所示:
var job = new GlideRunScriptJob();
job.scheduleScript("new CustomScriptInclude().foo()");
您也可以使用事件和脚本操作来执行此操作。因此,在业务规则中,您生成事件并将脚本操作附加到该事件。然后在处理事件时运行脚本。
如果你想在未来运行它,你可以使用 gs.eventQueueScheduled 函数来安排事件在未来某个时间被触发:
gs.eventQueueScheduled(event.name, current, parameter1, parameter2, data and time to run the event);