GlideFlow :クライアント

  • リリースバージョン: Zurich
  • 更新日 2025年08月01日
  • 所要時間:11分
  • GlideFlow API は、アクション、フロー、およびサブフローをクライアントサイドで操作するためのメソッドを提供します。

    この API は、クライアントスクリプトを受け入れるクラシック ServiceNow AI Platform UI エクスペリエンスで使用できます。アクション、フロー、またはサブフローは、クライアント呼び出し可能として設定し、 ワークフロースタジオ のセキュリティ管理機能を使用して有効な ACL を持つ必要があります。
    注:
    この APi は ワークスペースエクスペリエンス UI と互換性がありません。

    GlideFlow API 内の一部のメソッドは promise オブジェクトを返します。promise は、非同期操作の最終結果を表します。promise の詳細については、Promise - Javascript MDN または AngularJS のドキュメントを参照してください。

    この API を使用して、次のことができます。
    • スクリプトを使用してアクション、フロー、またはサブフローを開始する。
    • 既存の実行を取得する。
    • ステータスと利用可能な出力を取得する。
    • アクション、フロー、またはサブフローの完了を待機する。

    GlideFlow API のコンストラクタはありません。GlideFlow グローバルオブジェクトを使用して GlideFlow メソッドにアクセスします。

    GlideFlow - execution.awaitCompletion()

    実行の完了オブジェクトを返します。

    表 : 1. パラメーター
    名前 タイプ 説明
    なし
    表 : 2. 返される内容
    タイプ 説明
    オブジェクト フローまたはアクション実行の完了の詳細を含むオブジェクト。

    この例では、実行オブジェクトを返す startAction() を使用してアクションが実行されます。次に、この実行オブジェクトに対して awaitCompletion() を使用して、完了オブジェクトを返します。コードはこの完了オブジェクトを使用して、実行内のステータスと出力を記録します。

    
    (function() {
    	var inputs = {};
    
    	inputs['input1'] = 'string input'; // String
    
    	GlideFlow.startAction('global.action_name', inputs)
    		.then(function(execution) {
    			return execution.awaitCompletion();
    		}, errorResolver)
    		.then(function(completion) {
    			var status = completion.status;
    			console.log(status);
    
    			// Available Outputs:
    			var outputs = completion.outputs;
    			console.log(outputs);
    		}, errorResolver());
    
    	function errorResolver(error) {
    		// Handle errors in error resolver
    		console.error(error);
    	}
    })();

    GlideFlow - execution.getExecutionStatus()

    現在の実行の実行ステータスを含む文字列を返します。

    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 返される内容
    タイプ 説明
    文字列 実行ステータスを含む文字列。

    この例では、コードは getExecution メソッドを使用して実行オブジェクトを取得します。getExecution メソッドには、実行を開始するために使用されたメソッドによって返される ID が必要です。次に、getExecutionStatus() を使用して、続行する前に実行が完了したかどうかを判断します。

    
    // Get an existing action, getStatus, and getOutputs if complete
    (function() {
       GlideFlow.getExecution('mamIN4Q35vmEFe744EwJV5GHrSz8fmJG')
          .then(function(execution) {
             execution.getExecutionStatus().then(
                function(status) {
                   if (status === 'COMPLETE')
                      execution.getOutputs().then(
                         function(outputs) {
                            console.log(outputs);
                         },
                         errorResolver
                      );
                },
                errorResolver
             );
          }, errorResolver);
    
       function errorResolver(error) {
          // Handle errors in error resolver
          console.error(error);
       }
    })();

    GlideFlow - execution.getOutputs()

    実行の出力オブジェクトを返します。

    このメソッドを使用して、アクション、フロー、またはサブフローの実行によって生成された出力にアクセスします。

    表 : 5. パラメーター
    名前 タイプ 説明
    なし
    表 : 6. 返される内容
    タイプ 説明
    オブジェクト アクション、フロー、またはサブフローの出力を含むオブジェクト。

    この例では、コードは getExecution メソッドを使用して実行オブジェクトを取得します。実行が完了すると、コードは getOutputs() を使用して出力オブジェクトを返します。このオブジェクトは、console.log メソッドを使用してログに記録されます。

    
    // Get an existing action, getStatus, and getOutputs if complete
    (function() {
       GlideFlow.getExecution('mamIN4Q35vmEFe744EwJV5GHrSz8fmJG')
          .then(function(execution) {
             execution.getExecutionStatus().then(
                function(status) {
                   if (status === 'COMPLETE')
                      execution.getOutputs().then(
                         function(outputs) {
                            console.log(outputs);
                         },
                         errorResolver
                      );
                },
                errorResolver
             );
          }, errorResolver);
    
       function errorResolver(error) {
          // Handle errors in error resolver
          console.error(error);
       }
    })();

    GlideFlow - getExecution(文字列 executionId)

    ID で既存の実行インスタンスを取得します。

    表 : 7. パラメーター
    名前 タイプ 説明
    executionId 文字列 取得される実行の ID。
    表 : 8. 返される内容
    タイプ 説明
    オブジェクト 実行オブジェクトの約束。

    この例では、コードは実行を取得し、完了するまで待機してから実行完了ステータスをログに記録し、console.log を使用して出力します。

    
    // Get an existing action and await completion
    (function() {
    	GlideFlow.getExecution('79cd437e0b202300a150a95e93673ae3')
    		.then(function(execution) {
    			return execution.awaitCompletion();
    		}, errorResolver)
    		.then(function(completion) {
    
    			var status = completion.status;
    			console.log(status);
    
    			// Available Outputs:
    			var outputs = completion.outputs;
    			console.log(outputs);
    		}, errorResolver());
    
    	function errorResolver(error) {
    		// Handle errors in error resolver
    		console.error(error);
    	}
    })();

    GlideFlow - startAction(文字列 scopedName.actionName, マップ inputs)

    アクションを開始します。

    表 : 9. パラメーター
    名前 タイプ 説明
    scopedName 文字列 実行するフローのスコープ対象の名前。
    inputs オブジェクト アクションに対して定義された入力を含むオブジェクト。
    表 : 10. 返される内容
    タイプ 説明
    オブジェクト アクション実行の詳細を含むオブジェクト。

    この例では、コードは入力オブジェクト変数の引数を使用してグローバル action_name アクションを開始します。完了すると、この例では、console.log または console.error を使用してフローの成功または失敗をレポートします。

    
    // Start an action and await completion.
    (function() {
    	var inputs = {};
    
    	inputs['input1'] = 'string input'; // String
    
    	GlideFlow.startAction('global.action_name', inputs)
    		.then(function(execution) {
    			return execution.awaitCompletion();
    		}, errorResolver)
    		.then(function(completion) {
    			var status = completion.status;
    			console.log(status);
    
    			// Available Outputs:
    			var outputs = completion.outputs;
    			console.log(outputs);
    		}, errorResolver());
    
    	function errorResolver(error) {
    		// Handle errors in error resolver
    		console.error(error);
    	}
    })();

    GlideFlow - startFlow(文字列 scopedName.flowName, マップ inputs)

    フローを開始します。

    表 : 11. パラメーター
    名前 タイプ 説明
    scopedName 文字列 実行するフローのスコープ対象の名前。
    inputs オブジェクト フローに対して定義された入力を含むオブジェクト。
    表 : 12. 返される内容
    タイプ 説明
    オブジェクト フロー実行の詳細を含むオブジェクト。

    この例のフローは、通常、インシデントテーブルのレコードが更新されたときに発生します。クライアントスクリプトからフローをアクティブ化しているため、この情報を指定する必要があります。このコードは、現在のレコードとそのレコードのテーブルを含む入力変数を作成します。

    
    // Start a Flow
    (function() {
          var inputs = {};
          inputs['current'] = { // GlideRecord 
            table : 'incident', 
            sys_id : '79cd437e0b202300a150a95e93673ae3'  
        };
            inputs['table_name'] = 'incident';
             GlideFlow.startFlow('global.flow_name', inputs)
    		.then(
    			function(execution) {
    				console.log('Started flow_name with execution id :' + execution.getExecutionId());
    			},
    			function(error) {
    				console.log('Unable to start flow: ' + error);
    			}
    		);
    })();

    GlideFlow - startSubflow(文字列 scopedName.subflowName, マップ inputs)

    サブフローを開始します。

    表 : 13. パラメーター
    名前 タイプ 説明
    scopedName 文字列 実行するフローのスコープ対象の名前。
    inputs オブジェクト サブフローに対して使用される入力を含むオブジェクト。
    表 : 14. 返される内容
    タイプ 説明
    オブジェクト サブフロー実行の詳細を含むオブジェクト。

    この例では、コードは入力アレイ変数の引数を使用してグローバル subflow_name サブフローを開始します。完了すると、この例では、console.log または console.error を使用してフローの成功または失敗をレポートします。

    
    // Start an action and await completion.
    (function() {
    	var inputs = {};
    
    	inputs['input1'] = 'string input'; // String
    
    	GlideFlow.startSubflow('global.subflow_name', inputs)
    		.then(function(execution) {
    			return execution.awaitCompletion();
    		}, errorResolver)
    		.then(function(completion) {
    			var status = completion.status;
    			console.log(status);
    
    			// Available Outputs:
    			var outputs = completion.outputs;
    			console.log(outputs);
    		}, errorResolver());
    
    	function errorResolver(error) {
    		// Handle errors in error resolver
    		console.error(error);
    	}
    })();