【第183回】 REST API を使ってすべての SQL クエリを一括で取得する方法
今回の記事では、Salesforce Marketing Cloud の Automation Studio で作成した SQL クエリを一括で取得するための REST API を紹介します。この API を利用することで、以下のようなことが簡単に分かるようになります。
これにより、データエクステンションの削除や、データエクステンションのフィールドの削除やフィールド名の変更を行う前に、該当する SQL クエリでの使用状況を事前にチェックでき、非常に便利です。
■ 事前準備
これらの準備が整ったら、以下の手順で SQL クエリを一括で取得してみましょう。
■ REST API の設定方法
まず、Talend API Tester で以下の設定を行ってください。
--- メソッド
GET
--- エンドポイント
https://[REST ベース URL].rest.marketingcloudapis.com/automation/v1/queries?$page=1&$pagesize=500
--- ヘッダー
Content-Type:application/json
Authorization:Bearer [アクセストークン]
※ ?$page=1&$pagesize=500 パラメーターを使用することで、最大 500 件の SQL クエリアクティビティを一括で取得できます。パラメーターを設定しない場合は、25 件のみが取得されます。
クエリの数が 500 件を超える場合は、次のページを指定することでさらに取得可能です。例:?$page=2&$pagesize=500
注意点
GET メソッドであるため、ボディの入力は不要です。
Filter パラメーターで "queryText" を使用することはできません。
非公式エンドポイントであるため、下記 Salesforce 公式のヘルプページには記載されていません。(2024 年 9 月現在)
■ JSON ファイルの取得と処理
これを Talend API Tester で実行すると、最大500件の SQL クエリアクティビティの情報が JSON 形式で取得できます。私の環境では、277件のクエリアクティビティが取得できました。
次に、この JSON をダウンロードしてください。「queries.json」という名前の JSON ファイルがダウンロードできたと思います。
この JSON ファイルが取得できたら、エクセルを「新規」で開き「データ」タブをクリックします。
続いて、「データの取得」から「ファイルから」→「JSON から」を選択すると、参照が開きますので、先ほどダウンロードした JSON ファイルを選択してください。
すると、Power Query エディターが自動的に立ち上がるので、List の部分をクリックしてください。
下記画面になったら、「テーブルへの変換」をクリックします。
以下のポップアップが表示されますが、デフォルトのまま OK をクリックして先に進んでください。
続いて、下記の赤枠のアイコンをクリックしてください。
列の選択画面が出るので、そのまま OK をクリックしてください。
すると、JSON が展開されるプレビューが表示されます。最後に「閉じて読み込む」ボタンから「閉じて読み込む」をクリックしてください。
これで、277 個の SQL クエリアクティビティが 1 行ごと展開されました。
これで、E 列の queryText 列で SQL クエリが取得され、F 列の targetName 列で格納先データエクステンション名が取得できました。
あとは、フィルター機能でテキストフィルターを使用すれば、調べたいクエリが自由に検索できますね。
いかがでしたでしょうか。
今回紹介した方法で、REST API を使って Salesforce Marketing Cloud の SQL クエリアクティビティを一括で取得し、効率的に管理できるようになりますね。ぜひ、この方法を積極的に活用してみてください。
今回は以上です。