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

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

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

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

    名前空間 sn_fd を使用して、Subflow API にアクセスします。

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

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

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

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

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

    表 : 1. パラメーター
    名前 タイプ 説明
    scopeName.subflowName 文字列 実行するサブフローのアプリケーションスコープとサブフローの内部名。scopeName が含まれていない場合、現在ログインしているユーザーのスコープが使用されます。内部名列 (ワークフロースタジオ ランディングページ上) を使用してサブフローの内部名を取得します。
    inputs マップ サブフロー入力を定義する名前と値のペア。サブフローに必須の入力が含まれている場合は、それを含める必要があります。[参照] または [ドキュメント 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);
      }
    
    })();