ワークフローのキャンセル
ワークフローをキャンセルすると、ワークフローの実行が停止され、ワークフローコンテキストの状態がキャンセルに設定されます。実行中のワークフローをキャンセルするには、cancelContext(context) スクリプトを使用します。onCancelスクリプトを定義して、未解決のワークフロー アクティビティをクリーンアップすることができます。
始める前に
必要なロール: admin または workflow_admin
このタスクについて
手順
cancelContext(context) スクリプトによるワークフローのキャンセル
実行中のワークフローをキャンセルするには、cancelContext(context) スクリプトを使用します。このスクリプトは、イベントに応答してワークフローをキャンセルする必要がある場合や、ユーザーが手動でワークフローをキャンセルする必要がある場合に役立ちます。
始める前に
必要なロール:管理者
このタスクについて
詳細については、「Workflow - cancelContext(GlideRecord context)」を参照してください。
キャンセル時のスクリプトの定義
ワークフローをキャンセルすると、レコードやスクリプトが未解決の状態のままになる可能性があります。たとえば、サービス カタログ ワークフローをキャンセルすると、カタログ アイテムが要求しているユーザーのカートに残ることがあります。管理者は、ワークフローがキャンセル状態に移行するときに実行されるキャンセル時のスクリプトを指定できます。このスクリプトは、ユーザーに Notify したり、情報を記録したり、ワークフロー アクティビティ内で実行されるスクリプトの状態を解決したりすることができます。ワークフローコンテキストの sys_id は、このスクリプトで context_sys_id 変数を使用して使用できます。
このタスクについて
重要:
グローバルスコープからキャンセル時のスクリプトは実行されるため、このスクリプトがスコープ付きスクリプトインクルードを呼び出したり、実行することはできません。
手順
例
var grContext = new GlideRecord("wf_context");
grContext.get(context_sys_id);
var grReq = new GlideRecord("sc_req_item");
// The current record may not exist, make sure it exists before modifying it.
if (grReq.get(grContext.id)) {
grReq.comments = "The workflow processing this item was Canceled. Contact your system administrator for further information.";
grReq.update();
}