データリレーションシップの作成
Pega Platform™では、アプリケーションの各データオブジェクトは、そのアプリケーション内のすべてのケースタイプで使用できます。データオブジェクトは、データリレーションシップを通じてケースタイプで利用できるようになります。
このトピックでは、データリレーションシップの概念と、データオブジェクトに関連する情報をケースタイプからアクセスできるようにする方法について説明します。
データリレーションシップ
データリレーションシップは、関連するフィールドのセットを関連付けるコンテナです。データオブジェクトや、データを含むフィールドとは異なり、データリレーションシップにはデータがありません。データリレーションシップは、むしろ、データを保存するアプリケーションの要素と、ケースを正常に完了するためにそのデータを必要とするアプリケーションの要素との間で、データを関連付ける働きをします。
データリレーションシップは、データオブジェクトとケースタイプの間、データオブジェクト間、およびケースタイプ間でデータを関連付けるために使用されます。
データリレーションシップのフィールドタイプ
データリレーションシップにはさまざまなユースケースがあるため、さまざまな設定をサポートするためのいくつかのフィールドタイプが用意されています。以下の表では、データリレーションシップに関連するさまざまなフィールドタイプを示しています。
| データリレーションシップのフィールドタイプ | データソース | ユースケース |
|---|---|---|
| Embedded Data | 情報は、アプリケーションのユーザーがケースに直接入力または選択します。 | 企業はユーザーのクレジットカード情報や新しい配送先住所を取得する必要があります。 |
| Data reference |
情報は、Pegaデータベースにローカルに保存されているデータレコードや、外部のシステムオブレコードから取得した情報から取得されます。 |
オンライン小売企業は、自社データベースから取得した在庫のある商品のリストを提供しています。 |
| Case reference | 情報は、選択したケースタイプから取得されます。 | ユーザーは、サービスケースのリストからServiceケースタイプを選択します。 |
どのフィールドタイプを使用するかを決定する際には、データオブジェクトに関連付けられた値が、どこに由来するものであるのかを考慮します。
An Embedded Dataフィールドタイプは、ケースインスタンス内で直接行われるユーザー入力またはユーザーアクションからデータが取得される場合に使用します。
データオブジェクトが、ケースの外部(Pegaデータベースにローカルに保存されているデータレコードか、クライアントが管理する外部のシステムオブレコードからアクセスされたデータレコードのいずれか)から取得されるか、以前に実行されたケースから取得される場合、Data reference やCase referenceなど、これらのユースケースを考慮した特殊なフィールドタイプがあります。
1つのレコードのデータリレーションシップまたはレコードリストのデータリレーションシップ
データリレーションシップの定義に使用されるフィールドタイプにかかわらず、データリレーションシップは、1つのレコードまたは複数のレコードのいずれかを参照するように設定されます。
1つのレコードのデータリレーションシップでは、データオブジェクトからのフィールドと値の単一セットのみが、ケースの完了に使用される状況を参照します。次の画像に示すように、1つのレコードのリレーションシップの例はCustomerレコードです。
レコードのリストのデータリレーションシップでは、データオブジェクトからのグループ化されたフィールドと値のリストがケース完了に使用される状況を参照します。取得されるかレコードのリストのデータリレーションシップの例は、選択した顧客のレコードが含まれる現在の顧客のリストです。「Current customer list of records」データリレーションシップの例は、次の画像のようになります。
以下のインタラクションで理解度をチェックしてください。
データリレーションシップを理解しやすくするために、スーパーマーケットのOnline Orderアプリケーションの例を使用して、3つの一般的なシナリオを検討します。アプリケーションはデータリレーションシップを使用して、データオブジェクトをDelivery Orderケースタイプに関連付けます。
Embedded dataリレーションシップ
Embedded Dataフィールドタイプは、ケースインスタンス内で直接行われるユーザー入力またはユーザーアクションからデータが取得される場合に使用します。Embedded Dataフィールドタイプをフィールドに割り当てると、フィールドの使用はすべて、アプリケーションに関連付けられたすべてのケースタイプに共通の形式で行われる必要があります。 Embedded Dataフィールドタイプのフィールドにより取得されたデータは、特定の各ケースインスタンスに関連付けられたデータとともに保存されます。 Embedded Dataフィールドタイプを使用すると、アプリケーションレベルのデータオブジェクトを多くのケースタイプに関連付けることができ、アプリケーション全体でより効率的で一貫性のあるデータ取得が保証されます。
たとえば、スーパーマーケットのオンライン注文アプリケーションには、Credit cardデータオブジェクトが含まれています。Credit cardデータオブジェクトには、Card type、Card number、Expiration date、および一意に割り当てられたPega IDフィールド(pyGUID)が含まれています。 Delivery OrderケースタイプのMLP1のビジネス要件は、注文を行う顧客が、注文のたびに支払情報を入力する必要があり、1つのクレジットカードの情報のみが注文の支払いに使用できることを示しています。
ユーザーは、ケースインスタンスで直接データを提供しているため、Credit cardデータオブジェクトは、Embedded Dataフィールドタイプを持つ「Payment information」と呼ばれるフィールドのOrderケースタイプに関連しています。各注文に対して1つのクレジットカード情報のみを入力できるため、Single recordオプションが選択されます。 Credit cardデータオブジェクトとPayment informationのEmbedded Dataデータフィールドは、次の図のように表示されます。
Payment informationデータリレーションシップを作成することで、Delivery OrderケースタイプはCredit card データオブジェクトに関連付けられたすべてのフィールドにアクセスできるようになります。
ユーザーがDelivery Orderケースを操作する際のタスクは、クレジットカード、特にカードの種類、カード番号、有効期限のデータを入力することです。Credit cardデータオブジェクトはユーザーが入力した情報を保持し、がこのデータを特定のDelivery Orderケースに関連付けられたデータに埋め込みます 。ケースインスタンスが保存されると、それには顧客のクレジットカードに関連付けられたデータが含まれます。顧客のクレジットカード情報にアクセスするには、その特定のケースに関連付いた情報を取得する必要があります。
Data Referenceデータリレーションシップ
ケースを処理するために、ケース外から取得したデータにアクセスしなければならないことがよくあります。Data referenceデータリレーションシップは、ケースに必要なデータが、Pegaデータベースにローカルに保存されているか、クライアントが管理する外部のシステムオブレコードからアクセスされるデータレコードから取得される場合に使用されます。
たとえば、オンライン注文アプリケーションにはCustomerデータオブジェクトが含まれています。Customerデータオブジェクトには、First name、Last name、Full name、Email、およびPhoneフィールドが含まれています。CustomerデータオブジェクトのFirst name、Last name、Full name、Email、およびPhoneに関連する情報は、スーパーマーケットのIT部門が管理する外部のシステムオブレコードに保存されています。各Delivery orderケースは1人の顧客にのみ関連付けられているため、Single recordオプションが選択されます。 CustomerデータオブジェクトとOrdering customer Data Referenceフィールドは、次の図のように表示されます。
Ordering customerデータリレーションシップを作成することで、Delivery OrderケースタイプはCustomerデータオブジェクトに関連付けられたすべてのフィールドとデータ値にアクセスできるようになります。
データオブジェクト間のデータリレーションシップ
データリレーションシップを通してケースタイプでデータオブジェクトに関連付けられたフィールドやデータ値を利用できるようにするほか、データリレーションシップによって、別のデータオブジェクト内の1つのデータオブジェクトを参照することもできます。
たとえば、オンラインデリバリー注文を作成するには、利用可能な製品のリストを表示するケースタイプが必要です。Productデータオブジェクトには、Name、Description、Price per unit、およびSKUフィールドが含まれています。Productデータオブジェクトは、スーパーマーケットのIT部門が管理する外部データベースから取得します。顧客が商品情報の横に数量を入力して、購入する商品を特定するワークフローをサポートするには、Order lineデータオブジェクトを作成します。Order lineデータオブジェクトには、Quantityフィールドや、ProductデータオブジェクトとのデータリレーションシップであるOrder itemフィールドも含まれています。Productデータオブジェクトは外部のシステムオブレコードから取得されているため、データリレーションシップのフィールドタイプはData referenceです。Order lineの目標は1つのProductの数量を取得することなので、選択するオプションは「Single record」です。
Delivery OrderケースタイプでOrder lineデータオブジェクトを使用できるようにするために、別のデータリレーションシップが作成されます。Order lineデータオブジェクトでは、ユーザーはQuantityフィールドに数値を入力する必要があるため、Ordered productsデータリレーションシップには、Embedded Dataフィールドタイプが付与されます。顧客は複数の商品を注文することが想定されるため、選択するオプションはList of recordsです。
Productデータオブジェクト、Order lineデータオブジェクト、Ordered items Embedded Dataフィールドのリレーションシップが次の図に示されています。
以下のインタラクションで理解度をチェックしてください。