プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Process Management Studioでのビジネス・プロセスの開発
12c (12.1.3)
E56238-06
目次へ移動
目次

前
次

5 プロセス設計の情報の処理

この章では、データ・オブジェクトおよびプロジェクト・データ・オブジェクトを使用してプロセス内の情報を処理する方法について説明します。また、プロセスとともにその情報を渡す方法と、必要な場合に情報を変換する方法についても説明します。

この章の内容は次のとおりです。

5.1 プロセス設計の情報の処理の概要

プロセスは情報を活用し、さらにそのタスクから情報を生成します。プロセス・フローは、情報の値に影響される可能性があります。

Oracle BPMでは、この情報を追跡する次のデータ構造をサポートしています。

  • プロセス・データ・オブジェクト

  • サブプロセス・データ・オブジェクト

  • プロジェクト・データ・オブジェクト

  • 引数

さらに、データ・アソシエーションを使用して、異なるプロセス要素間で情報を受渡しすることができます。データ・アソシエーションを使用すると、プロジェクト・データ・オブジェクトやプロセス・データ・オブジェクトの値をフロー・オブジェクト実装の入力引数と出力引数にマッピングできます。

「構造」ウィンドウには、プロジェクト内の様々なデータ構造(データ・オブジェクト、プロジェクト・データ・オブジェクトおよびビジネス・インジケータ)が表示されます。コール可能プロセスの場合には、引数も表示されます。

図5-1は、ビジネス・インジケータおよびプロセス・データ・オブジェクトを定義するプロセスの「構造」ウィンドウを示しています。

図5-1 「構造」ウィンドウ

図5-1の説明が続きます
「図5-1 「構造」ウィンドウ」の説明

5.1.1 基本データ・オブジェクトと複合データ・オブジェクト

基本データ・オブジェクトは、整数、ブール、文字列などの基本データ型を使用して定義されます。

複合データ・オブジェクトはビジネス・オブジェクトを使用して定義され、データをグループ化できます。ビジネス・オブジェクトの定義方法の詳細は、「ビジネス・オブジェクトのモデリング」を参照してください。

ビジネス・オブジェクトには、基本データ・オブジェクトに基づくデータ構造が含まれます。たとえば、従業員名、従業員ID、従業員給与という各データ型を含む、従業員という複合データ・オブジェクトを作成できます。

複合データ・オブジェクトの構造は、プロセスのいずれのプロセス・インスタンスでも同じです。ただし、それに含まれるデータ値は、プロセスの各インスタンスに固有です。

図5-2は、基本データ・オブジェクトと複合データ・オブジェクトの関係を示しています。

図5-2 基本データ・オブジェクトと複合データ・オブジェクト

図5-2の説明が続きます
「図5-2 基本データ・オブジェクトと複合データ・オブジェクト」の説明

5.2 データ・オブジェクトの概要

ビジネス・プロセスの主要要素は、タスクおよびそれらのタスクに関連する情報です。プロセス・インスタンス内の情報は、プロセスが実行されると変更されます。プロセス・インスタンス内の情報によって、任意の時点におけるプロセス・インスタンスの状態が定義されます。

この情報によってプロセスの動作も決定され、その実行フローが変更されることもあります。この情報を監視したり、外部システムに格納することができます。

営業見積サンプル・プロセスでは、次の情報が使用されます。

  • 承認フロー

  • 承認条件結果

  • 見積

Oracle BPMでは、プロセスに関連する情報を格納するためにデータ・オブジェクトが使用されます。これらの変数の値は、プロセスを実行するたびに変わることもあります。

Oracle BPMのデータ・オブジェクトは次のような特性を持ちます。

  • データ・オブジェクトを識別する名前

  • 変数に格納可能なデータ型を決定するデータ型。

データ・オブジェクトには、作成した各プロセス・インスタンスに関連する情報が格納されます。これらのデータ・オブジェクトの値はプロセス内のインスタンスごとに異なります。ただし、データ・オブジェクトの構造はいずれのプロセス・インスタンスでも同じです。

プロセスを定義する際は、情報を格納するデータ・オブジェクトを定義する必要があります。また、プロセスのどの部分でこれらのデータ・オブジェクトに値を割り当てるかを定義する必要もあります。データ・オブジェクトの値はユーザー入力や外部システムから提供されることも、他のデータ・オブジェクトに基づいて計算されることもあります。

インスタンスを作成すると、プロセス・エンジンによって、そのプロセスに定義されているすべてのデータ・オブジェクトのデフォルト値としてNULLが割り当てられます。その後、プロセス内のアクティビティによってこれらの変数に値が割り当てられます。

受注プロセスにおいては、注文ごとに合計金額、支払タイプおよび顧客IDがあります。このデータは、このプロセス情報を格納するデータ・オブジェクトを定義することによりモデリングできます。

5.2.1 データ・オブジェクトに対してサポートされているデータ型

データ・オブジェクトのデータ型は次のいずれかです。

  • 文字列

  • 整数

  • ブール

  • 倍精度浮動小数点

  • 小数

  • 時間

  • 期間

  • base64Binary

  • コンポーネント(このコンポーネントを使用すると、複合データ型を選択できます)

注意:

バイナリ・データ型は、XMLスキーマ・タイプの要素をマップするためにのみ使用されます。バイナリ・データ型で操作を実行することはできませんが、異なるコンポーネントおよびフロー・オブジェクト間でバイナリ・データ型を渡すことはできます。

5.2.2 デフォルト値

データ・オブジェクトを自動的に初期化されるように構成した場合、BPMNエンジンによってこのデータ・オブジェクトにデフォルト値が割り当てられます。デフォルト値は、データ・オブジェクトのタイプによって異なります。

表5-1に、サポートされているデータ型のデフォルト値を示します。

表5-1 デフォルト値

データ型 デフォルト値

文字列

""

時刻、日付

'now'

整数、倍精度浮動小数点、小数

0

ブール

false

期間

'0'

5.3 プロセス・データ・オブジェクトの使用

通常、プロセス内のサービスによってプロセス内のデータ・オブジェクトの値が変更されますが、データ・オブジェクトに初期値を割り当てたり、プロセス中にデータ・オブジェクトの値を変更することもできます。

作業対象のプロセスに新規のプロセス・データ・オブジェクトを追加できます。また、これらのデータ・オブジェクトを編集または削除することもできます。

5.3.1 プロセス・データ・オブジェクトを追加する方法

BPMNプロセスで使用する値を格納するプロセス・データ・オブジェクトを追加できます。

プロセス・データ・オブジェクトを追加するには:

  1. 「アプリケーション」ウィンドウで、データ・オブジェクトを追加するプロセスを選択します。

  2. 「構造」ウィンドウで「プロセス・データ・オブジェクト」ノードを右クリックします。

  3. 「新規」を選択します。

  4. データ・オブジェクトを識別する名前を入力します。

  5. 「タイプ」リストからタイプを選択します。

    複合タイプを使用するには、「<コンポーネント>」を選択します。

  6. 「<コンポーネント>」を選択した場合は、次の手順に従って複合タイプを選択します。

    1. 「参照タイプ」ボタンをクリックします。

      「参照タイプ」ダイアログ・ボックスが表示されます。

    2. リストからタイプを選択するか、または検索リストの横にある「新規」ボタンをクリックして、ビジネス・オブジェクトを作成します。

      タイプを見つけるには、「検索」テキスト・ボックスに名前を入力します。タイプが存在しない場合は、入力した名前が赤色で表示されます。

    3. 「OK」をクリックします。

      「参照タイプ」ダイアログ・ボックスが閉じ、選択したタイプの完全な名前が「参照タイプ」ボタンの横にあるフィールドに表示されます。

  7. オプションで、「自動初期化」を選択して、データ・オブジェクトをデフォルト値で初期化します。

  8. 「OK」をクリックします。

注意:

また、シンプルな式ビルダー、XPath式ビルダーおよび「データ・アソシエーション」ダイアログで、「データ・オブジェクト」ツリーからプロセス・データ・オブジェクトを追加することもできます。

5.3.2 プロセス・データ・オブジェクトを編集する方法

既存のプロセス・データ・オブジェクトの名前およびタイプを変更できます。

プロセス・データ・オブジェクトを編集するには:

  1. 「アプリケーション」ウィンドウで、編集するデータ・オブジェクトが含まれているプロセスを選択します。
  2. 「構造」ウィンドウで、「プロセス・データ・オブジェクト」ノードを展開します。
  3. 編集するデータ・オブジェクトを右クリックします。
  4. 「編集」を選択します。

    データ・オブジェクトの名前とタイプを編集するためのダイアログ・ボックスが表示されます。

  5. 必要な変更を行います。
  6. 「OK」をクリックします。

5.3.3 データ・オブジェクトを削除する方法

使用しないデータ・オブジェクトや不要なデータ・オブジェクトは削除できます。

データ・オブジェクトを削除する手順は、次のとおりです。

  1. 「アプリケーション」ウィンドウで、削除するデータ・オブジェクトが含まれているプロセスを選択します。
  2. 「構造」ウィンドウで、「プロセス・データ・オブジェクト」ノードを展開します。
  3. 編集するデータ・オブジェクトを右クリックします。
  4. 「削除」を選択します。

5.3.4 プロセス・データ・オブジェクトに値を割り当てる方法

スクリプト・タスクを使用して、プロセス・データ・オブジェクトに値を割り当てることができます。

プロセス・データ・オブジェクトに値を割り当てるには:

  1. プロセス・エディタで、スクリプト・タスクをプロセスに追加します。
  2. スクリプト・タスクの実装プロパティを編集します。
  3. データ・アソシエーションまたは変換を定義して、値をプロセス・データ・オブジェクトに割り当てます。

    データ・アソシエーションの定義方法の詳細は、「データ・アソシエーションの概要」を参照してください。

    変換の定義方法の詳細は、「変換の概要」を参照してください。

5.4 アクティビティ・インスタンス属性の概要

一部のデータは、プロセスのステータスと同様に、定義したすべてのプロセスに適用されます。このデータを使用して、値に基づいてイベントをトリガーしたり、サービスへの入力としてデータを提供することができます。どちらの場合も、プロセス・フローはこのデータの値に依存します。Oracle BPMでは、事前定義済のアクティビティ・インスタンス属性セットを使用してこのデータが追跡されます。

これらのアクティビティ・インスタンス属性には、通常のデータ・オブジェクトへのアクセスと同じ方法でアクセスできます。ただし、これらの属性に新しい値を割り当てることはできません。

アクティビティ・インスタンス属性には、次のコンポーネントからアクセスできます。

  • データ・アソシエーション

  • シンプルな式ビルダー

  • XPath式ビルダー

表5-2に、様々なプロセス要素に対して使用可能なアクティビティ・インスタンス属性の詳細情報を示します。

表5-2 アクティビティ・インスタンス属性

名前 タイプ 説明 アベイラビリティ

state

文字列

インスタンスの状態を指定します。

可能な値は次のとおりです。

  • none

  • ready

  • active

  • canceled

  • aborted

  • completing

  • completed

複合ゲートウェイで

loopCounter

整数

エンジンがこのアクティビティを実行した回数を指定します。プロセス・エンジンは、新しいループを実行するたびにこの変数を更新します。

ループ・マーカーを使用するアクティビティ。

loopCounter

整数

このアクティビティの各アクティブ化を識別する順序番号を指定します。BPMNエンジンは、アクティビティを実行する際にこの番号を各アクティブ化に割り当てます。

マルチインスタンス・マーカーを使用するアクティビティで。

numberOfInstances

整数

マルチインスタンス・アクティビティに対して作成されるアクティブ化の数を指定します。この値には、メイン・インスタンスからのみアクセスできます。

マルチインスタンス・マーカーを使用するアクティビティで。

numberOfActiveInstances

整数

マルチインスタンス・アクティビティのアクティブな内部インスタンスの数を指定します。この値には、メイン・インスタンスからのみアクセスできます。

連続するマルチインスタンス・アクティビティの場合、この値は1または0です。

パラレルなマルチインスタンス・アクティビティの場合、この値は、事前定義済のデータ・オブジェクトnumberOfInstancesで指定されている値以下となります。

マルチインスタンス・マーカーを使用するアクティビティで。

numberOfCompletedInstances

整数

マルチインスタンス・アクティビティの完了済の内部インスタンスの数を指定します。この値には、メイン・インスタンスからのみアクセスできます。

マルチインスタンス・マーカーを使用するアクティビティで。

numberOfTerminatedInstances

整数

マルチインスタンス・アクティビティの終了された内部インスタンスの数を指定します。この値には、メイン・インスタンスからのみアクセスできます。

マルチインスタンス・マーカーを使用するアクティビティで。

activationCount

整数

ゲートウェイの受信シーケンス・フロー内のトークンの数を指定します。

複合ゲートウェイで。

5.5 アクティビティ・インスタンス属性の使用

一部のプロセス要素では、アクティビティ・インスタンス属性がサポートされています。これらのアクティビティ・インスタンス属性を使用して、プロセスのフローを制御できます。

通常、アクティビティ・インスタンス属性の値はプロセス・エンジンにより割り当てられますが、ユーザーが値を割り当てる必要のあるアクティビティ・インスタンス属性もあります。

5.6 サブプロセス・データ・オブジェクトの概要

特定のサブプロセスに対してデータ・オブジェクトを定義できます。これらのデータ・オブジェクトは、そのサブプロセスの実行中にのみ使用できます。インスタンスがサブプロセスを終了すると、サブプロセス・データ・オブジェクトの値は失われます。

サブプロセス・データ・オブジェクトを使用すると、次のような利点があります。

  • メイン・プロセス内の不要なデータ・オブジェクトの数が減るため、メイン・プロセスが単純になり、可読性も向上します。

  • プロセス・データ・オブジェクトの数が減るため、各プロセス・インスタンスが占有するメモリーが減ります。

  • サブプロセスを理解しやすくなります。

5.7 サブプロセス・データ・オブジェクトの使用

サブプロセス内から、プロセス・データ・オブジェクトおよびサブプロセス・データ・オブジェクトにアクセスできます。サブプロセス・データ・オブジェクトの名前がプロセス・データ・オブジェクトの名前と一致している場合、データ・オブジェクトにアクセスすると、サブプロセス・データ・オブジェクトの値が取得されます。

サブプロセスに新規のプロジェクト・データ・オブジェクトを追加できます。必要に応じて、プロジェクト・データ・オブジェクトを編集または削除できます。

5.7.1 サブプロセスへのデータ・オブジェクトの追加

サブプロセスにデータ・オブジェクトを追加できます。このデータ・オブジェクトには、サブプロセス内からのみアクセスできます。

データ・オブジェクトをサブプロセスに追加するには:

  1. 「アプリケーション」ウィンドウで、データ・オブジェクトを追加するサブプロセスが含まれているプロセスを選択します。

  2. 「構造」ウィンドウで、「アクティビティ」ノードを展開します。

    展開されたノードに、サブノード「アクティビティ」、「イベント」および「ゲートウェイ」が表示されます。

  3. 「アクティビティ」サブノードを展開します。

  4. サブプロセスに対応するノードを展開します。

  5. サブプロセス・ノードの下にある「データ・オブジェクト」ノードを右クリックします。

  6. 「新規」を選択します。

  7. 新規のデータ・オブジェクトを識別する名前を入力します。

  8. 「タイプ」リストから、タイプを選択します。

    複合タイプを使用するには、「<コンポーネント>」を選択します。

  9. 「<コンポーネント>」を選択した場合は、次の手順に従って複合タイプを選択します。

    1. 「参照タイプ」ボタンをクリックします。

      「参照タイプ」ダイアログ・ボックスが表示されます。

    2. リストからタイプを選択するか、または検索リストの横にある「新規」ボタンをクリックして、ビジネス・オブジェクトを作成します。

      タイプを見つけるには、「検索」テキスト・ボックスに名前を入力します。タイプが存在しない場合は、入力した名前が赤色で表示されます。

    3. 「OK」をクリックします。

      「参照タイプ」ダイアログ・ボックスが閉じ、選択したタイプの完全な名前が「参照タイプ」ボタンの横にあるフィールドに表示されます。

  10. オプションで、「自動初期化」を選択して、データ・オブジェクトをデフォルト値で初期化します。

  11. 「OK」をクリックします。

5.7.2 サブプロセス内のデータ・オブジェクトの編集

既存のサブプロセス・データ・オブジェクトの名前およびタイプを変更できます。

サブプロセス内のデータ・オブジェクトを編集するには:

  1. 「アプリケーション」ウィンドウで、編集するデータ・オブジェクトを使用するサブプロセスが含まれているプロセスを選択します。
  2. 「構造」ウィンドウで、「アクティビティ」ノードを展開します。

    展開されたノードに、サブノード「アクティビティ」、「イベント」および「ゲートウェイ」が表示されます。

  3. 「アクティビティ」サブノードを展開します。
  4. サブプロセスに対応するノードを展開します。
  5. サブプロセス・ノードの下にある「データ・オブジェクト」ノードを展開します。
  6. 編集するデータ・オブジェクトを右クリックします。
  7. 「編集」を選択します。

    データ・オブジェクトの名前とタイプを編集するためのダイアログ・ボックスが表示されます。

  8. 必要な変更を行います。
  9. 「OK」をクリックします。

5.7.3 サブプロセスからのデータ・オブジェクトの削除

不要なサブプロセス・データ・オブジェクトや使用しないサブプロセス・データ・オブジェクトは削除します。削除したデータ・オブジェクトを使用するフロー・オブジェクトがサブプロセス内にある場合は、これらの参照を手動で削除する必要があります。

サブプロセスからデータ・オブジェクトを削除するには:

  1. 「アプリケーション」ウィンドウで、削除するデータ・オブジェクトを使用するサブプロセスが含まれているプロセスを選択します。
  2. 「構造」ウィンドウで、「アクティビティ」ノードを展開します。

    展開されたノードに、サブノード「アクティビティ」、「イベント」および「ゲートウェイ」が表示されます。

  3. 「アクティビティ」サブノードを展開します。
  4. サブプロセスに対応するノードを展開します。
  5. サブプロセス・ノードの下にある「データ・オブジェクト」ノードを展開します。
  6. 削除するデータ・オブジェクトを右クリックします。
  7. 「削除」を選択します。

5.8 プロジェクト・データ・オブジェクトの概要

プロジェクト・データ・オブジェクトを使用すると、特定のプロジェクト内のすべてのプロセスで1つのデータ・セットが追跡されます。この場合、各プロセスでこのデータの値を割り当てて、値を更新する必要があります。

BPMプロジェクト内の複数のプロセスが1つのデータ・セットを共有することはよくあります。たとえば、受注プロセスとリクエスト承認プロセスの両方が、リクエストを作成した従業員またはリクエストの優先度の値を追跡する場合などです。このデータの値は各プロセス内のインスタンスごとに異なり、両方のプロセスはそのデータを追跡する必要性を共有するのみです。

BPMプロジェクト内のプロセスは、プロジェクト・データ・オブジェクトのデータ定義のみを共有します。それらの実際の値ではありません。各BPMNプロセスは、プロジェクト・データ・オブジェクトのそれ自体のコピーを保持し、その値は異なる場合も異ならない場合もあります。

5.8.1 ビジネス・インジケータ

プロジェクト・データ・オブジェクトをビジネス・インジケータとしてマークすると、プロセス・エンジンによりその値がプロセス分析データベースに格納されます。この情報を使用して、ビジネス・プロセスのパフォーマンスを監視できます。

プロセス分析の詳細は、「プロセス分析の使用」を参照してください。

5.8.2 プロジェクト・データ・オブジェクトに対してサポートされているデータ型

プロジェクト・データ・オブジェクトのタイプは、次のデータ型に設定できます。

  • 文字列

  • 整数

  • ブール

  • 倍精度浮動小数点

  • 小数

  • 時間

  • 期間

  • base64Binary

  • コンポーネント

5.9 プロジェクト・データ・オブジェクトの使用

プロジェクト・データ・オブジェクトを定義することの主な利点は、プロジェクトの公開後にこれらの変数の値が表示されるようにプロセス・ワークスペース・ビューを構成できることです。これは、プロジェクト・データ・オブジェクトを使用した場合にのみ可能です。

もう1つの利点は、データ・オブジェクトの定義を変更する場合に、同じデータ・オブジェクトを定義するプロジェクト内のすべてのプロセスで何度も変更しなくても、1回の変更で済むということです。

作業対象のプロジェクトに新規のプロジェクト・データ・オブジェクトを追加できます。また、これらのデータ・オブジェクトを編集または削除することもできます。

注意:

BPMプロジェクトのデプロイ後にプロジェクト・データ・オブジェクトのデータ型を変更することはお薦めしません。この場合、プロセス・ワークスペースがデータ型の変更前に作成されたインスタンスの値のレンダリングを試行すると問題が発生することがあります。

注意:

プロジェクト・データ・オブジェクトに、プロセス・データ・オブジェクトと同じ名前を使用しないようにします。プロセス・データ・オブジェクトとプロジェクト・データ・オブジェクトに同じ名前を付けると、データ・アソシエーション・エディタでプロジェクト・データ・オブジェクトにアクセスできなくなります。

5.9.1 プロジェクト・データ・オブジェクトを追加する方法

プロジェクト・データ・オブジェクトを追加するには:

  1. 「アプリケーション」ウィンドウで、編集するプロジェクト・データ・オブジェクトのプロセスを「プロジェクト」から選択します。
  2. 「構造」ウィンドウで「プロジェクト・データ・オブジェクト」ノードを右クリックします。
  3. 「新規」を選択します。
  4. 新規のプロジェクト・データ・オブジェクトを識別する名前を入力します。

    注意:

    既存のプロセス・データ・オブジェクトの名前を使用することはできません。

  5. タイプを選択します。

    使用可能なタイプは、「文字列」、「整数」、「倍精度浮動小数点」、「小数」、「ブール」、「時間」です。

  6. オプションで、「自動初期化」を選択して、プロジェクト・データ・オブジェクトをデフォルト値で初期化します。
  7. 「OK」をクリックします。

注意:

また、シンプルな式ビルダー、XPath式ビルダーおよび「データ・アソシエーション」ダイアログで、「データ・オブジェクト」ツリーからプロセス・データ・オブジェクトを追加することもできます。

5.9.2 プロジェクト・データ・オブジェクトを編集する方法

既存のプロジェクト・データ・オブジェクトの名前およびタイプを変更できます。

プロジェクト・データ・オブジェクトを編集するには:

  1. 「アプリケーション」ウィンドウで、編集するプロジェクト・データ・オブジェクトのプロセスを「プロジェクト」から選択します。
  2. 「構造」ウィンドウで、「プロジェクト・データ・オブジェクト」ノードを展開します。
  3. 編集するプロジェクト・データ・オブジェクトを右クリックします。
  4. 「編集」を選択します。

    プロジェクト・データ・オブジェクトのプロパティを編集するためのダイアログ・ボックスが表示されます。

  5. 必要な変更を行います。
  6. 「OK」をクリックします。

5.9.3 プロジェクト・データ・オブジェクトを削除する方法

使用しないプロジェクト・データ・オブジェクトや不要なプロジェクト・データ・オブジェクトは削除できます。削除したプロジェクト・データ・オブジェクトを使用するプロセスがプロジェクト内にある場合は、これらの参照を手動で削除する必要があります。

プロジェクト・データ・オブジェクトを削除する方法:

  1. 「アプリケーション」ウィンドウで、編集するプロジェクト・データ・オブジェクトのプロセスを「プロジェクト」から選択します。
  2. 「アプリケーション」ウィンドウでプロジェクトを選択します。
  3. 「構造」ウィンドウで、「プロジェクト・データ・オブジェクト」ノードを展開します。
  4. 削除するプロジェクト・データ・オブジェクトを右クリックします。

5.9.4 プロジェクト・データ・オブジェクトに値を割り当てる方法

スクリプト・タスクを使用して、プロジェクト・データ・オブジェクトに値を割り当てることができます。

プロジェクト・データ・オブジェクトに値を割り当てるには:

  1. プロセス・エディタで、スクリプト・タスクをプロセスに追加します。
  2. スクリプト・タスクの実装プロパティを編集します。
  3. データ・アソシエーションまたは変換を定義して、値をプロジェクト・データ・オブジェクトに割り当てます。

    データ・アソシエーションの定義方法の詳細は、「データ・アソシエーションの概要」を参照してください。

    変換の定義方法の詳細は、「変換の概要」を参照してください。

5.10 引数の概要

引数は、プロセス内の異なるコンポーネント間でデータを受渡しするために使用します。

コンポーネントを起動すると、特定のデータの入力を要求されることがあります。このデータを渡すには、入力引数を使用します。コンポーネントを実行すると、その出力引数を介して結果が提供されます。

引数を設定できるプロセス・コンポーネントは、次のとおりです。

  • サービス操作: サービス操作は処理のためにデータを必要とし、操作の実行結果を含むデータを提供するようにできます。コンポーネントの入力引数と出力引数がこのデータを表します。

  • ヒューマン・タスク: ヒューマン・タスクは実行のためにデータを必要とし、タスクの実行結果を含むデータを提供するようにできます。ヒューマン・タスクの入力引数と出力引数がこのデータを表します。

  • ビジネス・ルール: ビジネス・ルールでは、それに含まれるルールの評価に使用される入力が必要です。ビジネス・ルールは出力引数を使用して、この評価の結果を返します。ビジネス・ルール・タスクを使用してビジネス・ルールを実行すると、ビジネス・ルールは入力引数と出力引数を使用して、選択された意思決定機能を呼び出します。

  • メッセージ開始イベント: メッセージ開始イベントでは、入力引数を定義できます。プロセスがサブプロセスとして使用されていて、サブプロセスが起動側プロセスからデータを受け取る場合、入力引数を開始イベントに追加できます。これらの入力引数は、あるプロセスが別のプロセスにより起動された場合に必要となるデータを表します。

  • メッセージ終了イベント: メッセージ終了イベントでは、出力引数を定義できます。プロセスがサブプロセスとして使用されていて、サブプロセスがそれを起動したプロセスに情報を渡す場合、入力引数を終了イベントに追加できます。これらの出力引数は、プロセス実行の結果としてのデータを表します。

  • キャッチ・イベント: キャッチ・イベントでは、プロセス・インタフェースを定義する入力引数と出力引数を定義できます。プロセス・インタフェースにより公開される操作が非同期の場合、入力引数のみを定義できます。公開される操作が同期の場合、入力引数と出力引数を定義できます。

  • スロー・イベント: スロー・イベントでは、プロセス・インタフェースを定義する入力引数と出力引数を定義できます。プロセス・インタフェースにより公開される操作が非同期の場合、出力引数のみを定義できます。公開される操作が同期の場合、入力引数と出力引数を定義できます。

5.11 命名規則

プロセス・データ・オブジェクト、プロジェクト・データ・オブジェクトおよび引数の名前は、特定の規則に従う必要があります。

次のルールに従う必要があります。

  • 1つ以上の名詞、または形容詞で修飾された名詞を使用します。

  • 名前の先頭に数字を使用しないでください。

  • 大文字は内部の単語を区別する目的のみで使用します。

  • 常に簡単でわかりやすい名前を使用します。

  • 単語全部を使用します。省略語は、広く認知されている場合を除いて使用しないようにします。

  • プロセス・データ・オブジェクトとプロジェクト・データ・オブジェクトに同じ名前を使用しないようにします。

5.12 スコープおよびアクセス

プロセス・データ・オブジェクト、サブプロセス・データ・オブジェクト、プロジェクト・データ・オブジェクトおよび引数のスコープとアクセスは、情報の格納に使用する構造に応じて異なります。

  • プロセス・データ・オブジェクト: プロセス・データ・オブジェクトには、プロセス内の任意のタスクからアクセスできます。プロセス・データ・オブジェクトは、プロセス・エンジンがプロセス内にインスタンスを作成するときに作成されます。通常、プロセス・データ・オブジェクトの値は、プロセス内のインスタンスごとに異なります。インスタンスが終了イベントに到達すると、それ以降はプロセス・データ・オブジェクトにアクセスできません。

  • サブプロセス・データ・オブジェクト: サブプロセス・データ・オブジェクトには、サブプロセス内の任意のタスクからアクセスできます。サブプロセス・データ・オブジェクトは、サブプロセスがトリガーされたときにプロセス・エンジンによって作成されます。インスタンスがサブプロセスを終了すると、これらのデータ・オブジェクトは使用できなくなります。

  • プロジェクト・データ・オブジェクト: プロジェクト・データ・オブジェクトは、プロジェクト・レベルで定義できます。ただし、プロジェクト・データ・オブジェクトのスコープはプロセスです。プロジェクト・データ・オブジェクトは、BPMプロジェクト内のすべてのプロセスに対して事前に定義されています。プロジェクト・データ・オブジェクトの値は、プロセス間で異なることがあります。通常、プロジェクト・データ・オブジェクトの値は、プロセス内のインスタンスごとに異なります。プロジェクト・データ・オブジェクトにはプロジェクト内の任意のプロセスからアクセスできますが、プロセス中にオブジェクトに割り当てられた値は、プロセスで実行が完了すると失われます。図7-12に、プロジェクト・データ・オブジェクトのスコープと存続期間の違いを示します。

  • 引数: 引数には、データ・アソシエーション内からのみアクセスできます。引数を使用して、プロセスまたはプロセス・コンポーネント間で情報を受渡しします。プロセス・エンジンは、データ・アソシエーションを含むプロセスまたはプロセス要素を実行するとき、データ・アソシエーション内に定義されているデータ・オブジェクトに引数の値をマッピングします。

図5-3は、入力引数、プロセス・データ・オブジェクト、サブプロセス・データ・オブジェクトおよび出力引数のスコープを示しています。このイメージは、1つのBPMNプロセスを示しており、変数名が付いた赤い線は、それらの変数を使用できるスコープを示しています。

図5-3 プロセス内のデータ構造のスコープ

図5-3の説明が続きます
「図5-3 プロセス内のデータ構造のスコープ」の説明

図5-4は、プロジェクト・データ・オブジェクトのスコープと存続期間を示しています。このイメージは、BPMプロジェクトの各種BPMNプロセスを示し、それらの上にはプロジェクト・データ・オブジェクトのスコープを示す赤い線があり、各プロセスの下にはそれらの存続期間を示す緑の線があります。

図5-4 プロジェクト・データ・オブジェクトのスコープおよび存続期間

図5-4の説明が続きます
「図5-4 プロジェクト・データ・オブジェクトのスコープおよび存続期間」の説明

5.13 データ・アソシエーションの概要

データ・アソシエーションは、特定のコンテキストにおいてデータ・オブジェクトに格納された情報を受渡しするために使用します。

データ・アソシエーションを使用すると、データを受渡しできます。

  • BPMNプロセスから起動された別のプロセスまたはサービス

  • ヒューマン・タスク・サービス

  • Oracle Business Rule

  • スクリプト・タスク。このBPMNフロー・オブジェクトは、データ・アソシエーションを介してデータ・オブジェクトを受渡しするために使用します。

表5-4に、データ・アソシエーションを定義できるフロー・オブジェクトをリストしています。また、実装されるオブジェクトもリストしています。

表5-3 データ・アソシエーションを受け入れるフロー・オブジェクト

フロー・オブジェクト 実装

メッセージ開始および終了イベント

サービスおよびその他のBPMNプロセス

メッセージ・スロー・イベントおよびキャッチ・イベント

サービスおよびその他のBPMNプロセス

送信タスクおよび受信タスク

サービスおよびその他のBPMNプロセス

スクリプト・タスク

実装は含みません。データ・アソシエーションを介してデータ・オブジェクトを受渡しするために使用します。

ユーザー・タスク

Oracle Human Tasks

ビジネス・ルール・タスク

Oracle Business Rules

サービス・タスク

サービスおよびBPMNプロセス

エラー・イベント

例外

シグナル・イベント

イベント

データ・アソシエーションを使用して、フロー・オブジェクトから外部サービスまたはプロセスへの入力と出力を定義できます。

入力と出力はフロー・オブジェクトのデータ・アソシエーション内に定義しますが、定義済の値は実装されたシステムおよびサービスに渡されることに注意してください。

式を使用して、入力値と出力値を評価および変更できます。

5.13.1 データ・アソシエーション・エディタの概要

データ・アソシエーション・エディタを使用すると、フロー・オブジェクトとその実装の間で受渡しされる入力値と出力値を構成できます。

図5-5は、営業見積サンプルにおける見積入力ユーザー・タスクのデータ・アソシエーションを示しています。

図5-5 データ・アソシエーション・エディタ

図5-5の説明が続きます
「図5-5 データ・アソシエーション・エディタ」の説明

表5-4で、データ・アソシエーション・エディタの各領域について説明します。

表5-4 データ・アソシエーション・エディタのユーザー・インタフェース

UI領域 説明

「入力」タブ

フロー・オブジェクト内に実装されるサービスまたはプロセスへの入力として割り当てられたデータ・オブジェクトを表示するテキスト・ボックスが表示されます。各テキスト・ボックスの横には、式エディタを起動するアイコンがあります

「出力」タブ

フロー・オブジェクト内に実装されるサービスまたはプロセスからの出力として割り当てられたデータ・オブジェクトを表示するテキスト・ボックスが表示されます。

「フロー・オブジェクト」ツリー

展開されたすべての引数をリストする「引数」ノードが含まれます。選択したタブに応じて、入力引数または出力引数がリストされます。複合データ・オブジェクト内の特定の基本データ・オブジェクトにマップする複合データ・オブジェクトを展開できます。

「データ・オブジェクト」ツリー

すべてのデータ・オブジェクトが表示されます。このツリーには、プロセス・データ・オブジェクト、事前定義済データ・オブジェクトおよびプロジェクト・データ・オブジェクトが含まれます。複合データ・オブジェクト内の特定の基本データ・オブジェクトにマップする複合データ・オブジェクトを展開できます。

5.14 変換の概要

XSL変換を使用すると、プロセス内のデータ・オブジェクトの値を、入力引数としてフロー・オブジェクトに渡す前に変換できます。また、XSL変換では、フロー・オブジェクト実装の出力引数の値を、プロセス内のデータ・オブジェクトに割り当てる前に変換することもできます。

変換をデータ・アソシエーションを組み合せて使用できるのは、それらを異なる引数に適用する場合のみです。

注意:

変換とデータ・アソシエーションを使用して同時に1つの引数の値をマッピングすることはできません。

5.15 変換の定義

変換を定義する際は、XMLスキーマまたはタイプを使用して作成したビジネス・オブジェクトに基づくデータ・オブジェクトのみをソースとして使用できます。

作成した変換は、SOA XLSエディタを使用して編集できます。SOA XLSエディタの使用方法の詳細は、Oracle SOA SuiteでのSOAアプリケーションの開発を参照してください。

5.15.1 変換を定義する方法

XSLT変換を定義して、フロー・オブジェクトの実装との間で受渡しするデータを変換できます。

変換を定義するには:

  1. フロー・オブジェクト実装のプロパティを編集します。
  2. 「データ・アソシエーション」リンクをクリックします。

    「データ・アソシエーション」ダイアログ・ボックスが表示されます。

  3. 右上隅にある「変換」ボタンをクリックして、ターゲット・ノードにドラッグします。
  4. 変換をターゲット・ノード内でドロップします。

    変換の作成ダイアログ・ボックスが表示されます。

  5. 「ソース」リストからソースを選択します。

    「ソース」リストには、XMLスキーマまたはタイプを使用して作成したビジネス・オブジェクトに基づくデータ・オブジェクトのみが表示されます。

  6. 「追加」をクリックします。

    「選択された要素」リスト内にソースが表示されます。

  7. 「ターゲット」リストから、変換の結果を割り当てるターゲットを選択します。
  8. 「変換」セクションで、変換を定義する方法を選択します。
    • 作成: 新規の変換が作成され、変換を定義するためのSOA変換エディタが開きます。

    • 既存のものを使用: プロジェクトXSLディレクトリにコピーした既存の変換を選択できます。

5.15.2 変換を定義した後の結果

BPMNサービス・エンジンによって、指定したXSL変換を使用してフロー・オブジェクトの入力引数と出力引数の値が割り当てられます。値は、XSL変換により変更されてから割り当てられます。