9.6.9 反復アクティビティのアクティビティ・プロセッサの実装

LANSA Composer

9.6.9 反復アクティビティのアクティビティ・プロセッサの実装


反復アクティビティは、処理シーケンスで反復処理を実行するための特別な形式のアクティビティです。詳細については、「反復アクティビティ」を参照してください。

独自の反復アクティビティを定義する場合は、反復動作に対応するように、特別な方法でアクティビティ・プロセッサを実装する必要があります。反復アクティビティのアクティビティ・プロセッサはアクティブなままでなければなりませんが、反復のたびに制御を処理シーケンス・コントローラに返す必要があります。そのためには、DXACTBAS1 AncestorクラスのExecuteIterationメソッドを呼び出します。

ExecuteIterationメソッドを呼び出す前に、出力変数を設定する必要があります。特に、(反復アクティビティによくあるように)1回の反復と次の反復で変数の値が異なる場合に必要です。出力変数の値の設定の詳細については、「変数プールへのアクセス」を参照してください。

アクティビティ・プロセッサがExecuteIterationメソッドを実行するたびに、制御が一時的に処理シーケンス・コントローラに返されます。これによって、処理シーケンス・コントローラが、反復アクティビティの下部にネストされている可能性のある処理シーケンスのすべての命令を処理することができます。

ExecuteIterationメソッドは、処理を続行するかどうかを示すブール値を返します。戻り値がFalseの場合は、それ以上反復を実行せずに、アクティビティ・プロセッサが即座に終了する必要があります。例えば、例外が発生した場合や反復アクティビティの下部にネストされた処理シーケンス命令のブロックの実行中に、LEAVE処理シーケンス命令に遭遇した場合などが考えられます。

以下の例は、用意されたFOR_EACH_INDEXアクティビティにActivityRunメソッドを実装する方法を示しています。これは、非常にシンプルですが役に立つ反復アクティビティです。