イテレーター

イテレーターは、ループまたは反復を実装するサブダイアグラムの特殊な形式です。

イテレーターを使用して、以下に対して操作を実行します。

イテレーターをループとして使用することもできます。ループの初期化、テスト、増分に必要な値を指定するには、「Iterator Properties」ダイアログ・ボックスを使用します。

イテレーター・ダイアグラムは、サブダイアグラムまたはその他のイテレーターを呼び出すことができます。階層ビジネス・オブジェクトまたは階層ビジネス・オブジェクト配列を処理するには、イテレーターの階層が必要です。

親ダイアログの実行がイテレーター・シンボルに到達すると、制御がイテレーター・アクティビティー・ダイアグラムに渡されます。コラボレーションは、ビジネス・オブジェクトの各属性またはビジネス・オブジェクト配列内の各ビジネス・オブジェクトに対してイテレーター・ダイアグラムの実行を繰り返します。「Iterator Properties」ダイアログに指定されているイテレーター変数を介して、現在イテレーター内にある項目にアクセスできます。

イテレーターの実行が完了すると、制御は親ダイアグラムに渡されます。

イテレーターの作成

イテレーターをアクティビティー・ダイアグラムに追加する手順は、以下のとおりです。

  1. シンボル・ツールバーの「イテレーター」ボタンをクリックします。
  2. ワークスペース内の任意の位置をクリックしてイテレーター・シンボルを配置します。

    シナリオ・ツリーで、イテレーターの固有 ID が親ダイアグラムの下に階層的に配置された状態で表示されます。シナリオ・ツリーでは、名前が以下のフォーマットで表示されます。

    (UID)
     

    イテレーターにラベルを使用する場合、シナリオ・ツリーでは、名前が以下のフォーマットで表示されます。

    label (UID)
     

    UID は、シナリオ・ツリー内のイテレーター・オブジェクトの名前でもある固有 ID です。

    その他のシンボルの UID のように、イテレーターの UID を表示するかどうかを選択できます。UID の表示のオン/オフを切り替えるには、テンプレート・ツリーのシナリオ・ノードのコンテキスト・メニューを使用します。

イテレーター変数の作成

ビジネス・オブジェクトの配列またはビジネス・オブジェクトの属性を処理するイテレーターには、反復で処理される項目を保持する変数が設定されている必要があります。このイテレーター変数は、実際に「シナリオ定義」ダイアログ・ボックスで作成され、初期化されるシナリオ変数です。イテレーターのプロパティーを定義する前にイテレーター変数を作成してください。

イテレーターがビジネス・オブジェクトの属性を処理する場合は、Object を使用して現在の属性を保持できます。例えば、以下のように宣言できます。

Object iterAttr = null;
 

イテレーターが配列内のビジネス・オブジェクトを処理する場合は、タイプ BusObj の変数を使用して現在のビジネス・オブジェクトを保持できます。以下に例を示します。

BusObj iterBusObj = new BusObj("LineItem");
 

イテレーターがループとして使用される場合には、イテレーター変数を作成する必要はありません。処理中にシステムによりイテレーター変数が自動的に作成されます。ループ索引変数は getCurrentLoopIndex() API を使用して検索できます。

イテレーターの定義

イテレーターがアクティビティー・ダイアグラムに表示されたら、「Iterator Properties」ダイアログ・ボックスでそのプロパティーを定義できます (図 45 を参照)。

図 45. 「Iterator Properties」ダイアログ・ボックス


「Iterator Properties」ダイアログ・ボックスを開くには、イテレーターを右マウス・ボタンでクリックし、コンテキスト・メニューから「プロパティー」を選択します。イテレーターのラベルを定義し、説明を入力できます。ラベル定義と説明入力のプロパティーはオプションです。使用するイテレーターのタイプによっては、他のプロパティーも定義する必要があります。以降のセクションでは、各タイプのイテレーターを定義する際の要件について説明します。

ビジネス・オブジェクトの属性に対するイテレーターの使用

ビジネス・オブジェクトの属性を繰り返し操作するには、以下の手順を実行します。

  1. 「イテレーター変数」フィールドに、反復で処理する項目を保持するための変数を指定します。このフィールドのドロップダウン・リストには、テンプレート変数とシナリオ変数がすべて表示されます。リストから変数を選択するか、またはフィールドに変数名を直接入力できます。
  2. 「ビジネス・オブジェクトの属性について繰り返す」ラジオ・ボタンをクリックします。
  3. 「このビジネス・オブジェクト全体について繰り返す」フィールドに、属性を繰り返し操作するビジネス・オブジェクトを指定します。このフィールドに名前を直接入力するか、またはドロップダウン・リストからビジネス・オブジェクトを選択します。
  4. 「適用」をクリックします。

イテレーターのプロパティーを定義したら、次にそのアクティビティー・ダイアグラムを編集し、処理対象の各属性に対するイテレーターの処理内容を定義する必要があります。イテレーターのアクティビティー・ダイアグラムを開くには、Process Designer Express のテンプレート・ツリー・ビューでイテレーター名をダブルクリックします。

配列のビジネス・オブジェクトに対するイテレーターの使用

配列のビジネス・オブジェクトを繰り返し操作するには、以下の手順を実行します。

  1. 「イテレーター変数」フィールドに、反復で処理する項目を保持するための変数を指定します。このフィールドのドロップダウン・リストには、テンプレート変数とシナリオ変数がすべて表示されます。リストから変数を選択するか、またはフィールドに変数名を直接入力できます。
  2. 「配列のビジネス・オブジェクトについて繰り返す」ラジオ・ボタンをクリックします。
  3. 「この配列全体について繰り返す」フィールドに、繰り返し操作する配列を指定します。このフィールドに名前を直接入力するか、またはドロップダウン・リストから配列を選択します。

    フィールドに値を直接入力する場合には以下の構文を使用してください。

    BusinessObjectVariable.AttributeName
     

    BusinessObjectVariable は親ビジネス・オブジェクトの名前、AttributeName は子ビジネス・オブジェクトの配列を示す属性の名前です。

    例えば、変数 order に含まれるビジネス・オブジェクトの Item 属性によって示される配列のビジネス・オブジェクトを繰り返すには、「この配列全体について繰り返す」フィールドに order.Items と入力します。

  4. 「適用」をクリックします。

イテレーターのプロパティーを定義したら、次にそのアクティビティー・ダイアグラムを編集し、処理対象の各ビジネス・オブジェクトに対するイテレーターの処理内容を定義する必要があります。イテレーターのアクティビティー・ダイアグラムを開くには、Process Designer Express のテンプレート・ツリー・ビューでイテレーター名をダブルクリックします。

ループとしてのイテレーターの使用

ループを定義する手順は、以下のとおりです。

  1. 「ループ」ラジオ・ボタンをクリックします。
  2. 「開始値」フィールドに、カウンター変数の初期値を指定します。値を保持する変数をドロップダウン・リストから選択するか、または値をこのフィールドに直接入力できます。
  3. 「条件」フィールドに、ループ実行条件を指定します。この条件が true の場合にループが実行されます。ドロップダウン・リストには、テンプレートで定義されているブール値変数がすべて表示されます。使用する変数を選択するか、またはフィールドに条件を直接入力します。
  4. 「増分」フィールドに、カウンター変数の値の増分方法を指定します。
  5. 「適用」をクリックします。

イテレーターのプロパティーを定義したら、次にそのアクティビティー・ダイアグラムを編集し、処理対象の各属性または各ビジネス・オブジェクトに対するイテレーターの処理内容を定義する必要があります。イテレーターのアクティビティー・ダイアグラムを開くには、Process Designer Express のテンプレート・ツリー・ビューでイテレーター名をダブルクリックします。

ブレークの追加

イテレーターのアクティビティー・ダイアグラムにブレークを追加すると、反復が強制的に早期終了されます。イテレーターの実行経路がブレーク・シンボルに到達すると、イテレーターが終了し、制御が親ダイアグラムに渡されます。ブレークはすべてのタイプのイテレーターに使用できます。

イテレーターのアクティビティー・ダイアグラムに、以下のようにブレーク・シンボルを配置します。

  1. シンボル・ツールバーの「Break」ボタンをクリックします。
  2. アクティビティー・ダイアグラムでブレークを配置する位置にカーソルを合わせ、クリックします。ブレーク・シンボルがダイアグラムに追加されます。

    図 46. ブレーク・シンボル


必要に応じて、ブレーク・シンボルにラベルと説明を追加できます。「Break Properties」ダイアログ・ボックスを表示してプロパティーを編集するには、アクティビティー・ダイアグラムのブレーク・シンボルをダブルクリックします。

Copyright IBM Corp. 2004