HTTP コールアウトアクションを使用した外部在庫の管理の例
この例では、ストアの在庫レベルを確認し、在庫が少なくなったときにサプライヤーの API に HTTP コールアウトして注文を実行します。
必要なエディション
| 使用可能なインターフェース: Lightning Experience |
| サポートされているエディションを表示する。 |
| 必要なユーザー権限 | |
|---|---|
| Einstein for Flow や Agentforce for Flow など、Flow Builder で使用できるすべてのフロー タイプ、要素、機能を使用してフローを開く、編集、作成、有効化、または無効化する | 「フローの管理」 |
| 外部ログイン情報、指定ログイン情報、HTTP コールアウトアクションを作成する | 「アプリケーションのカスタマイズ」 |
サプライヤーの注文システムと統合してリアルタイムで注文できるようにすることで、ペットショップの在庫管理を容易にするとします。在庫レベルを確認し、在庫レベルが少なくなったらサプライヤーの API へのコールをトリガーするフローを作成します。[注文を送信] をクリックすると、注文を自動的に実行するリアルタイム API コールが促されます。
HTTP コールアウトアクションを設定する前に、次の手順を実行します。
- 外部サービスが API に接続できるように外部ログイン情報と指定ログイン情報を作成します。「Guidelines for Authenticating HTTP Callout Actions (HTTP コールアウトアクションの認証に関するガイドライン)」を参照してください。この例では、外部ログイン情報は PetStore、指定ログイン情報は Acme Pet Supplies です。
- JSON 形式で API 応答のサンプルを準備します。API のドキュメントにサンプルが存在しない場合は、サードパーティ API プラットフォームを使用して応答を取得できます。この例では、使用されるサンプル API 応答を次に示します。
{ "id": 0, "petId": 0, "quantity": 0, "shipDate": "2024-10-09T08:49:33.605Z", "status": "placed", "complete": true } - まず、十分に文書化されている API を使用します。項目の要件や定義などの詳細が不正確であるか、または古い場合は、デバッグに時間がかかることがあります。
-
[フロー] リストビューを開きます。
- [設定] で、[クイック検索] ボックスに「フロー」と入力して、[フロー] を選択します。
- Automation アプリケーションから、[フロー] タブを選択します。
- 任意の Lightning アプリケーションの [フロー] タブで、アクション メニューをクリックし、[フローを開く] を選択します。
-
画面フローを作成します。
- 自動化アプリケーションで、[新規 | 画面 | フロー] をクリックします。
- [設定] から、 [ 新規フロ | ー画面 | 画面フロー]をクリックします。
-
[レコードを取得] 要素を追加して設定します。
- [表示ラベル] に「Get Pet Inventory」と入力します。
- [オブジェクト] で、[在庫] を選択します。
- [Condition Requirements (条件の要件)] で、[None — Get All Inventory Records (なし — すべての在庫レコードを取得)] を選択します。
- [保存するレコード数] で、[すべてのレコード] を選択します。
-
[Get Pet Inventory (ペットの在庫を取得)] 要素の後に、[画面] 要素を追加して設定します。
- [表示ラベル] に「Reorder Pet Inventory」 (ペット在庫の再注文) と入力します。
- [API 参照名] に「Reorder_Pet_Inventory」と入力します。
- [ヘッダーを設定] で、[ヘッダーを表示] を有効にします。
- [フッターを設定] で、[フッターを表示] を有効にします。
-
[セクション] コンポーネントを [ペットの在庫を並び替え] 画面に追加して設定します。
- [ヘッダーを含める] を有効にします。
- [表示ラベル] に「Pet Inventory」と入力します。
- [API 参照名] に「Available_Pets」と入力します。
- [列を設定] で、必要な列を追加し、幅を設定します。
-
[ペット在庫] セクションの子としてデータテーブルコンポーネントを追加し、設定します。
- [API 参照名] に「petTable」と入力します。
- [表示ラベル] に「Available Pets」と入力します。
- 「表示ラベルをテーブルタイトルとして使用」を有効にします。
- [データソースを設定] の [ソースコレクション] に「{!Get_Pet_Inventory}」と入力します。
- [検索バーを表示] を有効にします。
- [列を設定] で、必要な列を追加します。
-
[ペットの在庫を並び替え] 画面の子として別のセクションコンポーネントを追加して設定します。
- [ヘッダーを含める] を有効にします。
- [表示ラベル] に「Restock Selected Pet」と入力します。
- [API 参照名] に「Reorder_Information」と入力します。
- [列を設定] で、必要な列を追加し、その幅を設定します。
-
[選択したペットを補充] セクションの子としてテキストコンポーネントを追加し、次の値を入力します。
- [表示ラベル] に「Selected Pet」 (選択したペット) と入力します。
- [API 参照名] に「Selected_Pet」と入力します。
- [デフォルト値] に「{!petTable.firstSelectedRow.Name}」と入力します。
-
[選択したペットを補充] セクションの子として通貨コンポーネントを追加し、次の値を入力します。
- [表示ラベル] に「Cost Per Unit」 (単位あたりのコスト) と入力します。
- [API 参照名] に「Cost_Per_Unit」と入力します。
- [デフォルト値] に「{!petTable.firstSelectedRow.Current_MSRP__c}」と入力します。
-
[選択したペットを補充] セクションの子として数値コンポーネントを追加し、次の値を入力します。
- [表示ラベル] に「Order Quantity」と入力します。
- [API 参照名] に「Order_Quantity」と入力します。
- [小数点の位置] に「0」と入力します。
-
[選択したペットを補充] セクションの子として別の数値コンポーネントを追加し、次の値を入力します。
- [表示ラベル] に「Total Cost」 (合計コスト) と入力します。
- [API 参照名] に「Total_Cost」と入力します。
- [デフォルト値] に「{!formulaTotalCost}」と入力します。
- [小数点の位置] に「2」と入力します。
-
画面要素の後に、アクション要素を追加して設定します。
- [Create HTTP Callout (HTTP コールアウトを作成)] をクリックします。
- [外部サービスを作成] で、[名前] に「OrderPetTest」と入力します。
-
[指定ログイン情報] で、[Acme Pet Supplies] を選択します。
ログイン情報に関連付けられた URL は自動入力されます。
- [次へ] をクリックします。
- [Configure Invocable Action (呼び出し可能なアクションを設定)] で、[表示ラベル] に「Order Pet」と入力します。
- [Method (メソッド)] で、[POST] を選択します。
- [URL パス] に「/store/order」と入力します。
- [次へ] をクリックします。
- [サンプル JSON 要求] に、この例に必要な JSON スニペットを入力します。
- データ構造パラメーターを確認するには、[レビュー] をクリックします。
- [Select Sample Response Method (サンプル応答方法を選択)] で、[Connect for Schema (スキーマの接続)] を選択し、[次へ] をクリックします。
- [保存] をクリックします。
- [表示ラベル] に「Callout to Order Pets」と入力します。
- [API 参照名] に「Callout_to_Order_Pets」と入力します。
- [Set Body Request (ボディ要求を設定)] で、[値] に「{!Order_Pet_Input_Test}」と入力します。
-
[ペットを注文するコールアウト] アクションの前に、[割り当て] 要素を追加して設定します。
- [表示ラベル] に「Assign Callout Request Fields」と入力します。
- [API 参照名] に「Assign_Callout_Request_Fields」と入力します。
- [変数値を設定] に「{!Order_Pet_Input_Test.id} Equals」と入力します。{!petTable.firstSelectedRow.Recommended_Reorder_Quantity__c}.
- [割り当てを追加(Add Assignment)] をクリックし、「{!Order_Pet_Input_Test.quantity} Equals {!Order_Quantity}」と入力します。
- [割り当てを追加(Add Assignment)] をクリックし、「{!Order_Pet_Input_Test.shipDate} Equals {!$Flow.CurrentDate}」と入力します。
- [割り当てを追加(Add Assignment)] をクリックし、「{!Order_Pet_Input_Test.status} Equals Placed」と入力します。
-
[ペットを注文するコールアウト] アクションの後に、[決定] 要素を追加して設定します。
- [表示ラベル] に「Is Callout Successful?」 (コールアウトに成功しましたか?) と入力します。
- [API 参照名] に「Was_Callout_Successful」と入力します。
- [Select Decision Logic (決定ロジックを選択)] で、[Define Manually (Default) (手動で定義 (デフォルト))] を選択します。
- [New Outcome (新規結果)] 表示ラベルに「Callout Successful」 (コールアウト成功) と入力します。
- [結果を実行する条件の要件] で、[すべての条件に一致 (AND)] を選択します。
- [リソース] に「{!Callout_to_Order_Pets.responseCode}Greater Than or Equal 200」と入力します。
- [Add Resources (リソースを追加)] をクリックし、「{!Callout_to_Order_Pets.responseCode} Lesser Than or Equal 200」と入力します。
- [デフォルトの結果(Default Outcome)] をクリックします。
- [表示ラベル] でテキストを削除し、「Callout Not Successful」 (コールアウト失敗) と入力します。
-
[コールアウト失敗] 結果パスで、[画面] 要素を追加して設定します。
- [表示ラベル] に「エラー画面」と入力します。
- [API 参照名] に「Error_Screen」と入力します。
- [ヘッダーを設定] で、[ヘッダーを表示] を有効にします。
- [フッターを設定] で、[フッターを表示] を有効にします。
-
[コールアウト成功] 結果パスで、[レコードを更新] 要素を追加して設定します。
- [表示ラベル] に「Update Inventory Quantity on Hand」と入力します。
- [API 参照名] に「Update_Inventory_Quantity_on_Hand」と入力します。
- [更新するレコードを検索してその値を設定する方法] で、[レコードを識別する条件を指定し、フィールドを個別に設定] を選択します。
- [オブジェクト] で、[在庫] を選択します。
- [在庫レコードを絞り込み] の [レコードを更新する条件の要件] で [すべての条件に一致 (AND)] を選択します。
- [項目]、[演算子]、および [値] で、[レコード ID 次の文字列と一致する] {!petTable.firstSelectedRow.Id}を選択します。
- [在庫レコードの項目値を設定] の [項目] で、[注文数量] を選択します。
- [Set Field Values for the Inventory Records (在庫レコードの項目値の設定)] で、[値] に「{!UpdateQuantityOnHand}」と入力します。
-
[コールアウト成功] 結果パスで、[在庫数量を更新] 要素の横にある [画面] 要素を追加して設定します。
- [表示ラベル] に「Order Placed」と入力します。
- [API 参照名] に「Order_Placed」と入力します。
- [フッターを設定] で、[フッターを表示] を有効にします。
- [ナビゲーション] で、[カスタム表示ラベルを使用] を選択します。
- [次へ] または [完了] ボタンの表示ラベルに「OK」と入力します。
- [前へ] ボタンと [一時停止] ボタンを非表示にします。
- 画面要素に [表示] コンポーネントを追加します。
- 表示コンポーネントの API 参照名に「SuccessDisplayHeader」と入力します。
- [Display component (陳列コンポーネントの説明)] に「Your order was successful!」と入力します。
- セクションコンポーネントを画面要素に追加します。
- [セクション] コンポーネントの表示ラベルに「Order Summary」と入力します。
- [セクション] コンポーネントの API 参照名に「OrderSummary」と入力します。
- 要件に基づいて列幅を設定します。
- 必要な陳列コンポーネントをセクションの子として追加し、要件に基づいて設定します。
- フローを保存し、[デバッグ] をクリックしてフローのエラーをトラブルシューティングします。
- [実行] をクリックします。
- 注文する在庫品目を選択します。
-
注文数量を入力し、[Submit Order (注文を送信)] をクリックします。
注文が正常に実行されました。フローが失敗した場合は、フローエラーをトラブルシューティングします。
-
(省略可能) 入力変数に同じ値または異なる値を使用してフローを再開するには、[入力を変更] または [再度実行] をクリックします。
画面フローでデバッグ実行をテストに変換することはできません。
この記事で問題は解決されましたか?
ご意見をお待ちしております。


