コンテキストサービスを知る
学習の目的
この単元を完了すると、次のことができるようになります。
- データ抽象化を定義する。
- コンテキストサービスとその目的を説明する。
- コンテキストサービスの利点を説明する。
- コンテキストサービスの機能の概要を説明する。
データ抽象化
ソフトウェア商品の開発時、目標とするのはエンドユーザーのためにデータ構造を簡素化し、使いやすさを向上させることです。データの抽象化を行えば、複雑さや関連性の低い情報をエンドユーザーから隠すことで、この目標を達成できます。このアプローチを使用すると、データ取得が加速化し、システム全体が効率化します。システムでのデータの保存方法やアクセス方法に困惑することなく、ユーザーが必要なデータのみにアクセスできるシステムを設計できます。
たとえば、次のような例で考えてみましょう。一般的なスマートフォンユーザーは、通話、インターネットへのアクセス、写真や動画の保存がどのように行われるかを知りません。電話のユーザーインターフェース (UI) を使用して機能を実行しているだけで、複雑な技術的なことは気にしていません。コンテキストサービスでのデータアクセスも同様に機能します。その方法は、次のとおりです。
コンテキストサービスの概要
コンテキストサービスは、データ管理と統合が簡略化するよう企業のために設計された高度なソリューションです。基盤となるデータソースがアプリケーションから隠されるか抽象化されるため、開発者は統合された論理データモデルを使用できます。この抽象化により、さまざまなデータソースの複雑さで行き詰まってしまうことなく、シームレスでわかりやすいアプリケーションを作成できるようになります。アプリケーションは各ソースに直接アクセスするのではなく、論理的にデータとやり取りします。一方、システム管理者は実際のデータソースへのバックグラウンドでの接続を処理し、すべてがスムーズに実行されることを確認します。
コンテキストサービスではデータ操作を標準化することにより、複数のデータソースとのやり取りにかかる時間と労力を減らします。この標準化によってワークフローが簡略化するだけでなく、組織全体のデータの正確性と一貫性も向上します。その結果、企業はデータのサイロ化や不整合を心配することなく、より多くの情報に基づいて、より迅速に判断を下せるようになります。
コンテキストサービスでは、コンテキストの対応付け、メモリの最適化、ほかの Salesforce 製品 (フロー、ビジネスルールエンジンなど) との統合をはじめとする高度な機能がサポートされています。こうした機能により、企業はデータ操作をカスタマイズして特定のニーズを満たし、変化する需要にすばやく対応できるようになります。
コンテキストサービスを使用する理由
顧客情報、商品在庫、注文履歴を含むさまざまなデータソースとやり取りしてデータを取得するアプリケーションを考えてみてください。以前は、開発者はデータベースごとに複雑なコードを記述してデータソースに統合する必要があったため、時間がかかり、エラーが発生しやすくなっていました。
コンテキストサービスは、アプリケーションとデータベース間の仲介として機能します。アプリケーションには、複数のプロセスとステップも含まれます。プロセスが実行されるたびに、各ステップでデータベースとの通信を行ってデータを取得します。このようにデータベースとの通信が頻繁に行われると、遅延が大きくなり、システムのパフォーマンスが低下します。
次のプロセスフローを参照し、コンテキストサービスを使用してアプリケーションのプロセスステップとデータベース間でデータを取得、提供できるしくみを見てみましょう。

アプリケーションのプロセスステップでデータが必要になった場合、コンテキストサービスに要求が送信されます。その後、コンテキストサービスによってデータが適切なデータベースから取得され、そのデータがステップに返されます。結果として、開発者はデータ統合に時間を費やす代わりに、アプリケーションの機能の作成に注力できるようになります。
コンテキストサービスでは、データベースのデータを更新することもできます。たとえば、販売後にアプリケーションで在庫が更新された場合、そのデータがコンテキストサービスに書き戻されます。その後、コンテキストサービスにより、更新が正常に処理され、適切なデータベースに書き込まれます。このシームレスなやり取りによって開発者の時間が節約されるだけでなく、システム全体でデータの一貫性と信頼性が確保されます。
コンテキストサービスにより、開発者は基盤となるデータ管理が効率的かつ効果的に行われることを把握しながら、より自信を持って、より迅速にアプリケーションを開発、リリースできます。これは、アプリケーションの堅牢化と顧客ベースの満足度向上につながります。
コンテキストサービスの利点
コンテキストサービスには、企業向けの貴重なツールであることを示す主要な利点がいくつかあります。各メリットをクリックすると詳細を確認できます。
要するに、こうした利点により、コンテキストサービスはユーザーの進化する多様なニーズを満たすことができます。
コンテキストサービスの機能
コンテキストサービスには、データ処理の最適化に役立つ独自機能が用意されています。この機能について詳しく説明します。
コンテキスト定義デザイナー
コンテキスト定義は、複数のビルディングブロックのセット (ノード、属性、対応付けなど) を含む複合構造です。コンテキスト定義については次の単元で詳しく説明します。コンテキストサービスにはコンテキスト定義を作成するビジュアルデザイナーが備わっており、デジタルプロセスのためにデータを抽象化するのに使用します。
次の画像は、コンテキスト定義の詳細を追加できる [Create Context Definition (コンテキスト定義を作成)] ウィンドウです。
![[Create Context Definition (コンテキスト定義を作成)] ウィンドウ。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/context-service-basics/get-to-know-context-service/images/ja-JP/7628dceac27713f9e1c8f5ee304ed4f3_kix.85szxfv9c0bz.png)
新しいコンテキスト定義を作成するか、任意の Industry Cloud で提供されている事前作成済みの定義を拡張することができます。実際のデータソースを定義に対応付けることもできます。
コンテキストをハイドレーションしてアクセスするための API
コンテキストサービスでは、メモリ内でのコンテキスト作成、データの参照または更新操作の実行、Salesforce データベースに戻されたデータの保持のための Connect APEX API が用意されています。
以下は、コンテキストサービスでどのようにデータが照会され、保持されるかを示すプロセスフローの概要です。

アプリケーションでデータが必要になると、コンテキスト API を使用してコンテキストサービスに要求が送信されます。次に、コンテキストサービスでメモリ内コンテキストインスタンスが作成されます。その後、データベースからデータが取得され、インスタンスにデータが保存されます。Industry Cloud では API を使用してコンテキストサービス内のトランザクションデータを取得、操作してデジタルプロセスを提供します。
コンテキスト定義は、コンテキストの構造を定義するメタデータで構成されます。一方、コンテキストインスタンスは実行時にコンテキスト定義がインスタンス化されたものであり、実際のデータが含まれます。インスタンスは、より速くデータアクセスできるように、一時的な仮のデータストアに保存されます。以下に、コンテキストサービスで各データ操作の実行に使用できる APEX API のリストを示します。
-
構築: データソースからコンテキストにデータを読み込んだり、コンテキストの検索や削除を行ったりするには、次の API を使用します。
-
buildContext: 実行時にコンテキストインスタンスを作成します。
-
getContext: コンテキストの詳細を取得します。
-
deleteContext: コンテキストインスタンスを削除します。
-
buildContext: 実行時にコンテキストインスタンスを作成します。
-
クエリ: コンテキストのデータを照会するには、次の API を使用します。
-
queryContextRecordsAndChildren: 実行時にコンテキストインスタンスからレコードとその子レコードを取得します。
-
queryTags: コンテキストインスタンスからタグ値を取得します。
-
queryContextRecordsAndChildren: 実行時にコンテキストインスタンスからレコードとその子レコードを取得します。
-
更新: コンテキストのデータを更新または追加するには、次の API を使用します。
-
updateContextAttributes: コンテキストインスタンスのデータを更新します。
-
addRecordToContext: 新しいデータをコンテキストインスタンスに追加します。
-
updateContextAttributes: コンテキストインスタンスのデータを更新します。
-
保持: コンテキストデータをデータソースに保存するには、次の API を使用します。
-
persistContext: 現在のコンテキストデータをデータベースに書き込みます。
-
persistContext: 現在のコンテキストデータをデータベースに書き込みます。
ビジネスオブジェクトの変換
コンテキストサービス API は、1 つのビジネスオブジェクトを別のビジネスオブジェクトに変換できます。たとえば、見積を注文に変換したり、商談を契約に変換したりできます。コンテキストサービスでは、このような新たに変換されたオブジェクトをデータベースに書き込むこともできます。
以下は、コンテキストサービスによってどのようにデータが変換、保持されるかを示すプロセスフローの概要です。

コンテキストサービスによってデータが取得元オブジェクトからハイドレーションまたは取得され、変換されて対象オブジェクトに保持されます。
次のステップ
この単元では、データ抽象化について学び、コンテキストサービスの利点、機能などの概要を確認しました。次の単元では、コンテキストサービスのさまざまなコンポーネントと、設計時および実行時のプロセスについて見ていきます。