re:newalhttp://blog.flect.co.jp/cloud/からさらに引っ越しています2020-02-13SalesforceのプラットフォームイベントをPostmanから発行するSalesforceこんにちは、技術開発室の藤野です。Events)はSalesforceでイベント駆動型のアーキテクチャを実現する仕組みです。Salesforce外部からのレコード操作を疎結合にする手段として有用なのではと個人的に注目しています。詳しくは公式ガイドを参照してください。本記事では例として下記のシチュエーションを実現する一連の手順を紹介します。APIの送信まとめ補足カスタムオブジェクトの作成まず、イベントで更新するカスタムオブジェクトを作成します。シリアルナンバーと状態を持つだけの単純なものです。Salesforce上で[設定]-タブの[オブジェクトマネージャ]-[作成]-[カスタムオブジェクト]と進み、新規カスタムオブジェクトを作成します。カスタムオブジェクトの定義は下記のとおりです。テキストカスタムオブジェクト定義オブジェクトの作成後、オブジェクトの「詳細」ページが表示されます。定義は下記のとおりです。テキストカスタム項目の定義シリアルナンバーはイベントからレコードを特定する際のキーとして使うため、「ユニーク+外部ID」を指定しています。このオブジェクトを画面から見られるようにするためにタブに設定します。Salesforce上で[設定]-メニューの[ユーザインターフェース]-[タブ]と進み、新規カスタムオブジェクトタブを作成します。設定は下記のとおりです。(任意のものを選択)他の項目はデフォルトのままにします。カスタムタブの作成カスタムオブジェクトの作成は以上です。プラットフォームイベントの作成デバイスオブジェクトを更新するためのプラットフォームイベントを作成します。Salesforce上で[設定]-メニューの[インテグレーション]-[プラットフォームイベント]と進み、新規プラットフォームイベントを作成します。定義は下記のとおりです。DeviceStatusUpdateEventプラットフォームイベントの定義イベント作成後、イベントの定義が表示されます。リレーション]の[新規]からカスタム項目を作成します。これはイベントを公開、登録(subscribe)する際のパラメータに当たります。定義は下記のとおりです。必須プラットフォームイベントの項目の定義カスタムプラットフォームイベントの作成は以上です。今回は、イベントを元にレコードを更新する処理をイベントプロセスで実装します。Salesforce上で[設定]-メニューの[プロセスの自動化]-[プロセスビルダー]と進み、[新規]からプロセスを作成します。プロセスのプロパティは下記のとおりです。プラットフォームイベントメッセージを受信したときプロセスのプロパティプロセストリガの設定は下記のとおりです。シリアルナンバープロセストリガプロセストリガの次にプロセス条件を追加します。設定は下記のとおりです。アクションを実行する条件がないプロセス条件プロセス条件のTRUE側にアクションを追加します。設定は下記のとおりです。状態アクションプロセスを有効化後、プラットフォームイベントの設定画面を見ると、「登録」にProcessが登録されています。Processが登録されるプロセスの作成は以上です。よるイベントメッセージの公開を使用するために、接続アプリケーションを作成します。ユーザ名パスワードフローを使うことにします。Salesforce上で[設定]-メニューの[アプリケーション]-[アプリケーションマネージャ]と進み、[新規接続アプリケーション]からアプリケーションを作成します。アプリケーションの設定値は下記のとおりです。アプリケーション名などは任意の値でかまいません。設定後の画面の「コンシューマ鍵」「コンシューマの秘密」の値は認証に使用するため控えておきます。(あとで参照することもできます)接続アプリケーションの作成は以上です。更新対象レコードの準備まず、イベントによって更新するレコードを作成します。ここでは下記のレコードを作成しました。APIによるプラットフォームイベントメッセージの発行のために、今回はPostmanを使います。認証してアクセストークンを取得します。Postmanで新規Requestを作成します。name、collectionは任意です。(ここではそれぞれ「authentication」「event_platform」としました)認証リクエストの作成メソッド、URLを下記に設定します。)[Body]タブから、下記を設定します。パスワード(パスワードは、セキュリティトークンが必要な設定をしている場合、パスワード+セキュリティトークンになります。)認証リクエストBody[Send]からリクエストを送信します。instance_urlを控えます。アクセストークンが取得できたので、イベントメッセージ発行のリクエストを作成します。Salesforce上では下記のレコードが作成されていました。レコード:更新前このレコードのうち、シリアルナンバー「Serial123」のレコードの状態を「Off」、「Serial456」のレコードの状態を「On」に更新してみます。シリアルナンバー「Serial789」のレコードは更新しません。nameでリクエストを作成します。(ここでは「publish_event」としました)登録リクエストの作成メソッド、URLを下記に設定します。複合(composite)リソースを使います。https://[instance_url]/services/data/v47.0/composite/[Authorization]タブから下記を設定します。登録リクエストAuthorization[Headers]タブから下記を設定します。charset=UTF-8登録リクエストHeaders[Body]タブから、下記を設定します。(データ形式)rawリクエストボディには下記JSONを設定します。]}登録リクエストBody[Send]からリクエストを送信します。成功した場合、下記のようなレスポンスが返ってきます。登録リクエストResponseそれでは、Salesforce上でレコードが更新されているか確認しましょう。無事、シリアルナンバー「Serial123」のレコードの状態が「Off」、「Serial456」のレコードの状態を「On」、「Serial789」のレコードは変更なしになりました。まとめ冒頭の繰り返しになりますが、レコードの操作をSalesforceに任せて、接続アプリケーションと疎結合にできる点だけでも、とても強力な機能だと思います。今回はシンプルな例でしたが、外部からレコードの挿入、更新をする処理はほとんどプラットフォームイベントに任せられるのではと期待しています。本記事を作成するにあたり、下記ページを参考にしました。KayaMemo補足プラットフォームイベントには考慮事項や各種割り当てがあります。イベント定義数などは注意が必要かと思います。詳細はドキュメントをご参照ください。Discoveryで「Einsteinのアドバイス」をカスタム項目に実装するにはみなさんこんにちは。技術開発室の佐藤です。EventBridgeにトラスト構想の夢を見るこんにちは、遠藤@Cariot事業部です。(12/4)みなさんこんにちは。技術開発室の岡田です。APMを始めよう!こんにちは。エンジニアのオクダです。Add-onsにプロビジョンする方法こんにちは。エンジニアのオクダです。専門知識に合格しました月別アーカイブはてなブログをはじめよう!flect_techさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。