サブフロー :スコープ対象 (使用廃止)

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:3分
  • サブフロー API は、公開されたワークフロースタジオサブフローを実行するためのメソッドを提供します。

    この API は廃止され、 FlowAPI - スコープ対象、グローバル に置き換えられました。

    サブフロー API はサーバースクリプトでのみ使用できます。

    sn_fd 名前空間を使用して、サブフロー API にアクセスします。

    サブフロー API を使用してサブフローを操作する前に、まずワークフロースタジオインターフェイスでサブフローを作成して公開する必要があります。サブフロー API はビルド済みサブフローとのみやり取りするため、クラスのコンストラクターはありません。

    注:
    インスタンスのパフォーマンスを最適化するには、非同期ビジネスルールスクリプトからこれらのメソッドを呼び出さないようにします。代わりに、ワークフロースタジオの UI 内でスケジュール済みジョブレコードを作成します。

    サブフロー:startAsync(String scopeName.subflowName, Map inputs)

    公開されたサブフローを非同期で実行します。

    非同期呼び出しはブロックされないため、クライアントはサブフローの完了を待たずにスクリプト内の他のコードを実行できます。

    表 : 1. パラメーター
    名前 タイプ 説明
    scopeName.subflowName 文字列 サブフローのアプリケーションスコープと実行するサブフローの内部名。scopeName が含まれていない場合、現在ログインしているユーザーのスコープが使用されます。ワークフロースタジオ ランディングページの [内部名] 列を使用して、サブフローの内部名を取得します。
    入力 マップ サブフロー入力を定義する名前と値のペア。サブフローに必須入力が含まれている場合は、それらを含める必要があります。参照またはドキュメント ID フィールドタイプの入力には、GlideRecord オブジェクトを値として使用します。
    表 : 2. 戻り値
    タイプ 説明
    オブジェクト 次のプロパティを含む PlanResponse オブジェクト:
    • contextId:実行されたサブフローの実行の詳細レコードのSys_id。ワークフロースタジオ の [フロー実行] タブに移動し、sys_idでフィルタリングして、実行の詳細にアクセスします。
    サブフローが次の場合に例外が発生します。
    • 指定されたアプリケーションスコープ内に存在しないか、サブフローまたはスコープ名のスペルが間違っています。
    • 公開されていません。
    • サブフロー入力と一致しない入力オブジェクトが渡されます。
    • com.glide.hub.flow_engine.indirect_recursion_limit システムプロパティで設定された再帰制限を超えています。デフォルト値は 3 です。
    //Run a subflow that takes two inputs: user, a sys_user record, and laptop_welcome_message, a string.
    (function startSubflowAsync() {
    
      try {
        var userToProvisionFor = new GlideRecord('sys_user');
        userToProvisionFor.get('62826bf03710200044e0bfc8bcbe5df1');
    
        var inputs = {};
        inputs['user'] = userToProvisionFor;
        inputs['laptop_welcome_message'] = 'Welcome Onboard!!';
    
        var result = sn_fd.Subflow.startAsync('sn_devstudio.provisionlaptop', inputs);
    
        //The Sys ID of a flow execution (contextId)
        var contextId = result.contextId;
    
      } catch (ex) {
        var message = ex.getMessage();
        gs.error(message);
      }
    
    })();