インテグレーションパターンを評価する
学習の目的
この単元を完了すると、次のことができるようになります。
- リモートプロセス呼び出し — 要求と返信インテグレーションパターンに関連するソリューションを特定する。
- リモートプロセス呼び出し — 要求と返信インテグレーションパターンの利点を説明する。
リモートプロセス呼び出し — 要求と返信は、Salesforce Lightning プラットフォームでよく使われるインテグレーションパターンです。要求と返信または要求と応答とも呼ばれます。この単元では、パターンの評価方法と、サンプルシナリオに対するソリューションの選択肢について学習します。
サンプルシナリオ
Salesforce を使用してリードを管理し、商談を作成し、取引先責任者を管理しているとします。インテグレーションソリューションでは Salesforce に注文情報を含める必要がありますが、注文の管理には外部システムを使用しています。インテグレーションの目標は、外部システムを Salesforce に接続して注文を管理することです。
要求と返信パターンをレビューして、このインテグレーションの問題を解決するのに最適なソリューションを判断します。
リモートプロセス呼び出し — 要求と返信
レイヤー: ビジネスロジック
タイミング: 同期
方向: Salesforce → システム
数量: 小規模なトランザクション (リアルタイムのアクティビティ) に最適
リモートプロセス呼び出し — 要求と返信パターンは、Salesforce から外部システムに要求を送信し、応答を必要とする設計に最適です。
リモートプロセス呼び出し — 要求と返信パターンの仕組み
イベントによって開始されたプロセスが Salesforce から起動し、外部システムへの呼び出しを行います。要求は UI に応答してトリガーされます。これには、ページ上のボタンのクリックや、Lightning Web コンポーネント (LWC) による Apex クラスの呼び出しが含まれます。外部システムが要求を完了し、Salesforce に同期返信を送信します。次に、返信が Salesforce によって処理され、Salesforce は必要に応じてデータを更新します。
ソリューションのオプション
次の表は、このパターンを実装するために検討できるソリューションを示しています。
ソリューション |
考慮事項 |
|---|---|
|
Lightning フローに組み込まれた拡張外部サービス、または Lightning Web コンポーネント、または Visualforce および Apex コントローラー |
このソリューションは、イベント駆動型のエンドツーエンドプロセスの一部としてリモートプロセスがトリガーされる場合に使用されます。このサンプルシナリオでは、結果を Salesforce レコードに表示または更新する必要があります。 ユーザーが開始したアクションが、必要なリモートコールを実行する Apex クラスを呼び出すため、このソリューションはインテグレーション目標を達成するための最適な選択肢です。 |
Apex トリガー |
このソリューションは、組織の Apex ガバナ制限と割り当てによって制約されます。トリガーからのすべてのコールが非同期で実行されるため、このサンプルシナリオには適していません。 |
Apex 一括処理クラス |
このソリューションでは Salesforce からのリモート一括処理が可能ですが、一括処理コールの最大数に上限があります。そのため、このソリューションはサンプルシナリオには適していません。 |
インテグレーションの例
次の図では、LWC が Apex コールを使用して同期リモート処理を呼び出しています。Apex コントローラーが接続を確立し、リモート Web サービスへのコールを送信します。リモートシステムが Salesforce に応答し、Apex クラスがデータを処理します。処理が完了すると、結果が Lightning ページに表示されます。
次に、図の内容をステップごとに説明します。
- ユーザーは LWC を操作します。たとえば、ボタンをクリックしてアクションを開始します。
- ブラウザーは HTTP POST を実行して、Apex コントローラーに対してアクションを実行します。
- このアクティビティが Apex コントローラーを呼び出し、リモート Web サービスへのコールを実行します。
- メッセージのサイズは小さく、リアルタイムで処理されます。メッセージは Salesforce に同期的に返されます。
- Apex コントローラーが応答を受信して処理します。
- システムはその後、必要に応じて Salesforce のデータを更新し、ページを再表示します。

冪等設計に関する考慮事項
数学における冪等という用語は、自身に適用しても同じ結果を生成する関数を表します。ユーザーが同じボタンを複数回クリックすると、Salesforce は外部システムに複数回メッセージを送信します。Salesforce がメッセージを送信する回数や、せっかちなユーザーがボタンをクリックする回数を制御することはできないため、受信側は冪等性を考慮した設計にする必要があります。
冪等な受信側を設計するには、以下のヒントを参考にしてください。
- 要求メッセージに一意のメッセージ ID を追加する。これにより、受信側が重複した要求を識別しやすくなります。
- 外部システムにデータを挿入する前に、重複レコードをチェックする。
重複要求をチェックする冪等な受信側がない場合、同じトランザクションを複数回処理することになります。これはパフォーマンスの問題を引き起こし、後続の要求の処理を妨げます。さらに、リソースの無駄な消費やデータの整合性の低下につながります。
インテグレーションパターンをさらに探る
Salesforce Lightning プラットフォームのインテグレーションパターンについての詳細は、「インテグレーションパターンの概要」ガイドを参照してください。このガイドでは、インテグレーションのユースケースに対するソリューションの選択肢と、インテグレーション設計に組み込む際の追加考慮事項について詳しく説明しています。
リソース