Oracle® Fusion Middleware Oracle Business Process Management Business Process Composerユーザーズ・ガイド 11g リリース1 (11.1.1.7) B61410-08 |
|
前 |
次 |
この章では、BPMプロジェクトの作成、BPMNプロセスの作成、設計、テスト、BPMプロジェクトのランタイムへのデプロイに必要な一般的なステップの概要を示します。必要なタスクを実行するための追加の情報や手順を説明する他の章へのリンクも含まれています。
この章の構成は、次のとおりです。
ビジネス・プロセスのモデリングを開始する前に、BPMプロジェクトを設定する必要があります。次の項では、Oracle Business Process ComposerにログインしてBPMプロジェクトを作成し、保存する方法について説明します。
BPMプロジェクトには、ビジネス・アプリケーションで必要なすべてのコンポーネントが含まれます。これには、Oracle BPMアプリケーションのコアを形成するBPMNプロセスと、アプリケーションを他のプロセスやデータベースに接続するために使用されるテクニカル・コンポーネントが含まれます。詳細は、4.1項「Oracle BPMプロジェクトの概要」を参照してください。
次の項では、Business Process Composerにログインして新しいBPMプロジェクトを作成し、出張リクエスト・アプリケーションの動作を定義するBPMNプロセスを作成する方法について説明します。
BPMプロジェクトを作成する前に、システム管理者により指定される次の情報を使用してBusiness Process Composerにログインする必要があります。
URL: Business Process Composerがインストールされている場所。
ユーザー名: Business Process Composerへのアクセスに使用するユーザー名。
パスワード: Business Process Composerへのアクセスに使用するセキュリティ資格証明。
Oracle Business Process Composerにログインするには:
Business Process ComposerのURLに移動します。
図3-1は、Oracle BPMアプリケーションのロード後に表示されるサインオン画面を示しています。
注意: Oracle BPM Suiteでは、Oracle Application Server Single Sign-onがデフォルトで有効になっています。OracleAS Single Sign-Onを使用すると、1つのシングル・サインオン・セッションで複数のWebベース・アプリケーションにアクセスできます。OracleAS Single Sign-Onが有効化されており、他のアプリケーションにサインオン済の場合、Business Process Composerのサインオン画面が表示されない場合があります。 |
ユーザー名とパスワードを入力し、「ログイン」をクリックします。
ログインすると、Business Process Composerには図3-2のようなアプリケーションのようこそページが表示されます。
アプリケーションのようこそページとBusiness Process Composerユーザー・インタフェースの詳細は、2.4項「Business Process Composerユーザー・インタフェースの概要」を参照してください。
Business Process Composerへのログイン後、BPMアプリケーションを作成するための最初のステップは、新規BPMプロジェクトを作成することです。アプリケーションのようこそページから新しいプロジェクトを直接作成します。
BPMプロジェクトを作成して開くには:
「新規プロジェクト」(+)アイコンをクリックします。
図3-3のように、「Travel_Request」と入力してから、「プロジェクトの作成」をクリックします。
図3-4のように、階層形式のプロジェクト・ツリーに新規のプロジェクトが表示されます。
プロジェクト・ツリーには、今まで作成した、または表示のためにアクセスしたことのあるすべてのプロジェクトが表示されます。BPMプロジェクトの使用の詳細は、第4章「BPMプロジェクトの使用」を参照してください。
Travel Requestプロジェクトを開くには、プロジェクト・ツリー上のそのプロジェクト名をクリックします。
BPMプロジェクトを開くと、プロジェクトのようこそページが表示されます。プロジェクトのようこそページでは、完全に機能するBPMアプリケーションに必要なプロセスとコンポーネントを作成、表示および編集できます。
図3-5は、新しいBPMプロジェクトのようこそページです。
BPMプロジェクトの一般的な情報は、第4章「BPMプロジェクトの使用」を参照してください。
BPMプロジェクトを開いたら、BPMNプロセスなど出張リクエスト・アプリケーションに必要なリソースを作成できます。出張リクエスト・アプリケーションでは、TravelRequestProcessという名前のBPMNプロセスを作成する必要があります。
ビジネス・プロセスの定義のひとつは、明確に定義された結果が発生するタスクのシーケンスです。BPMNプロセスは、フロー・オブジェクトを使用してアプリケーションによって実行されるタスクを定義します。Oracle BPMにおけるビジネス・プロセスの一般的な情報は、5.1項「ビジネス・プロセスの概要」を参照してください。
新しいBPMNプロセスを作成するには:
プロジェクトのようこそページで、「プロセス」タブを選択します。
「新規プロセス」をクリックしてから、図3-6のように「TravelRequestProcess」と入力します。
「作成」をクリックします。
作成したプロセスが、「プロセス」タブに表示されます。追加のBPMNプロセスを作成した場合には、それもこのタブに表示されます。
BPMプロジェクトの編集中は、いつでも変更を保存できます。Business Process Composerは、BPMプロジェクトをBPMリポジトリに保存します。BPMリポジトリは、Business Process ComposerやOracle BPM Studioの他のユーザーとコラボレーションできる共有リポジトリです。
詳細は、4.1.2項「Oracle BPMリポジトリの概要」を参照してください。
BPMプロジェクトをBPMリポジトリに保存するには:
図3-7に示すように、プロジェクト・ツールバーの「保存」をクリックします。
プロジェクトの保存は、基本的なBPMプロジェクトを設定する際の最後の手順です。プロジェクトを保存したら、フロー・オブジェクトとシーケンス・フローを追加することにより、ビジネス・プロセスのモデリングを開始できます。これらの要素を使用して出張リクエスト・アプリケーションの具体的な動作を定義する方法については、3.2項「BPMNプロセスのモデリング」で説明します。
BPMNは、プロセス・フローを定義する標準形式です。
これらのタスクを実行する順序を定義するのが、シーケンス・フローです。Business Process Composerを使用してビジネス・プロセスを作成する一般的な手順は、第5章「プロセスおよびプロセス・エディタの使用」を参照してください。Oracle Business Process ManagementでサポートされるBPMNフロー・オブジェクトの詳細は、付録A「BPMNフロー・オブジェクト・リファレンス」を参照してください。
出張リクエスト・アプリケーションの場合は、出張リクエストの作成および承認に伴う各ステップがこれらのタスクに当たります。これには、エンド・ユーザーのアプリケーションとの対話およびデータベースの更新など自動化されたタスクが必要であればそれも含まれます。
ビジネス・プロセスは、プロジェクトのようこそページから直接開くことができます。
ビジネス・プロセスを開くには:
プロジェクトのようこそページで、「プロセス」タブを選択します。
TravelRequestProcessをクリックします。
図3-8のように、プロセスがプロセス・エディタ上に開きます。
プロセス・エディタでは、フロー・オブジェクトとシーケンス・フローをプロセスに追加できます。プロセス・エディタの詳細は、5.2.2項「プロセス・エディタ・キャンバスの概要」を参照してください。Oracle BPMでサポートされるBPMNフロー・オブジェクトの詳細は、付録A「BPMNフロー・オブジェクト・リファレンス」を参照してください。
新しいBPMNプロセスを作成すると、デフォルトで、None開始イベントおよび終了イベントが作成されます。詳細は、付録A「None開始イベントの概要」を参照してください。
ビジネス・プロセスを作成し、開いたら、プロセス・フローを定義するBPMNフロー・オブジェクトを追加できるようになります。出張リクエスト・アプリケーションで必要とされる最初のアクティビティは、ユーザーが出張リクエストを送信できるようにすることです。
ユーザー・タスクは、ユーザー相互作用の定義に使用されるBPMNフロー・オブジェクトです。BPMNコンポーネント・パレットからプロセスにユーザー・タスクをドラッグ・アンド・ドロップすることによって、ユーザー・タスクをプロセスに追加できます。
ユーザー・タスクの詳細は、付録A「ユーザー・タスクの概要」を参照してください。コンポーネント・パレットについては、5.2.3項「BPMNコンポーネント・パレットの概要」を参照してください。
プロセスにユーザー・タスクを追加するには:
図3-9に示されているように、BPMNコンポーネント・パレットで、ドロップダウン・リストから「BPMN」を選択します。
コンポーネント・パレットで「対話型」をクリックします。
出張リクエスト・プロセスの初期タスクとして、イニシエータ・タスクを追加する必要があります。イニシエータ・ユーザー・タスクは、ビジネス・プロセスを開始するユーザー・タスクです。イニシエータ・タスクは、プロセス・インスタンスを作成し、プロセス・フローの最初のユーザー・タスクになります。
「イニシエータ」アイコンをクリックして、プロセス・エディタ・キャンバス上のプロセスの開始イベントと終了イベント間のシーケンス・フロー上の任意のポイントまでドラッグします。
シーケンス・フローが点滅し始めたら、再度クリックするとプロセスにタスクが追加されます。ユーザー・タスクの追加後、プロセスは図3-10のようになります。
この方法でシーケンス・フローにフロー・オブジェクトを追加すると、シーケンス・フローは自動的に受信シーケンス・フローおよび送信シーケンス・フローとして接続されます。
新しく追加したタスクの上にマウスを移動し、「編集」アイコンをクリックします。
「名前」フィールドで、名前を「Submit Request」に変更します。
プロパティ・ポップアップの外側をクリックすると、変更が記録されます。
プロジェクトを保存します。
Submit Requestユーザー・タスクを追加すると、出張リクエスト・プロセスの最初の段階が定義されます。このユーザー・タスクにより実装されるユーザー・インタフェースの定義方法については、3.3項「BPMNプロセスの実装 - ユーザー相互作用の定義」で説明します。
引き続きBPMNフロー・オブジェクトをプロセスに追加する場合は、変更内容を保存する必要があります。BPMプロジェクトを保存することにより、変更内容をプロセスに保存します。詳細は、3.1.4項「BPMプロジェクトの保存」を参照してください。
ロールは、プロセスで定義されているタスクを実行するユーザーまたはユーザーのグループを定義する単位です。これらのタスクへのアクセス権があるかどうかも定義します。BPMNプロセスでは、ロールはプロセス・エディタ・キャンバスの水平方向に表示されるスイムレーンに対応します。
出張リクエスト・プロセスの場合は、出張リクエストの作成を担当しそのアクセス権を持つ従業員のロールが必要です。このロールを追加するには、Submit Requestユーザー・タスクを含むEmployeeという名前のロールを作成する必要があります。
プロセスで従業員ロールを作成するには:
プロセス・エディタ・キャンバスの左上にある「未割当てロール」テキストの上にマウス・カーソルを置き、「編集」アイコンをクリックします。
「作成」を選択してから、図3-11のように「Employee」と入力します。
プロパティ・ポップアップの外側をクリックすると、変更が記録されます。
プロジェクトを保存します。
従業員ロールが作成され、スイムレーンのタイトルとして表示されます。作成したロールは、同じプロセス内の他のスイムレーンで再利用できます。同じBPMプロジェクト内の他のプロセスによってロールを共有することもできます。
プロジェクトをデプロイする際に、プロセス管理者はプロセス・ワークスペースを使用して、BPMプロジェクトで定義されているロールを組織の実際のユーザーにマップします。
出張リクエスト・アプリケーションで、従業員が発行する出張リクエストが一定の金額未満の場合、手動による承認は必要ありません。これをBPMNプロセスでモデリングするには、指定されたリクエストが一定金額より上か下かを計算するビジネス・ルール・タスクを使用します。
ビジネス・ルール・タスクは、プロセス内にビジネス・ルールを実装できるBPMNフロー・オブジェクトです。出張リクエスト・アプリケーションでは、出張リクエストに関する情報を格納するデータ・オブジェクトの値のチェックを実行するためにビジネス・ルールが使用されます。
このコンテキストでは、ビジネス・ルールとデータ・オブジェクトの作成は、ビジネス・プロセスの実装の一部として実行されます。出張リクエスト・アプリケーションでのビジネス・ルールの定義方法については、3.4.2項「新規ビジネス・ルールの作成と入出力データ・オブジェクトの定義」を参照してください。
ビジネス・ルール・タスクをプロセスに追加するには:
BPMNコンポーネント・パレットで、ドロップダウン・リストから「BPMN」を選択します。
「アクティビティ」をダブルクリックします。
「ビジネス・ルール」アイコンをクリックして、Submit Requestユーザー・タスクと終了イベント間のシーケンス・フロー上の任意のポイントまでドラッグします。
シーケンス・フローが点滅し始めたら、再度クリックするとプロセスにタスクが追加されます。
新しく追加したタスクの上にマウスを移動し、「編集」アイコンをクリックします。
「名前」フィールドで、名前を「Approval Rules」に変更します。
プロパティ・ポップアップの外側をクリックすると、変更が記録されます。
プロジェクトを保存します。
ビジネス・ルール・タスクを追加し、編集した後、プロセスは図3-12のようになります。
従業員ロールの他、出張リクエスト・プロセスでは出張リクエストの承認を担当するマネージャのロールも必要です。新規ロールの作成に加えて、BPMNプロセスで新しいスイムレーンも作成する必要があります。Business Process Composerでは、プロセス・エディタ・キャンバスの空白領域にアクティビティをドラッグして新規スイムレーンを簡単に作成できます。
新規スイムレーンを追加し、マネージャ・ロールを作成するには:
ビジネス・ルール・タスクをダブルクリックし、従業員スイムレーンの下の領域にドラッグします。
マウス・ボタンを放します。
Business Process Composerによって新規スイムレーンが作成されます。デフォルトでは、新規スイムレーンにロールは割り当てられていません。
プロセス・エディタ・キャンバスの左にある「未割当てロール」テキストの上にマウス・カーソルを置き、「編集」アイコンをクリックします。
「作成」を選択し、「Manager」と入力します。
プロパティ・ポップアップの外側をクリックすると、変更が記録されます。
従業員ロールが作成され、スイムレーンのタイトルとして表示されます。作成したロールは、同じプロセス内の他のスイムレーンで再利用できます。同じBPMプロジェクト内の他のプロセスによってロールを共有することもできます。
終了イベントをダブルクリックし、マネージャ・スイムレーンまでドラッグします。
プロジェクトを保存します。
新しいスイムレーンを作成および追加し、マネージャ・ロールを作成した後、プロセスは図3-13のようになります。
出張リクエスト・プロセスでは、出張リクエストの金額に関するチェックを実行するためにビジネス・ルール・タスクを使用します。しかし、トークンがビジネス・プロセスを通過する実際のパスはゲートウェイによって決定されます。ゲートウェイは、特定の条件、通常はデータ・オブジェクトの値に基づいてビジネス・プロセス中のパスを決定するBPMNフロー・オブジェクトです。BPMNでサポートされているゲートウェイの詳細は、A.7項「ゲートウェイを使用したプロセス・フローの制御」を参照してください。
出張リクエスト・プロセスには、出張リクエストの金額に応じて2つのパスがあります。いずれか一方のオプションしか使用できない場合に2つのパスのいずれかを選択する処理には、排他ゲートウェイを使用します。
プロセスに排他ゲートウェイを追加するには:
BPMNコンポーネント・パレットで、ドロップダウン・リストから「BPMN」を選択します。
コンポーネント・パレットで、「ゲートウェイ」をダブルクリックします。
「排他ゲートウェイ」アイコンをダブルクリックして、ビジネス・ルール・タスクと終了イベント間のシーケンス・フロー上の任意のポイントまでドラッグします。
シーケンス・フローが点滅し始めたら、再度クリックするとプロセスに排他ゲートウェイが追加されます。
排他ゲートウェイのテキストをダブルクリックし、「Manual Approval Required?」と入力します。
[Enter]を押して、変更内容を登録します。
プロジェクトを保存します。
排他ゲートウェイの追加後、プロセスは図3-14のようになります。
出張リクエスト・アプリケーションの設計フェーズ後半では、シーケンス・フローを追加します。出張リクエストが手動の承認を必要としない場合に従う条件シーケンス・フローを追加する方法は、3.2.11項「却下された出張リクエストを処理するシーケンス・フローの追加」で説明しています。
BPMNプロセスで使用されるデータ・オブジェクトを定義するときに、プロセスがどちらの送信シーケンス・フローをとるかを評価するための式も定義する必要があります。詳細は、3.6項「プロセスで使用されるデータの定義」を参照してください。
出張リクエスト・プロセスで手動の承認が必要な場合には、ユーザーが出張リクエストを承認または却下できる新しいユーザー・タスクを追加する必要があります。
承認ユーザー・タスクを追加するには:
BPMNコンポーネント・パレットで、ドロップダウン・リストから「BPMN」を選択します。
コンポーネント・パレットで「対話型」をクリックします。
「ユーザー・タスク」アイコンをダブルクリックし、プロセス・エディタ・キャンバス上の排他ゲートウェイと終了イベント間のシーケンス・フロー上の任意のポイントまでドラッグします。
シーケンス・フローが点滅し始めたら、再度クリックするとプロセスにタスクが追加されます。
新しく追加したタスクの上にマウスを移動し、「編集」アイコンをクリックします。
「名前」フィールドで、名前を「Approve Request」に変更します。
プロパティ・ポップアップの外側をクリックすると、変更が記録されます。
プロジェクトを保存します。
出張リクエストの承認を処理するユーザー・タスクを追加した後、プロセスは図3-15のようになります。
出張リクエスト・アプリケーションでは、出張リクエストが拒否された場合、ユーザーが別の出張リクエストを入力できるように、プロセス・フローが初期ステップに戻る必要があります。BPMNでこれをモデリングするために、承認結果を処理する排他ゲートウェイを追加できます。
排他ゲートウェイを追加するには:
BPMNコンポーネント・パレットで、ドロップダウン・リストから「BPMN」を選択します。
コンポーネント・パレットで、「ゲートウェイ」をダブルクリックします。
「排他ゲートウェイ」アイコンをダブルクリックして、Approve Requestユーザー・タスクと終了イベント間のシーケンス・フロー上の任意のポイントまでドラッグします。
シーケンス・フローが点滅し始めたら、再度クリックするとプロセスに排他ゲートウェイが追加されます。
新しく追加したタスクの上にマウスを移動し、「編集」アイコンをクリックします。
「名前」フィールドで、名前を「Approval Outcome」に変更します。
プロパティ・ポップアップの外側をクリックすると、変更が記録されます。
プロジェクトを保存します。
承認結果を処理する排他ゲートウェイの追加後、プロセスは図3-16のようになります。
出張リクエスト・アプリケーションの最後の要件は、出張リクエストをデータベースに保存することです。データベースのような他のシステムとの接続をモデリングするには、BPMNはサービス・タスクを使用します。設計フェーズ中に、サービス・タスクをプロセス・モデルに追加してから、サービスの技術的な実装情報を定義できます。
サービス・タスクを追加するには:
BPMNコンポーネント・パレットで、ドロップダウン・リストから「BPMN」を選択します。
「アクティビティ」をダブルクリックします。
「サービス・タスク」アイコンをダブルクリックして、Approval Outcome排他ゲートウェイと終了イベント間のシーケンス・フロー上の任意のポイントまでドラッグします。
シーケンス・フローが点滅し始めたら、再度クリックするとプロセスにタスクが追加されます。
新しく追加したサービス・タスクの上にマウスを移動し、「編集」アイコンをクリックします。
「名前」フィールドで、名前を「Save Request」に変更します。
プロパティ・ポップアップの外側をクリックすると、変更が記録されます。
プロジェクトを保存します。
サービス・タスクの追加後、プロセスは図3-17のようになります。
サービス・タスクは、出張リクエスト・アプリケーションが必要とする最後のBPMNフロー・オブジェクトです。図3-17に示されているプロセス・フローは、出張リクエスト・アプリケーションの基本フローを定義します。次の項で、プロセスの代替パスを処理するシーケンス・フローを追加および構成する方法について説明します。
考慮すべきプロセスの最初の代替パスは、出張リクエストが拒否された場合のパスになります。3.2.9項「排他ゲートウェイの追加」では、出張リクエストが却下されたのか承認されたのかを決定する排他ゲートウェイを追加しています。ここでは、却下された出張リクエストを処理するシーケンスを追加する必要があります。このシーケンス・フローは、プロセス・インスタンスをSubmit Requestユーザー・タスクに戻します。
新規シーケンス・フローを追加するには:
Approval Outcome排他ゲートウェイ上にマウス・カーソルを置きます。
「編集」アイコンと「シーケンス・フローの追加」アイコンが図3-18のように表示されます。
「シーケンス・フローの追加」アイコンをクリックし、Submit Requestユーザー・タスクまでドラッグします。
Submit Requestユーザー・タスクが点滅し始めたら、クリックして、シーケンス・フローを追加します。
シーケンス・フローをクリックして、ドラッグし、プロセス・エディタ・キャンバス内で位置を変更します。
シーケンス・フローの上にマウスを移動し、「編集」アイコンをクリックします。
「名前」フィールドに「Rejected」と入力し、ドロップダウン・リストから「条件付き」を選択します。
却下された出張リクエストを処理するシーケンス・フローの追加後、プロセスは図3-19のようになっています。
出張リクエスト・アプリケーションによって必要とされる2つ目の代替パスは、手動承認が必要ないケースを処理するパスです。この場合、リクエストはデータベースに保存されます。このケースを処理するには、次の操作を実行する必要があります。
Manual Approval Required?排他ゲートウェイのデフォルト送信シーケンス・フローを編集します。
排他ゲートウェイからSave Requestサービス・タスクにシーケンス・フローを追加します。
デフォルト承認を処理するには:
Manual Approval RequiredゲートウェイとApprove Requestユーザー・タスク間のシーケンス・フローの上にマウスを移動し、編集アイコンをクリックします。
図3-20に示されているように、名前を「Yes」に変更したら、ドロップダウン・リストから「無条件」を選択します。
プロパティ・ポップアップの外側をクリックすると、変更が記録されます。
Manual Approval Required?排他ゲートウェイの上にマウスを移動し、「シーケンス・フローの追加」アイコンをクリックします。
Save Requestサービス・タスクの上にマウスを移動します。
サービス・タスクが点滅し始めたら、クリックして、シーケンス・フローを追加します。
シーケンス・フローをクリックして、ドラッグし、その位置を変更します。
出張リクエストの承認を処理するシーケンス・フローの編集および追加後、プロセスは図3-21のようになっています。
プロジェクト・スナップショットを作成しすることにより、プロジェクトのバックアップを作成できます。プロジェクト・スナップショットは、BPMリポジトリに格納され、スナップショットを使用して以前のバージョンやリビジョンを復元できます。
プロジェクト・スナップショットを作成するには:
プロジェクトのようこそページに移動し、「スナップショット」をクリックします。
スナップショット・ブラウザが表示されます。
「追加」(+)アイコンをクリックし、「名前」フィールドに「TravelRequestVersion1」と入力します。
「作成」をクリックします。
リストにスナップショットが表示され、そのスナップショットを作成した日付とユーザー名も表示されます。
「OK」をクリックして、スナップショット・ブラウザを閉じます。
スナップショット・ブラウザから、以前のバージョンのプロジェクトを開くことができます。
ビジネス・プロセスの一般的なフローを設計した後、フロー・オブジェクトの具体的な実装詳細を追加できるようになります。この項では、ユーザーとプロセスの相互作用を定義するための手順について説明します。ヒューマン・タスクを作成する方法とWebフォームを作成および構成する方法について説明します。
ヒューマン・タスクとは、ユーザーとBPMアプリケーションとの相互作用を定義できるOracle BPM内のサービス・タイプです。ヒューマン・タスクでは、技術的な機能とランタイム機能に加えて、アプリケーションのユーザー・インタフェース・コンポーネントも定義できます。Oracle BPMでのヒューマン・タスクの使用方法の詳細は、第11章「ヒューマン・タスクの使用」を参照してください。
ヒューマン・タスクを作成して開くには:
3.2項「BPMNプロセスのモデリング」で作成したTravelRequestプロセスを開きます。
図3-22のように、Submit Requestユーザー・タスクを右クリックして、「実装」を選択します。
実装エディタが図3-23のようになります。
「ヒューマン・タスク」テキスト・ボックスの隣の「追加」(+)アイコンをクリックします。
「名前」フィールドに「SubmitRequest」と入力し、「作成」をクリックします。
「変更の適用」をクリックします。
ウィンドウの右側にある「ペインの縮小」矢印をクリックして、実装エディタを閉じます。
Submit Requestユーザー・タスクを右クリックして、「ヒューマン・タスクを開く」を選択します。
ヒューマン・タスクがヒューマン・タスク・エディタに開きます。詳細は、11.2項「ヒューマン・タスク・エディタの概要」を参照してください。ヒューマン・タスクを作成した後、プロジェクトのようこそページの「ヒューマン・タスク」タブにも表示されます。ヒューマン・タスクは、プロジェクトのようこそページから直接作成して開くこともできます。
Webフォームは、プロセスベースのアプリケーションのユーザー・インタフェース・コンポーネントを定義します。Webフォームはヒューマン・タスクに関連付けられます。Oracle BPMでのWebフォームの使用の詳細は、9.1項「Oracle BPMでのフォームの概要」を参照してください。
Webフォーム・エディタを使用して、Webフォーム・コンポーネントをフォーム・キャンバス上までドラッグしてドロップすることにより、フォームのレイアウトを作成できます。
Webフォームを作成するには:
ヒューマン・タスク・エディタから、「基本」タブを選択します。
「プレゼンテーション」で、「Webフォーム」を選択し、「追加」(+)アイコンをクリックします。
「名前」フィールドに「TravelApprovalForm」と入力し、「作成」をクリックします。
「編集」(鉛筆)アイコンをクリックします。
WebフォームがWebフォーム・エディタに開きます。
Webフォームを作成するための最初のステップは、Webフォーム・キャンバスへのWebフォーム・コントロールの追加です。フォーム・コントロールは、フォーム・コントロール・パレット上でクリックして、キャンバスにドラッグすることによって追加できます。
Webフォームにコントロールを追加するには:
Webフォーム・コントロール・パレットでテキストWebフォーム・コントロールをクリックして、フォーム・キャンバスの長方形上までドラッグします。緑の位置アイコンが表示されたら、もう一度クリックして、Webフォーム・コントロールを追加します。
Webフォーム・コントロールの追加の詳細は、9.7.1項「Webフォームにコントロールを追加する方法」を参照してください。コントロールの追加後、Webフォームは図3-24のようになっています。
Webフォーム・キャンバスで、追加したばかりのテキスト・コントロールを選択します。
プロパティ・エディタの「ラベル」プロパティに「Name」と入力します。
Webフォーム・コントロール・パレットで日付Webフォーム・コントロールをクリックし、フォーム・キャンバス上の「Name」テキスト・コントロールの下までドラッグします。緑の下向き矢印が表示されたら、もう一度クリックして、Webフォーム・コントロールを追加します。
Webフォーム・キャンバスで、追加したばかりの日付コントロールを選択します。選択されたコントロールは青色にハイライト表示されます。
プロパティ・エディタの「ラベル」プロパティに「Date」と入力します。
Webフォーム・コントロール・パレットで金額Webフォーム・コントロールをクリックし、フォーム・キャンバス上の「Date」日付コントロールの下までドラッグします。緑の下向き矢印が表示されたら、もう一度クリックして、Webフォーム・コントロールを追加します。
Webフォーム・キャンバスで、追加したばかりの金額コントロールを選択します。
プロパティ・エディタの「ラベル」プロパティに「Total Amount」と入力します。
「有効」プロパティを選択解除します。
プロジェクトを保存します。
「Name」コントロール、「Date」コントロールおよび「Total Amount」コントロールの追加後、Webフォームは図3-25のようになっています。
他のWebフォーム・コントロールを整理またはグループ化するためのWebフォーム・コントロールもあります。出張承認Webフォームを使用しやすくするために、Webフォーム内にタブ付きペインを作成するタブ・コントロールを追加できます。
Webフォームにタブ・コントロールを追加するには:
Webフォーム・コントロール・パレットでタブWebフォーム・コントロールをクリックし、フォーム・キャンバス上の「Total Amount」Webフォーム・コントロールの下までドラッグします。カーソルが緑の下向き矢印になったら、もう一度クリックして、タブ・コントロールを追加します。
タブ・コントロールをフォームに追加すると、自動的に3つのタブが作成されます。ただし、ここでは2つのタブのみ必要です。
タブ2を選択し、「削除」(-)アイコンをクリックします。
タブ0を選択します。
プロパティ・エディタの「名前」フィールドに「Trip Details」と入力します。
タブ1を選択します。
プロパティ・エディタの「名前」フィールドに「Expense Details」と入力します。
タブWebフォーム・コントロールの追加後、Webフォームは図3-26のようになっています。
出張承認Webフォームのレイアウトを完成させるために、各タブにコントロールを追加できます。
タブ・コントロールにコントロールを追加するには:
「Trip Details」タブを選択します。
Webフォーム・コントロール・パレットで、表3-1に示されている各コントロールをクリックして、Webフォーム・キャンバスの「Trip Details」タブ上までドラッグします。各コントロールを追加するだけでなく、プロパティ・エディタの「設定」タブと「スタイル」タブを使用してプロパティを編集し、コントロールをカスタマイズする必要があります。
表3-1 「Trip Details」タブのWebフォーム・コントロールの設定
コントロール名 | コントロール・タイプ | 設定 | スタイル |
---|---|---|---|
Country |
ドロップダウン |
ラベル = "Country" |
なし |
City |
ドロップダウン |
ラベル = "City" |
なし |
Purpose of Visit |
ラジオ |
オプション1=Internal Meeting |
アイテムの幅=25% |
Customer Name |
テキスト |
ラベル= "Customer Name" |
なし |
Justification |
テキスト領域 |
ラベル = "Justification" |
幅 = 80% |
「Trip Details」タブへの各Webフォーム・コントロールの追加後、フォームは[Fig x.x]のようになっています。
「Expense Details」タブを選択します。
Webフォーム・コントロール・パレットで、表3-2に示されている各コントロールをクリックして、Webフォーム・キャンバスの「Expense Details」タブ上までドラッグします。各コントロールを追加するだけでなく、プロパティ・エディタの「設定」タブと「スタイル」タブを使用してプロパティを編集し、コントロールをカスタマイズする必要があります。
「Expense Details」タブへの各Webフォーム・コントロールの追加後、完成フォームは図3-28のようになっています。
Webフォームのレイアウトを作成し、必要なWebフォーム・コントロールを追加した後、Webフォーム・エディタから直接、その動作をテストできます。
Webフォームをテストするには:
図3-29のようなWebフォーム・エディタ・ツールバーの「Webフォームのテスト」ボタンをクリックします。
Webフォームがポップアップ・ウィンドウに表示されます。各フィールドに値を入力することにより、データ入力コントロールをテストできます。フィールドに無効なデータが入力されると、エラーが表示されます。
フォームのテストが終了したら、「閉じる」ボタンをクリックします。
フォーム・ルールにより、Webフォームに動的な動作を追加することができます。TravelRequest Webフォームは、フォーム・ルールを使用して、出張リクエストの合計金額を計算します。
合計金額を計算するフォーム・ルールを追加するには:
Webフォーム・エディタ・ツールバーのフォーム・ルールボタンをクリックします。
「追加」(+)ボタンをクリックします。
「ルールの編集」ボタンをクリックします。
「名前」フィールドに「Total Expense」と入力します。
「ルール」テキスト領域に次のテキストを入力します。
var total = 0;
for (var i = 0; i < Amount.value.length; i++) { total = total + Amount[i].value; } TotalAmount.value = total;
図3-29に示すように、「Webフォームのテスト」ボタンをクリックします。
TravelRequestアプリケーションでは、出張の目的が顧客訪問に設定された場合に、顧客フィールドを動的に有効にするフォーム・ルールを作成できます。
フォームに動的な機能を追加するフォーム・ルールを追加するには:
Webフォーム・ルール・エディタの新規フォーム・ルールの作成(+)ボタンをクリックします。
フォーム・ルールの「編集」ボタンをクリックします。
「名前」フィールドに「Enable Customer」と入力します。
「ルール」テキスト領域に次のテキストを入力します。
if (PurposeOfVisit.value == 'Customer Visit') { CustomerName.visible = true; } else {
CustomerName.visible = false; }
図3-29に示すように、「Webフォームのテスト」ボタンをクリックします。
出張リクエスト・アプリケーションで必要とされる2つ目のフォーム・ルールは、オプション・リストを動的に移入するフォーム・ルールです。
オプション・リストを動的に移入するフォーム・ルールを追加するには:
Webフォーム・ルール・エディタの新規フォーム・ルールの作成(+)ボタンをクリックします。
フォーム・ルールの「編集」ボタンをクリックします。
「名前」フィールドに「Country Dropdown」と入力します。
「ルール」テキスト領域に次のテキストを入力します。
if (form.load) { url = 'http://localhost:7001/LOVHelper/jersey/listvalues/countries'; eval ('x=' + http.get(url)); Country.options = x; }1
図3-29に示すように、「Webフォームのテスト」ボタンをクリックします。
3.3項「BPMNプロセス - ユーザー相互作用の定義」では、ユーザー・タスクと関連付けられているヒューマン・タスクおよびWebフォームを実装することにより、出張リクエスト・アプリケーションのユーザー・インタフェースを定義しました。この項では、出張リクエスト・アプリケーションが必要とするビジネス・ルールを作成するプロセスを確認し、ビジネス・ルールをビジネス・ルール・タスク・フロー・オブジェクトに割り当てる方法について説明します。
ビジネス・ルールを作成する前に、ビジネス・ルールの入出力引数を定義するデータ・オブジェクトを作成する必要があります。データ・オブジェクトを使用すると、アプリケーションにより使用されるデータ構造を定義できます。詳細は、12.2項「データ・オブジェクトの概要」を参照してください。
ビジネス・オブジェクトを作成するには:
プロジェクトのようこそページで、「ビジネス・オブジェクト」タブを選択して、「新規ビジネス・オブジェクト」をクリックします。
「名前」フィールドに「RuleInput」と入力し、「親モジュール」の横の「追加」(+)アイコンをクリックします。
「BusinessData」と入力し、「OK」をクリックします。
ドロップダウン・リストから「BusinessData」を選択し、「作成」をクリックします。
「新規ビジネス・オブジェクト」をクリックします。
「名前」フィールドに「RuleOutput」と入力し、「親モジュール」ドロップダウン・リストから「BusinessData」を選択します。
「作成」をクリックします。
データ・オブジェクトの作成後、データ・オブジェクト内で使用されるデータ型を定義する属性を追加することにより、データ・オブジェクトを構成する必要があります。
ビジネス・オブジェクトを構成するには:
プロジェクトのようこそページで、「ビジネス・オブジェクト」タブを選択して、「RuleInput」をクリックします。
データ・オブジェクト・ツリーで、「RuleInput」を選択します。
「追加」メニューをクリックし、「新規属性の追加」を選択します。
「名前」フィールドに「amount」と入力し、ドロップダウン・リストから「実数」を選択します。
「OK」をクリックします。
データ・オブジェクト・ツリーのRuleInputの下にamount属性が表示されます。
データ・オブジェクト・ツリーで、「RuleOutput」を選択します。
「追加」メニューをクリックし、「新規属性の追加」を選択します。
「名前」フィールドに「manualApproval」と入力し、ドロップダウン・リストから「ブール」を選択します。
「OK」をクリックします。
データ・オブジェクト・ツリーのRuleOutputの下にmanualApproval属性が表示されます。
プロジェクトを保存します。
この項で定義したデータ・オブジェクトは比較的単純なものです。実際のアプリケーションでは、1つのデータ・オブジェクトに、複数のデータ型を持つ複数のモジュールが含まれる場合があります。
入力データと出力データ用のビジネス・オブジェクトを定義したら、新規ビジネス・ルールを作成できます。
新規ビジネス・ルールを作成して、入出力データ・オブジェクトを定義するには:
プロジェクトのようこそページで、「ルール」タブを選択して、「新規ビジネス・ルール」をクリックします。
「名前」フィールドに「ApprovalRule」と入力します。
入力データ・オブジェクトを追加します。
「追加」(+)アイコンをクリックします。
「名前」フィールドの右側のドロップダウン・リストから「入力」を選択します。
「名前」フィールドに「ruleInput」と入力します。
「タイプ」ドロップダウン・リストから、「<component>」を選択します。
「ビジネス・オブジェクト」ドロップダウン・リストが表示されます。
「ビジネス・オブジェクト」ドロップダウン・リストから、「/BusinessData/RuleInput」を選択します。
「追加」をクリックします。
表に入力データ・オブジェクトが表示されます。
出力データ・オブジェクトを追加します。
「追加」(+)アイコンをクリックします。
「名前」フィールドの右側のドロップダウン・リストから「出力」を選択します。
「名前」フィールドに「ruleOutput」と入力します。
「タイプ」ドロップダウン・リストから、「<component>」を選択します。
「ビジネス・オブジェクト」ドロップダウン・リストが表示されます。
「ビジネス・オブジェクト」ドロップダウン・リストから、「/BusinessData/RuleOutput」を選択します。
「追加」をクリックします。
図3-30のように、表に出力データ・オブジェクトが表示されます。
「OK」をクリックして、ビジネス・ルールを作成します。
ビジネス・ルールが、プロジェクトのようこそページの「ビジネス・ルール」タブに表示されます。
プロジェクトを保存します。
新規ビジネス・ルールを作成した後、これを構成する最初のステップは、バケットセットを作成して構成することです。バケットセットは、ビジネス・ルールの異なるプロパティの値リストまたは値範囲を定義します。TravelRequestアプリケーションでは、出張リクエストを手動で承認する必要があるかどうかを決定する値の範囲をバケットセットにより定義します。
バケットセットを作成および構成するには:
プロジェクトのようこそページで、「ルール」タブを選択して、「ApprovalRule」をクリックします。
ルール・エディタが表示されます。ビジネス・ルールとルール・エディタの使用についての一般的な情報は、第13章「Oracle Business Rulesの使用」を参照してください。
「バケットセット」タブを選択します。
「追加」メニューをクリックし、「範囲リスト」を選択します。新しいバケットセットが作成され、表に表示されます。
表からバケットセットを選択し、「バケットセットの編集」アイコンをクリックします。
バケットセットに対して次の値を入力します。
名前: AmountRange
データ型: float
次の手順でバケットを作成します。
「バケットの追加」(+)アイコンをクリックします。
「エンドポイント」列に「5000」と入力します。
「エイリアス」列に「Low」と入力します。
エンドポイント値が7000と10000のバケットを追加します。値が表す内容を反映するように、エイリアス列を更新することもできます。バケットセットの表は、図3-31のようになります。
「OK」をクリックして、バケットセットの構成を終了します。
詳細は、『Oracle Fusion Middleware Oracle Business Rulesユーザーズ・ガイド』のファクトおよびバケットセットの使用に関する項を参照してください。
バケットセットを定義した後、ビジネス・ルールを構成するための次のステップは、デシジョン表の定義です。デシジョン表は、ビジネス・ルールのパフォーマンスを決定する一連のIF-THEN文を提供します。これらの文は、スプレッドシートに似た表形式で配置されます。
詳細は、『Oracle Fusion Middleware Oracle Business Rulesユーザーズ・ガイド』のデシジョン表の使用に関する項を参照してください。
デシジョン表を作成および構成するには:
プロジェクトのようこそページで、「ルール」タブを選択して、「ApprovalRule」をクリックします。
ルールセット1をクリックします。
「追加」メニューをクリックし、「デシジョン表の追加」を選択します。
「名前」フィールドに「Approval Decision Table」と入力します。
次の手順で条件を作成して構成します。
デシジョン表で「条件」を選択します。
「追加」メニューから「条件の追加」を選択します。
条件ブラウザで、「RuleInputType」を開いて、「Amount」を選択します。
「OK」をクリックします。
RuleInputType.amountが表内に表示されます。
表からRuleInputType.amountを選択して、バケットセットのリストから「Amount_Ranges」を選択します。
RuleInputType.amountに対応する列R1内のセルをクリックして、「低」と「非常に低」の隣のチェック・ボックスを選択します。
次の手順でアクションを作成して構成します。
デシジョン表で「アクション」を選択します。
「追加」メニューから「アクションの追加」、「新規をアサート」の順に選択します。
「ファクト」の下のRuleOutputTypeを選択します。
「プロパティ」の下の「パラメータ化」と「定数」を選択します。
「OK」をクリックします。
新規をアサートRuleOutputTypeに対応する列R1(ルール1の略)のセル内のチェック・ボックスを選択します。
セルの下のテキスト・フィールドに「false」と入力します。
アクションを作成し、構成した後、デシジョン表は図3-32のようになります。
設計フェーズでは、出張リクエストをデータベースに保存するステップをモデリングするサービス・タスクを追加しました。BPMNプロセスを実装するための次のステップは、データベースの接続に使用されるサービスを定義することです。Business Process Composerを使用して、新しいサービスを作成できます。
サービスを定義して、サービス・タスクに割り当てるには:
プロジェクトのようこそページで、TravelRequestプロセスを開きます。
コンポーネント・パレットの上のドロップダウン・リストから「ビジネス・カタログ」を選択します。
「サービスの追加」(+)アイコンをクリックします。
「名前」フィールドに「SaveRequest」と入力します。
「タイプ」ドロップダウン・リストから、「参照」を選択します。
WSDLサービスの下の「URL」を選択して、テキスト・フィールドに値を入力します。一般的な値は次のとおりです。
http://localhost:7001/soa-infra/services/default/SaveRequest/saverequestsync_client_ep?WSDL
使用する値は環境によって異なるので、システム管理者が指定する必要があります。URLを入力した後、WSDLに関する情報を判断するため、Business Process ComposerはそのURLに接続します。この接続に成功すると、Business Process Composerは、「ポート・タイプ」ドロップダウン・リストと「コールバック・タイプ」ドロップダウン・リストに移入します。
「ポート・タイプ」ドロップダウン・リストと「コールバック・タイプ」ドロップダウン・リストから値を選択します。
「OK」をクリックします。
「保存」をクリックします。
TravelRequestプロセスを開きます。
SaveRequestサービス・タスクを右クリックして、「実装」を選択します。
「タイプ」ドロップダウン・リストから、「サービス・コール」を選択します。
SaveRequestサービスをクリックします。
「操作」ドロップダウン・リストから「プロセス」を選択します。
「変更の適用」をクリックします。
プロジェクトを保存します。
ビジネス・プロセスのモデリングと実装では、アプリケーションで使用されるデータを定義する必要があります。出張リクエスト・アプリケーションで必要となるデータを定義するには、出張リクエストについての情報を格納する際に必要となるデータ型を定義する必要があります。これらのデータ型はデータ・オブジェクトによって定義されます。ユーザーが、実装フェーズ中に作成されたWebフォームによって定義されたユーザー・インタフェースに情報を入力すると、この情報がデータ・オブジェクトに格納されます。
BPMNプロセス内で使用される式も定義できます。式は、データ・オブジェクトに格納される値を評価したり変更したりするのに使用されます。
データ・オブジェクト・エディタを使用して、Business Process Composer上でデータ・オブジェクトを作成および編集します。
出張リクエスト・プロセスで必要となるデータ・オブジェクトを作成するには:
TravelRequestプロセスを開きます。
図3-33で強調表示されている、プロセス・エディタ・ツールバーの「データ・オブジェクト」ボタンをクリックします。
データ・オブジェクト・エディタが表示されます。
図3-34に示されているように、「追加」メニューから「プロセス・データ・オブジェクト」を選択します。
「名前」フィールドに「requestDataObj」と入力します。
「タイプ」ドロップダウン・リストから、「<component>」を選択します。このオプションを選択すると、「ビジネス・オブジェクト」ドロップダウン・リストが表示されます。
ドロップダウン・リストからTypes.TravelApprovalFormを選択し、「OK」をクリックします。
新しいデータ・オブジェクトが作成され、TravelRequestノードの下に表示されます。プロジェクト・データ・オブジェクトを作成している場合、Travel_Requestの下に表示されています。プロジェクト・データ・オブジェクトとプロセス・データ・オブジェクトについては、12.2.2項「プロセスおよびプロジェクト・データ・オブジェクトの概要」を参照してください。
前記の手順により、次の表に示されているパラメータを使用する2つの追加プロセス・データ・オブジェクトを作成します。
名前 | タイプ |
---|---|
approvalOutcome |
文字列 |
manualApproval |
ブール |
これらのデータ・オブジェクトを作成したら、データ・オブジェクト・エディタは図3-35のようになっています。
「閉じる」をクリックします。
式を使用して、データ・オブジェクトに格納されるデータを評価したり、必要に応じて値を変更したりできます。出張リクエスト・プロセスでは、式を使用して、次のことを行います。
手動承認シーケンス・フローの式を定義するには:
「いいえ」シーケンス・フローの上にマウスを移動し、「編集」ボタンをクリックします。
「実装」をクリックします。
「条件」テキスト・フィールドの横の「編集」をクリックします。
式エディタが表示されます。
式エディタで、「manualApproval==false」と入力します。
「検証」をクリックして、式が有効であることを確認し、OKをクリックします。
実装エディタで「変更の適用」をクリックします。
却下されたシーケンス・フローの式を定義するには:
「却下」シーケンス・フローの上にマウスを移動し、「編集」ボタンをクリックします。
「実装」をクリックします。
「条件」テキスト・フィールドの横の「編集」をクリックします。
式エディタで、「approvalOutcome=="REJECT"」と入力します。
「検証」をクリックして、式が有効であることを確認し、OKをクリックします。
実装エディタで「変更の適用」をクリックします。
ビジネス・プロセスでデータがどのように使用されるのか定義するための最後のステップは、データ・アソシエーションの定義します。データ・アソシエーションを使用してBPMNフロー・オブジェクト間で情報を渡す方法を定義します。
ヒューマン・タスクに対してデータ・アソシエーションを定義するには:
Submit Requestヒューマン・タスクを右クリックし、「データ・アソシエーション」を選択します。
データ・アソシエーション・エディタが表示されます。
右側の「データ・オブジェクト」ペインで、「データ・オブジェクト」を開きます。
requestDOをクリックし、Submit Requestヒューマン・タスクの「出力」テキスト・フィールドまでドラッグします。
また、requestDOをクリックし、Submit Requestヒューマン・タスクの「入力」テキスト・フィールドまでドラッグします。
「適用」をクリックします。