Forum Stats

  • 3,714,736 Users
  • 2,242,615 Discussions
  • 7,845,036 Comments

Discussions

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Oracle Integration - Process でデシジョン・モデルを作成してみよう - 初級編

Satoshi Nakane-Oracle
Satoshi Nakane-Oracle Posts: 32 Employee
edited May 2020 in Social Groups

目次に戻る:

Oracle Integration(OIC) のプロセス自動化 (Process Automation) 機能を利用して、簡単なデシジョン・モデル(Decision Model)の作成方法をステップ・バイ・ステップで紹介するチュートリアルです

ここでは、気温と降水確率を入力パラメータとして、外出時の持ち物を判断するデシジョンモデル(What to Bring)を作成します

前提条件:

  1. OIC インスタンスを作成する - 準備編 が完了していること
  2. , を通じて基本的なプロセス開発手法を習得していること
  3. OIC インスタンス作成時のエディションが ENTERPRISE であること
  4. OIC インスタンスの ServiceAdministrator ロールが付与されたユーザーが準備されていること
    参考)Oracle Integration Roles and Privileges
    https://docs.oracle.com/en/cloud/paas/integration-cloud/integration-cloud-auton/oracle-integration-cloud-roles-and-privi…

image


チュートリアル:Oracle Integration - Process Automation で簡単なデシジョン・モデルを作成する

0. 説明

デシジョン・モデルとは、プロセスの中で利用するデシジョン(判断)を自動化する仕組み・ルールです。例えば、以下のようなものが考えられます

  • 購買稟議申請の合計金額が100万円未満の場合は部門長承認が必要、100万円を超える場合は部門長および担当役員の承認が必要
  • 従業員の年次有給休暇の付与日数を、従業員の役職、勤務地、勤続年数から自動計算する

このチュートリアルでは、気温と降水確率から外出時の持ち物をデシジョン(判断)するデシジョン・モデルを作成します

今回作成するデシジョンロジックは以下の通りです

  • 暖かい、かつ、雨が降る →
  • 暖かい、かつ、雨が降らない →何もいらない
  • 寒い、かつ、雨が降る →レインコート
  • 寒い、かつ、雨が降らない →オーバーコート

暖かい、寒いの判断は以下の通りとします

  • 気温が18℃を超える →暖かい
  • 気温が18℃以下 →寒い

雨が降る、降らないの判断は以下の通りとします

  • 降水確率が80%を超える →雨が降る
  • 降水確率が80%以下 →雨が降らない

1. デシジョン・モデルの作成

  1. Web ブラウザを開き、OIC インスタンスにサインインします

  2. 左ナビゲーションメニューのプロセスデシジョン・モデルをクリックします

  3. 作成をクリックします
    続けて、デシジョンモデルを作成します作成をクリックします
    dmn001.png

  4. 名前、スペース、説明を入力し、作成をクリックします。ここでは以下を入力します
    • 名前: What to Bring Decision Model
    • スペース: Tutorial
    • 説明: 外出時の持ち物を判断するデシジョン・モデル
    • すぐに開始: チェックを入れる
      dmn002.png

  5. デシジョン・モデルの編集画面が開きます

2. デシジョンの追加

  1. 画面右上の+ボタンをクリックします
    dmn003.png

  2. 名前に What to Bring と入力し、空のロジックを選択します。最後に作成をクリックします
    dmn004.png

  3. 同じ手順で、Temperature デシジョンと Rain デシジョンを空のロジックで作成します。
    最終的にデシジョンの並び順が以下の通りとなります。なお、各デシジョンのロジックは、後ほど編集します
    dmn005.png

    デシジョンの順序には意味があります。一番上にあるデシジョンは最終結果を出すためのデシジョンで、その他は結果判定の支援をするデシジョンになります(赤枠で囲んだ矢印がそれを意味します)。最終結果を出すデシジョンが一番上にない場合は、ドラッグ&ドロップでデシジョンを入れ替えることができます
    今回の場合、最終結果を出す What to bring デシジョンが一番上になります
  4. 保存をクリックします
    編集中のデシジョン・モデルは、こまめに保存することを推奨します

3. 入力データの定義

3.1 入力タイプ(ForecastType)の定義

  1. 右端の入力データをクリックし、入力データパネルを開きます。
    続けて、タイプ定義のをクリックします
    dmn006.png

  2. データ型の追加で、名前、構成タイプを入力します。ここでは以下を入力します
    • 名前: ForecastType
    • 構成タイプ: Complex
  3. タイプ属性の定義のをクリックします
    dmn007.png

  4. 名前、構成タイプ、Allowed Valuesを入力し、閉じるをクリックします。
    ここでは以下を入力します
    • 名前: temperature
    • 構成タイプ: Number
    • Allowed Values: value
      dmn008.png

  5. 同じ手順を繰り返し、percentage を作成します
    • 名前:percentage
    • 構成タイプ: Number
    • Allowed Values: value

  6. ForecastType のタイプ属性の定義に temperaturepercentage が作成されていることを確認し、閉じるをクリックします
    dmn009.png

3.2 入力データ(Forecast)の定義

  1. 入力データのをクリックします

  2. 名前、構成タイプを入力します。OtherTypes では、先ほど作成した ForecastType を選択します
    最後に閉じるをクリックします
    • 名前: Forecast
    • 構成タイプ: Other Type
    • Other Types: ForecastType
      dmn010.png

4. デシジョンロジックの編集

4.1 Rain デシジョン・ロジックの編集

  1. Rain デシジョンの下向き矢印をクリックします

  2. デシジョン・ロジックの選択より、を選択します
    dmn011.png

  3. 式の入力に、以下を入力します。検証エラー/警告のメッセージが消えることを確認します
    Forecast.percentage>80
    dmn012.png
    この式は、降水確率が80%を超える場合は ture、超えない場合は false がそれぞれ返されます

4.2 Temperature デシジョン・ロジックの編集

  1. Temperature デシジョンの下向き矢印をクリックします

  2. デシジョン・ロジックの選択より、If-Then-Else を選択します
    dmn013.png

  3. If, Then, Else に、それぞれ以下を入力します。検証エラー/警告のメッセージが消えることを確認します
    • If: Forecast.temperature>18
    • Then: "暖かい"
    • Else: "寒い"
      dmn014.png

      この式は、気温が18℃を超える場合は「暖かい」、超えない場合は「寒い」がそれぞれ返されます

4.3 What to Bring デシジョン・ロジックの編集

  1. What to Bring デシジョンの下向き矢印をクリックします

  2. デシジョン・ロジックの選択より、Decision Table を選択します
    dmn015.png

  3. What to Bring の下の Enter Allowed Values をクリックします
    dmn016.png

  4. 構成タイプ、Allowed Values、値を入力し、閉じるをクリックします。ここでは以下の通りとします
    • 構成タイプ: Text
    • Allowed Values: list of Values
    • 値:  
        レインコート
        オーバーコート
        何もいらない
      dmn017.png

  5. 式の入力をクリックし、Temperature を入力します

  6. Temperature を選択したまま、後に列を追加ボタンをクリックします
    dmn018.png

  7. 追加された列の式の入力をクリックし、Rain を入力します
    dmn019.png

  8. 1行目に値を設定します。ここでは以下の通りとします
    • Temperature: 暖かい
    • Rain: true
    • What to Bring:

  9. 1行目を選択したまま、後に行を追加ボタンをクリックします
    dmn020.png

  10. 2行目に以下を入力します
    • Temperature: 暖かい
    • Rain: false
    • What to Bring: 何もいらない
      dmn021.png
  11. 同じ手順を繰り返し、3行目4行目を作成します。検証エラー/警告のメッセージが消えることを確認します
    • 3行目
      • Temperature: 寒い
      • Rain: true
      • What to Bring: レインコート
    • 4行目
      • Temperature: 寒い
      • Rain: false
      • What to Bring: オーバーコート
        dmn022.png

5. デシジョン・モデルのテスト

  1. 右上の ▶︎ をクリックします

  2. temperature と percentage に以下を入力し、テストの開始をクリックします
    • temperature: 18
    • percentage: 70
      dmn023.png

  3. 出力にオーバーコートが返ってくることを確認します
    dmn024.png

  4. 戻るをクリックし、他の条件でのテストを繰り返します
    • temperature=20, percentage=70 → 何もいらない
    • temperature=20, percentage=85 →
    • temperature=18, percentage=85 → レインコート


6. デシジョン・サービスの作成とアクティブ化

  1. 左側のサービスをクリックし、サービス・パネルを展開します

  2. サービスのをクリックします
    dmn025.png

  3. 名前に WhatToBringService を入力し、OKをクリックします
    dmn026.png

  4. 出力デシジョンで What to Bring を、入力データで Forecast をそれぞれ選択します
    dmn027.png

  5. 保存をクリックします。続けて、アクティブ化をクリックします

  6. デフォルト設定のままアクティブ化をクリックします
    今回は What to Bring Decision Model-s1 スナップショットをバージョン1.0としてアクティブ化します
    dmn028.png

7. [確認] プロセス・アプリケーションからデシジョン・モデルを利用する

  1. プロセス・アプリケーションを作成します。今回は What to Bring Application を作成します
    dmn029.png

  2. プロセスを作成します。今回は、What to Bring Decision Processフォームを選択して作成します
    dmn030.png

  3. What to Bring Process デシジョン送信タスクを配置します
    dmn031.png

  4. 気温(temperature)、降水確率(percentage)、持ち物(whattobring)の3項目を入力するシンプルなフォーム(ForecastWebForm)を作成します
    • 気温(temperature): 基本パレット→番号
    • 降水確率(percentage): 基本パレット→番号
    • 持ち物(whattobring): 基本パレット→入力テキスト読取り専用
      dmn032.png7

  5. 作成したフォームを、Start イベントとUser Taskに割り当てます
    dmn033.png

  6. デシジョンのプロパティを開き、デシジョン・モデルのをクリックします
    dmn034.png

  7. 前の手順でアクティブ化した What to Bring Decision Model を選択し、使用をクリックします
    dmn035.png

  8. デシジョンのデータアソシエーションを設定します
    • 入力
      • forecastWebFormDataObject.percentage → body.forecast.percentage
      • forecastWebFormDataObject.temperature → body.forecast.temperature
        dmn036.png
    • 出力
      • bodyOutput.interpretation → ForecastWebFormDataObject.whattobring
        dmn037.png

  9. 作成したアプリケーションをテスト環境にアクティブ化し、テスト・モードで実行します

  10. 気温に18、降水確率に70を入力し、送信をクリックします
    dmn039.png

  11. 持ち物にオーバーコートが設定されていることを確認します
    dmn038.png

  12. 他の条件でのテストを繰り返します
    • temperature=20, percentage=70 → 何もいらない
    • temperature=20, percentage=85 →
    • temperature=18, percentage=85 → レインコート

8. [発展課題] デシジョン・ロジックの変更

雨が降る/降らないの条件が、80%→60% に引き下げられることになりました。

ここでは、デシジョン・モデルのみを変更・更新することで、プロセス・アプリケーションの動作が変わることと確認します

  1. What to Bring Application がテスト・モードで実行中であることを確認します。
    この場合、気温18℃、降水確率70%の場合、持ち物はオーバーコートが返ってきます
    dmn044.png
  2. What to Bring Decision Moodel を開きます
  3. Rain デシジョンを開き、式を以下の通りに変更します
    (変更前) Forecast.percentage>80(変更後) Forecast.percentage>60
    dmn040.png
  4. 保存をクリックします。続けて、スナップショットをクリックします。
    現在のアクティブ化のバージョンが 1.0 であることを確認し、閉じるをクリックします
    dmn041.png
  5. アクティブ化をクリックします

  6. バージョニングを 1.0 と入力し、上書きにチェックを入れます。最後にアクティブ化をクリックします
    dmn042.png
  7. テスト・モードで実行中の What to Bring Application を実行します
    この際、気温18℃、降水確率70%の同じ条件で新規プロセス・インスタンスを開始します

  8. 持ち物にレインコートが返ってくることを確認します
    dmn043.png

以上でこのチュートリアルは終了です

目次に戻る:

Sign In or Register to comment.