Static Process Tutorial [2/3]

はじめに

このTutorialは18.2.3で動作確認しています。

また、Static Process Tutorial 1を実施済みであることを前提とします。

目的

このパートでは、Static Process Tutorial 1で作成したアプリケーションの変更を通じて、以下の機能を利用するための操作を学習します。

最終構成

このハンズオンでは、Static Process Tutorial 1にて作成したプロセスを基に、ビジネスルールの追加などを実施していきます。最終的に、以下のプロセスを作成します。


アプリケーションの更新

PurchaseRequisition Web Formの更新

現在のフォームでは、プロセスに関わるユーザー全てが追加・変更可能ですが、これを起票者以外が変更できないようにします。

  1. PurchaseRequisitionをクリックします。

  2. フォーム>PurchaseRequisitionUIをクリックします。

  3. 左側のプロパティ>プレゼンテーションで+をクリックします。

  4. ダイアログで、名前に読み取り専用、そして基準はメインを選択し、作成をクリックします。これにより、現在利用しているフォームを元に新しい画面を作成することができます。

  5. 作成をクリックすると、フォーム自体は元のものと変わりませんが、操作対象が読み取り専用に変わっていることがわかります。

  6. 各コンポーネントのプロパティで、読取り専用のチェックをONにします。設定変更の対象は、以下の赤枠で囲んだコンポーネントです。

  7. 表では、データの追加・削除ができないように、ユーザーは行を追加/削除できますのチェックを外しておきます。

  8. 設定変更が終了したら、保存しておきましょう。

  9. プロセス>PurchaseRequisitionプロセスを開きます。

  10. リクエストの承認アクティビティのフォームを先ほど作成した読み取り専用フォームに変更します。アクティビティをクリックして、プロパティを開くを選択します。

  11. プレゼンテーションをメインから読み取り専用に切り替えます。フォームの表示内容自体に変更はないため、データ・アソシエーションの変更は必要ありません。

  12. 保存しておきましょう。


ビジネスルールの作成

金額の大小でもう一段経理部門でチェックをするか、それとも購買部門にそのまま流すかを決定するビジネスルールを定義します。作成する前に、スイムレーンを追加します。

  1. Deputy Managerスイムレーンの下にある+をクリックし、スイムレーンを追加します。

  1. スイムレーンの名前はFinanceとします。もう一つスイムレーンを追加し、そちらはPurchasingという名前にします。

続いて、デシジョンテーブルを作成します。

  1. アプリケーションを閉じ、右上の作成を再度クリックします。このとき、[新規デシジョン・モデル]を選択します。

  2. 名前をFinancialApprovalとして、作成をクリックします。

  3. DMN作成画面が表示されます。もし表示されない場合は、リロードしてください。

  4. 上図右上の+をクリックして、Decisionを追加します。名前はrequiresFinancialApprovalとします。Output Typeはbooleanを選択し、ロジックはIf-then-elseを選択して、Createをクリックします。

    Createをクリックすると、以下のような画面が現れます。

  5. 上図の右側、INPUT DATAをクリックして展開し、Input Dataの+をクリックして入力データを追加します。

  6. 以下のデータを追加し、OKをクリックします。

    Name Data Types
    total number

  7. 入力データを作成後、判定条件を作成します。以下のように設定します。

       
    If total >= 50000
    Then true
    else false

  8. 作成したルールを外部から呼び出せるようにします。画面左側のSERVICESをクリックして展開し、+をクリックしてサービスを追加します。名前はCheckFinancialApprovalServiceとし、OKをクリックします。

  9. Output Decisions、Input Dataに対し、それぞれrequresFinancialApproval、totalをマッピングします。以下のように、Drag & Dropしてください。

    Drag & Dropの結果、画面上は以下のように設定されているはずです。

  10. 保存します。

  11. 外部からルールを呼び出せるよう、アクティブ化を実施します。画面右上のアクティブ化をクリックします。

  12. スナップショット名を指定し、バージョンを設定の上、アクティブ化します。今回は初期設定のままでかまいません。上書きのチェックボックスはONにし、アクティブ化をクリックします。


プロセスのアップデート

先ほど作成したルールを追加します。さらに、判定の結果経理部門のチェックを実施するため、承認アクティビティを追加します。

各部品の詳細については、以下ガイドを参照してください。

Oracle Integration Cloud : https://docs.oracle.com/en/cloud/paas/integration-cloud-um/user-processes-um/controlling-process-flow-using-gateways.html#GUID-9E5FAFE6-01D2-45A4-9505-2A885DD18BDB

Autonomous Integration Cloud : https://docs.oracle.com/en/cloud/paas/integration-cloud/user-processes/working-elements.html#GUID-93DCE0C6-9C2A-4F07-B33D-ABD8357954BB

  1. アプリケーション・ホーム>プロセスでPurchaseRequisitionをクリックします。

  2. 履行アクティビティをクリックし、上部のメニューのタイプの変更をクリックして、赤枠で囲んだデシジョン・アクティビティを選択します。

  3. ラベル名を経理部門の承認要否に変更します。

  4. アクティビティのプロパティを開き、以下の操作を実行します。

    1. ドラフト状態の解除

    2. デシジョン・モデルの+をクリックし、FinancialApprovalを選択し、使用 をクリック

  5. 経理部門の承認要否 アクティビティの後に、排他ゲートウェイを配置し、名前を 経理部門の承認が必要か? とします。

    ゲートウェイの配置場所が狭い場合には、画面をクリックしたまま、左にスワイプすると、領域を広げることができます。

  6. スイムレーンFinanceに承認アクティビティを配置します。アクティビティの名前を経理部門の承認とします。

  7. 経理部門の承認が必要か? ゲートウェイを選択し、シーケンスフロー(矢印)を経理部門の承認アクティビティへつなぎます。

  8. 経理部門の承認要否 アクティビティ、 経理部門の承認が必要か? ゲートウェイをスイムレーンFinanceに移動します。

  9. スイムレーンPurchasingに送信アクティビティを配置し、名前を購買発注とします。

  10. 経理部門の承認が必要か? ゲートウェイから終了イベント”完了”へのデフォルト・シーケンスフローを削除し、改めて 経理部門の承認が必要か? ゲートウェイから 購買発注 アクティビティに対してデフォルト・シーケンスフローを接続します。

    デフォルト・シーケンスフローは、矢印の根元に斜線があります(条件シーケンスフローには斜線は入りません)。このフローは、条件分岐で設定された条件を全て満たさなかった場合に進むシーケンスフローを意味しています。 条件シーケンスフローとデフォルト・シーケンスフローとの切り替えは、シーケンスフローをクリックして鉛筆アイコンをクリックし、プロパティ画面で、条件フローのチェックをON/OFFします。チェックを外すと、デフォルト・シーケンスフローとして取り扱います。

  11. 購買発注アクティビティ と終了イベント”完了”間をシーケンスフローで接続します。

  12. 経理部門の承認 アクティビティの後に排他ゲートウェイを配置し、名前を 経理部門が承認したか? とします。 経理部門の承認 アクティビティと、この排他ゲートウェイをシーケンスフローでつなぎます

  13. 経理部門が承認したか? ゲートウェイと 購買発注 アクティビティ間を条件シーケンスフローで接続します。

  14. 経理部門が承認したか? ゲートウェイと再送信アクティビティ間をデフォルト・シーケンスフローで接続します。

    レイアウトを整えると、画面上下図のようなフローができあがっているはずです。以後で追加したアクティビティに実装します。


デシジョン・アクティビティの実装

スクリーンショットの流れに従って、ルールによる判断の実装を追加します。

  1. 経理部門による承認が必要か?アクティビティをクリックして、データ・アソシエーションを開くを選択します。

  1. 入力側、出力側で以下のようにデータ・アソシエーションを設定します。

    入力側

    左:PurchaseRequisition > Data Object > putchaseRequisitionUIDataObject > total

    右:body > total

    出力側

    データ・オブジェクトを作成し、そのオブジェクトにルールの判定結果を格納します。

    1. 画面右側のデータ・オブジェクトの枠にある、PurchaseRequisition Data > Data Objectを展開

    2. +をクリックできるようになるので、これをクリックしてデータ・オブジェクトを追加

    3. 名前はisFinancialApprovalRequired、データ型はシンプル>ブールを選択

    4. データ・オブジェクトを作成後、以下のようにデータ・アソシエーションを設定する。設定が完了したら、適用を忘れずにクリックする。

      左:bodyOutput > interpretation

      右:PurchaseRequisition > Data Object > isFinancialApprovalRequired

リクエストの承認アクティビティの実装

  1. リクエストの承認アクティビティをクリック>プロパティを開くをクリックし、タイトルフィールドの右にあるドロップダウンボックスをプレーン・テキストから式エディタに変更します。

  2. 式エディタで、

     "プロジェクト購買申請のチェックおよび承認(" + 
    

    まで入力した後、PurchaseRequisitionUIを展開して、projectNameを選択し、式に挿入をクリックします。続けて、

      +")"
    

    を入力します。すると、下図のような状態になっているはずです。

    検証 をクリックして式に問題がないことを確認した上で OK をクリックします。

  3. プレゼンテーションはすでに読み取り専用を選択しているはずです。もし選択されていない場合には、この段階でメインではなく、読み取り専用を選択しておいてください。


再送信タスクアクティビティの実装

  1. 再送信アクティビティをクリック>プロパティを開くをクリックし、タイトルフィールドの右にあるドロップダウンボックスをプレーン・テキストから式エディタに変更します。

  2. 式エディタで、

     "購買申請の修正(" +  
    

    まで入力した後、PurchaseRequisitionUIを展開して、projectNameを選択し、式に挿入をクリックします。続けて、

     +")"
    

    を入力します。すると、下図のような状態になっているはずです。

    検証をクリックして式に問題がないことを確認して、OKをクリックします。

  3. データ・アソシエーション、およびフォームの定義はすでに設定済み(もしくは自動設定済み)なので、手を入れる必要はありません。


経理部門の承認アクティビティの実装

経理部門の承認 アクティビティを実装します。

  1. 経理部門の承認 アクティビティをクリック>プロパティを開くをクリックします。

  2. フォームの右側にある虫眼鏡アイコンをクリックし、PurchaseRequisitionUIを選択し、OKをクリックします。プレゼンテーションは、読み取り専用を選択します。

  3. タイトルフィールドの右にあるドロップダウンボックスをプレーン・テキストから式エディタに変更します。

  4. 式エディタで、

     "経理部門でのチェックおよび承認(" +  
    

    まで入力した後、PurchaseRequisitionUIを展開して、projectNameを選択し、式に挿入をクリックします。続けて、

      +")"
    

    を入力します。すると、下図のような状態になっているはずです。

    その後、検証をクリックし、式に問題がないことを確認して、OKをクリックします。

  5. 経理部門の承認アクティビティへのデータ・アソシエーションは自動的に設定されていますので、確認してください。

    入力側

    出力側


購買発注アクティビティの実装

  1. 購買発注アクティビティをクリック>プロパティを開くをクリックします。

  2. フォームの虫眼鏡アイコンをクリック、PurchaseRequisitionUIを選択してOKをクリックします。プレゼンテーションは読み取り専用を選択します。

  3. タイトルフィールドの右にあるドロップダウンボックスをプレーン・テキストから式エディタに変更します。

  4. 式エディタで、

     "購買発注(" +  
    

    まで入力した後、PurchaseRequisitionUIを展開して、projectNameを選択し、式に挿入をクリックします。続けて、

     +")"
    

    を入力します。すると、下図のような状態になっているはずです。

    その後、 検証 をクリックし、式に問題がないことを確認して、OKをクリックします。

  5. 購買発注アクティビティアクティビティへのデータ・アソシエーションは、経理部門の承認アクティビティと同様、自動的に設定されています。


経理部門の承認が必要か?ゲートウェイの実装

ビジネスルールの結果で条件分岐するゲートウェイを実装します。

  1. 経理部門の承認が必要か?ゲートウェイから、経理部門の承認アクティビティへと繋がる条件シーケンスフローをクリックし、鉛筆アイコンをクリックします。

  2. 条件の右側にある鉛筆アイコンをクリックします。

  3. 式エディタで、PurchaseRequisitionを展開し、isFinancialApprovalRequiredを選択して、式に挿入をクリックし、続けて、

     == true
    

    を入力します。

    検証 をクリックして式に問題がないことを確認した上で、 OK をクリックします。


経理部門が承認したか? ゲートウェイの実装

経理部門の承認アクティビティの結果で条件分岐するゲートウェイ(経理部門が承認したか?)を実装します。

  1. 経理部門が承認したか?ゲートウェイから購買発注アクティビティへと繋がる条件シーケンスフローをクリックして鉛筆アイコンをクリックします。

  2. 条件の右側にある鉛筆アイコンをクリックし、式エディタで、

     TaskOutcomeDataObject == "APPROVE"
    

    とし、 検証 をクリックして式に問題がないことを確認した上で、 OK をクリックします。


プレーヤを使った動作確認

再生機能を使い、作成したプロセスの動作を確認します。

  1. テストをクリックします。

  1. アクティブ化をクリックし、テストモードでのアクティブ化を実行します。

  2. 今回は再生機能を使ってプロセスの流れを確認するため、再生をクリックします。

  3. アプリケーション・プレーヤの画面で、左上のPurchaeRequisitionをクリックします。

  4. 購買申請開始イベント中にある開始ボタンをクリックします。

  5. ユーザーを選択し、実行をクリックします。

  6. 画面フォームに入力し、送信をクリックします。

  7. 引き続き、リクエストの承認でユーザーを選択し、実行をクリックし、フォームの起動をクリックします。

  8. 画面上の値が前回の入力値を引き継いでいること、読み取り専用フォームを開いていることを確認し、APPROVEをクリックします。

  9. 同様の流れでプロセスが完了するまで続けます。途中でREJECTして再送信タスクに遷移するかどうかも確認してください。

  10. プロセスが終了するまで実行します。下図は実行例です。

アプリケーションのアクティブ化

  1. 手順はStatic Process Tutorial 1のアクティブ化と同様です。
    公開をクリックしてコメントを追加後、公開をクリックします。

  2. 続いて、アクティブ化をクリックし、ウィザードに従ってアクティブ化します。以前アクティブ化したものを上書きする場合には、リビジョンは前回と同じものを使い、オーバーライドにチェックを入れた上で、アクティブ化をクリックします。