メインコンテンツへスキップ
見出し画像
Photo byakisuke0925

【第492回】 Data Cloud : Batch DMO Activation のオンデマンド公開機能

    Nobuyuki Watanabe

    以前の記事では、DMO 全体を Marketing Cloud Engagement や クラウドストレージ などの外部デスティネーションへ送信(公開)できる機能として、「Batch DMO Activation」を紹介しました。ただし、この機能は手動での公開に限定されており、画面操作で実行する必要がありました。

    しかし、2026 年 4 月のリリースにより、ついにオンデマンド、つまり任意のタイミングで自動的に送信(公開)できる機能が利用可能になりました。

    私の予想では、画面上でのスケジュール設定による対応が提供されると予想していましたが、実際には Data 360 Connect REST API を活用したオンデマンド実行という形での提供となっています。

    とはいえ、この API をカスタムアクションとして組み込むことで、スケジュールトリガーフローから実行することも可能です。そのため、結果としては任意のタイミングでの自動送信も実現できます。

    本記事では、その具体的な実装の流れについて解説します。


    送信する DMO の有効化

    今回の例では、「その他」カテゴリに含まれる Goods Product(製品データ) の全レコードを、Marketing Cloud Engagement のデータエクステンションへ送信します。

    画像

    アクティベーションを作成する際は、Data Model Object の「Batch」 を選択してください。「API Activation」という紛らわしい選択肢もありますが、今回はそちらではありません。

    画像

    設定を進めると、Marketing Cloud Engagement 側へ送信したい項目を自由に追加することができます。さらに、関連する 計算済みインサイト が存在する場合は、それらもあわせて送信可能です。

    画像

    これまでは、このアクティベーションを画面から手動で送信(公開)する必要がありましたが、今回はその処理を API 経由で実行する イメージになります。

    画像

    アクティベーション設定画面を開いた状態で URL を確認すると、「85R」から始まる Salesforce ID を取得できます。この ID は後続の API 実行で使用するため、必ず控えておきましょう。

    例:85RTK0000000Jyj2AE


    REST API の詳細

    続いて、リソースの説明です。

    --- メソッド 
    POST
    
    --- エンドポイント
    https://{dne_cdpInstanceUrl}/services/data/v{version}/ssot/activations/{activationId}/actions/publish
    
    --- ヘッダー
    Content-Type:application/json 
    Authorization:Bearer [アクセストークン] 
    
    --- ボディサンプル
    {
      "fullRefresh": true
    }
    
    --- レスポンスサンプル
    {
      "errors": [
        {}
      ],
      "success": true,
      "publishStatus": "Publishing"
    }

    "fullRefresh" の値に関しては、実行の挙動は DMO の設定によって異なります。

    フルリフレッシュ DMO の場合:
    この値に関係なく、常にフルリフレッシュが実行されます。

    インクリメンタル DMO の場合:

    • 初回公開(0日目):
       この値に関係なく、常にフルリフレッシュが実行されます。

    • 2回目以降の公開:
       false または未指定の場合は、デフォルトでインクリメンタル更新が実行されます。
       true を設定すると、フルリフレッシュが強制実行されます。


    設定手順

    今回の詳細な設定手順については、以前ご紹介した「Data Graph の自動更新」の記事と基本的な流れは同じです。まだご覧になっていない方は、そちらを先にご確認いただくことをおすすめします。

    本記事では、手順 28 以降の変更点 に絞って解説します。

    28. URL パスには以下を入力します。
    ※ activationId はご自身の環境に合わせて変更してください。
    ※ 本 API は Version 66.0 以上で動作します。

    /services/data/v66.0/ssot/activations/{activationId}/actions/publish

    画像

    29. リクエストボディ には以下を入力して、確認 をクリックしたら、保存します。

    {
      "fullRefresh": true
    }
    画像

    30. 「応答の例を使用」を選択し、次へ進みます。

    画像

    31. サンプル JSON 応答 には、以下を入力し、「確認」をクリックして保存します。

    {
      "errors": [
        {}
      ],
      "success": true,
      "publishStatus": "Publishing"
    }
    画像

    32. フローに戻り、アクション要素の「名前」と「API 参照名」を入力して保存します。

    画像

    33. ここで一度、フロー名と API 名を入力して保存しておきます。

    画像

    34. 次に「変数」のリソースを作ります。以下の設定で作成します。

    • Resource Type:Variable

    • API Name:reqBody

    • Data Type:Apex-Defined

    • Apex Class:ExternalService__BacthDMOActivation_Bacthx20DMOx20Activation_IN_body

    画像

    35. アクション要素の前に「割り当て」を配置し、以下を設定します。

    • Variable:reqBody > fullRefresh

    • Operator:=

    • Value:True

    ※今回は、フルリフレッシュ DMO の処理が前提になっています。

    画像

    36. 再度アクション要素に戻り、「Set Request Body」に先ほど作成した変数 reqBody を設定します。

    画像

    37. ここまでで設定は完了です。再度保存します。

    画像

    38. 「デバッグ」から実行し、「実行」をクリックします。

    画像

    39. エラーが発生せずに完了すれば、実装は成功です。

    画像

    40. スケジュールトリガーフローを有効化し、任意のタイミングで送信(公開)されるように設定します。

    画像

    41. 実際にデータを確認し、レコードが正常に反映されていることを確認してください。

    画像

    いかがでしたでしょうか。

    これまでは、同様の処理を Marketing Cloud Engagement 側のスクリプトアクティビティなどで実装していた方も多いのではないでしょうか。今回ご紹介したように、Data 360 の標準機能を活用することで、よりシンプルにデータを取得・送信できるようになりました。

    この方法を知らないままだと、従来のやり方に頼り続けてしまう可能性もあります。ぜひ一度試してみていただき、必要な場面で活用していただければと思います。

    今回は以上です。


    次の記事はこちら

    前回の記事はこちら

    私の note のトップページはこちら


     
     
     
    Salesforce Marketing Cloud、Agentforce、Data Cloud、Salesforce 認定資格に関する実践的な情報を発信しています。これらの記事が、皆さまの学習や日々の業務に少しでもお役に立てば幸いです。