データ・オブジェクトおよび式の使用
Oracle® Fusion Middleware Oracle Business Process Management Business Process Composerユーザーズ・ガイド 11g リリース1(11.1.1.6.2) B61410-05 |
|
![]() 前 |
![]() 次 |
この章では、Oracle Business Process Composer内でデータ・オブジェクトおよび式を使用する方法について説明します。データ・オブジェクトおよび式を使用すると、プロセス内で使用するデータを定義し、データの処理方法を決定できます。
この章の内容は次のとおりです。
データ・オブジェクトは、ビジネス・プロセスで使用される情報のタイプを定義するために使用される変数です。また、この情報の値を格納するためにも使用されます。
Oracle BPMは、次の2つのタイプのデータ・オブジェクトをサポートします。
基本データ・オブジェクト
基本データ・オブジェクトは、プロセスおよびプロジェクトの中で使用できる基本的なタイプの変数です。基本データ・オブジェクトは、プロセス内で明示的に使用したり、複合データ・オブジェクトとして結合できます。
表10-1に、Oracle BPMでサポートされる基本データ・オブジェクトのタイプをリストします。
表10-1 シンプル・データ・オブジェクト
タイプ | 説明 |
---|---|
ブール |
論理値trueまたはfalseを表します。 |
整数 |
整数を表します。例: 23、-10、0 |
整数(64) |
Long整数値を表します。 |
小数 |
10進表記で表される数値を表します。例: 3.14、62、0.023。 |
実数 |
浮動小数点の数値を表します。例: 2e-1、2.3E8。 |
文字列 |
文字列を表します。例: "This is a string." |
時間 |
年-月-日 時:分:秒として表される特定の時間を表します。例: 1995-02-03 13:30:28-08:00 |
間隔 |
年数、月数、日数、時間数、分数、秒数として表される期間を表します。例: 1d3h30m。 |
バイナリ |
イメージや動画を含む、バイナリ・データの格納に使用されます。 |
複合データ・オブジェクト
複合データ・オブジェクトを使用すると、データのタイプをグループ化できます。複合データ型はビジネス・オブジェクトを使用して定義されます。
ビジネス・オブジェクトでは、基本データ・オブジェクトに基づいてデータ構造を作成できます。たとえば、従業員名、従業員ID、従業員給与という各データ型を含む、従業員という複合データ・オブジェクトを作成できます。
図10-1は、基本データ・オブジェクトと複合データ・オブジェクトとビジネス・オブジェクトの関係を示しています。
Business Process Composerでは、ビジネス・オブジェクトを作成または編集できます。また、ビジネス・カタログに定義されたビジネス・オブジェクトに基づいて、新規の複合データ・オブジェクトを作成できます。ただし、新規のデータ・タイプは作成できません。
プロセス・データ・オブジェクトは、特定のプロセス用に定義されたデータ・オブジェクトです。同様に、プロジェクト・データ・オブジェクトはプロジェクト全体用に定義されています。
プロセス・データ・オブジェクトは、基本データ・オブジェクトと複合データ・オブジェクトの両方から作成できます。プロジェクト・データ・オブジェクトは、基本データ型からのみ作成できます。これにより、変数のスコープが決定されます。
このため、プロセス・データ・オブジェクトは、それが作成されたプロセス内でのみ使用でき、プロジェクト・データ・オブジェクトはプロジェクト全体に適用できます。これが変数のスコープと呼ばれるものです。
図10-2は、プロジェクト変数とプロセス変数のスコープの違いを示しています。
プロセス・データ・オブジェクトを使用すると、単一のプロセス内でのみ使用されるデータ・オブジェクトを定義できます。プロセスベースのアプリケーションを設計する場合、データ・オブジェクトがプロセス内でのみ使用されることが判明しているときは、システム・リソースを節約するためアプリケーションをプロセス・データ・オブジェクトとして定義することをお薦めします。
プロジェクト・データ・オブジェクトでは、プロセス間でデータを共有できます。たとえば、注文書プロセスおよびリクエスト承認プロセスの両方で、リクエストの優先度やリクエストを作成した従業員の値を追跡できます。
プロジェクト・データ・オブジェクトにより、プロジェクト内のすべてのプロセスが同じデータを使用するようになります。各プロセスでは、このデータの値を割り当てて、更新する必要があります。
プロジェクト・データ・オブジェクトを定義することの主な利点は、プロジェクトの公開後にこの変数の値が表示されるようにOracle BPM WorkSpaceビューを構成できることです。これは、プロジェクト・データ・オブジェクトを使用する場合にのみ可能です。
注意: プロジェクト・データ・オブジェクトではプロジェクト内のすべてのプロセスで使用されるデータ・オブジェクトを定義できますが、このデータ・オブジェクトはグローバルなデータ・オブジェクトではありません。プロジェクト内の各プロセスは、独自のバージョンのデータ・オブジェクトを使用します。プロセス間でデータを共有するためにプロジェクト・データ・オブジェクトが使用されることはありません。 |
Business Process Composerで作成した新規プロジェクトを使用するときは、データ・アソシエーションをサポートするフロー・オブジェクト用にのみプロジェクトおよびプロセス・データ・オブジェクトを作成できます。プロセス・アナリストは、Business Process Composerで作成した新規プロジェクトを使用して、プロセス間で使用するデータ・オブジェクトのタイプを定義できます。これらのデータ・オブジェクトを、プロセス開発者が、Oracle BPM Studioで作成される実装の一部として組み込むことができます。
プロジェクト・テンプレートを使用すると、ビジネス・カタログから再利用可能なコンポーネントを作成できます。ビジネス・ルールやヒューマン・タスクなどのサービスに加えて、ビジネス・オブジェクトも作成できます。
プロジェクト・テンプレートに基づいてOracle BPMプロジェクトを作成する場合、データ・アソシエーション内でビジネス・カタログに定義されたデータ・オブジェクトを使用できます。また、Business Process Composerを使用して、新規のプロジェクト・データ・オブジェクトを作成することもできます。
プロジェクト変数は、基本データ型から作成されたシンプル・データ・オブジェクトのみに基づくことができます。
注意: Business Process Composerでは、新しいタイプの複合データ・オブジェクトは作成できません。 |
データ・アソシエーションは、データ・オブジェクトに格納された情報を次のものとの間で受渡しするために使用します。
BPMNプロセスから起動された別のプロセスまたはサービス
ヒューマン・タスク・サービス
Oracle Business Rule
スクリプト・タスク。このBPMNフロー・オブジェクトは、データ・アソシエーションを介してデータ・オブジェクトを受渡しするために使用します。
図10-2は、データ・アソシエーションを定義できるフロー・オブジェクトをリストしています。また、実装されるオブジェクトもリストしています。
表10-2 データ・アソシエーションを受け入れるフロー・オブジェクト
フロー・オブジェクト | 実装 |
---|---|
メッセージ開始および終了イベント |
サービスおよびその他のBPMNプロセス |
メッセージ・スロー・イベントおよびキャッチ・イベント |
サービスおよびその他のBPMNプロセス |
送信タスクおよび受信タスク |
サービスおよびその他のBPMNプロセス |
スクリプト・タスク |
実装は含みません。データ・アソシエーションを介してデータ・オブジェクトを受渡しするために使用します。 |
ユーザー・タスク |
Oracle Human Tasks |
ビジネス・ルール・タスク |
Oracle Business Rules |
サービス・タスク |
サービスおよびBPMNプロセス |
データ・アソシエーションは、フロー・オブジェクトからの入力、および外部のサービスまたはプロセスへの出力を定義するために使用します。図10-3に、フロー・オブジェクトと、それに対応する実装、および外部のプロセスまたはサービスの間にある関係を示します。
青い矢印は、外部のプロセスまたはサービスとの間で入力と出力を行う引数を表します。これらの引数はデータ・アソシエーションを使用して定義されます。
入力と出力はフロー・オブジェクトのデータ・アソシエーションで定義されますが、実装されたシステムおよびサービスに渡される値が入力と出力で定義されることに注意してください。これらのシステムおよびサービスは、図10-5に示すように、プロセスにとっては外部のシステムおよびサービスです。
式を使用して、入力値および出力値を評価および変更できます
データ・アソシエーション・エディタを使用すると、フロー・オブジェクトとその実装の間で受渡しされる入力値と出力値を構成できます。
表10-3では、データ・アソシエーション・エディタの各領域について説明します。
表10-3 データ・アソシエーション・エディタのユーザー・インタフェース
UI領域 | 説明 |
---|---|
入力 |
フロー・オブジェクト内に実装されるサービスまたはプロセスへの入力として割り当てられたデータ・オブジェクトを表示するテキスト・ボックスが表示されます。各テキスト・ボックスの横には、式エディタを起動するアイコンがあります |
フロー・オブジェクト・インタフェース |
実装されるサービスまたはプロセスに必要な入力引数がリストされます。また、入力および出力として提供されたデータ・オブジェクトの展開可能なリストも表示されます。フロー・オブジェクトの領域では、複合データ・オブジェクト内の特定の基本データ・オブジェクトにマップする複合データ・オブジェクトを展開できます。 |
出力 |
フロー・オブジェクト内に実装されるサービスまたはプロセスからの出力として割り当てられたデータ・オブジェクトを表示するテキスト・ボックスが表示されます。 |
データ・オブジェクト |
すべてのデータ・オブジェクトのリストが表示されます。このリストは、プロセス・データ・オブジェクトとプロジェクト・データ・オブジェクトの間が分割されます。 |
次の各項では、データ・アソシエーションの作成、削除および構成の方法について説明します。
Business Process Composerを使用して、プロセスおよびプロジェクト・データ・オブジェクトを作成できます。
データ・オブジェクトを作成するには:
プロジェクトの編集中であることを確認します。
プロセスを開きます。
フロー・オブジェクトを右クリックし、「データ・アソシエーション」を選択します。
データ・アソシエーションの構成を可能にするフロー・オブジェクトのリストについては、表10-2を参照してください。
展開可能リストからプロセスまたはプロジェクトを選択します。
「新規データ・オブジェクトの追加」をクリックします。
データ・オブジェクト名を入力し、ドロップダウン・メニューからタイプを選択します。
「作成」をクリックします。
プロセスまたはプロジェクトからデータ・オブジェクトを削除できます。
データ・オブジェクトを削除するには:
データ・オブジェクトを削除するプロセスを開きます。プロジェクト・データ・オブジェクトを削除する場合は、プロジェクト内の任意のプロセスを開くことができます。
データ・アソシエーションをサポートするフロー・オブジェクトを右クリックし、「データ・アソシエーション」を選択します。
データ・アソシエーションを有効化するシーケンス・フローのリストについては、表10-2を参照してください。
「データ・オブジェクト」列で、削除するデータ・オブジェクトを含むプロセスまたはプロジェクトを展開し、そのデータ・オブジェクトを選択します。
「削除」アイコンをクリックします。
注意: シンプル・データ・オブジェクトおよび複合データ・オブジェクトを削除できます。ただし、複合データ・オブジェクト内で使用するシンプル・データ・オブジェクトは削除できません。 |
フロー・オブジェクトのデータ・アソシエーションを構成できます。
フロー・オブジェクトのデータ・アソシエーションを構成するには:
データ・アソシエーションを構成するプロセスを開きます。
データ・アソシエーションを有効化するフロー・オブジェクトを右クリックし、「データ・アソシエーション」を選択します。
データ・アソシエーションを有効化するシーケンス・フローのリストについては、表10-2を参照してください。
右側のデータ・オブジェクト列から、入力引数としてマップするデータ・オブジェクトを選択します。
データ・オブジェクトをクリックし、入力テキスト・フィールドにドラッグします。
この項では、Business Process Composerを使用してビジネス・インジケータおよびカウンタ・マークを作成する方法について説明します。
ビジネス・インジケータは、プロセスの主要パフォーマンス・インジケータの値を格納するのに使用するプロジェクト・データ・オブジェクトです。Oracle BPMでは異なるタイプのデータ・オブジェクトを使用してビジネス・インジケータを作成できますが、Business Process Composer内では、カウンタ・マークとして使用するビジネス・インジケータのみ作成できます。
カウンタは、インスタンスが特定のアクティビティを完了した回数を追跡します。カウンタはカウンタ・マークとともに使用する必要があります。カウンタ変数の値は常に1で、実際の値は格納されません。インスタンスがアクティビティを完了した回数を示す値は、プロセス分析データベースで直接更新されます。カウンタ・ビジネス・インジケータの値を監視するには、そのカウンタ・ビジネス・インジケータを追跡するように構成されたカウンタ・マークに基づいて、ダッシュボードを作成する必要があります。
カウンタ・マークを使用して、プロセスに対して定義したカウンタ・ビジネス・インジケータの値を更新できます。1つのカウンタ・マークで複数のカウンタ・マーク・ビジネス・インジケータを更新できます。カウンタ・マークが定義されているアクティビティにトークンが到達すると、BPMサービス・エンジンによって、プロセス分析データベース内の関連するカウンタの値が更新されます。BPMサービス・エンジンがカウンタ・ビジネス・インジケータを更新するたびに、1単位が現在の値に追加されます。
注意: カウンタ変数の実際の値はプロセス分析データベースに格納されます。カウンタ変数のデフォルト値は変更されないため、プロセスでカウンタ変数を使用して計算を実行しないでください。カウンタ変数の値は常に1です。 |
カウンタ・マークは次の目的で使用できます。
監査: インスタンスが完了したアクティビティの数とその他のパフォーマンス測定を組み合せた情報は、プロセスを監査するために重要です。
パフォーマンスの問題の識別: カウンタを使用して、プロセス内のパフォーマンスの問題を識別できます。インスタンスが予期したパスと異なるパスを経由しているか、アクティビティ内のループの実行時間が適正な時間を超えているため、プロセスの実行時間が予期した時間より長くなる場合があります。このような状況は、実際に完了したアクティビティの数と予期した数を比較して識別できます。
インスタンスが経由するプロセス・パスの識別: 異なるカウンタ・ビジネス・インジケータを使用して、対応するパスをマークできます。インスタンスがプロセスの最後に到達したとき、インスタンスが経由したパスは、完了したアクティビティの最大数を示します。
通常は、監視対象のプロセス・パスごとに1つのカウンタ・ビジネス・インジケータを定義します。次に、そのプロセス・パスに含まれるすべてのアクティビティにカウンタ・マークを追加します。最後に、アクティビティが含まれるパスに対応するカウンタ・ビジネス・インジケータを、カウンタ・マークに関連付けます。
新しいカウンタ・マークをプロセス内のアクティビティやタスクに追加できます。
新しいカウンタ・マークをプロセスに追加する手順は、次のとおりです。
カウンタ・マークを追加するタスクまたはアクティビティを右クリックします。
「実装」を選択します。
必要に応じて、新しいビジネス・インジケータを作成します。
「追加」ボタンをクリックします。
ビジネス・インジケータの名前を指定します。
「OK」をクリックします。
ビジネス・インジケータのリストで、このフロー・オブジェクトで使用するインジケータの隣にあるチェック・ボックスを選択します。
「変更の適用」をクリックします。
式を使用すると、データ・オブジェクトで計算を実行できます。Business Process Composerを使用して、次のコンテキストにおいて式を定義および編集できます:
条件シーケンス・フロー
複合ゲートウェイ
タイマー・イベント
データ・アソシエーション
通知タスク
式では直接データ・オブジェクトに値を再割当てすることはできません。ただし、式を使用して、シーケンス・フローの実装との間で受渡しされる値を変更することはできます。詳細は、10.1.4項「データ・アソシエーションの概要」を参照してください。
単純式は、Oracle BPMでサポートされている標準式言語を使用して定義されます。
単純式では、次の演算子タイプがサポートされています:
算術演算子
単項演算子
等号演算子と関係演算子
条件演算子
これらの演算子を使用して式および条件を作成し、プロセス・フローを定義できます。一般に、これらの式は、プロセス内のデータ・オブジェクトに基づいて計算を実行します。式と条件はデータ・オブジェクトの値を使用して作成できますが、値は変更できません。
次の式の例では、演算子が使用されています。
totalAmount - discount
activationCount > 3
unitsSold <= 1200
表10-4、表10-5、表10-6および表10-7では、シンプルな式ビルダーでサポートされている演算子を説明します。
表10-4 算術演算子
演算子 | 名前 | 説明 |
---|---|---|
+ |
加算 |
数値データ型を加算します。 文字列同士を連結します。 |
- |
減算 |
数値データ型を減算します。 |
* |
乗算 |
数値データ型を乗算します。 |
/ |
除算 |
数値データ型を除算します。 |
rem |
剰余 |
除数が被除数で除算しきれない場合の剰余を計算します。 |
( ) |
優先順位 |
演算式の評価の順序を指定します。 |
表10-5 単項演算子
演算子 | 名前 | 説明 |
---|---|---|
+ |
プラス |
数値オペランドの値には影響しません。ある値が正であることを明示的に示す場合に使用します。 |
- |
マイナス |
算術式の符号をマイナスにします |
* |
NOT |
論理補数演算子。ブール式の値を否定します。 |
操作をBPMNプロセスに追加すると、プロセス内で、他のプロセスまたはサービスがこの操作との通信に使用できる位置を定義することになります。プロセスと、他のプロセスまたはサービスとの間の通信には、通常、入力が必要で、出力が返されます。BPMNプロセス操作の定義に使用するフロー・イベントを使用して、入力および出力引数を定義できます。これらの入力および出力引数により、プロセスの入力および出力が定義されます。
メッセージ開始イベントで開始するプロセスを作成する場合は、そのプロセスに渡される入力引数を定義する必要があります。
プロセスへの入力引数を定義するには:
プロセスにメッセージ開始イベントを追加します。
メッセージ開始イベントを右クリックし、「プロパティ」を選択します。
「実装」タブをクリックします。
「インタフェースの定義」を選択します。
「追加」アイコンをクリックします。
データ・オブジェクトの型を確認します。
「OK」をクリックします。
プロセスへの入力引数を定義した後、それらをプロセスのデータ・オブジェクトにマップする必要があります。
メッセージ開始イベントへのデータの関連付けを定義するには:
プロセスのメッセージ開始イベントを選択します。
「データ・アソシエーション」をクリックします。
右側にあるリストから「出力」の下にあるテキスト・ボックスにデータ・オブジェクトをドラッグします。
「適用」をクリックします。
メッセージ終了イベントを含むプロセスを作成する場合は、各終了イベントへの出力引数を定義する必要があります。これらは、プロセスへの出力引数です。
プロセスへの出力引数を定義するには:
プロセスにメッセージ終了イベントを追加します。
メッセージ終了イベントを右クリックし、「プロパティ」を選択します。
「実装」タブをクリックします。
「インタフェースの定義」を選択します。
「追加」アイコンをクリックします。
データ・オブジェクトの型を確認します。
「OK」をクリックします。
式エディタを使用すると、リストからデータ・オブジェクトおよび演算子を選択して式に挿入し、簡単に式を作成できます。必要に応じて、手動で式を入力することもできます。
図10-6は、式エディタのユーザー・インタフェースを示しています。
次の各項では、Business Process Composerを使用して式を定義する方法について説明します。
Business Process Composerを使用して、条件シーケンス・フローの式を作成および編集できます。条件シーケンスでは、式を使用してプロセスのフローを決定します。
条件シーケンス・フローの式を定義するには:
プロセスを開きます。
プロジェクトが編集モードであることを確認します。
編集する条件シーケンスの「編集」アイコンをクリックします。
「実装」をクリックします。
「編集」をクリックします。
式エディタ・ウィンドウが表示されます。
必要なデータ・オブジェクトおよび演算子を追加します。
データ・オブジェクトを式に追加するには:
「データ・オブジェクト」タブを選択します。
リストからデータ・オブジェクトを選択します。
複合データ・オブジェクトの一部である基本データ・オブジェクトを追加する場合は、複合データ・オブジェクトを展開し、追加する基本データ・オブジェクトを選択します。
「式に挿入」をクリックします。
演算子を式に追加するには:
「演算子」タブを選択します。
展開可能なリストから、追加する演算子を選択します。
「式に挿入」をクリックします。
「エラー」タブをクリックし、式にエラーがないことを確認します。
「OK」をクリックします。
「実装」タブで「変更の適用」をクリックします。
Business Process Composerを使用して、データ・アソシエーションの式を作成および編集できます。データ・アソシエーションでは、式を使用して、データ・オブジェクトが入力および出力として受け渡す値を変更できます。
データ・アソシエーションの入力または出力に式を定義するには:
プロセスを開きます。
プロジェクトが編集モードであることを確認します。
プロセス内のフロー・オブジェクトを右クリックし、「データ・アソシエーション」を選択します。
「式ビルダーの起動」をクリックします。
必要なデータ・オブジェクトおよび演算子を追加します。
データ・オブジェクトを式に追加するには:
「データ・オブジェクト」タブを選択します。
リストからデータ・オブジェクトを選択します。
複合データ・オブジェクトの一部である基本データ・オブジェクトを追加する場合は、複合データ・オブジェクトを展開し、追加する基本データ・オブジェクトを選択します。
「式に挿入」をクリックします。
演算子を式に追加するには:
「演算子」タブを選択します。
展開可能なリストから、追加する演算子を選択します。
「式に挿入」をクリックします。
「エラー」タブをクリックし、式にエラーがないことを確認します。
「OK」をクリックします。