• 検索結果がありません。

変数と定数

ドキュメント内 ASTERIA WARP book 1708 (ページ 41-47)

レイヤーの利用

4.8 変数と定数

フローを流れるストリームとは別に、任意の値を保持したり参照したい場合がありますが、フ ローではその際に「変数」を使用します。フローデザイナーで変数に値を設定するには、マッ

4

4.8 変数と定数

パーの右側の変数フィールドに値をマッピングします。変数の値を参照するには、左側の変数 フィールドから値をマッピングします。

フローサービスの変数は、役割とスコープに応じて数種類ありますが、主な変数は次の表のと おりです。

変数の種類 説明

フロー変数 実行しているフロー内で設定と参照が可能な変数

システム変数 環境情報など、フローサービスによって設定される変数で、参照のみ可能 マッパー変数 Mapperコンポーネントで定義して使用する変数

外部変数 複数のフローやプロジェクトで共有できる変数で、以下の4種類 (1)定数

(2)リクエスト変数:リクエストが有効な間、使用できる (3)セッション変数:セッションが有効な間、使用できる (4)アプリケーション変数:永続的に使用できる

新しいフロー変数を定義する場合は、フローデザイナーの右下の変数ペインへ追加します。

「変数」タブをクリックすると変数ペインが表示されます。変数を追加するには、「変数名」欄 に名前を入力し、必要に応じて「データ型」やその他の情報を設定します。

Tips: システム変数の参照と定義

システム変数を参照するには、フローを開いた状態でツールバーの「システム変数」アイコ ンをクリックし、表示される「システム変数の選択」ダイアログで使用したい変数にチェック を入れます(システム変数は、フローサービスによってあらかじめ定義されている変数です)。

また、新しい外部変数を定義する場合は、ツリーペインの上の「外部変数セットの作成」アイ コンをクリックし、表示される「外部変数セットの作成」ダイアログで変数を追加します(外 部変数セットはStandardエディション以上の機能です)。

4

4.8 変数と定数

「外部変数セットの作成」ダイアログで変数を設定し「OK」をクリックして閉じると、左の ツリーペインに外部変数アイテムが追加表示されます。開いたフロー上へこれをドラッグ&ド ロップすると外部変数が使用可能になり、マッパーに外部変数が表示されます。ツリーペイン の外部変数アイテムをドラッグ&ドロップしていないフローでは、外部変数を使用できません。

それでは「CSVファイル処理(条件分岐)」フローを新しく修正し、フロー変数を使用するフ ローを作ってみましょう。このフローでは、BranchStartコンポーネントの条件式と、マッパー のレイヤー条件式の右辺に変数を使用し、そのときの変数の値で条件判断するようにしたいと思 います。ここでは先頭のマッパーで単純に変数の値を設定していますが、本来は、何らかのロ ジックで変数の値を決め、その値で条件判断するような流れとなります。

1. 左上のツリーペインで「CSVファイル処理(条件分岐)」フローを右クリックし、メニュー から「複製」を選択して、フローの名前を「CSVファイル処理(変数使用)」(「( )」は全 角)とします。

2. コンポーネントの位置を整え、先頭にMapperコンポーネント(「お気に入り」の「デー タをマッピングします」)を追加して、それらを接続します。

3. 先頭のマッパーではストリームを加工しません(この場合はそもそも入力のストリームは ありません)ので、「入力をそのまま出力」プロパティを「はい」に設定します。

4. 右下の変数ペインの「変数名」欄に「keyword」と入力して新しいフロー変数(keyword) を追加します。

5. 先頭のマッパーをダブルクリックし、Const関数(「お気に入り」の「文字列定数」)を配 置した後、そのConst関数をダブルクリックして「SJS」の文字列を入力します(その結 果「データ」プロパティに「SJS」の文字列が設定されます)。

6. マッピングウィンドウで、Const関数の出力を、右側のフロー変数「keyword」へ接続し

4

4.8 変数と定数

ます(これで実行時に、「keyword」変数に「SJS」文字列が格納されます)。

7. BranchStartコンポーネントの「条件式」プロパティの設定を「$record.注文番号 ~=

$flow.keyword」に変更します(「$flow」はフロー変数を指す予約語です)。

8. 2番めのマッパー(ここではMapper1)のレイヤー1の条件式を「$record.注文番号~=

$flow.keyword」に変更します。また「条件なしレイヤー」のEmbed関数をダブルクリッ クし、「データ」プロパティを「output/variable_$input1」に変更します。

このフローを実行すると、「CSVファイル処理(条件分岐)」フローのときと同様に、新しく

「variable_sample1.csv」ファイルが生成され、「variable_sample2.csv」ファイルは生成されま せん。

ドキュメント内 ASTERIA WARP book 1708 (ページ 41-47)

関連したドキュメント