Subflow - スコープ指定 (使用廃止)

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む3読むのに数分
  • Subflow API は、公開された フローデザイナー サブフローを実行するメソッドを提供します。

    この API は廃止され、 FlowAPI - スコープ指定、グローバル.

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

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

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

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

    スコープ指定の Subflow - startAsync(文字列 scopeName.subflowName, マップ 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);
      }
    
    })();