3.1.2 変数

LANSA Composer

3.1.2 変数


処理シーケンスには変数プールが含まれています。ここに格納された変数をアクティビティや変換マップのパラメータとして使用したり、処理シーケンス命令を使用してテストまたは操作したりすることができます。

[処理シーケンスエディタ]の[変数]タブを使用して、変数を表示してアクセスすることができます。

処理シーケンスの変数に関しては以下の点に注意してください。

·    変数がパラメータとしてまたは処理シーケンス命令内で使用または参照されるとき、変数プールの変数は暗黙で使用可能になります。処理シーケンス内での変数の明確な定義はありません。

·    変数名は大文字小文字が区別されません。例えば、&ftpconfigと&FTPCONFIGは同じ変数を参照します。

·    変数は大まかなタイプに分類されています。変数の値が意図した目的に適切かどうかは、アクティビティと処理シーケンスの設計者が確認してください。

·    変数への参照にインデックスを付けることにより、「リスト」として使用することもできます。詳細は「リスト」を参照してください。

 

変数の使用

変数を使用して状態を維持したり、処理シーケンス内の1つのアクティビティから後続の別のアクティビティに情報を渡したりできます。例えば、提供されているアクティビティFTP_INBOUNDは、FTP操作で取得したファイルのリストを返します。このリストを使用して、処理シーケンス内の後続の命令とアクティビティを制御することができます。

多くの場合,処理シーケンス変数は使用された変数データを保持し、処理を結合するために使用されます。例えば、処理されたトランザクション・ドキュメントのパスなどです。

アプリケーション・データ項目、例えば現在の注文や顧客番号など、を保つために処理シーケンス変数が使用されることはめったにありません。こういったタイプのデータは多くの場合、処理シーケンス内もしくは処理シーケンスから呼び出されるLANSAファンクション、Javaや3GLプログラム内で使用される、アクティビティや変換マップにより処理されます。

ただし、時によってはこのようなアプリケーション・データ項目を処理シーケンス変数や変数リストに入れる方が望ましい、またはそうしなければならない場合もあります。例えば、入ってきた販売注文が含まれるトランザクション・ドキュメントを変換した後、処理シーケンスがその注文を更に処理するLANSAファンクションなどにパラメータとして引きわたす、バッチナンバーや注文番号もしくは顧客番号といったIDキーを認識しておく必要がある場合もあります。

この処理を行う方法は何通りかあります。最もよく使われる方法としては次のようなものがあります。

  • 変換マップを使用して必要なデータをトランザクション・ドキュメント・ファイルもしくはデータベースから取得し、CSV(コンマで区切られた変数)ファイルに格納する。
  • FOR_EACH_TXTLINまたはFOR_EACH_CSVROWアクティビティを使用してテキストやCSVファイルの内容を読み込む
  • 必要な情報を取り出し、戻すファンクションまたはプログラム、もしくはカスタム・アクティビティを書く。
  • IBM i サーバーでは、データエリアとメッセージ待ち行列を利用して、GET_DTAARA、PUT_DTAARA、MSGQ_SEND、MSGQ_RECEIVEなどのアクティビティを活用し、他のプログラムや処理と情報を交換することができます。

更にLANSA ComposerではXMLファイル・フォーマットを定義し、処理シーケンス変数を保存したりロードするアクティビティや、アプリケーション・データをこのファイル・フォーマットに変換したり、その反対の変換を行うアクティビティも提供されています。詳細は以下を参照してください。

処理シーケンス変数の保存、ロードおよび変換