エンドツーエンドの例: プリンタ用品供給の自動化
あなたの会社に「スマート」プリンタが届きました。情報を Salesforce に 1 日に 1 回送信するようにプリンタを設定します。この情報を使用して、プリンタを表す、Salesforce の納入商品レコードを更新し、追加のインクまたは用紙をベンダーに注文するかどうかを決定します。ベンダーにプリンタ用品を注文するときに、新しい用品を取り付けるための技術者のスケジュールを、用品が納品される翌日に設定します。
プラットフォームイベント: 「Printer Status」(プリンタ状況) および「Vendor Response」(ベンダー応答)
「Printer Status」(プリンタ状況) プラ��トフォームイベントには次のカスタム項目が含まれます。
| 一意の名前 | 表示ラベル | データ型 | 説明 |
|---|---|---|---|
| Serial_Number | Serial Number (シリアル番号) | Text | プリンタの一意の識別子。この値を使用して、対応する納入商品レコードを特定します。 |
| Ink_Status | Ink Status (インク状況) | Text | 値: Full (フル)、Medium (中)、Low (低)、Empty (空)。 |
| Paper_Level | Paper Level (用紙レベル) | Number | パーセント単位の用紙レベル。 |
| Total_Print_Count | Total Print Count (総印刷数) | Number | 印刷されたページの総数。 |
「Vendor Response」(ベンダー応答) プラットフォームイベントには次のカスタム項目が含まれます。
| 一意の名前 | 表示ラベル | データ型 | 説明 |
|---|---|---|---|
| Order_Number | Order Number (注文番号) | Text | 注文の一意の識別子。 |
| Expected_Delivery_Date | Expected Delivery Date (納品予定日) | Date | ベンダーが注文品の納品を予定している日付 |
| Order_Status | Order Status (注文状況) | Text | 値: Ordered (注文済み)、Confirmed (確認済み)、Shipped (発送済み)、Delivered (納品済み)、Delayed (遅延)、Canceled (キャンセル済み)。 |
プロセス: [Printer Status (プリンタ状況)] イベントの自動化
プラットフォームイベントが発生するとプロセスが開始されます。プロセスには、3 つの条件とアクショングループが含まれます。
トリガ
プロセスのトリガが [Printer Status (プリンタ状況)] イベントを受信します。シリアル番号を使用して、プリンタに一致する納入良品レコードを見つけます。
条件 1

最初の条件は [アクションを実行する条件がない] に設定されているため、アクションが常に起動されます。
アクショングループには、ルール適用時のアクションが 1 つ含まれます。このアクションは、納入商品レコードの総印刷数を、イベントからの値に一致するように更新します。

最初の条件のアクションが実行された後、次の条件が評価されます。
条件 2

2 番目の条件では、イベントの [Ink Level (インクレベル)] の値が [Low (低)] に設定されているかどうかを確認します。

2 番目の条件のアクショングループには、ルール適用時のアクションが 1 つ含まれます。このアクションは、フローを起動します。アクションは、納入商品から抜粋した項目を、起動し��フローに渡します。
| フロー変数 | データ型 | 値 |
|---|---|---|
| assetId | Reference | [Asset].Id |
| assetOwner | Reference | [Asset].OwnerId |
| inkManufacturer | Reference | [Asset].Ink_Manufacturer__c |
| inkNeeded | Boolean | True |
| inkType | Reference | [Asset].Ink_Type__c |
| paperNeeded | Boolean | False |
| paperSize | Reference | [Asset].Paper_Size__c |
| serialNumber | Reference | [Asset].SerialNumber |
2 番目の条件のアクションが実行された後、次の条件が評価されます。
条件 3

3 番目の条件では、イベントの [Paper Level (用紙レベル)] の値が 10 未満かどうかを確認します。

3 番目の条件のアクショングループには、ルール適用時のアクションが 1 つ含まれます。このアクションは、同じフローを起動します。アクションは、納入商品から抜粋した項目を、起動したフローに渡します。inkNeeded が false に設定され、paperNeeded が true に設定されることを除き、[Low Ink (低インクレベル)] 条件グループの場合と同じ値がフローに渡されます。
| フロー変数 | データ型 | 値 |
|---|---|---|
| assetId | Reference | [Asset].Id |
| assetOwner | Reference | [Asset].OwnerId |
| inkManufacturer | Reference | [Asset].Ink_Manufacturer__c |
| inkNeeded | Boolean | False |
| inkType | Reference | [Asset].Ink_Type__c |
| paperNeeded | Boolean | True |
| paperSize | Reference | [Asset].Paper_Size__c |
| serialNumber | Reference | [Asset].SerialNumber |
プロセスに含まれる条件は 3 つのみです。したがって、3 番目の条件のアクションが実行されると、プロセスは停止します。
フロー: [Vendor Response (ベンダー応答)] イベントの自動化

決定要素
決定には、[Ink (インク)] と [Paper (用紙)] の 2 つの結果が含まれます。変数 {!inkNeeded} が true の場合、[Ink (インク)] の結果が true になります。変数 {!paperNeeded} が true の場合、[Paper (用紙)] の結果が true になります。

Apex 要素
フローには、用品注文をベンダーに送信する 2 つの Apex 要素が含まれますが、これらの Apex 要素は、フローが [Ink (インク)] の結果または [Paper (用紙)] の結果のどちらを実行したかに基づいて、異なる情報を提供します。入力値として使用するすべての変数 ({!serialNumber}、{!paperSize} など) は、プロセスがフローを起動するときに設定されます。
最初の Apex 要素は、注文するインクに関する情報を提供します。

2 番目の Apex 要素は、注文する用紙に関する情報を提供します。

クラスが注文を送信した後、この両方の Apex 要素に注文番号が返されます。この値は {!orderNumber} に保存され、待機要素で使用されます。
待機要素
Apex クラスが用品注文を送信した後、フローは、注文の発送確認を待機します。確認は、[Vendor Response (ベンダー応答)] プラットフォームイベントを介して受信されます。
フローは特定のベンダー応答を待機します。注文番号は、Apex クラスが提供した注文番号と同じである必要があります。また、注文状況は [Shipped (発送済み) ] である必要があります。
![イベントの条件では、[Vendor Response (ベンダー応答)] イベントに特定の注文番号と注文状況が含まれる場合にのみ、フローは [Vendor Response (ベンダー応答)] イベントを登録する](https://developer.salesforce.com/docs/resources/img/ja-jp/214.0?doc_id=images%2Fflow_event_waitinput.png&folder=platform_events)
適切なイベントが発生し、フローが再開されると、イベントのデータが sObject 変数に保存されます。これにより、ユーザは納品予定日を参照して、用品の取り付けスケジュールを計算できます。
レコードの作成要素
フローが再開されると、新しい用品を取り付けるための、納入商品所有者の ToDo が作成されます。
- {!installDate} — イベントの納品予定日の翌日を計算する数式。
- {!taskDescription} — 取り付けに関する詳細を提供するテキストテンプレート。
- {!assetOwner} — フローを起動するプロセスによって提供されます
- {!assetId} — フローを起動するプロセスによって提供されます