コンポーネント内のすべてのデータは、変数として <context>
保存されます。変数は、必要な場所に応じて、コンポーネントのワークフローまたはステップスコープで宣言および初期化できます。
<context>< param name="Title" type="string">いずれか選択してください</param>< /context>
使用可能なデータ型: 、、 bool
double
、および object
long
.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 です>
ヒントとコツ: コンポーネント間でデータを渡す場合、通常、アクションで finish_workflow
出力パラメーターを使用する必要があります。この場合、出力は後続のコンポーネントの開始ステップのステップスコープで使用できます。ルートスコープは、これでは不十分で、出力パラメータの管理が複雑になりすぎる場合にのみ使用してください。
上記の例は、データ変数にアクセスする方法も示しています。
context_update
タグでは、2 つの変数が同じ setvar アクションで設定されます。
current_step_index
は、コンテキスト変数 #{current_step}
にアクセスし、それを 1 ずつインクリメントすることで設定されます。string_concat
は、既存のコンテキスト変数との文字列連結の例を示しています。データ変数へのアクセスは、名前を '#{' で始まり '}' で囲む ことで機能します。
user_session
は、ユーザーがサインアウトするまで値をグローバルに保存します。ユーザーがワークフローを離れ、同じワークフローまたは別のワークフローに入った後でもアクセスできます。を使用してアクセスできます #{user_session::my_value}
。課題1:ルートコンテキストがどのように機能するかをテストしてみましょう。
setvar
アクションを使用して、ユーザーの選択をルート変数 choice
に保存します。#{choice}
。ワークフローを実行すると、選択した値がコード比較コンポーネントのヘッダーに表示されます。課題 2: 前述のように、ルート コンテキストは慎重に使用する必要があり、特に同じワークフローでコンポーネントを再利用する場合はリスクを伴います。以前に行った変更を元に戻すか (ワークフロー パネルの [ワークフローの公開] オプションの横にある古いバージョンを選択できます)、既存のコードを変更します。
finish_workflow
出力パラメーターとして渡します。これまで見てきたように、構成パネルでコンテキスト変数を使用することもできます。これは、以前のユーザーアクションに基づいてコンポーネントを構成するのに役立ちます。
ルート変数を使用したワークフローのダウンロード(割り当て後)
出力パラメータを使用したワークフローのダウンロード(割り当て後)
質問: 「コード比較」とは別のコンポーネントを挿入しようとしましたが、変数の実際の内容ではなく、タイトル(または別の変数名)が表示される #{initialChoice}
ようになりました。なぜでしょうか。
回答: すべての標準コンポーネントが、変数をすぐにレイアウトに評価できるように記述されているわけではありません。任意のコンポーネントを変更して動作させることもできますが、ここではユーザー インターフェイスとコンポーネント構成に関する知識について触れていますが、これについては後のレッスンで説明します。「コード比較」コンポーネントと他のコンポーネントとの違いは、コード比較コンポーネントが設定値をマッピングに直接挿入するのに対し、他のコンポーネントは設定でコンテキスト変数を初期化することです。これを他のコンポーネントで機能させる簡単な方法は、設定値をマッピングまたはレイアウトに直接配置することです。
<mapping> <ui_element name="Topic"> <param name="content">§{configuration.labels.value.title.value}§</param>< /ui_element> </mapping>
これで 3 回目のレッスンは終了です。次のレッスンでは、ルール式について深く掘り下げます。