LoginSignup
2
1

Postmanのまとめに戻る

Salesforceのレポートを一括削除したいという質問があります。

Can we bulk delete reports using data loader?

残念ながらSalesforceレポートはメタデータなので質問にあるようにdata loaderでは消せません。
Salesforce Reports and Dashboards REST APIを使えば可能です。以前にcurlコマンドを使って実際に削除して事はあります。この時はLinuxのシェルを使って連続削除を実現しました。

今回1件にレポートなら簡単にPostmanを使って実行できることは分かっていますが、一括処理(削除対象のレポートIdのファイルを使って連続して消す処理)ができないかを探ってみたいと思います。

postman.setNextRequest()

検索してみると以下の回答が見つかりました。

このコレクションでは、コレクション ランナーと関数を使用してパラメーターを変更しながら同じリクエストをループする方法を示します。postman.setNextRequest()
試してみるには、コレクションを開き、「実行」をクリックしてコレクションランナーを開きます。実行したいクエリを選択して実行してください。

元になった質問が2つ紹介されていましたが、読んでも実際にどうしたらいいかは分からなかったですね。理解できませんでした。

ここにファイルを使った例が回答されています。関数は使ってないみたいです。

UserNames.json という JSON 構造化データ ファイルを作成します。

[
{"username": "AsdBsd"},
{"username": "asd123"},
{"username": "123456"},
{"username": "123asd"},
{"username": "asdfghjklzxcvbnmqwertyuio"}
]

あとは GET リクエストを実行する

{{url}}/dev/users/isUserNameAvailable?username={{username}}

コレクション ランナーで… UserNames.json … をデータ ファイルとして選択して実行します。この例では、そのファイルを選択すると、反復回数が自動的に 5 に設定されます。

反復ごとに、EOF に達するまでファイル内の 1 つの「ユーザー名」を連続して取得します。ファイル内の各「ユーザー名」は、GET リクエストの {{username}} に置き換えられます。

その後、「テスト」スクリプトに何かを記述して、GET リクエストのそれぞれが成功したかどうかを確認できます。

この辺りが関係するのかな?

まずは、削除しない安全そうなAPIで操作を確かめます

ちょうどこれがメタデータの取得なので操作を間違って問題ないでしょう。

レポートのメタデータを取得する

URLは以下を使います。今回変数は{{reportId}}を使います。

{{_endpoint}}/services/data/v{{version}}/analytics/reports/{{reportId}}/describe

image.png

保存してDescribe という名前に変更します。

image.png

また、複数起動したときに期待通りに動いているかを確かめるために、レポート名を表示しておきます。

pm.test('reportName', () => {
    const response = JSON.parse(pm.response.text())
     console.log(response.attributes.reportName)    
 });

image.png

複数実行させるためのIdを記述したファイルを準備します。reportId.json

[
{"reportId": "00O5i00000Bnw8ZEAR"},
{"reportId": "00O5i00000Ba0PdEAJ"}
]

これで準備ができました。

コレクションの概要に戻ります。

image.png

「実行」を選択します。

image.png

今回流す処理を選択します。

image.png

繰り返し流す回数を入力します。 今回は2回

image.png

[ファイルの選択:Select File]ボタンを使用してデータ ファイルを選択します。

Run Salesforce Platform APIsボタンをクリックします。

2回流れました。
image.png

念のためコンソールも確認します。

ちゃんとレポート名が出力されています。無事にできたようです。

image.png

レポートの削除

{{_endpoint}}/services/data/v{{version}}/analytics/reports/{{reportId}}

image.png

実行結果が表示されていたら、実行ボタンをクリックします。

image.png

実行するコレクションを選択します。

image.png

実行回数を2回、ファイルを選択して実行します。

image.png

204が返ってきているので、成功していますね。

image.png

This DELETE request /services/data/v34.0/analytics/reports/00OD0000001cxIE to the Report resource deletes the report and returns a 204 HTTP response code with no content in the response body.

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1