Integration Procedure を設定する
学習の目的
この単元を完了すると、次のことができるようになります。
- Integration Procedure Designer の [Properties (プロパティ)] パネルのオプションを説明する。
- 送信および応答変換の目的を説明する。
- Integration Procedure の使用方法に関するベストプラクティスを説明する。
[Properties (プロパティ)] パネルを知る
前の単元では、Integration Procedure Designer で使用できるさまざまな要素について学習しました。この単元では、Integration Procedure の詳細を編集する方法を学習します。
Integration Procedure の詳細を編集するには [Properties (プロパティ)] パネルを使用します。カスタムデータの追跡、キャッシュの設定、チェーン制限の設定を行うことができます。
![[Properties (プロパティ)] パネル。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/omnistudio-integration-procedure-fundamentals/configure-your-integration-procedure/images/ja-JP/9265a871a47c0372920d0c3217162c48_kix.oudm751ie7tt.png)
[Properties (プロパティ)] パネルで使用できるいくつかのオプションを見てみましょう。
Integration Procedure Name (Integration Procedure 名)
Integration Procedure Designer ホームページのリストビューに表示される Integration Procedure の名前。
Type (種別) と Sub Type (サブ種別)
種別とサブ種別によって Integration Procedure の一意の ID を定義します。同じ種別とサブ種別を持つ Integration Procedure は常に 1 つしか有効にできません。
Chainable Configuration (チェーン可能設定)
チェーン可能 Integration Procedure として 1 つのトランザクションで複数の Integration Procedure を 1 つずつ実行できます。これは複雑なプロセスを小さい再利用可能なステップに分割して、それを順にコールする方法と考えてください。1 つの Integration Procedure の出力を次の Integration Procedure の入力として渡すことで、管理しやすいモジュール式の設計が可能になります。
処理時間の長い Integration Procedure は、複雑で、実行に時間がかかります。チェーン可能設定を使用することで、チェーン可能な Integration Procedure や処理時間の長い Integration Procedure を呼び出す場合に Salesforce ガバナ制限に達するのを避けることができます。1 つ以上の処理時間の長いステップを連結することもできます。つまり、複雑な手順を分割し、それをまた結合することで、ガバナンス制限を避けることができます。
自動車保険の見積を生成する例について考えてみましょう。Salesforce から顧客プロファイルを取得する、外部 API をコールして運転履歴を調べる、ビジネスルールに基づいて保険料を計算するという手順に対して別々の子 Integration Procedure を設定します。次に、これらの小さな Integration Procedure をつなぎ合わせて親 Integration Procedure を作成すると、管理と更新が容易になります。保険料計算ロジックが変更された場合、プロセス全体ではなく、その特定の子手順を変更するだけで済みます。
Queueable Chainable Limits (キュー可能チェーン可能制限)
キュー可能 Integration Procedure は非同期に動作して Salesforce のキュー内のタスクを処理するため、ユーザーは待つ必要がありません。これにより、処理時間の長い操作やリソースを大量に消費する操作を効率的に処理し、タイムアウトを防ぐことができます。キュー可能チェーン可能設定を使用すると、Salesforce ガバナ制限に達することも避けられます。
キュー可能 Integration Procedure は、複雑で時間がかかるプロセスのソリューションとなります。たとえば、ユーザーが保険契約を更新して詳細を送信すると、通常はシステムでレコードの更新、外部システムとの通信、ドキュメントの生成といった複数のアクションが実行されます。キュー可能 Integration Procedure を使用すれば、ユーザーにこれらのタスクの完了を待たせることなく、プロセスをバックグラウンドで非同期に実行できます。ユーザーには直ちに「お客様の更新を処理中です。」などの確認が表示され、更新エクスペリエンスがスムーズなものになります。
Cache Configuration (キャッシュ設定)
アクセス頻度が高く、更新頻度が低い Integration Procedure データを保存するにはキャッシュを使用します。これにより、データベースとのやり取りを節約でき、パフォーマンスが向上します。
Test Configuration (テスト設定)
単体テストを実行する Integration Procedure が Test Procedure です。有効にするには [Is Test Procedure (テスト手順)] チェックボックスをオンにします。Test Procedure を使用して、Integration Procedure で呼び出せるほぼすべてのもの (Omnistudio Data Mapper、決定マトリックス、Apex クラス、別の Integration Procedure など) の単体テストを実行できます。
[Properties (プロパティ)] パネルを把握したところで、Integration Procedure アクションでデータを操作する方法を見ていきましょう。
送信および応答変換
Omnistudio Integration Procedure の [Send and Response Transformations (送信および応答変換)] 設定は、アクションの入出力 JSON データを操作する基本メカニズムとして機能します。Integration Procedure 内の JSON データの構造とコンテンツを正確に制御できます。この詳細な制御は、複雑なインテグレーションを管理し、データの一貫性を保つために欠かせません。何らかのデータ操作を実行するほとんどのアクション要素にはこの機能が含まれています。
- 送信変換では、データがアクションに送信される前にその形式を設定します。データの特定の部分を選択する [Send JSON Path (送信 JSON パス)] や、そのデータのルートの名前を変更する [Send JSON Node (送信 JSON ノード)] などのプロパティを使用します。これは、アクションで求められる入力構造と一致させるのに有用です。
- 応答変換では、データがアクションから返された後に形式を設定します。応答から必要なデータのみを抽出する [Response JSON Path (応答 JSON パス)] や、出力ノードの名前を変更する [Response JSON Node (応答 JSON ノード)] などのプロパティを使用します。これによりデータをクリーンで整理された状態に保つことができます。
これらの変換を使用することで、Integration Procedure 内の大きなペイロードの不要な部分を削減し、複雑なデータ構造を簡素化することで、パフォーマンスが向上します。
次に、Integration Procedure のベストプラクティスをいくつか確認しておきましょう。
Integration Procedure のベストプラクティス
Integration Procedure を最大限に活用するには、次のベストプラクティスに従うことをお勧めします。
設計と作成
- Integration Procedure 名の [Type (種別)] 値は Lightning Web コンポーネントとの互換性を保つために先頭を小文字にする必要があります。また、[Type (種別)] と [Sub Type (サブ種別)] には特殊文字やスペースを含めることはできません。
- 要素名は Integration Procedure 内で一意である必要があり、スペースや特殊文字を含めることはできません。
- 種別、サブ種別、要素名は、読みやすくするためにキャメルケースを使用します。
prefixVerbObjectDetailのように説明的な名前形式を使用します。たとえばserviceGetAccountDetailsなどとします。
パフォーマンス
- Integration Procedure を使用してサーバー側の 1 つ以上のアクションをグループ化することでパフォーマンスが向上します。要素を追加したり、既存の Integration Procedure の新しいバージョンを作成したりしても、それをコールするツールには影響しないため、管理が容易になります。
- Integration Procedure を呼び出すときには、送信変換を使用して、コール元コンポーネントから Integration Procedure が受信する JSON 入力を必要なデータのみに削減します。また、応答変換を使用して、Integration Procedure の JSON 出力をコール元コンポーネントが必要なデータのみに削減します。
応答アクション
- 必ず、Integration Procedure の最後には応答アクションを含めます。単なる成功か失敗かのメッセージでも構いません。このプロセスにより、コール元コンポーネントが状況または結果を提供することができ、この情報を UI 内でユーザーが確認したり、後で使用したりすることができます。
- Integration Procedure 内で複数の応答要素を使用する場合は慎重に行ってください。応答アクションを途中のステップで使用し、実行条件が true になると、Integration Procedure の残りの部分は実行されません。慎重に行わないと、無効な応答データや欠落した応答データをコール元コンポーネントに送信してしまい、一部のアクションが起動されない恐れがあります。複数の応答を使用することは、一部の条件で実行ステップを減らすために役立つことがあります。
- 必ず、各応答アクションの条件付き実行の条件が互いに排他的になるようにします。また、互いに排他的な条件を含む条件付きブロックを使用することもできます。条件付きブロックが最後のステップになるように応答アクションを並べ替えます。これにより、すべての要素が実行されるようになり、どこで実行順序が終わるかが明確になります。
重複する変換
- Integration Procedure を再利用可能にする場合、ほかの場所でそれをどのように再利用して変換するかを考慮します。特にほかのシステムへのコールアウトを使用する場合は注意が必要です。
- ユースケースごとに異なる Integration Procedure の変換が必要な場合、再利用可能な Integration Procedure の一部として追加の変換を行うことは避けます。
- 必要な変換がラベルの変更を超える場合を除いては、コール元コンポーネント向けにのみ行うようにします。
値を設定
- オブジェクトの作成やデータの変換に [Set Values (値を設定)] 要素を使用することは避けます。
- [Set Values (値を設定)] 内で使用される差し込みタグ項目に特殊文字があると、予期せぬエラーや結果が発生することがあります。
- [Set Values (値を設定)] 要素は主に計算、条件付きの値設定、静的値の設定に使用します。
類似する Integration Procedure
- 類似する Integration Procedure を見直し、1 つの Integration Procedure に統合することを検討します。
- 1 つの Integration Procedure のみを使用し、異なる変数を渡すか、条件付き実行ステップを追加することで違いに対応することを検討します。これにより Integration Procedure の数が減り、類似する変更があったときに複数の箇所を更新する必要を軽減できます。
本番リリース前の項目のデバッグ
- コンポーネント内にデバッグステートメントやデバッグパラメーターを使用している場合、コンポーネントを本番前に移行する前に必ずそれらを削除または無効化します。
- 移行中にデバッグステートメントが残っていると、デバッグログに機密データが保存されるというセキュリティリスクが発生し、システムのパフォーマンスにも影響します。
処理時間の長い Integration Procedure
- Integration Procedure で大量のデータを使用する場合、デフォルトではすべてのステップが同じトランザクション内で実行されることを忘れないでください。つまり、トランザクションに対するすべてのガバナ制限がすべてのステップに適用されます。
- ただし、ガバナ制限に近づいた場合、Integration Procedure をチェーン可能に設定してトランザクションを複数のトランザクションに分割することができます。
- または、Integration Procedure を複数の Integration Procedure にチャンク化する方法や、Integration Procedure をキュー可能ジョブとして実行する方法もあります。これを行うと、Integration Procedure の全体のパフォーマンスは低下することに注意してください。
次のステップ
この単元では、Integration Procedure を設定する方法を学習し、いくつかのベストプラクティスも確認しました。
次の単元では、効率的なソリューションを作成するために Integration Procedure とほかの Omnistudio コンポーネントや Agentforce をどのように連携させるかを学習します。