ビルトインの CurrentLoopIteration および OverallLoopDuration システム変数を使用する代わりに、カスタム ループ変数を作成し、それらを独自に管理できます。 CA Process Automation の以前のバージョンでは、この方法が必要でした。 たとえば、ループの最初の繰り返しの開始時刻から、各ループの現在の時刻までの期間を計算するロジックを作成できます。 また、実行前処理コードと実行後処理コードを使用して、以下のようなループへの入力をセットアップできます。
インデックス付きデータセット フィールドのすべての要素をループ処理するには、まずユーティリティ グループの[JavaScript の実行]オペレータを使用して、データセット フィールドの CurrentIndex 要素を 0 に初期化します (たとえば、次の式は、プロセス変数 X の CurrentIndex 要素を 0 に初期化します)。
Process.X.CurrentIndex=0;
データセット フィールドのインデックス付き要素をループ処理する方法
Process.X.Size
Process.X.CurrentIndex=Process.X.CurrentIndex+1;
この場合、CurrentIndex 要素は、ループのカウンタとして働きます。 CurrentIndex の設定を使用して、計算式でインデックス付きフィールドの要素にアクセスできます。 例:
Process.X[Process.X.CurrentIndex];
注: Visual BASIC などの、1 から始まる配列を使用するプログラミング言語に慣れている場合、インデックス付きデータセット フィールドは 0 から始まる配列なので、注意してください。 1 から始まる配列では、最初の要素には 1 のインデックスが付けられ、最後の要素には要素の数のインデックスが付けられます。 インデックス付きデータセット フィールドの最初の要素はインデックスとして 0 が付けられ、最後の要素はインデックスとしてフィールドの Size 要素の値から 1 を引いた数が付けられます。
インデックス付きデータセット フィールドの要素にアクセスすることに加えて、ループ処理中の繰り返しの数を他の目的のために追跡できます。 インデックス変数として、process.i などのプロセス変数を使用します。 ループ処理されるオペレータに先行するインタープリタ モジュール計算オペレータで、プロセス変数をループの開始値に初期化します (process.i=1 など)。 ループ処理の繰り返しが 1 回完了するごとにインデックス変数を加算するには、オペレータの実行後処理コードで式を使用します。 例:
Process.i=Process.i+1;
注: このトピックの手順は不要になったと考えられますが、レガシー コードのリファレンスとして含まれています。 新しいシステム変数を使用する場合、手順 2 のみが適用され、手順 3 は以下のように置き換えられます。 ループするオペレータの CurrentLoopIteration 変数を使用して、計算式でインデックス付きフィールドの要素にアクセスします。 例:
Process.X[Process[OpName].CurrentLoopIteration];
|
Copyright © 2013 CA.
All rights reserved.
|
|