プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Business Process Composerによるビジネス・プロセスの開発
12c (12.1.3)
E56243-04
目次へ移動
目次

前
前へ
次
次へ

13 データ・オブジェクトおよびデータ・アソシエーションの使用

この章では、データ・オブジェクトを使用してプロセスベースのビジネス・アプリケーションで使用されるデータを格納する方法を説明します。また、データ・アソシエーションを使用してビジネス・プロセス内でのデータ処理方法を定義する方法についても説明します。

この章の内容は次のとおりです。

13.1 ビジネス・プロセスで使用されるデータの処理について

ほとんどのビジネス・アプリケーションでは、ユーザーがデータを作成して操作する必要があります。たとえば、営業見積アプリケーションでは、顧客、見積、その他のタイプのデータに関する情報など、見積に関連するデータをユーザーが入力します。また、アプリケーションでは、アプリケーションの全体的な機能の一部として内部でのみ使用されるその他のデータを作成および操作することが必要な場合があります。

ビジネス・プロセスの作成時に、アプリケーションが使用するデータを定義する必要があります。Oracle Business Process Management (Oracle BPM)では、データがデータ・オブジェクト内に格納されます。データ・オブジェクトは、ほとんどのプログラミング言語に見られるデータ型と類似した単純型に基づいて定義されます。

また、データ・オブジェクトは、複合データ型に基づいた定義もできます。Oracle BPMのビジネス・オブジェクトは複合データ型です。複合データ型を使用すると、関連するデータをグループにまとめることができます。たとえば、従業員に関する情報の格納が必要なアプリケーションを作成している場合、名前、住所、給与および従業員に関するその他の情報を格納する複合データ型の作成が必要な場合があります。複合データ型は、Javaなどのオブジェクト指向プログラミング言語で使用されるクラスの概念に似ています。複合データ型の詳細は、「複合データ型を使用したデータ構造の定義」を参照してください。

13.1.1 Oracle BPMアプリケーションで使用されるデータを定義する方法

データの格納および操作方法を定義することは、Oracle BPMアプリケーションの全体的な設計および開発の一部です。次のタスクの概要では、Oracle BPMアプリケーション内で使用されるデータを定義するための一般的なプロセスを示します。

Oracle BPMアプリケーションで使用されるデータを定義する手順

  1. プロジェクトに必要な複合データ型を定義します。

    Oracle BPMアプリケーション内で使用されるデータを定義する際の最初の手順は、必要な複合データ型を定義することです。複合データ型を使用することで、アプリケーション内で使用されるデータ構造の定義が可能になります。複合データ型の使用の詳細は、「複合データ型を使用したデータ構造の定義」を参照してください。

  2. プロジェクト内で使用されるデータ・オブジェクトを作成します。

    データ・オブジェクトの作成の詳細は、「データ・オブジェクトの作成方法」を参照してください。

  3. プロセスでのデータの操作に使用される式を定義します。

    式の定義の詳細は、「式を使用したデータのコントロール」を参照してください。

  4. Business Process Model and Notation (BPMN)のフロー・オブジェクト間でデータ・アソシエーションを使用して情報を受け渡す方法を定義します。

    データ・アソシエーションの詳細は、「フロー・オブジェクトのデータ・アソシエーションの構成方法」を参照してください。

  5. プロセスの入力および出力を定義します。

13.2 データ・オブジェクトの概要

一般にデータ・オブジェクトは、ビジネス・プロセスおよびOracle BPMアプリケーションで使用される情報の格納に使用される変数です。プロセスの設計および実装ステージ中に定義されます。BPMプロジェクトのデプロイ前に、実行アプリケーションで必要なデータ・オブジェクトのすべてを定義しておく必要があります。

実行時に、新規データ・オブジェクトは作成されませんが、ユーザーがアプリケーションと相互作用するため、データ・オブジェクトに格納された情報の値は変更されます。実行中のプロセスでは、データを格納、アクセスおよび操作できます。また、データの値によってプロセスの分岐が決まります。

13.2.1 基本データ・オブジェクトと複合データ・オブジェクトの概要

Oracle BPMは、基本と複合の2つのタイプのデータ・オブジェクトをサポートします。使用するデータ・オブジェクトのタイプは、処理が必要なデータの型によって決まります。

  • 基本データ・オブジェクト

    基本データ・オブジェクトは単純データ型に基づいています。これらは、ほとんどのプログラミング言語に共通のコアなデータ型です。表 表13-1は、Oracle BPMでサポートされる基本データ型のリストです。

    表13-1 単純なデータ・オブジェクト

    タイプ 説明

    ブール

    論理値trueまたはfalseを表します。

    整数

    整数を表します。例: 23、-10、0。

    小数

    10進表記で表される数値を表します。例: 3.14、62、0.023。

    実数

    浮動小数点の数値を表します。例: 2e-1、2.3E8。

    文字列

    文字列を表します。例: "This is a string."

    時間

    年-月-日 時:分:秒として表される特定の時間を表します。例: 1995-02-03 13:30:28-08:00。

    間隔

    年数、月数、日数、時間数、分数、秒数として表される期間を表します。例: 1d3h30m。

    バイナリ

    イメージや動画を含む、バイナリ・データの格納に使用されます。

  • 複合データ・オブジェクト

    複合データ・オブジェクトを使用すると、様々な型のデータをグループにまとめるデータ構造を作成できます。複合データ・オブジェクトは、複合データ型に基づきます。複合データ型を使用することで、基本データ・オブジェクトに基づいてデータ構造を作成できます。

    たとえば、ID、名前、年齢といった従業員の様々なタイプのデータを含む、従業員という複合データ・オブジェクトを作成できます。複合データ型と複合データ・オブジェクトの間の関係は、Javaプログラミング言語におけるクラスとインスタンスとの関係に似ています。

図13-1は、基本データ・オブジェクトと複合データ・オブジェクトの関係を示しています。

図13-1 基本データ・オブジェクトと複合データ・オブジェクトの関係

図13-1の説明が続きます
「図13-1 基本データ・オブジェクトと複合データ・オブジェクトの関係」の説明

複合データ・オブジェクトを作成する前に、まず、データ構造を定義する複合データ型を定義する必要があります。複合データ型の使用の詳細は、「複合データ型を使用したデータ構造の定義」を参照してください。

13.2.2 プロセスおよびプロジェクト・データ・オブジェクトの概要

データ・オブジェクトのデータ型を指定するだけではなく、スコープも選択する必要があります。Oracle BPMのスコープとは、データ・オブジェクトにアクセスできるプロセスまたはプロジェクト内の場所を指します。

Oracle BPMでは、プロセスとプロジェクトの2つのタイプのデータ・オブジェクト・スコープがあります。プロセス・データ・オブジェクトは、特定のプロセス用に定義されたデータ・オブジェクトです。同様に、プロジェクト・データ・オブジェクトはBPMプロジェクト全体用に定義されます。プロジェクト・データ・オブジェクトとプロセス・データ・オブジェクトはいずれも、基本タイプと複合タイプの両方から作成できます。

13.2.2.1 プロセス・データ・オブジェクト

プロセス・データ・オブジェクトを使用すると、単一のプロセス内でのみ使用されるデータ・オブジェクトを定義できます。プロセス・データ・オブジェクトは、それが定義されたプロセス内でのみ使用できます。

プロセスベースのアプリケーションを設計しているときに、単一のプロセス内でのみデータ・オブジェクトが必要であることが判明している場合は、システム・リソースを節約するためプロセス・データ・オブジェクトとして定義することをお薦めします。

13.2.2.2 プロジェクト・データ・オブジェクト

プロジェクト・データ・オブジェクトでは、プロセス間でデータを共有できます。たとえば、Oracle BPMアプリケーション内では、発注書プロセスと承認リクエスト・プロセスはいずれも、リクエストを作成した従業員のデータを追跡します。1つのプロセスで作成または変更されたデータに他のユーザーがアクセスできます。

プロジェクト・データ・オブジェクトを使用すると、アプリケーション内のすべてのプロセスが同じデータにアクセスできるようになります。ただし、各プロセスでは、そのデータの値を割り当てて、更新する必要があります。

プロジェクト・データ・オブジェクトではプロジェクト内のすべてのプロセスで使用されるデータ・オブジェクトを定義できますが、このデータ・オブジェクトはグローバルなデータ・オブジェクトではありません。プロジェクト内の各プロセスは、独自のバージョンのデータ・オブジェクトを使用します。プロセス間でデータを共有するためにプロジェクト・データ・オブジェクトが使用されることはありません。プロセス間でデータを共有するには、データ・アソシエーションを作成する必要があります。データ・アソシエーションの詳細は、「データ・アソシエーションの概要」を参照してください。

プロジェクト・データ・オブジェクトを定義することのもう1つの利点は、プロジェクトの公開後に変数の値が表示されるようにOracle Business Process Management Workspaceビューを構成できることです。これは、プロジェクト・データ・オブジェクトを使用する場合にのみ可能です。

13.3 データ・オブジェクトの使用

また、データ・オブジェクトは、複合データ型に基づいた定義もできます。Oracle BPMのビジネス・オブジェクトは複合データ型です。複合データ型を使用すると、関連するデータをグループにまとめることができます。

この項では、新規データ・オブジェクトを作成する方法や既存のデータ・オブジェクトを編集または削除する方法など、データ・オブジェクトを使用する手順について説明します。

13.3.1 データ・オブジェクトの作成方法

この項の手順では、新規のプロセス・データ・オブジェクトまたはプロジェクト・データ・オブジェクトを作成する方法について説明します。複合データ型に基づくデータ・オブジェクトの作成が必要な場合は、最初に複合データ型を作成する必要があります。複合データ型の詳細は、「複合データ型を使用したデータ構造の定義」を参照してください。

プロジェクトのようこそページからデータ・オブジェクトを作成するには:

  1. プロジェクトの編集中であることを確認します。
  2. プロジェクトのようこそページに移動します。
  3. データ・オブジェクトを作成するプロセスを開きます。
  4. ツールバーの「データ・オブジェクト」アイコンをクリックして、「データ・オブジェクト」ダイアログを開きます。

    図13-2に示されるように、プロジェクトまたはプロセスの名前をクリックしてから、「追加」を選択します。

    図13-2 プロセス・エディタ - データ・オブジェクト

    図13-2の説明が続きます
    「図13-2 プロセス・エディタ - データ・オブジェクト」の説明
  5. データ・オブジェクトの一意の名前を入力します。
    • 基本データ・オブジェクトを作成する場合は、ドロップダウン・リストから基本タイプのいずれかを選択します。

    • 複合データ・オブジェクトを作成する場合は、ドロップダウン・リストから<object>を選択してから、複合データ・オブジェクトのベースとする複合データ型を選択します。

    Oracle BPMでサポートされるデータ・オブジェクト・タイプの詳細は、「基本データ・オブジェクトと複合データオブジェクトの概要」を参照してください。

  6. 「OK」をクリックします。

13.3.2 データ・オブジェクトを編集または削除する方法

プロセス・データ・オブジェクトまたはプロジェクト・データ・オブジェクトを編集または削除できます。

データ・オブジェクトを編集または削除するには:

  1. プロジェクトの編集中であることを確認します。
  2. データ・オブジェクトを削除するプロセスを開きます。
  3. プロセス・エディタ・ツールバーの「データ・オブジェクト」アイコンをクリックします。
  4. データ・オブジェクトのリストで、削除または編集するプロジェクト・データ・オブジェクトまたはプロセス・データ・オブジェクトを選択し、次のようにします。
    • データ・オブジェクトを編集するには、「編集」をクリックし、必要に応じて新しい名前を指定したり、データ型を変更します。

    • データ・オブジェクトを削除するには、「削除」をクリックします。

  5. 「OK」をクリックします。

13.3.3 データ・オブジェクト削除または編集時の処理

データ・オブジェクトの編集または削除後にプロジェクトを検証し、変更または削除されたデータ・オブジェクトへの参照がないことを確認します。

データ・オブジェクトの編集後、そのオブジェクトへのすべての参照が引き続き有効であることを確認する必要があります。たとえば、int型からstring型にデータ・オブジェクトを変更した場合は、そのデータ・オブジェクトを使用するすべての式が引き続き正しく機能することを確認する必要があります。

データ・オブジェクトの削除後、そのオブジェクトへのすべての参照を必ず削除してください。参照には、そのデータ・オブジェクトを使用しているすべてのデータ・アソシエーションおよび式が含まれます。削除されたデータ・オブジェクトへの参照を削除しない場合は、プロジェクトが検証されません。

13.4 データ・アソシエーションの概要

データ・アソシエーションは、データ・オブジェクトに格納された情報を処理する方法を決定します。

データ・アソシエーションを使用できるコンテキストは次のとおりです。

  • BPMNプロセスから起動された別のプロセスまたはサービス

  • ヒューマン・タスク・サービス

  • Oracle Business Rule

  • スクリプト・タスク。

    このBPMNフロー・オブジェクトは、データ・アソシエーションを介してデータ・オブジェクトを受渡しするために使用します。

表13-2は、データ・アソシエーションを定義できるフロー・オブジェクトをリストしています。また、実装されるオブジェクトもリストしています。

表13-2 データ・アソシエーションを受け入れるフロー・オブジェクト

フロー・オブジェクト 実装

メッセージ開始および終了イベント

サービスおよびその他のBPMNプロセス

メッセージ・スロー・イベントおよびキャッチ・イベント

サービスおよびその他のBPMNプロセス

送信タスクおよび受信タスク

サービスおよびその他のBPMNプロセス

スクリプト・タスク

実装は含みません。データ・アソシエーションを介してデータ・オブジェクトを受渡しするために使用します。

ユーザー・タスク

Oracle Human Tasks

ビジネス・ルール・タスク

Oracle Business Rules

サービス・タスク

サービスおよびBPMNプロセス

データ・アソシエーションは、フロー・オブジェクトから外部のサービスまたはプロセスへの入力引数および出力引数を定義するために使用します。図13-3に、フロー・オブジェクトと、それに対応する実装、および外部のプロセスまたはサービスの間にある関係を示します。

矢印は、外部のプロセスまたはサービスとの間で入力と出力を行う引数を表します。これらの引数はデータ・アソシエーションを使用して定義されます。

図13-3 フロー・オブジェクトと実装と外部のサービスまたはプロセスの関係

図13-3の説明
「図13-3 フロー・オブジェクトと実装と外部のサービスまたはプロセスの関係」の説明

入力および出力はフロー・オブジェクトのデータ・アソシエーションで定義されますが、コールされているシステムまたはサービスに渡される値を定義していることに注意してください。これらのシステムおよびサービスは、図13-4に示すように、ビジネス・プロセスの外に存在します。

図13-4 特定プロセス内のデータ・アソシエーション

図13-4の説明
「図13-4 特定プロセス内のデータ・アソシエーション」の説明

式を使用して、入力値と出力値を評価および変更できます。

13.4.1 データ・アソシエーション・エディタの概要

図13-5に示されるように、データ・アソシエーション・エディタを使用すると、フロー・オブジェクトとその実装の間で受渡しされる入力値と出力値を構成できます。

図13-5 データ・アソシエーション・エディタ

図13-5の説明
「図13-5 データ・アソシエーション・エディタ」の説明

表13-3では、データ・アソシエーション・エディタの各領域について説明します。

表13-3 データ・アソシエーション・エディタのユーザー・インタフェース

UI領域 説明

入力

フロー・オブジェクト内に実装されるサービスまたはプロセスへの入力として割り当てられたデータ・オブジェクトを表示するテキスト・ボックスが表示されます。各テキスト・ボックスの横には、式エディタを起動するアイコンがあります。

フロー・オブジェクト・インタフェース

実装されるサービスまたはプロセスに必要な入力引数がリストされます。また、入力および出力として提供されたデータ・オブジェクトの展開可能なリストも表示されます。フロー・オブジェクトの領域では、複合データ・オブジェクト内の特定の基本データ・オブジェクトにマップする複合データ・オブジェクトを展開できます。

出力

フロー・オブジェクト内に実装されるサービスまたはプロセスからの出力として割り当てられたデータ・オブジェクトを表示するテキスト・ボックスが表示されます。

データ・オブジェクト

すべてのデータ・オブジェクトのリストが表示されます。このリストは、プロセス・データ・オブジェクトとプロジェクト・データ・オブジェクトの間が分割されます。

13.4.2 フロー・オブジェクトのデータ・アソシエーションの構成方法

フロー・オブジェクトのデータ・アソシエーションを構成できます。

フロー・オブジェクトのデータ・アソシエーションを構成するには:

  1. データ・アソシエーションを構成するプロセスを開きます。
  2. データ・アソシエーションを有効化するフロー・オブジェクトを右クリックし、「データ・アソシエーション」を選択します。

    データ・アソシエーションを有効化するシーケンス・フローのリストについては、表13-2を参照してください。

  3. 右側のデータ・オブジェクト列から、入力引数としてマップするデータ・オブジェクトを選択します。
  4. データ・オブジェクトをクリックし、入力テキスト・フィールドにドラッグします。