---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# ScriptableFlowRunner - スコープ指定

# ScriptableFlowRunner - スコープ指定 {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：36分

フロー、サブフロー、およびアクション実行のパラメーターを定義するために使用するビルダーオブジェクトを作成します。特定のドメインで実行するフローを指定できます。ビルダーから直接フロー、サブフロー、またはアクションの実行を開始し、ScriptableFlowRunnerResult オブジェクトで結果を表示します。
これらのメソッドは、サーバー側スクリプトで `sn_fd` 名前空間識別子とともに使用します。

## API 呼び出し順 {#ScriptableFlowRunnerScopedAPI__section_fnq_jjs_slb}

フロー、サブフロー、およびアクションは、API を次の順番で使用して構築および実行します。  

1. FlowAPI：ビルダーオブジェクトを作成する
:   getRunner() を使用して ScriptableFlowRunner ビルダーオブジェクトをインスタンス化します。

2. ScriptableFlowRunner：実行する ワークフロースタジオ コンテンツを指定する
:   下記のメソッドを次の順番で使用して、ビルダーパターンを作成します。  
    1. action()、datastream()、flow()、subflow() メソッドのいずれかを使用して、ビルドする ワークフロースタジオ オブジェクトのタイプを指定します。
    2. addInput()、inDomain()、quick() などのメソッドを 1 つまたは複数使用して、実行パラメーターを指定します。
    3. run() メソッドを使用して、アクション、フロー、サブフローを指定されたパラメーターで実行し、ScriptableFlowRunnerResult オブジェクトを返します。
    {#ScriptableFlowRunnerScopedAPI__ol_hcw_m4s_slb}

3. ScriptableFlowRunnerResult： ワークフロースタジオ 実行の詳細を取得する
:   getContextId()、getOutputs()、getDomainId() などのメソッドを 1 つまたは複数使用して、実行結果の詳細を表示します。

## 例 {#ScriptableFlowRunnerScopedAPI__section_nfr_rjw_slb}

この例では、ScriptableFlowRunner ビルダーオブジェクトを作成し、それを使用して特定のレコードの承認アクションを実行する方法を示します。ScriptableFlowRunnerResult オブジェクトは、実行の引数とアクションの出力をキャプチャします。  


    (function() {
      try {

        var inputs = {}; 

        inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c';  // Pass the record's sys_id in as input.  

        var result = sn_fd.FlowAPI.getRunner()  // Create a ScriptableFlowRunner builder object.
          .action('global.markapproved')        // Run the global scope action named markapproved.
          .inForeground()
          .inDomain('TOP/ACME')                 // Run the action from the TOP/ACME domain.                               
          .withInputs(inputs)
          .run();                               // Run the action and return a FlowRunnerResult object.

        var contextId = result.getContextId();  // Retrieve the context ID from the result
        var dateRun = result.getDate();
        var domainUsed = result.getDomainId();  // Retrieve the Domain ID from the result.
        var flowName = result.getFlowObjectName();
        var flowObjectType = result.getFlowObjectType();

        var outputs = result.getOutputs();            // Retrieve any outputs from the action execution.
        var newApprovalStatus = outputs['approval'];  // Echo back the approval status for verification.
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();
       
## ScriptableFlowRunner - action(文字列 scopedActionName) {#ariaid-title2}

実行するアクションのスコープと名前を識別します。
関連項目：

* [ScriptableFlowRunner - flow(文字列 scopedFlowName)](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#FlowRunner-flow_S "実行するフローのスコープと名前を識別します。")
* [ScriptableFlowRunner - subflow(文字列 scopedSubflowName)](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#FlowRunner-subflow_S "実行するサブフローのスコープと名前を識別します。")
{#FlowRunner-action_S__ul_v5f_vt4_gcc}
{#FlowRunner-action_S__table_dkl_vlp_rlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| scopedActionName | 文字列 | 実行するアクションのスコープと名前。例えば、`global.actionName` です。 |
[表 : 1. パラメーター]

{#FlowRunner-action_S__table_dkl_vlp_rlb} {#FlowRunner-action_S__table_ekl_vlp_rlb__entry__2}

| タイプ | 説明 |
|-|-|
| [ScriptableFlowRunner](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#ScriptableFlowRunnerScopedAPI "フロー、サブフロー、およびアクション実行のパラメーターを定義するために使用するビルダーオブジェクトを作成します。特定のドメインで実行するフローを指定できます。ビルダーから直接フロー、サブフロー、またはアクションの実行を開始し、ScriptableFlowRunnerResult オブジェクトで結果を表示します。") | ワークフロースタジオ のアクション、フロー、またはサブフローを実行するために使用されるビルダーオブジェクト。 |
[表 : 2. 返される内容]

{#FlowRunner-action_S__table_ekl_vlp_rlb}  
この例では、ScriptableFlowRunner ビルダーオブジェクトを作成し、それを使用して特定のレコードの承認アクションを実行する方法を示します。ScriptableFlowRunnerResult オブジェクトは、実行の引数とアクションの出力をキャプチャします。


    (function() {
      try {

        var inputs = {}; 

        inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c';  // Pass the record's sys_id in as input.  

        var result = sn_fd.FlowAPI.getRunner()  // Create a ScriptableFlowRunner builder object.
          .action('global.markapproved')        // Run the global scope action named markapproved.
          .inForeground()
          .inDomain('TOP/ACME')                 // Run the action from the TOP/ACME domain.                               
          .withInputs(inputs)
          .run();                               // Run the action and return a FlowRunnerResult object.

        var contextId = result.getContextId();  // Retrieve the context ID from the result
        var dateRun = result.getDate();
        var domainUsed = result.getDomainId();  // Retrieve the Domain ID from the result.
        var flowName = result.getFlowObjectName();
        var flowObjectType = result.getFlowObjectType();

        var outputs = result.getOutputs();            // Retrieve any outputs from the action execution.
        var newApprovalStatus = outputs['approval'];  // Echo back the approval status for verification.
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();
       
## ScriptableFlowRunner - addInput(文字列 name, オブジェクト value) {#ariaid-title3}

入力を 1 つ追加します。引数として渡された名前が個別の入力としてすでに存在する場合、既存の値が新しい値に置き換えられます。
このメソッドでは入力を 1 つ追加します。オブジェクトを作成して複数の入力を追加するには、withInputs() メソッドを使用します。
{#FlowRunner-addInput_S_O__table_ucp_smp_rlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | フロー、サブフロー、またはアクションの入力の名前。 |
| value | オブジェクト | フロー、サブフロー、またはアクションの入力の値。 |
[表 : 3. パラメーター]

{#FlowRunner-addInput_S_O__table_ucp_smp_rlb} {#FlowRunner-addInput_S_O__table_vcp_smp_rlb__entry__2}

| タイプ | 説明 |
|-|-|
| [ScriptableFlowRunner](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#ScriptableFlowRunnerScopedAPI "フロー、サブフロー、およびアクション実行のパラメーターを定義するために使用するビルダーオブジェクトを作成します。特定のドメインで実行するフローを指定できます。ビルダーから直接フロー、サブフロー、またはアクションの実行を開始し、ScriptableFlowRunnerResult オブジェクトで結果を表示します。") | ワークフロースタジオ のアクション、フロー、またはサブフローを実行するために使用されるビルダーオブジェクト。 |
[表 : 4. 返される内容]

{#FlowRunner-addInput_S_O__table_vcp_smp_rlb}  
この例では、`table_name`という単一の入力を受け取るアクションを実行します。

    (function() {
      try {

        var result = sn_fd.FlowAPI.getRunner()
          .action('global.test_action')
          .addInput('table_name', 'incident')
          .inForeground()
          .run();

        gs.info(result.debug());

      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }

    })();

出力：

    Flow Designer: TableName
    *** Script: FlowRunnerResult
    Flow Object Name: global.test_action
    Flow Object Type: action
    Domain: null
    Result Time: 2020-06-09 00:10:57
    ContextId: null
    Output count: 1

## ScriptableFlowRunner - asUser() {#ariaid-title4}

迅速なバックグラウンド実行のため、システムではなく、フローをトリガーしたユーザーとしてフローを実行します。
asUser() メソッドと quick() を一緒に使用してフローがトリガーされると、フローをトリガーしたユーザーが取得され、フローの実行に使用されます。  
{#FlowRunner-asUser__table_c33_pts_qtb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 5. パラメーター]

{#FlowRunner-asUser__table_c33_pts_qtb}  
{#FlowRunner-asUser__table_l4l_tts_qtb__entry__2}

| タイプ | 説明 |
|-|-|
| [ScriptableFlowRunner - スコープ指定](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#ScriptableFlowRunnerScopedAPI "フロー、サブフロー、およびアクション実行のパラメーターを定義するために使用するビルダーオブジェクトを作成します。特定のドメインで実行するフローを指定できます。ビルダーから直接フロー、サブフロー、またはアクションの実行を開始し、ScriptableFlowRunnerResult オブジェクトで結果を表示します。") | ワークフロースタジオ のアクション、フロー、またはサブフローを実行するために使用されるビルダーオブジェクト。 |
[表 : 6. 返される内容]

{#FlowRunner-asUser__table_l4l_tts_qtb}  
この例は、ScriptableFlowRunner ビルダーオブジェクトを作成し、それを使用して asUser() および quick() メソッドを使用する特定のレコードに対して承認アクションを実行する方法を示しています。ScriptableFlowRunnerResult オブジェクトは、実行の引数とアクションの出力をキャプチャします。

    (function() {
        try {

            var outputs = sn_fd.FlowAPI.getRunner() // Create a ScriptableFlowRunner builder object.
            .flow('global.stry53225960_flow_asuser_test')
            .inForeground()
            .quick() //Run the flow from a server-side script.
            .asUser() //Run flow with the roles specified in the flow.
            .run(); // Run the action and return a FlowRunnerResult object.

        } catch (ex) {
            var message = ex.getMessage();
            gs.error(message);
        }  

    })();

### エラー {#FlowRunner-asUser__section_jml_4tk_5tb}

asUser() メソッドの使用中に次のエラーが発生する可能性があります。

* asUser() を quick()と一緒に使用しないと、スクリプトからエラーが返される。
* ロールが定義されたフローで asUser() が呼び出されると、スクリプトからエラーが返される。
* withRoles() メソッドと asUser() メソッドが同時に呼び出されると、スクリプトからエラーが返される。
{#FlowRunner-asUser__ul_nhw_stk_5tb}

## ScriptableFlowRunner - datastream(文字列 scopedDatastreamName) {#ariaid-title5}

実行するデータストリームアクションのスコープと名前を識別します。
データストリームアクションの詳細については、「 [データストリームアクションとページネーション](https://www.servicenow.com/docs/access?context=data-stream-actions&version=xanadu&pubname=xanadu-integrate-applications&ft:locale=en-US)」を参照してください。
{#FlowRunner-datastream_S__table_xlx_wlp_rlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| scopedDatastreamName | 文字列 | 実行するデータストリームアクションのスコープと名前。例えば、`global.dataStreamActionName` です。 |
[表 : 7. パラメーター]

{#FlowRunner-datastream_S__table_xlx_wlp_rlb} {#FlowRunner-datastream_S__table_ylx_wlp_rlb__entry__2}

| タイプ | 説明 |
|-|-|
| [ScriptableFlowRunner](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#ScriptableFlowRunnerScopedAPI "フロー、サブフロー、およびアクション実行のパラメーターを定義するために使用するビルダーオブジェクトを作成します。特定のドメインで実行するフローを指定できます。ビルダーから直接フロー、サブフロー、またはアクションの実行を開始し、ScriptableFlowRunnerResult オブジェクトで結果を表示します。") | ワークフロースタジオ のアクション、フロー、またはサブフローを実行するために使用されるビルダーオブジェクト。 |
[表 : 8. 返される内容]

{#FlowRunner-datastream_S__table_ylx_wlp_rlb}  
この例では、データストリームアクションを実行する方法を示します。

    (function() {
      try {

        var result = sn_fd.FlowAPI.getRunner()
          .datastream('global.test_dsa')
          .inForeground()
          .run();

        gs.info(result.debug());

      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }

    })();

出力：

    *** Script: FlowRunnerResult
    Flow Object Name: global.test_dsa
    Flow Object Type: datastream
    Domain: null
    Result Time: 2020-06-08 16:41:13
    ContextId: null
    Output count: 0

## ScriptableFlowRunner - flow(文字列 scopedFlowName) {#ariaid-title6}

実行するフローのスコープと名前を識別します。
関連項目：

* [ScriptableFlowRunner - action(文字列 scopedActionName)](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#FlowRunner-action_S "実行するアクションのスコープと名前を識別します。")
* [ScriptableFlowRunner - subflow(文字列 scopedSubflowName)](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#FlowRunner-subflow_S "実行するサブフローのスコープと名前を識別します。")
{#FlowRunner-flow_S__ul_v5f_vt4_gcc}
{#FlowRunner-flow_S__table_zpn_4lp_rlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| scopedFlowName | 文字列 | 実行するフローのスコープと名前。例えば、`global.flowName` です。 |
[表 : 9. パラメーター]

{#FlowRunner-flow_S__table_zpn_4lp_rlb} {#FlowRunner-flow_S__table_aqn_4lp_rlb__entry__2}

| タイプ | 説明 |
|-|-|
| [ScriptableFlowRunner](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#ScriptableFlowRunnerScopedAPI "フロー、サブフロー、およびアクション実行のパラメーターを定義するために使用するビルダーオブジェクトを作成します。特定のドメインで実行するフローを指定できます。ビルダーから直接フロー、サブフロー、またはアクションの実行を開始し、ScriptableFlowRunnerResult オブジェクトで結果を表示します。") | ワークフロースタジオ のアクション、フロー、またはサブフローを実行するために使用されるビルダーオブジェクト。 |
[表 : 10. 返される内容]

{#FlowRunner-flow_S__table_aqn_4lp_rlb}  
この例は、メッセージをログに記録するフローの実行方法を示しています。

    (function() {
      try {

        var result = sn_fd.FlowAPI.getRunner()
          .flow('global.test_flow')
          .inForeground()
          .run();

        gs.info(result.debug());

      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }

    })();

出力：

    *** Script: FlowRunnerResult
    Flow Object Name: global.test_flow
    Flow Object Type: flow
    Domain: null
    Result Time: 2020-06-08 16:41:13
    ContextId: null
    Output count: 0

## ScriptableFlowRunner - inBackground() {#ariaid-title7}

フロー、サブフロー、またはアクションを非同期的に実行します。フローオブジェクトの実行が開始されると、すぐにスクリプトの実行が再開されます。
{#FlowRunner-inBackground__table_pzg_1mp_rlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 11. パラメーター]

{#FlowRunner-inBackground__table_pzg_1mp_rlb} {#FlowRunner-inBackground__table_qzg_1mp_rlb__entry__2}

| タイプ | 説明 |
|-|-|
| [ScriptableFlowRunner](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#ScriptableFlowRunnerScopedAPI "フロー、サブフロー、およびアクション実行のパラメーターを定義するために使用するビルダーオブジェクトを作成します。特定のドメインで実行するフローを指定できます。ビルダーから直接フロー、サブフロー、またはアクションの実行を開始し、ScriptableFlowRunnerResult オブジェクトで結果を表示します。") | ワークフロースタジオ のアクション、フロー、またはサブフローを実行するために使用されるビルダーオブジェクト。 |
[表 : 12. 返される内容]

{#FlowRunner-inBackground__table_qzg_1mp_rlb}  
注:  
Xanadu リリースの時点では、quick() メソッドを使用してバックグラウンドでアクション、フロー、またはサブフローを実行すると、実行 ID が ContextId 値として返されます。フローコンテキスト \[sys_flow_context\] テーブルにレコードが挿入されないため、実行 ID は実際のコンテキストレコードではありません。代わりに、実行 ID は非同期呼び出しを追跡するために使用されます。  
この例では、バックグラウンドでフローを非同期に実行する方法を示します。

    (function() {
        try {
      
          var result = sn_fd.FlowAPI.getRunner()
            .flow('global.change__unauthorized__review')
            .inBackground()
            .run();
      
          gs.info(result.debug());
      
        } catch (ex) {
          var message = ex.getMessage();
          gs.error(message);
        }
      
      })();

出力:


    [0:00:01.015] Script completed in scope global: script
    ----------------------------------------------------------------------------------------------------------
    Script execution history and recovery available here
    Operation       Table                               Row Count
    insert          sys_flow_context_inputs_chunk       1
    insert          sys_flow_context                    1
    ----------------------------------------------------------------------------------------------------------
    Complex type redefined: FlowDesigner:FDCollection
    Queued flow.fire event in NowMQ for sys_flow_context.sys_id: e0cd6e30b8b602104a8752ad4a9167c8,
    sysevent.sys_id: 34cd6e30dbb60210497c1a48139619c9, with priority 5
    *** Script: FlowRunnerResult
    Flow Object Name: global.change__unauthorized__review
    Flow Object Type: flow
    Domain: null
    Result Time: 2024-06-12 17:54:58
    ContextId: e0cd6e30b8b602104a8752ad4a9167c8
    Output count: 0

## ScriptableFlowRunner - inDomain(文字列 domainId) {#ariaid-title8}

指定されたドメインでフロー、サブフロー、またはアクションを実行します。ドメインが存在し、利用可能であることを確認します。
{#FlowRunner-inDomain_S__table_pcy_hmp_rlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| domainId | 文字列 | フローの実行ドメインの sys_id または名前。 |
[表 : 13. パラメーター]

{#FlowRunner-inDomain_S__table_pcy_hmp_rlb} {#FlowRunner-inDomain_S__table_qcy_hmp_rlb__entry__2}

| タイプ | 説明 |
|-|-|
| [ScriptableFlowRunner](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#ScriptableFlowRunnerScopedAPI "フロー、サブフロー、およびアクション実行のパラメーターを定義するために使用するビルダーオブジェクトを作成します。特定のドメインで実行するフローを指定できます。ビルダーから直接フロー、サブフロー、またはアクションの実行を開始し、ScriptableFlowRunnerResult オブジェクトで結果を表示します。") | ワークフロースタジオ のアクション、フロー、またはサブフローを実行するために使用されるビルダーオブジェクト。 |
[表 : 14. 返される内容]

{#FlowRunner-inDomain_S__table_qcy_hmp_rlb}  
この例では、ScriptableFlowRunner ビルダーオブジェクトを作成し、それを使用して特定のレコードの承認アクションを実行する方法を示します。ScriptableFlowRunnerResult オブジェクトは、実行の引数とアクションの出力をキャプチャします。


    (function() {
      try {

        var inputs = {}; 

        inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c';  // Pass the record's sys_id in as input.  

        var result = sn_fd.FlowAPI.getRunner()  // Create a ScriptableFlowRunner builder object.
          .action('global.markapproved')        // Run the global scope action named markapproved.
          .inForeground()
          .inDomain('TOP/ACME')                 // Run the action from the TOP/ACME domain.                               
          .withInputs(inputs)
          .run();                               // Run the action and return a FlowRunnerResult object.

        var contextId = result.getContextId();  // Retrieve the context ID from the result
        var dateRun = result.getDate();
        var domainUsed = result.getDomainId();  // Retrieve the Domain ID from the result.
        var flowName = result.getFlowObjectName();
        var flowObjectType = result.getFlowObjectType();

        var outputs = result.getOutputs();            // Retrieve any outputs from the action execution.
        var newApprovalStatus = outputs['approval'];  // Echo back the approval status for verification.
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();
       
## ScriptableFlowRunner - inForeground() {#ariaid-title9}

フロー、サブフロー、またはアクションを同期的に実行します。フローオブジェクトの実行中は、スクリプトの実行が一時停止します。
注:  
このメソッドは、アクションを一時停止して条件を待機することはサポートしていません。「承認を求める」や「条件待ち」などの待機条件で一時停止するステップはサポートされていません。
{#FlowRunner-inForeground__table_irw_ylp_rlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 15. パラメーター]

{#FlowRunner-inForeground__table_irw_ylp_rlb} {#FlowRunner-inForeground__table_jrw_ylp_rlb__entry__2}

| タイプ | 説明 |
|-|-|
| [ScriptableFlowRunner](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#ScriptableFlowRunnerScopedAPI "フロー、サブフロー、およびアクション実行のパラメーターを定義するために使用するビルダーオブジェクトを作成します。特定のドメインで実行するフローを指定できます。ビルダーから直接フロー、サブフロー、またはアクションの実行を開始し、ScriptableFlowRunnerResult オブジェクトで結果を表示します。") | ワークフロースタジオ のアクション、フロー、またはサブフローを実行するために使用されるビルダーオブジェクト。 |
[表 : 16. 返される内容]

{#FlowRunner-inForeground__table_jrw_ylp_rlb}  
この例では、ScriptableFlowRunner ビルダーオブジェクトを作成し、それを使用して特定のレコードの承認アクションを実行する方法を示します。ScriptableFlowRunnerResult オブジェクトは、実行の引数とアクションの出力をキャプチャします。


    (function() {
      try {

        var inputs = {}; 

        inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c';  // Pass the record's sys_id in as input.  

        var result = sn_fd.FlowAPI.getRunner()  // Create a ScriptableFlowRunner builder object.
          .action('global.markapproved')        // Run the global scope action named markapproved.
          .inForeground()
          .inDomain('TOP/ACME')                 // Run the action from the TOP/ACME domain.                               
          .withInputs(inputs)
          .run();                               // Run the action and return a FlowRunnerResult object.

        var contextId = result.getContextId();  // Retrieve the context ID from the result
        var dateRun = result.getDate();
        var domainUsed = result.getDomainId();  // Retrieve the Domain ID from the result.
        var flowName = result.getFlowObjectName();
        var flowObjectType = result.getFlowObjectType();

        var outputs = result.getOutputs();            // Retrieve any outputs from the action execution.
        var newApprovalStatus = outputs['approval'];  // Echo back the approval status for verification.
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();
       
## ScriptableFlowRunner - quick() {#ariaid-title10}

実行の詳細やその他の関連レコードを作成せずに、サーバー側のスクリプトから、フロー、サブフロー、アクション、またはデータストリームアクションを同期または非同期で実行します。レコード保持のオーバーヘッドをなくすことで、パフォーマンスを向上させます。
この API を使用すると、本番環境での大量の処理 (1 秒あたり複数実行など) の速度が向上します。

レポートと生成されたレコード
:   このメソッドは、ワークフロースタジオ 設定に関係なく、実行の詳細とコンテキストレコードを作成しません。

待機条件のサポート
:   このメソッドは、アクションまたはフローを一時停止して条件を待機することはサポートしていません。「承認を求める」、「条件待ち」、「期間の待機」などの待機条件で一時停止するアクション、フローロジック、およびステップはサポートされていません。

MID サーバーのサポート
:   このメソッドは、MID サーバーから実行するアクションまたはフローの一時停止はサポートしていません。MID サーバーから実行するアクションを一時停止するデータストリームアクション前処理スクリプトも、この制約の対象となります。

データストリームアクションのサポート
:   このメソッドは、MID サーバーから前処理スクリプトを実行するデータストリームアクションの一時停止をサポートしていません。

フロー優先度のサポート
:   このメソッドは、フロー優先度設定をサポートしています。フローは指定されたフロー優先度で実行されます。
{#FlowRunner-quick__table_lmh_cmp_rlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 17. パラメーター]

{#FlowRunner-quick__table_lmh_cmp_rlb} {#FlowRunner-quick__table_mmh_cmp_rlb__entry__2}

| タイプ | 説明 |
|-|-|
| [ScriptableFlowRunner](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#ScriptableFlowRunnerScopedAPI "フロー、サブフロー、およびアクション実行のパラメーターを定義するために使用するビルダーオブジェクトを作成します。特定のドメインで実行するフローを指定できます。ビルダーから直接フロー、サブフロー、またはアクションの実行を開始し、ScriptableFlowRunnerResult オブジェクトで結果を表示します。") | ワークフロースタジオ のアクション、フロー、またはサブフローを実行するために使用されるビルダーオブジェクト。 |
[表 : 18. 返される内容]

{#FlowRunner-quick__table_mmh_cmp_rlb}  
注:  
Xanadu リリースの時点では、quick() メソッドを使用してバックグラウンドでアクション、フロー、またはサブフローを実行すると、実行 ID が ContextId 値として返されます。フローコンテキスト \[sys_flow_context\] テーブルにレコードが挿入されないため、実行 ID は実際のコンテキストレコードではありません。代わりに、実行 ID は非同期呼び出しを追跡するために使用されます。  
この例では、関連レコードを作成せずにフローを実行する方法を示します。

    (function() {
      try {

        var result = sn_fd.FlowAPI.getRunner()
          .flow('global.change__unauthorized__review')
          .inBackground()
          .quick()
          .run();

        gs.info(result.debug());

      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }

    })();

出力：


    Complex type redefined: FlowDesigner:FDCollection
    Queued flow.run.quick event in NowMQ for sys_flow_context.sys_id: d81781ec57801110403e8f90ac94f90e,
    sysevent.sys_id: 48abe270dbf20210497c1a4813961908, with priority 5
    *** Script: FlowRunnerResult
    Flow Object Name: global.change__unauthorized__review
    Flow Object Type: flow
    Domain: null
    Result Time: 2024-06-12 17:45:37
    ContextId: 08abe2706cf202107b7d3b283f7ee108
    Output count: 0

## ScriptableFlowRunner - run() {#ariaid-title11}

指定されたパラメーターでフロー、サブフロー、またはアクションを実行します。
{#FlowRunner-run__table_tjy_wmp_rlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 19. パラメーター]

{#FlowRunner-run__table_tjy_wmp_rlb} {#FlowRunner-run__table_ujy_wmp_rlb__entry__2}

| タイプ | 説明 |
|-|-|
| ScriptableFlowRunnerResultsScoped | ワークフロースタジオ アクション、フロー、またはサブフローの実行の詳細を含むオブジェクト。 |
[表 : 20. 返される内容]

{#FlowRunner-run__table_ujy_wmp_rlb}  
この例では、ScriptableFlowRunner ビルダーオブジェクトを作成し、それを使用して特定のレコードの承認アクションを実行する方法を示します。ScriptableFlowRunnerResult オブジェクトは、実行の引数とアクションの出力をキャプチャします。


    (function() {
      try {

        var inputs = {}; 

        inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c';  // Pass the record's sys_id in as input.  

        var result = sn_fd.FlowAPI.getRunner()  // Create a ScriptableFlowRunner builder object.
          .action('global.markapproved')        // Run the global scope action named markapproved.
          .inForeground()
          .inDomain('TOP/ACME')                 // Run the action from the TOP/ACME domain.                               
          .withInputs(inputs)
          .run();                               // Run the action and return a FlowRunnerResult object.

        var contextId = result.getContextId();  // Retrieve the context ID from the result
        var dateRun = result.getDate();
        var domainUsed = result.getDomainId();  // Retrieve the Domain ID from the result.
        var flowName = result.getFlowObjectName();
        var flowObjectType = result.getFlowObjectType();

        var outputs = result.getOutputs();            // Retrieve any outputs from the action execution.
        var newApprovalStatus = outputs['approval'];  // Echo back the approval status for verification.
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();
       
## ScriptableFlowRunner - subflow(文字列 scopedSubflowName) {#ariaid-title12}

実行するサブフローのスコープと名前を識別します。
関連項目：

* [ScriptableFlowRunner - action(文字列 scopedActionName)](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#FlowRunner-action_S "実行するアクションのスコープと名前を識別します。")
* [ScriptableFlowRunner - flow(文字列 scopedFlowName)](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#FlowRunner-flow_S "実行するフローのスコープと名前を識別します。")
{#FlowRunner-subflow_S__ul_v5f_vt4_gcc}
{#FlowRunner-subflow_S__table_sxg_5lp_rlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| scopedSubflowName | 文字列 | 実行するサブフローのスコープと名前。例えば、`global.subflowName` です。 |
[表 : 21. パラメーター]

{#FlowRunner-subflow_S__table_sxg_5lp_rlb} {#FlowRunner-subflow_S__table_txg_5lp_rlb__entry__2}

| タイプ | 説明 |
|-|-|
| [ScriptableFlowRunner](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#ScriptableFlowRunnerScopedAPI "フロー、サブフロー、およびアクション実行のパラメーターを定義するために使用するビルダーオブジェクトを作成します。特定のドメインで実行するフローを指定できます。ビルダーから直接フロー、サブフロー、またはアクションの実行を開始し、ScriptableFlowRunnerResult オブジェクトで結果を表示します。") | ワークフロースタジオ のアクション、フロー、またはサブフローを実行するために使用されるビルダーオブジェクト。 |
[表 : 22. 返される内容]

{#FlowRunner-subflow_S__table_txg_5lp_rlb}  
この例では、メッセージをログに記録するサブフローを実行する方法を示します。

    (function() {
      try {

        var result = sn_fd.FlowAPI.getRunner()
          .subflow('global.output_test')
          .inForeground()
          .run();
       
        gs.info(result.debug());

      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }

    })();

出力:

    record-watcher asynchronous tracking complete - time: 1 ms. Executed responders: 1 
    record-watcher asynchronous tracking complete - time: 1 ms. Executed responders: 1 
    *** Script: FlowRunnerResult
    Flow Object Name: global.output_test
    Flow Object Type: subflow
    Domain: null
    Result Time: 2024-08-02 22:52:08
    ContextId: b2dxx659bebf01101d72200x503x19pr
    Output count: 2

## ScriptableFlowRunner - timeout(数字 timeout) {#ariaid-title13}

フロー、サブフロー、またはアクション実行のタイムアウトを設定します。
{#FlowRunner-timeout_N__table_m4g_lmp_rlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| timeout | 数字 | タイムアウト (ミリ秒単位)。 |
[表 : 23. パラメーター]

{#FlowRunner-timeout_N__table_m4g_lmp_rlb} {#FlowRunner-timeout_N__table_n4g_lmp_rlb__entry__2}

| タイプ | 説明 |
|-|-|
| [ScriptableFlowRunner](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#ScriptableFlowRunnerScopedAPI "フロー、サブフロー、およびアクション実行のパラメーターを定義するために使用するビルダーオブジェクトを作成します。特定のドメインで実行するフローを指定できます。ビルダーから直接フロー、サブフロー、またはアクションの実行を開始し、ScriptableFlowRunnerResult オブジェクトで結果を表示します。") | ワークフロースタジオ のアクション、フロー、またはサブフローを実行するために使用されるビルダーオブジェクト。 |
[表 : 24. 返される内容]

{#FlowRunner-timeout_N__table_n4g_lmp_rlb}  
この例では、フローを実行し、タイムアウトを 2 分に設定する方法を示します。

    (function() {
      try {

        var result = sn_fd.FlowAPI.getRunner()
          .flow('global.test_flow')
          .inForeground()
          .timeout(120000)
          .run();

        gs.info(result.debug());

      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }

    })(); 

出力：

    Flow Designer: Cloning a new session to run as as user id: [user_name] from original user session: [user_name]
    Flow Designer: Reverting cloned session to original user session: [user_name]
    *** Script: FlowRunnerResult
    Flow Object Name: global.test_flow
    Flow Object Type: flow
    Domain: null
    Result Time: 2020-06-08 18:22:35
    ContextId: null
    Output count: 0

## ScriptableFlowRunner - validateInputs(ブール値 validateInputs) {#ariaid-title14}

いずれかのメソッド入力に予期しない値がある場合、エラーをスローし、ScriptableFlowRunner クラスが実行されないようにします。このメソッドのデフォルトは、すべての ScriptableFlowRunner 呼び出しに対して true です。
{#FlowRunner-validateInputs_B__table_vmh_2yp_rwb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| 入力を検証 | ブール | ScriptableFlowRunner メソッドの入力を検証するかどうかを示すフラグ。 有効な値は 2 つあります。 * true:入力に予期しない値がある場合にエラーをスローし、スクリプトの実行を停止します。 * false:予期しない値でのスクリプトの実行を許可します。 {#FlowRunner-validateInputs_B__ul_mdn_wzp_rwb} デフォルト：True |
[表 : 25. パラメーター]

{#FlowRunner-validateInputs_B__table_vmh_2yp_rwb} {#FlowRunner-validateInputs_B__table_wmh_2yp_rwb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 26. 返される内容]

{#FlowRunner-validateInputs_B__table_wmh_2yp_rwb}  
この例では、メソッドの入力値を検証せずにフローを実行する方法を示します。

    (function() {
      try {

        var result = sn_fd.FlowAPI.getRunner()
          .flow('global.test_flow')
          .inForeground()
          .validateInputs(false)
          .run();

        gs.info(result.debug());

      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }

    })();

出力:

    *** Script: FlowRunnerResult
    Flow Object Name: global.test_flow
    Flow Object Type: flow
    Domain: null
    Result Time: 2020-06-08 16:41:13
    ContextId: null
    Output count: 0

## ScriptableFlowRunner - withConnectionAliasOverride(文字列 aliasName, 文字列 overrideName) {#ariaid-title15}

フロー、アクション、またはサブフローに関連付けられた 接続情報と認証情報 エイリアスを上書きします。デフォルトの親エイリアスを、いずれかの子エイリアスで上書きできます。
接続情報と認証情報エイリアスの上書きの詳細については、「[複数の接続のサポート](https://www.servicenow.com/docs/access?context=support-multiple-connections&version=xanadu&pubname=xanadu-integrate-applications&ft:locale=en-US)」を参照してください。
{#FR-wConnectionAliasOverride_S_S__table_av4_gv5_rlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| parentAliasSysID | 文字列 | 親エイリアス (上書きするエイリアス) の sys_id。 |
| overrideAliasSysID | 文字列 | 子エイリアス (フロー、サブフロー、またはアクションの実行時に使用するエイリアス) の sys_id。 |
[表 : 27. パラメーター]

{#FR-wConnectionAliasOverride_S_S__table_av4_gv5_rlb} {#FR-wConnectionAliasOverride_S_S__table_bv4_gv5_rlb__entry__2}

| タイプ | 説明 |
|-|-|
| [ScriptableFlowRunner](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#ScriptableFlowRunnerScopedAPI "フロー、サブフロー、およびアクション実行のパラメーターを定義するために使用するビルダーオブジェクトを作成します。特定のドメインで実行するフローを指定できます。ビルダーから直接フロー、サブフロー、またはアクションの実行を開始し、ScriptableFlowRunnerResult オブジェクトで結果を表示します。") | ワークフロースタジオ のアクション、フロー、またはサブフローを実行するために使用されるビルダーオブジェクト。 |
[表 : 28. 返される内容]

{#FR-wConnectionAliasOverride_S_S__table_bv4_gv5_rlb}  
この例は、フローに関連付けられたデフォルトと異なるエイリアスを使用してフローを実行する方法を示しています。

    (function() {
      try {

        var result = sn_fd.FlowAPI.getRunner()
          .flow('global.test_flow')
          .withConnectionAliasOverride('sn_original_alias.spoke', 'x_new_alias.spoke')
          .inForeground()
          .run();

        gs.info(result.debug());

      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }

    })();

## ScriptableFlowRunner - withInputs(マップ inputs) {#ariaid-title16}

入力のコレクションを追加します。名前と値のペアのいずれかに名前がすでに存在する場合、既存の値が新しい値に置き換えられます。
{#FlowRunner-withInputs_O__table_zw2_vnp_rlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| inputs | オブジェクト | フロー、サブフロー、またはアクションの入力を定義する名前と値のペアを含むマップオブジェクト。 |
[表 : 29. パラメーター]

{#FlowRunner-withInputs_O__table_zw2_vnp_rlb} {#FlowRunner-withInputs_O__table_ax2_vnp_rlb__entry__2}

| タイプ | 説明 |
|-|-|
| [ScriptableFlowRunner](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#ScriptableFlowRunnerScopedAPI "フロー、サブフロー、およびアクション実行のパラメーターを定義するために使用するビルダーオブジェクトを作成します。特定のドメインで実行するフローを指定できます。ビルダーから直接フロー、サブフロー、またはアクションの実行を開始し、ScriptableFlowRunnerResult オブジェクトで結果を表示します。") | ワークフロースタジオ のアクション、フロー、またはサブフローを実行するために使用されるビルダーオブジェクト。 |
[表 : 30. 返される内容]

{#FlowRunner-withInputs_O__table_ax2_vnp_rlb}  
入力オブジェクトを作成し、値を withInputs() メソッドに渡します。


    (function() {
      try {

        var inputs = {}; 

        inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c';  // Pass the record's sys_id in as input.  

        var result = sn_fd.FlowAPI.getRunner()  // Create a ScriptableFlowRunner builder object.
          .action('global.markapproved')        // Run the global scope action named markapproved.
          .inForeground()
          .inDomain('TOP/ACME')                 // Run the action from the TOP/ACME domain.                               
          .withInputs(inputs)
          .run();                               // Run the action and return a FlowRunnerResult object.

        var contextId = result.getContextId();  // Retrieve the context ID from the result
        var dateRun = result.getDate();
        var domainUsed = result.getDomainId();  // Retrieve the Domain ID from the result.
        var flowName = result.getFlowObjectName();
        var flowObjectType = result.getFlowObjectType();

        var outputs = result.getOutputs();            // Retrieve any outputs from the action execution.
        var newApprovalStatus = outputs['approval'];  // Echo back the approval status for verification.
    		
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    	
    })();
       
## ScriptableFlowRunner - withRoles() {#ariaid-title17}

フローをトリガーしたユーザーとしてフローを実行するか、ワークフロースタジオ で追加されたロールでフローを実行します。
withRoles() メソッドと一緒に quick() を使用してフローがトリガーされると、フロープロパティで定義されたロールが取得されてフロー実行中に渡され、そのロールでフローが実行されます。  
{#FlowRunner-withRoles__table_c33_pts_qtb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 31. パラメーター]

{#FlowRunner-withRoles__table_c33_pts_qtb}  
{#FlowRunner-withRoles__table_l4l_tts_qtb__entry__2}

| タイプ | 説明 |
|-|-|
| [ScriptableFlowRunner - スコープ指定](https://servicenow-prod.fluidtopics.net/EQbAziSqeaz5keLuv620mA#ScriptableFlowRunnerScopedAPI "フロー、サブフロー、およびアクション実行のパラメーターを定義するために使用するビルダーオブジェクトを作成します。特定のドメインで実行するフローを指定できます。ビルダーから直接フロー、サブフロー、またはアクションの実行を開始し、ScriptableFlowRunnerResult オブジェクトで結果を表示します。") | ワークフロースタジオ のアクション、フロー、またはサブフローを実行するために使用されるビルダーオブジェクト。 |
[表 : 32. 返される内容]

{#FlowRunner-withRoles__table_l4l_tts_qtb}  
この例は、ScriptableFlowRunner ビルダーオブジェクトを作成し、それを使用して withRoles() および quick() メソッドを使用する特定のレコードに対して承認アクションを実行する方法を示しています。ScriptableFlowRunnerResult オブジェクトは、実行の引数とアクションの出力をキャプチャします。

    (function() {
        try {

            var outputs = sn_fd.FlowAPI.getRunner() // Create a ScriptableFlowRunner builder object.
            .flow('global.stry53225960_flow')
            .inForeground()
            .quick() //Run the flow from a server-side script.
            .withRoles() //Run the flow as the user who triggered the flow.
            .run(); // Run the action and return a FlowRunnerResult object.

        } catch (ex) {
            var message = ex.getMessage();
            gs.error(message);

        }  

    })();

### エラー {#FlowRunner-withRoles__section_ckg_zsk_5tb}

withRoles() メソッドの使用中に次のエラーが発生する可能性があります。

* withRoles() を quick()と一緒に使用しないと、操作が実行されない。
* ロールを持たないフローで withRoles() が呼び出されると、スクリプトからエラーが返される。
* withRoles() メソッドと asUser() メソッドが同時に呼び出されると、スクリプトからエラーが返される。
{#FlowRunner-withRoles__ul_zcv_ctk_5tb}

