ワークフローでの変数の使用

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む8読むのに数分
  • ワークフロー内には、利用可能ないくつかの異なるタイプの変数があります。

    いくつかの変数は、ワークフローの一部を定義、記述、または構成します( 例:ワークフロー アクティビティ )。いくつかの変数は、ワークフロー(スクラッチパッド変数など)の実行を容易にするために特に利用できます。一部の変数は、ワークフロープロセスによって操作されるデータレコードを定義、記述、または作成します(たとえば、インシデントなどのレコードを記述するdictionary.xmlファイルに定義されているグライドレコードの要素)。

    アクティビティ変数

    アクティビティ変数は、特にワークフロー アクティビティに関連付けられたプロパティです。

    始める前に

    必要なロール:管理者

    このタスクについて

    これらは、特定のアクティビティがワークフローキャンバスにドラッグされたときにアクティビティ定義に表示される入力です。これらの変数は、ワークフロー アクティビティ、またはワークフロー アクティビティを定義、作成、または記述するプロパティです。

    アクティビティ変数は、ワークフロー アクティビティ定義内の関連リストで宣言されます。

    変数を追加、表示、変更するには:

    手順

    1. 移動先 すべて > Workflow > アクティビティ定義.
    2. ワークフロー アクティビティ(例: 承認 - ユーザー
    3. [アクティビティ変数] セクションまたはタブでは、変数の追加、表示、変更を行えます。アクティビティ変数は、システムディクショナリと同じフィールドを使用して定義されます。
      注:
      別のアクティビティ変数に依存する新しいアクティビティ変数を定義する場合は、親アクティビティ変数の名前の前に接頭辞「vars」を入力します。たとえば、子フィールドがフィールドに依存している場合は、依存フィールドに値vars.parentを設定します。
      アクティビティがキャンバスにドラッグされた後のワークフローキャンバス上のアクティビティ変数の可視性を制御するには、wf_activityテーブルでUIポリシーを使用します。
      ワークフロー アクティビティ内の変数にアクセスしたり、これらの変数に値を割り当てるには、ワークフロー アクティビティの変数varsを使用します。
       activity.vars.variable_name = new_variable_value 

    ワークフローの入力変数

    ワークフロー変数は、実行中にワークフローに渡され参照される外部値です。

    始める前に

    必要なロール:管理者

    このタスクについて

    ワークフロー変数は、スクリプト内で外部から宣言してメインワークフローに渡すことも、メインワークフロー内で宣言して、サブフローへの入力として渡すこともできます。
    注:
    要求されたアイテム[sc_request_item] テーブルに対して宣言されたワークフローには、特定の種類の入力変数があります。これらの変数の使用方法を理解するにはワークフローカタログ変数 をご覧ください。

    ワークフロー変数は、ワークフローエディタのギアメニューから使用可能なフォームで宣言されます。

    変数を追加、表示、変更するには:

    手順

    1. 移動先 すべて > Workflow > ワークフローエディター.
    2. ワークフローの編集とチェックアウト
    3. [ワークフロー アクティビティ] メニューを選択し、 入力の編集 選択します。
    4. 既存の変数を選択するか、新規 をクリックします。

      列名フィールドに記入してください。スクリプトから変数にアクセスするときは、この値を使用します。

      ワークフロー変数はワークフローキャンバスに表示されず、[ワークフロー アクティビティ] メニューからの表示にのみ使用できます。

      入力変数はスクリプトで使用できます。スクリプトから入力変数にアクセスするには:
      var input  = workflow. variables. variableName //get the workflow variable identified by column name.

    ワークフロー外部からの変数への値の割り当て

    ワークフローで宣言された後、ワークフローが開始される変数に値を割り当てることができます。

    次の例は、スクリプトインクルード、ビジネスルール、またはUIアクションでワークフロー変数の値を設定する方法を示しています。
     
    //Declare an instance  of workflow.js 
    var wf  = new Workflow ( ) //Get the workflow id 
    var  wfId  = wf. getWorkflowFromName ( "Workflow Name" ) ; 
    //Start workflow, passing along name : value pair(s) for mapping to variable 
    //where input_var_name is the name of the variable declared in gear menu 
    //and input_var_value is whatever that value should be for this execution of 
    //workflow
    wf. startFlow (wfId , null , "Workflow Name" , {input_var_name : input_var_value } ) ;
    複数の変数を渡すより読みやすい方法を示すもう1つの例は、オブジェクトを宣言し、オブジェクトに名前/値を追加し、それを渡すことです。
    //Declare an instance  of workflow.js 
    var wf  = new Workflow ( ) 
    //Get the workflow id 
    var  wfId  = wf. getWorkflowFromName ( "Workflow Name" ) ; 
    //Start workflow, passing along object containing name/value pairs mapping to inputs expected by the workflow 
    var vars  = { } ;
    vars. input_var_name1 = input_var_value1 ;
    vars. input_var_name2 = input_var_value2 ; 
    // add as many variables as your workflow is expecting, then pass the object
    wf. startFlow (wfId , null , "Workflow Name" , vars ) ;

    メインワークフロー内部からのサブフロー入力値の割当

    入力を受け入れるワークフローが別のワークフロー内から呼び出された場合、それらの入力値は、ワークフロー アクティビティのUI内のワークフローキャンバスから設定できます。サブフロー用に宣言された各入力変数には、アクティビティにテキストボックスの入力領域が表示されます。これらのテキストボックス内で、変数はスクラッチパッドまたは現在のレコードのいずれかから任意の値で設定できます。

    詳細については、「サブフローとして使用されるワークフロー」を参照してください。

    ワークフロー入力変数の値の読み取り

    ワークフロー入力変数の値は、現在のワークフローオブジェクトをドットで歩くことによってjavascriptを受け入れるワークフロー内のどこにでもアクセスできます。
    var readValue = workflow.inputs.variable_name;

    スクラッチパッド変数

    文字列ベースの変数をワークフロー アクティビティ間の名前と値のペアとして格納して共有します。

    スクラッチパッドは、実行中のワークフローのインスタンスに対してグローバルであり、したがって、すべてのアクティビティに同じように使用できます。

    宣言

    スクラッチパッド自体は、実行中のワークフローで自動的に使用可能で、特定の宣言は必要ありません。変数は、変数を参照することによって同時に宣言され、スクラッチパッドに格納されます。例:
    workflow.scratchpad.variableName = variableValue;

    表示

    ワークフローアクティビティ履歴スクラッチパッド [wf_history_scratchpad] テーブルからのアクティビティスクラッチパッドの値を表示します。ワークフローアクティビティ履歴スクラッチパッドは、ワークフローアクティビティ履歴レコードの埋め込みリストです。

    図 : 1. ワークフロー アクティビティ履歴スクラッチパッド

    アクセスと割り当て

    スクラッチパッドの値にアクセスしたり、割り当てたりするには、標準のJavaScriptオブジェクト表記法を使用します。たとえば、このフォーマットを使用して特定のスクラッチパッド変数値を割り当てます。
    workflow.scratchpad.variableName = variableValue;
    この形式を使用して、JavaScript変数をスクラッチパッド変数に割り当てます。
    var myValue = workflow.scratchpad.variableName;

    現在の変数

    現在は、ワークフローのプロパティテーブル内のテーブルへの関連付けまたはカタログアイテムに関連付けられて、ワークフローを開始したデータベースGlideRecordがあります。

    宣言

    現行の変数は、データベース・レコードをサポートするdictionary.xmlファイルで定義されている列です。実行時に現在のレコードに変数を追加する方法はありません。

    表示

    現在のレコードの変数は、それらを使用するアプリケーション全体で、グライドフォームとリストに表示されます。

    アクセスと割り当て

    変数にアクセスしたり、ワークフロー アクティビティ内の変数に値を割り当てるには、グライド要素を参照して現在のレコードから値を取得します。
    var myVarValue = current.getElement(nameOfTheField);
    または
    var myVarValue = current.fieldName;
    または
    current.variableName.setValue( "A Variable Value");