この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

エンドツーエンドの例: プリンタ用品供給の自動化

この例は、2 つのプラットフォームイベント (プロセス、フロー) を使用して、オフィスのプリンタで十分な用紙とインクを常に確保する方法を示しています。

あなたの会社に「スマート」プリンタが届きました。情報を Salesforce に 1 日に 1 回送信するようにプリンタを設定します。この情報を使用して、プリンタを表す、Salesforce の納入商品レコードを更新し、追加のインクまたは用紙をベンダーに注文するかどうかを決定します。ベンダーにプリンタ用品を注文するときに、新しい用品を取り付けるための技術者のスケジュールを、用品が納品される翌日に設定します。

プラットフォームイベント: 「Printer Status」(プリンタ状況) および「Vendor Response」(ベンダー応答)

この例では、プリンタから送信される情報を保持するプラットフォームイベント (「Printer Status」(プリンタ状況)) と、ベンダーから送信される情報を保持するプラットフォームイベント (「Vendor Response」(ベンダー応答)) の 2 つのプラットフォームイベントを使用します。

「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 (プリンタ状況)] イベントの自動化

Salesforce が [Printer Status (プリンタ状況)] イベントを受信すると、プロセスは、プリンタに関連付けられた納入商品レコードを探します。次に、イベントに一致するように [Total Print Count (総印刷数)] を更新します。プロセスは、プリンタが低インクレベルまたは低用紙レベルになっているかどうかを評価し、そのようになっている場合はフローを起動します。

プラットフォームイベントが発生するとプロセスが開始されます。プロセスには、3 つの条件とアクショングループが含まれます。

[Printer Status (プリンタ状況)]  イベントを評価するプロセス

トリガ

プロセスのトリガが [Printer Status (プリンタ状況)] イベントを受信します。シリアル番号を使用して、プリンタに一致する納入良品レコードを見つけます。

プロセストリガ

条件 1

最初の条件、そのアクショングループ、およびアクションが実行されたときの動作

最初の条件は [アクションを実行する条件がない] に設定されているため、アクションが常に起動されます。

アクショングループには、ルール適用時のアクションが 1 つ含まれます。このアクションは、納入商品レコードの総印刷数を、イベントからの値に一致するように更新します。

アクションの項目値

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

条件 2

2 番目の条件、そのアクショングループ、およびアクションが実行されたときの動作

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

2 番目の条件

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 番目の条件、そのアクショングループ、およびアクションが実行されたときの動作

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

3 番目の条件

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 (ベンダー応答)] イベントの自動化

[Order Printer Supplies (プリンタ用品の注文)] フローは、インクまたは用紙を注文するかどうかを判別する決定から始まります。この決定に基づいて、Apex コードを呼び出して、インクまたは用紙の注文をベンダーに送信します。次に、フローは、注文が発送されたことを伝える [Vendor Response (ベンダー応答)] 種別のプラットフォームイベントをベンダーが送信するまで待機します。指定されたイベントを Salesforce で受信すると、フローが再開され、新しい用品を取り付けるための、納入商品の所有者の ToDo が作成されます。
この例の全体フロー

決定要素

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

この決定はインクを注文する必要があるかどうかを判別するこの決定は用紙を注文する必要があるかどうかを判別する

Apex 要素

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

最初の Apex 要素は、注文するインクに関する情報を提供します。

Apex クラスの入力によって、注文する用品と対象のプリンタが決まる

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

Apex クラスの入力によって、注文する用品と対象のプリンタが決まる

クラスが注文を送信した後、この両方の Apex 要素に注文番号が返されます。この値は {!orderNumber} に保存され、待機要素で使用されます。

Apex クラスの出力変数はフロー変数に渡され、後で参照される

待機要素

Apex クラスが用品注文を送信した後、フローは、注文の発送確認を待機します。確認は、[Vendor Response (ベンダー応答)] プラットフォームイベントを介して受信されます。

フローは特定のベンダー応答を待機します。注文番号は、Apex クラスが提供した注文番号と同じである必要があります。また、注文状況は [Shipped (発送済み) ] である必要があります。

イベントの条件では、[Vendor Response (ベンダー応答)] イベントに特定の注文番号と注文状況が含まれる場合にのみ、フローは [Vendor Response (ベンダー応答)] イベントを登録する

適切なイベントが発生し、フローが再開されると、イベントのデータが sObject 変数に保存されます。これにより、ユーザは納品予定日を参照して、用品の取り付けスケジュールを計算できます。

イベントデータを sObject 変数の [Vendor Response (ベンダー応答)] に渡す

レコードの作成要素

フローが再開されると、新しい用品を取り付けるための、納入商品所有者の ToDo が作成されます。

ToDo の項目値には、次のリソースが使用されます。
  • {!installDate} — イベントの納品予定日の翌日を計算する数式。
  • {!taskDescription} — 取り付けに関する詳細を提供するテキストテンプレート。
  • {!assetOwner} — フローを起動するプロセスによって提供されます
  • {!assetId} — フローを起動するプロセスによって提供されます
変数とフローリソースで ToDo の項目を設定する