エンドツーエンドの例: プリンター用品供給の自動化
あなたの会社に「スマート」プリンターが届きました。情報を Salesforce に送信するようにプリンターを設定します。受信した情報を使用して、追加のインクまたは用紙をベンダーに注文するかどうかを決定するフローを作成します。また、新しい用品を取り付ける別のフローを作成し、用品が納品される翌日に設定します。
プラットフォームイベント: 「Printer Status」 (プリンター状況) および「Vendor Response」 (ベンダー応答)
「Printer Status」 (プリンター状況) プラットフォームイベントには次のカスタム項目が含まれます。
| API 名 | 項目表示ラベル | データ型 | 説明 |
|---|---|---|---|
| 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」 (ベンダー応答) プラットフォームイベントには次のカスタム項目が含まれます。
| API 名 | 項目表示ラベル | データ型 | 説明 |
|---|---|---|---|
| Order_Number | Order Number (注文番号) | Text | 注文の一意の識別子。 |
| Expected_Delivery_Date | Expected Delivery Date (納品予定日) | Date | ベンダーが注文品の納品を予定している日付 |
| Order_Status | Order Status (注文状況) | Text | 値: Ordered (注文済み)、Confirmed (確認済み)、Shipped (発送済み)、Delivered (納品済み)、Delayed (遅延)、Canceled (キャンセル済み)。 |
| Part_Label | Part Label (パーツラベル) | Text | 注文するパーツのラベル。 |
| Part_Number | Part Number (パーツ番号) | Text | 注文するパーツのパーツ番号。 |
| Serial_Number | Serial Number (シリアル番号) | Text | プリンターの一意の識別子。この値は、注文要求で送信され、ベンダー応答で返されます。この値は、対応する納入商品レコードを特定するために使用されます。 |
フロー: Printer Status (プリンター状況) イベントの自動化
このフローは、Printer Status (プリンター状況) プラットフォームイベントメッセージを受信すると開始されます。
[レコードを取得] 要素は、受信イベントメッセージのシリアル番号と納入商品のシリアル番号を照合することで、関連する納入商品レコードを検出します。[レコードを取得] 要素は、フローで後から使用する納入商品レコード項目を提供します。
インクまたは用紙の注文
[決定] 要素は、インクが少なくなったかどうかをチェックします。イベントメッセージの Ink_Level__c 項目の値が「Low」になっているかどうかを確認します。
![[決定] 要素は、インクレベルをチェックします。](https://developer.salesforce.com/docs/resources/img/ja-jp/260.0?doc_id=images%2Fflow_example_printer_status_order_ink_decision.png&folder=platform_events)
インクレベルが少ない場合、フローはインクを注文する Apex アクションを呼び出します。Apex アクションは、起動可能なメソッドを呼び出し、インクの種別とプリンターのシリアル番号に関する情報を起動可能な変数として渡します。

インクレベルの評価後、別の [決定] 要素で用紙レベルを評価します。
![[決定] 要素は、用紙レベルをチェックします。](https://developer.salesforce.com/docs/resources/img/ja-jp/260.0?doc_id=images%2Fflow_example_printer_status_order_paper_decision.png&folder=platform_events)
Paper Level (用紙レベル) が 10% 未満の場合、フローは Apex アクションをコールして用紙を注文数します。Apex アクションは、起動可能なメソッドを呼び出し、用紙サイズとシリアル番号を起動可能な変数として渡します。

Apex アクションの実装については、この例では説明しません。呼び出し可能 Apex アクションについての詳細は、『Apex 開発者ガイド』の「InvocableMethod アノテーション」および「InvocableVariable アノテーション」を参照してください。一般に、注文を実行するには外部のサービスを呼び出します。Apex アクションから注文を行うには、Apex コールアウトを使用します。詳細は、『Apex 開発者ガイド』の「Apex を使用したコールアウトの呼び出し」を参照してください。
フロー: [Vendor Response (ベンダー応答)] イベントの自動化

[レコードを取得] 要素は、受信したイベントメッセージのシリアル番号と納入商品のシリアル番号を照合することで、関連する納入商品を検出します。次に、[レコードを作成] 要素では、パーツの取り付け Todo を作成します。
![インストールタスクを作成する [レコードを作成] 要素](https://developer.salesforce.com/docs/resources/img/ja-jp/260.0?doc_id=images%2Fflow_example_vendor_response_task.png&folder=platform_events)
この例では、いくつかの ToDo の項目が、別々に作成されたフローリソースを参照しています。InstallationDate は数式リソースであり、次のように定義されています。

TaskDescription は、次の本文を持つテキストテンプレートリソースです。