ワークフロー - グローバル

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:18分
  • ワークフロースクリプトインクルードは、ワークフローエンジンとインターフェイスするメソッドを提供します。

    これらのメソッドを使用してワークフローを操作します。

    ワークフロー - broadcastEvent(String contextId, String eventName)

    指定されたイベント (メッセージ) をワークフローコンテキストに送信して、実行中のアクティビティに渡します。

    この方法の一般的な使用法は、何らかのアクションが発生するのを待ってから続行するアクティビティを有効にすることです。broadcastEventの使用方法の詳細については、「ワークフローイベント固有の関数」を参照してください。

    利用可能な OOB イベントのリストについては、「 ベースシステムのワークフローイベント」を参照してください。

    表 : 1. パラメーター
    名前 タイプ 説明
    contextId 文字列 コンテキスト ID。
    eventName 文字列 イベントの名前
    表 : 2. 返される内容
    タイプ 説明
    なし
    //where current is a task record with a workflow context
          var wf = new Workflow().getRunningFlows(current);
          while(wf.next()) {     
              new Workflow().broadcastEvent(wf.sys_id, 'resume');
          }

    ワークフロー - キャンセル (GlideRecord レコード)

    このレコードで実行中のすべてのワークフローのアクティビティに cancel イベントをブロードキャストすることによって、このレコードで実行中のすべてのワークフローをキャンセルします。

    表 : 3. パラメーター
    名前 タイプ 説明
    レコード GlideRecord 任意のテーブルの GlideRecord。このレコードで実行されているすべてのワークフローがキャンセルされます。
    表 : 4. 返される内容
    タイプ 説明
    なし
    //get workflow helper
          var workflow = new Workflow();
          //cancel all the workflows, where current is a task record with a workflow context
          workflow.cancel(current);
          gs.addInfoMessage(gs.getMessage("Workflows for {0} have been cancelled", current.getDisplayValue()));

    ワークフロー:cancelContext(GlideRecord コンテキスト)

    このワークフローコンテキスト内のアクティビティに cancel イベントをブロードキャストすることによって、この実行中のコンテキストをキャンセルします。

    表 : 5. パラメーター
    名前 タイプ 説明
    context GlideRecord キャンセルする実行中のコンテキストの GlideRecord
    表 : 6. 返される内容
    タイプ 説明
    なし
    // If a workflow has started for this item, cancel it, where current is a task record with a workflow context
          if ((current.stage == 'Request Cancelled') && current.context 
              && !current.context.nil()) {
          var w = new Workflow();
          var now_GR = new GlideRecord('wf_context');
          
          if (now_GR.get(current.context)) 
              w.cancelContext(now_GR);
          }

    ワークフロー - deleteWorkflow(GlideRecord current)

    レコードのすべてのワークフローを削除します。

    表 : 7. パラメーター
    名前 タイプ 説明
    current GlideRecord 問い合わせユーザーがすべてのワークフローを削除する GlideRecord。これは、任意のテーブルの任意のレコードにすることができます。
    表 : 8. 返される内容
    タイプ 説明
    なし
    //where current is a task record with a workflow context
          var wkfw = new Workflow();
          wkfw.deleteWorkflow(current);
        

    ワークフロー - fireEvent(GlideRecord eventRecord, 文字列 eventName, オブジェクト eventParms)

    入力レコードで実行中のワークフローの名前付きイベントを発生させます。

    アクティビティ 承認コーディネータータイマーロックなどで使用されます。

    表 : 9. パラメーター
    名前 タイプ 説明
    イベントレコード GlideRecord ワークフロー実行アクティビティ [wf_executing] テーブルにリストされているイベントレコード。
    eventName 文字列 実行中のワークフローに送信するイベントの名前。
    イベントパラメーター オブジェクト オプション。イベントで使用される JSON 形式のパラメーター。
    表 : 10. 返される内容
    タイプ 説明
    なし  
    // where current is a task record with a workflow context
      var w = new Workflow(); 
      w.fireEvent(current, 'execute');

    ワークフロー:fireEventById(String eventRecordId, String eventName)

    レコード ID で指定されたレコードで名前付きイベントを発生させます。

    アクティビティ 承認コーディネータータイマーロックなどで使用されます。

    表 : 11. パラメーター
    名前 タイプ 説明
    イベントレコード ID 文字列 Glide レコードのsys_id。
    eventName 文字列 実行中のワークフローに送信するイベントの名前。
    表 : 12. 返される内容
    タイプ 説明
    なし
    var wkfw = new Workflow();
          wkfw.fireEventById('f2400ec10b0a3c1c00ca5bb5c6fae427','Timer');

    ワークフロー:getContexts(GlideRecord レコード)

    指定されたレコードのすべてのワークフローコンテキストを返します。

    表 : 13. パラメーター
    名前 タイプ 説明
    レコード GlideRecord 発信者がすべてのワークフローコンテキストのリストを必要とする GlideRecord。これは、発信者が実行中のワークフローコンテキストを必要とする任意のテーブルの任意のレコードにすることができます。
    表 : 14. 返される内容
    タイプ 説明
    GlideRecord 指定されたレコードのすべてのワークフローコンテキスト (実行中、キャンセル済み、完了など) のすべてのワークフローコンテキスト用にフィルタリングされたワークフローコンテキスト [wf_context] テーブルの GlideRecord。
    //where current is a task record with a workflow context
    var wkfw = new Workflow();
    var context = wkfw.getContexts(current);
    while (context.next())
      gs.print(context.started);

    ワークフロー:getEstimatedDeliveryTime(String workflowId)

    ワークフローが完了するまでの推定時間を取得します。

    表 : 15. パラメーター
    名前 タイプ 説明
    workflowId 文字列 予定ランタイムを取得するためのワークフロー (テーブル wf_workflow) のSys_id。
    表 : 16. 返される内容
    タイプ 説明
    文字列 GlideDuration の値 (3 日間など) を表示します。不明な場合は空白にします。
    var wkfw = new Workflow();
          gs.print(wkfw.getEstimatedDeliveryTime('b99a866a4a3623120074c033e005418f'));

    2 日

    ワークフロー:getEstimatedDeliveryTimeFromWFVersion(GlideRecord wfVersion)

    ワークフローバージョンの推定経過実行時間を取得します。

    表 : 17. パラメーター
    名前 タイプ 説明
    wfバージョン GlideRecord 呼び出し元が実行中の推定値を望む特定のワークフローバージョンのテーブルwf_workflow_versionの GlideRecord
    表 : 18. 返される内容
    タイプ 説明
    文字列 GlideDuration の値 (3 日など) を表示します。不明な場合は空白にします。
    //where current is a task record with a workflow context
          var wkfw = new Workflow();
          var context = wkfw.getContexts(current);
          gs.print(wkfw.getEstimatedDeliveryTimeFromWFVersion(context.wf_version));

    ワークフロー:getReturnValue(String workflowID, Number amount, Boolean result)

    入力ワークフロー ID の適切なワークフロー戻り値を取得します。 これは、現在のユーザーによってチェックアウトされたワークフロー、または最新の日付の公開ワークフローのいずれかです。

    これは、現在のユーザーによってチェックアウトされたワークフロー、または最新の日付の公開ワークフローのいずれかです。この方法は Fuji リリース以降で利用可能です。

    表 : 19. パラメーター
    名前 タイプ 説明
    ワークフロー ID 文字列 ワークフローのsys_id (テーブル wf_workflow)
    amount 番号 amount
    result ブーリアン true の場合 true
    表 : 20. 返される内容
    タイプ 説明
    ??? リターン値アクティビティで指定されたワークフローのリターン値。リターン値アクティビティのないワークフローは、null値を返します。
    var wkfw = new Workflow();
          wkfw.getReturnValue('context');
    出力:
    *** Script: b99a866a4a3623120074c033e005418f
          

    ワークフロー:getRunningFlows(GlideRecord レコード)

    入力レコードに対して現在実行中のすべてのワークフローコンテキストを取得します。

    入力レコードは、発信者が実行中のワークフローコンテキストを必要とするテーブル上の任意のレコードです。

    表 : 21. パラメーター
    名前 タイプ 説明
    レコード GlideRecord 発信者が実行中のすべてのワークフローのリストを必要とするレコードの GlideRecord
    表 : 22. 返される内容
    タイプ 説明
    GlideRecord テーブルwf_contextの GlideRecord で、実行中のすべてのワークフローコンテキストについてフィルタリングされます。
    //where current is a task record with a workflow context
          var wf = new Workflow().getRunningFlows(current);
          while(wf.next()) {     
              new Workflow().broadcastEvent(wf.sys_id, 'pause');
          }

    ワークフロー:getVersion(文字列 workflowID)

    入力ワークフロー ID の適切なワークフローバージョンを取得します。 これは、現在のユーザーによってチェックアウトされたワークフロー、または最新の日付の公開ワークフローのいずれかです。

    これは、現在のユーザーによってチェックアウトされたワークフロー、または最新の日付の公開ワークフローのいずれかです。

    表 : 23. パラメーター
    名前 タイプ 説明
    ワークフロー ID 文字列 ワークフローのsys_id (テーブル wf_workflow)
    表 : 24. 返される内容
    タイプ 説明
    なし
    var wkfw = new Workflow();
          wkfw.getVersion('b99a866a4a3623120074c033e005418f');

    ワークフロー:getVersionFromName(文字列 workflowName)

    入力ワークフロー名の適切なワークフローバージョンを返します。

    詳細については、 getVersion() を参照してください。

    表 : 25. パラメーター
    名前 タイプ 説明
    ワークフロー名 文字列 ワークフローの名前 (テーブル wf_workflow)
    表 : 26. 返される内容
    タイプ 説明
    なし
    var wkfw = new Workflow();
          wkfw.getVersionFromName('Emergency Change');

    ワークフロー:getWorkflowFromName(文字列 workflowName)

    指定されたワークフロー名に関連付けられたワークフローのsys_idを返します。

    表 : 27. パラメーター
    名前 タイプ 説明
    ワークフロー名 文字列 ワークフローの名前。
    表 : 28. 返される内容
    タイプ 説明
    文字列 渡された名前に関連付けられたワークフローのsys_id。
    var wflw = new Workflow();
          gs.print(wflw.getWorkflowFromName('Emergency Change'));

    ワークフロー:hasWorkflow (GlideRecord レコード)

    指定されたレコードにワークフローコンテキストが関連付けられているかどうかを判定します。

    これには、実行中および完了したワークフローコンテキストが含まれます。

    表 : 29. パラメーター
    名前 タイプ 説明
    レコード GlideRecord 精査中の GlideRecord。この GlideRecord は任意のテーブルから取得できます。
    表 : 30. 返される内容
    タイプ 説明
    ブーリアン レコードにワークフローが関連付けられている場合は true。それ以外の場合は False を返します。
    var wkfw = new Workflow();
          gs.print(wkfw.hasWorkflow('f2400ec10b0a3c1c00ca5bb5c6fae427'));

    false

    ワークフロー:restartWorkflow(GlideRecord current, ブール maintainStateFlag)

    現在の承認とタスクはリセットしないで、新しい承認とタスクを追加することで、ワークフローの承認とタスクを再計算します。

    この方法を使用すると、既にワークフローにある会社の現在の承認をリセットすることなく、変更要求に会社を追加するなどのタスクを実行できます。

    表 : 31. パラメーター
    名前 タイプ 説明
    current GlideRecord このワークフローが実行しているレコードの GlideRecord。これは、任意のテーブルの任意のレコードで可能です。
    maintainStateFlag ブーリアン すべての承認とタスクを現在のステータスで維持するかどうかを示すフラグ。
    有効な値:
    • true:すべての承認とタスクを現在のステータスに維持します。
    • false:すべての承認とタスクのステータスを更新します。
    表 : 32. 返される内容
    タイプ 説明
    なし

    この例は、承認ファイルが [却下] から [要求済み] に変更されて再開されるワークフローを示しています。

    (function(){
      var comment = 'Workflow Restarted - the Approval Field changing from Rejected to Requested';
      var gLock = new GlideRecordLock(current);
        gLock.setSpinWait(50);
      if (gLock.get()) {
        new Workflow().restartWorkflow(current, false);
        current.setDisplayValue('approval_history', comment);
      }
    })

    ワークフロー - runFlows(GlideRecord レコード、文字列操作)

    指定されたテーブルとその子孫テーブルの指定されたレコードのすべてのワークフローを実行します。

    サンプルの使用法は、「SNC - 親ワークフローを実行」および「SNC - 親ワークフローを実行 (承認)」というスクリプトインクルードで確認できます。

    表 : 33. パラメーター
    名前 タイプ 説明
    レコード GlideRecord ワークフローを実行する GlideRecord。
    操作 文字列 データベース操作。
    有効な値:
    • insert
    • update
    • delete
    表 : 34. 返される内容
    タイプ 説明
    なし
    var now_GR = new GlideRecord('wf_test');
    now_GR.addQuery('parent', current.parent);
    now_GR.addQuery('sys_id','!=',current.sys_id);
    now_GR.query();
    while(now_GR.next()) {
        new Workflow().runFlows(now_GR, 'update');
    }

    ワークフロー:startFlow(String workflowId, GlideRecord current, String operation, Array vars)

    指定されたワークフローを開始します。

    使用例については、スクリプトインクルード WorkflowScheduler およびテーブル sc_req_item のビジネスルール「ワークフローの開始」を参照してください。

    表 : 35. パラメーター
    名前 タイプ 説明
    workflowId 文字列 ワークフローを開始するsys_id。このsys_idはテーブルwf_workflowを参照します。
    現在 GlideRecord このワークフローで現在のものとして使用するレコード。これは通常、このワークフローのワークフロープロパティの Table フィールドから取得されます。
    操作 文字列 currentで実行する操作。可能な値: insertupdatedelete
    変数 アレイ ワークフローに追加する変数のコレクション
    ////where current is a task record with a workflow context
          var w = new Workflow();
          var context = w.startFlow(id, current, current.operation(), getVars());

    ワークフロー - startFlowFromContextInsert(GlideRecord context, String operation)

    ビジネスルール Auto start on contextのヘルパーメソッド。

    表 : 36. パラメーター
    名前 タイプ 説明
    context GlideRecord 新しいレコード (ビジネスルール内の「現在の」レコード) のテーブルwf_contextの GlideRecord。
    操作 文字列 実行中のデータベース操作。insertupdatedeleteのいずれかです。
    表 : 37. 返される内容
    タイプ 説明
    なし
    //where current is a task record with a workflow context
          current.name = current.workflow_version.name;
          current.started_by.setValue(gs.userID());
          
          if (gs.nil(current.id)) {
            var now_GR = new GlideRecord('wf_workflow_execution');
            now_GR.name = current.name;
            now_GR.insert();
          
            current.table = 'wf_workflow_execution';
            current.id = now_GR.sys_id;
          }
          
          var wf = new Workflow();
          wf.startFlowFromContextInsert(current, current.operation())

    ワークフロー - startFlowRetroactive(String workflowId, Number retroactiveMSecs, GlideRecord current, String operation, Array, ???)

    テーブルtask_slaのビジネスルール Start Workflow で使用されます。これによりワークフローが開始され、このメソッドの追加引数は、ワークフローの実行を一定期間一時停止するためにアクティビティ「タイマー」によって使用されます。

    表 : 38. パラメーター
    名前 タイプ 説明
    ワークフロー ID 文字列 ワークフローを開始するsys_id。このsys_idはテーブルwf_workflowを参照します。
    事後対応 MSec 番号 アクティビティ タイマーで使用される遅延 (ミリ秒単位)。
    現在 GlideRecord このワークフローで現在として使用するレコードの GlideRecord。これは通常、このワークフローのワークフロープロパティの Table フィールドからのものです
    操作 文字列 実行中のデータベース操作。 insertupdatedeleteのいずれかです。
    変数 アレイ ワークフローに追加する変数のコレクション。
    スケジュールあり ??? アクティビティタイマーで使用されるスケジュール
    表 : 39. 返される内容
    タイプ 説明
    GlideRecord テーブルの GlideRecord wf_context、この新しく作成されたワークフローコンテキストの挿入されたレコード。
    // is this a retroactive start?
          ////where current is a task record with a workflow context
          var msecs = new GlideDateTime().getNumericValue() - current.start_time.getGlideObject().getNumericValue();
          
          // treat this as a retroactive workflow start if the SLA started more than 5 seconds ago
          var w = new Workflow();
          if (msecs <= 5000)
            w.startFlow(id, current, current.operation());
          else
            w.startFlowRetroactive(id, msecs, current, current.operation());
          
          // update the record in case the workflow changed some values
          current.update();
          
        

    ワークフロー - Workflow()

    ワークフロークラスのコンストラクター。

    表 : 40. パラメーター
    名前 タイプ 説明
    なし
    表 : 41. 返される内容
    タイプ 説明
    なし
    var w = new Workflow();