- 3,714,736 Users
- 2,242,615 Discussions
- 7,845,036 Comments
Forum Stats
Discussions
Oracle Integration - Process でデシジョン・モデルを作成してみよう - 初級編

Satoshi Nakane-Oracle
Posts: 32 Employee
Oracle Integration(OIC) のプロセス自動化 (Process Automation) 機能を利用して、簡単なデシジョン・モデル(Decision Model)の作成方法をステップ・バイ・ステップで紹介するチュートリアルです
ここでは、気温と降水確率を入力パラメータとして、外出時の持ち物を判断するデシジョンモデル(What to Bring)を作成します
前提条件:
- OIC インスタンスを作成する - 準備編 が完了していること
- , を通じて基本的なプロセス開発手法を習得していること
- OIC インスタンス作成時のエディションが ENTERPRISE であること
- 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…
チュートリアル:Oracle Integration - Process Automation で簡単なデシジョン・モデルを作成する
0. 説明
デシジョン・モデルとは、プロセスの中で利用するデシジョン(判断)を自動化する仕組み・ルールです。例えば、以下のようなものが考えられます
- 購買稟議申請の合計金額が100万円未満の場合は部門長承認が必要、100万円を超える場合は部門長および担当役員の承認が必要
- 従業員の年次有給休暇の付与日数を、従業員の役職、勤務地、勤続年数から自動計算する
このチュートリアルでは、気温と降水確率から外出時の持ち物をデシジョン(判断)するデシジョン・モデルを作成します
今回作成するデシジョンロジックは以下の通りです
- 暖かい、かつ、雨が降る →傘
- 暖かい、かつ、雨が降らない →何もいらない
- 寒い、かつ、雨が降る →レインコート
- 寒い、かつ、雨が降らない →オーバーコート
暖かい、寒いの判断は以下の通りとします
- 気温が18℃を超える →暖かい
- 気温が18℃以下 →寒い
雨が降る、降らないの判断は以下の通りとします
- 降水確率が80%を超える →雨が降る
- 降水確率が80%以下 →雨が降らない
1. デシジョン・モデルの作成
- Web ブラウザを開き、OIC インスタンスにサインインします
- 左ナビゲーションメニューのプロセス→デシジョン・モデルをクリックします
- 作成をクリックします
続けて、デシジョンモデルを作成しますの作成をクリックします - 名前、スペース、説明を入力し、作成をクリックします。ここでは以下を入力します
- 名前: What to Bring Decision Model
- スペース: Tutorial
- 説明: 外出時の持ち物を判断するデシジョン・モデル
- すぐに開始: チェックを入れる
- デシジョン・モデルの編集画面が開きます
2. デシジョンの追加
- 画面右上の+ボタンをクリックします
- 名前に What to Bring と入力し、空のロジックを選択します。最後に作成をクリックします
- 同じ手順で、Temperature デシジョンと Rain デシジョンを空のロジックで作成します。
最終的にデシジョンの並び順が以下の通りとなります。なお、各デシジョンのロジックは、後ほど編集しますデシジョンの順序には意味があります。一番上にあるデシジョンは最終結果を出すためのデシジョンで、その他は結果判定の支援をするデシジョンになります(赤枠で囲んだ矢印がそれを意味します)。最終結果を出すデシジョンが一番上にない場合は、ドラッグ&ドロップでデシジョンを入れ替えることができます
今回の場合、最終結果を出す What to bring デシジョンが一番上になります - 保存をクリックします
編集中のデシジョン・モデルは、こまめに保存することを推奨します
3. 入力データの定義
3.1 入力タイプ(ForecastType)の定義
- 右端の入力データをクリックし、入力データパネルを開きます。
続けて、タイプ定義の+をクリックします - データ型の追加で、名前、構成タイプを入力します。ここでは以下を入力します
- 名前: ForecastType
- 構成タイプ: Complex
- タイプ属性の定義の+をクリックします
- 名前、構成タイプ、Allowed Valuesを入力し、閉じるをクリックします。
ここでは以下を入力します- 名前: temperature
- 構成タイプ: Number
- Allowed Values: value
- 同じ手順を繰り返し、percentage を作成します
- 名前:percentage
- 構成タイプ: Number
- Allowed Values: value
- ForecastType のタイプ属性の定義に temperature と percentage が作成されていることを確認し、閉じるをクリックします
3.2 入力データ(Forecast)の定義
- 入力データの+をクリックします
- 名前、構成タイプを入力します。OtherTypes では、先ほど作成した ForecastType を選択します
最後に閉じるをクリックします- 名前: Forecast
- 構成タイプ: Other Type
- Other Types: ForecastType
4. デシジョンロジックの編集
4.1 Rain デシジョン・ロジックの編集
- Rain デシジョンの下向き矢印をクリックします
- デシジョン・ロジックの選択より、式を選択します
- 式の入力に、以下を入力します。検証エラー/警告のメッセージが消えることを確認します
Forecast.percentage>80
この式は、降水確率が80%を超える場合は ture、超えない場合は false がそれぞれ返されます
4.2 Temperature デシジョン・ロジックの編集
- Temperature デシジョンの下向き矢印をクリックします
- デシジョン・ロジックの選択より、If-Then-Else を選択します
- If, Then, Else に、それぞれ以下を入力します。検証エラー/警告のメッセージが消えることを確認します
- If: Forecast.temperature>18
- Then: "暖かい"
- Else: "寒い"
この式は、気温が18℃を超える場合は「暖かい」、超えない場合は「寒い」がそれぞれ返されます
4.3 What to Bring デシジョン・ロジックの編集
- What to Bring デシジョンの下向き矢印をクリックします
- デシジョン・ロジックの選択より、Decision Table を選択します
- What to Bring の下の Enter Allowed Values をクリックします
- 構成タイプ、Allowed Values、値を入力し、閉じるをクリックします。ここでは以下の通りとします
- 構成タイプ: Text
- Allowed Values: list of Values
- 値: 傘
レインコート
オーバーコート
何もいらない
- 式の入力をクリックし、Temperature を入力します
- Temperature を選択したまま、後に列を追加ボタンをクリックします
- 追加された列の式の入力をクリックし、Rain を入力します
- 1行目に値を設定します。ここでは以下の通りとします
- Temperature: 暖かい
- Rain: true
- What to Bring: 傘
- 1行目を選択したまま、後に行を追加ボタンをクリックします
- 2行目に以下を入力します
- Temperature: 暖かい
- Rain: false
- What to Bring: 何もいらない
- 同じ手順を繰り返し、3行目と4行目を作成します。検証エラー/警告のメッセージが消えることを確認します
- 3行目
- Temperature: 寒い
- Rain: true
- What to Bring: レインコート
- 4行目
- Temperature: 寒い
- Rain: false
- What to Bring: オーバーコート
- 3行目
5. デシジョン・モデルのテスト
- 右上の ▶︎ をクリックします
- temperature と percentage に以下を入力し、テストの開始をクリックします
- temperature: 18
- percentage: 70
- 出力にオーバーコートが返ってくることを確認します
- 戻るをクリックし、他の条件でのテストを繰り返します
- temperature=20, percentage=70 → 何もいらない
- temperature=20, percentage=85 → 傘
- temperature=18, percentage=85 → レインコート
6. デシジョン・サービスの作成とアクティブ化
- 左側のサービスをクリックし、サービス・パネルを展開します
- サービスの+をクリックします
- 名前に WhatToBringService を入力し、OKをクリックします
- 出力デシジョンで What to Bring を、入力データで Forecast をそれぞれ選択します
- 保存をクリックします。続けて、アクティブ化をクリックします
- デフォルト設定のままアクティブ化をクリックします
今回は What to Bring Decision Model-s1 スナップショットをバージョン1.0としてアクティブ化します
7. [確認] プロセス・アプリケーションからデシジョン・モデルを利用する
- プロセス・アプリケーションを作成します。今回は What to Bring Application を作成します
- プロセスを作成します。今回は、What to Bring Decision Process をフォームを選択して作成します
- What to Bring Process にデシジョンと送信タスクを配置します
- 気温(temperature)、降水確率(percentage)、持ち物(whattobring)の3項目を入力するシンプルなフォーム(ForecastWebForm)を作成します
- 気温(temperature): 基本パレット→番号
- 降水確率(percentage): 基本パレット→番号
- 持ち物(whattobring): 基本パレット→入力テキスト、読取り専用
7
- 作成したフォームを、Start イベントとUser Taskに割り当てます
- デシジョンのプロパティを開き、デシジョン・モデルの+をクリックします
- 前の手順でアクティブ化した What to Bring Decision Model を選択し、使用をクリックします
- デシジョンのデータアソシエーションを設定します
- 入力
- forecastWebFormDataObject.percentage → body.forecast.percentage
- forecastWebFormDataObject.temperature → body.forecast.temperature
- 出力
- bodyOutput.interpretation → ForecastWebFormDataObject.whattobring
- bodyOutput.interpretation → ForecastWebFormDataObject.whattobring
- 入力
- 作成したアプリケーションをテスト環境にアクティブ化し、テスト・モードで実行します
- 気温に18、降水確率に70を入力し、送信をクリックします
- 持ち物にオーバーコートが設定されていることを確認します
- 他の条件でのテストを繰り返します
- temperature=20, percentage=70 → 何もいらない
- temperature=20, percentage=85 → 傘
- temperature=18, percentage=85 → レインコート
8. [発展課題] デシジョン・ロジックの変更
雨が降る/降らないの条件が、80%→60% に引き下げられることになりました。
ここでは、デシジョン・モデルのみを変更・更新することで、プロセス・アプリケーションの動作が変わることと確認します
- What to Bring Application がテスト・モードで実行中であることを確認します。
この場合、気温18℃、降水確率70%の場合、持ち物はオーバーコートが返ってきます - What to Bring Decision Moodel を開きます
- Rain デシジョンを開き、式を以下の通りに変更します
(変更前) Forecast.percentage>80(変更後) Forecast.percentage>60
- 保存をクリックします。続けて、スナップショットをクリックします。
現在のアクティブ化のバージョンが 1.0 であることを確認し、閉じるをクリックします - アクティブ化をクリックします
- バージョニングを 1.0 と入力し、上書きにチェックを入れます。最後にアクティブ化をクリックします
- テスト・モードで実行中の What to Bring Application を実行します
この際、気温18℃、降水確率70%の同じ条件で新規プロセス・インスタンスを開始します - 持ち物にレインコートが返ってくることを確認します
以上でこのチュートリアルは終了です
Tagged: