コンポーネント内のすべてのデータは、変数として <context> 保存されます。変数は、必要な場所に応じて、コンポーネントのワークフローまたはステップスコープで宣言および初期化できます。

<context>< 
    param name="Title" type="string">いずれか選択してください</param><
/context>

使用可能なデータ型: 、、 booldouble 、および  objectlong .string

: 常にデータ・タイプを指定することがベスト・プラクティスです。

コンポーネントの例

 setvar このアクション を使用してデータを操作します。このアクションは、宣言されていない変数の宣言と設定にも使用できます。

<setvar id="next_step">
    <context_of>workflow</context_of>       
<!-- 可能な値: step, workflow, root, user_session,global -->
    <context_update><
        param name="current_step_index" type="long">#{current_step} + 1</param>
        <param name="string_concat" type="string">Step #{step_name} と説明: #{step_description}</param>
    </context_update>
</setvar です>
  • <context_of> 要素を使用すると、変数が格納されるスコープを設定できます。このアクションは、データを「ルート」、「user_session」、または「グローバル」スコープに格納する場合に使用されます。これらのスコープを使用する場合は、変数の名前付けに注意してください。同じ変数名を使用する他のコンポーネント/ワークフローが副作用を引き起こさないことを確認します(特に、これらのスコープにアクセスするコンポーネントを再利用する場合)

ヒントとコツ: コンポーネント間でデータを渡す場合、通常、アクションで finish_workflow 出力パラメーターを使用する必要があります。この場合、出力は後続のコンポーネントの開始ステップのステップスコープで使用できます。ルートスコープは、これでは不十分で、出力パラメータの管理が複雑になりすぎる場合にのみ使用してください。

上記の例は、データ変数にアクセスする方法も示しています。

 context_update タグでは、2 つの変数が同じ setvar アクションで設定されます。

  • 最初のパラメータ current_step_index は、コンテキスト変数 #{current_step} にアクセスし、それを 1 ずつインクリメントすることで設定されます。
  • 2 番目の変数 string_concatは、既存のコンテキスト変数との文字列連結の例を示しています。

データ変数へのアクセスは、名前を '#{' で始まり '}' で囲む ことで機能します。

  • 最後に、特別なスコープ user_session は、ユーザーがサインアウトするまで値をグローバルに保存します。ユーザーがワークフローを離れ、同じワークフローまたは別のワークフローに入った後でもアクセスできます。を使用してアクセスできます #{user_session::my_value}

📌割り当て

課題1:ルートコンテキストがどのように機能するかをテストしてみましょう。

  • この setvar アクションを使用して、ユーザーの選択をルート変数 choiceに保存します。
  • 「コード比較」コンポーネントをワークフローに挿入します。
  • コンポーネント構成入力フィールド「Labels -> Component Title」を入力します #{choice} 。ワークフローを実行すると、選択した値がコード比較コンポーネントのヘッダーに表示されます。
  • 試してみて、選択肢が "コード比較" コンポーネントに正しく表示されていることを確認してください。

課題 2: 前述のように、ルート コンテキストは慎重に使用する必要があり、特に同じワークフローでコンポーネントを再利用する場合はリスクを伴います。以前に行った変更を元に戻すか (ワークフロー パネルの [ワークフローの公開] オプションの横にある古いバージョンを選択できます)、既存のコードを変更します。

  • 代わりに、ワークフロースコープで選択内容を保存してください。
  • その変数の内容をアクションの finish_workflow 出力パラメーターとして渡します。
  • 出力パラメーターを "コード比較" コンポーネントの構成パネルに配置し、動作するかどうかをテストします。

コンポーネントのダウンロード(事前割り当て)

ヘルプとリソース

ソリューションノート

これまで見てきたように、構成パネルでコンテキスト変数を使用することもできます。これは、以前のユーザーアクションに基づいてコンポーネントを構成するのに役立ちます。

 ルート変数を使用したワークフローのダウンロード(割り当て後) 

 出力パラメータを使用したワークフローのダウンロード(割り当て後)

FAQ

質問: 「コード比較」とは別のコンポーネントを挿入しようとしましたが、変数の実際の内容ではなく、タイトル(または別の変数名)が表示される #{initialChoice} ようになりました。なぜでしょうか。

回答: すべての標準コンポーネントが、変数をすぐにレイアウトに評価できるように記述されているわけではありません。任意のコンポーネントを変更して動作させることもできますが、ここではユーザー インターフェイスとコンポーネント構成に関する知識について触れていますが、これについては後のレッスンで説明します。「コード比較」コンポーネントと他のコンポーネントとの違いは、コード比較コンポーネントが設定値をマッピングに直接挿入するのに対し、他のコンポーネントは設定でコンテキスト変数を初期化することです。これを他のコンポーネントで機能させる簡単な方法は、設定値をマッピングまたはレイアウトに直接配置することです。

<mapping>
    <ui_element name="Topic">
        <param name="content">§{configuration.labels.value.title.value}§</param><
    /ui_element>
</mapping>

これで 3 回目のレッスンは終了です。次のレッスンでは、ルール式について深く掘り下げます。