Application Integration でサポートされているコネクタをご覧ください。
Salesforce 変更データ キャプチャ(CDC)イベントの統合を呼び出す
Salesforce トリガーを使用して Application Integration でサンプル インテグレーションを作成する方法について説明します。以下の手順では、完全なインテグレーションの実行に必要なトリガー、タスク、コネクタ、データ マッピングを構成する方法について説明します。
このクイックスタートでは、次の図に示すように、Salesforce トリガーを使用して Salesforce 変更データ キャプチャ(CDC)イベントの Application Integration でインテグレーションを呼び出します。
Salesforce トリガーは、Salesforce 商談チャネルに登録されています。Salesforce の商談に関するデータが変更されると、Salesforce の商談のステータスを抽出する Application Integration が呼び出されます。ステータスが閉じられると、統合はコネクタを使用して商談の詳細を抽出し、データを Cloud SQL インスタンスに書き込みます。データの変更が発生してもステータスがオープンの場合、統合によりコネクタを使用して Pub/Sub トピックにメッセージが送信されます。
以下の手順では、統合の実行を成功させるために必要なトリガー、タスク、認証プロファイル、エッジ、変数、データ マッピングの構成方法について説明します。
始める前に
- Salesforce デベロッパー アカウントで、変更データ キャプチャ(CDC)が有効になっていることを確認します。このチュートリアルでは、必要なユーザー設定と一連の権限を持つ既存の Salesforce デベロッパー アカウントがあることを前提としています。Salesforce ユーザーの設定と権限セットについては、Salesforce トリガーを構成するをご覧ください。
- 次の IAM ロールを Google Cloud プロジェクトの Application Integration サービス エージェント(
service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com
)に割り当てます。- Pub/Sub 編集者
- Connectors 管理者
- Application Integration の起動元
- Salesforce CDC データを格納する Cloud SQL テーブルを作成します。
- Google Cloud コンソールで [Cloud SQL インスタンス] ページに移動し、MySQL インスタンスに接続します。Cloud Shell から Cloud SQL for MySQL に接続するをご覧ください。
- Cloud SQL インスタンス上に次の MySQL データベースを作成します。
CREATE DATABASE SALESFORCE_TRIGGER_DEMO; USE SALESFORCE_TRIGGER_DEMO; CREATE TABLE OPPORTUNITIES ( ID INT NOT NULL AUTO_INCREMENT, NAME VARCHAR(150) NOT NULL, AMOUNT DOUBLE NOT NULL, DT_CLOSE VARCHAR(150) NOT NULL, PRIMARY KEY (ID) ); COMMIT;
- 次のコマンドを実行して、テーブルが作成されたことを確認します。
SELECT * FROM OPPORTUNITIES;
- Connectors で、Cloud SQL for MySQL 接続を作成します。詳細については、Cloud SQL for MySQL 接続を作成するをご覧ください。
- Connectors で、Cloud Pub/Sub 接続を作成します。詳しくは、Cloud Pub/Sub 接続を作成するをご覧ください。
新しい統合を作成する
新しい統合を作成するには、次の手順を行います。
- Google Cloud コンソールで [Application Integration] ページに移動します。
- ナビゲーション メニューで [統合] をクリックします。[統合リスト] ページが表示されます。
- [統合を作成] をクリックします。
- [統合の作成] ダイアログで名前と説明を入力します。例:
Demo-CDC-Opportunities
- 統合のリージョンを選択します。
- [作成] をクリックして統合デザイナーを開きます。
Salesforce トリガーを追加して構成する
統合に Salesforce トリガーを追加して構成するには、次の手順を行います。
- 統合デザイナーで、[タスク / トリガー] > [トリガー] の順に選択して、使用可能なトリガーのリストを表示します。
- 統合デザイナーで、Salesforce トリガー要素をクリックして配置します。
- キャンバスで [Salesforce CDC トリガー] 要素をクリックして、トリガーの構成ペインを開きます。
- [トリガー入力] で、次の項目を構成します。
- イベントタイプ: プルダウン リストから [変更データ キャプチャ(CDC)] を選択します。
- Salesforce インスタンス構成: プルダウン リストから [+ 新しい Salesforce インスタンス構成の追加] オプションをクリックします。
[新しい Salesforce インスタンス構成の追加] ダイアログが表示されます。
- Salesforce instance connection name: Salesforce インスタンスの接続名を入力します。例:
CDC-PlatformUser
- Salesforce domain: Salesforce のドメイン名を入力します。この情報は、[Salesforce アカウント] > [プロファイルの表示] ページで確認できます。
- 認証プロファイル: 認証プロファイルを選択します。認証プロファイルが存在しない場合は、新しいプロファイルを作成します。詳細については、新しい認証プロファイルを作成するをご覧ください。
- [追加] をクリックします。
- Salesforce instance connection name: Salesforce インスタンスの接続名を入力します。例:
- Salesforce チャネル構成: プルダウン リストから [+ 新しい Salesforce チャネル構成の追加] をクリックします。
[Salesforce チャネルの追加] ダイアログが表示されます。
- Salesforce object name: 「
Opportunity
」と入力します。 - [Add] をクリックします。
- Salesforce object name: 「
- オペレーション: プルダウン リストから [更新] を選択します。
プロパティへの変更は自動的に保存されます。
タスクを追加して構成する
このチュートリアルでは、Connectors とData Mapping タスクを使用します。各タスクの構成は次のとおりです。
Cloud SQL for MySQL 接続を使用して Connectors タスクを構成する
Cloud SQL for MySQL 接続を使用して、既存の Cloud SQL テーブルにレコードを挿入するように Connectors タスクを構成するには、次の手順を行います。
- 統合デザイナーで、[タスク / トリガーを追加] > [タスク] をクリックして使用可能なタスクのリストを表示します。
- 統合デザイナーで [Connectors] 要素をクリックして配置します。
- デザイナーで [Connectors] タスク要素をクリックして、[Connectors タスク構成ペイン] を表示します。
- [
Insert row to Cloud SQL
」に変更します。
] をクリックし、[Connectors] 名を「 - [タスクの構成] をクリックします。
[コネクタ タスクの構成] ダイアログが表示されます。
- [コネクタ タスクの構成] ダイアログで、次の操作を行います。
- 接続リージョンを選択します。
- リージョンを選択すると、[Connection] 列が表示されます。使用可能な接続のリストから、Cloud SQL for MySQL 接続を選択します。
- 接続を選択すると、[タイプ] 列が表示されます。[エンティティ] を選択し、使用可能なエンティティのリストから [商談] を選択します。
- タイプが選択されると、[オペレーション] 列が表示されます。[作成] を選択します。
- [完了] をクリックして接続の構成を完了し、ペインを閉じます。
Cloud Pub/Sub 接続を使用したコネクタタスクを作成する
次の手順で、Cloud Pub/Sub 接続を使用して Pub/Sub メッセージを公開するように Connectors タスクを構成します。
- 統合デザイナーで、[タスク / トリガーを追加] > [タスク] をクリックして使用可能なタスクのリストを表示します。
- 統合デザイナーで [Connectors] 要素をクリックして配置します。
- デザイナーで [Connectors] タスク要素をクリックして、[Connectors タスク構成ペイン] を表示します。
- [
Publish to cloud pub/sub
」に変更します。
] をクリックし、[Connectors] 名を「 - [タスクの構成] をクリックします。
[コネクタ タスクの構成] ダイアログが表示されます。
- [コネクタ タスクの構成] ダイアログで、次の操作を行います。
- 接続リージョンを選択します。
- リージョンを選択すると、[Connection] 列が表示されます。使用可能な接続のリストから Pub/Sub 接続を選択します。
- 接続を選択すると、[タイプ] 列が表示されます。[アクション] を選択し、使用可能なアクションのリストから [publishMessage] を選択します。
- [完了] をクリックして接続の構成を完了し、ペインを閉じます。
データ マッピング タスクを設定する
次の手順でデータ マッピング タスクを構成します。
- [タスク / トリガーを追加] > [タスク] の順に選択して、利用できるタスクのリストを表示します。
- 統合デザイナーで [データ マッピング] 要素をクリックして配置します。
- デザイナーの [データ マッピング] 要素をクリックして、タスクの構成ペインを開きます。
- [データ マッピング エディタを開く] をクリックします。
データ マッピング エディタを使用すると、使用可能な変換関数を使用して、入力変数を目的の出力変数にマッピングできます。出力は、他の統合タスクまたはトリガーの変数として使用できます。データを変数として渡す方法の詳細については、Application Integration で変数を使用するをご覧ください。
- [+ 新しい変数を追加] をクリックして、次の出力変数を作成します。
出力変数名 データ型 OpportunityIsClosed
Boolean
OpportunityId
String
PubSubMessage
String
- 次の表に示すように、SalesforceTriggerCdcPayload 変数とSalesforceTriggerCdcPayload変数間で次のマッピングを作成します。
入力 出力 SalesforceTriggerCdcPayload.GET_PROPERTY("IsClosed").TO_BOOLEAN()
OpportunityIsClosed
SalesforceTriggerCdcPayload.GET_PROPERTY("Id").TO_STRING()
OpportunityId
OpportunityId.TO_DOUBLE()
connectorInputPayload.ID(Insert row to Cloud SQL)
SalesforceTriggerCdcPayload.GET_PROPERTY("Name").TO_STRING()
connectorInputPayload.NAME(Insert row to Cloud SQL)
SalesforceTriggerCdcSnapshot.GET_PROPERTY("Amount").TO_DOUBLE()
connectorInputPayload.AMOUNT(Insert row to Cloud SQL)
SalesforceTriggerCdcSnapshot.GET_PROPERTY("CloseDate").TO_STRING()
connectorInputPayload.DT_CLOSE(Insert row to Cloud SQL)
OpportunityId.CONCAT(" is still open")
PubSubMessage
PubSubMessage
connectorInputPayload.message(Publish to cloud pub/sub)
マッピングが完了したら、ペインを閉じます。変更は自動的に保存されます。
エッジ接続を追加する
エッジは、インテグレーション内の 2 つの要素間の接続であり、エッジ条件は、エッジで接続されたタスクに渡すインテグレーションの制御条件を指定できます。エッジとエッジの条件の詳細については、エッジをご覧ください。
- Salesforce トリガーの要素から Data Mapping の要素にエッジ接続を追加します。
- 次のエッジ条件で、Data Mapping の要素から Insert row to Cloud SQL Connector の要素にエッジ接続を追加します。
$OpportunityIsClosed$ = TRUE
- 次のエッジ条件で、Data Mapping の要素から Cloud Pub/Sub コネクタの要素に別のエッジ接続を追加します。
$OpportunityIsClosed$ = FALSE
統合をテストする
新しい統合をテストするには:
- 統合デザイナー ツールバーの [テスト] をクリックし、[Salesforce トリガー] を選択します。
[Test Integration] ダイアログが表示されます。
- [Test Integration] をクリックします。
Salesforce インスタンスにログインして、商談のステータスを「クローズ」に変更し、Cloud SQL のタスクをテストします。
Salesforce インスタンスにログインして、商談に関する別の詳細を変更して、Pub/Sub タスクをテストします。ただし、商談のステータスは「オープン」のままにしておきます。
テストの詳細については、統合をテストして公開するをご覧ください。
統合が成功したことを確認するには:
- [Cloud SQL] ページに移動します。 データベースと Cloud SQL のログを調べて、新しい行の挿入を確認します。
- [Pub/Sub] ページに移動します。 Pub/Sub トピックを選択してから、[メッセージを表示] をクリックして、統合によって送信されたメッセージの受信を確認します。
- Application Integration ログを調べて、特定の統合のステータスを表示します。ログを表示するには:
- 統合デザイナーのツールバーで、[ログ] をクリックします。
- [実行ログ] ページでは、統合の実行の試行ごとに関する詳細を確認できます。各エントリには、以下のような実行の試行の詳細が含まれます。
- 連携名
- 実行 ID
- ステータス
- 開始時間
- 期間
- 統合バージョン
- トリガー ID
- 実行された統合の横にある展開の矢印(>)をクリックすると、展開された統合のタスクと変数のリストと、タスクのステータスと変数のペイロードが表示されます。