レポートの複製を簡単に作りたいという質問があります。
以前に大量のレポートを簡単に消したいとの質問があって、curlコマンドからSalesforce Reports and Dashboards REST APIを呼び出して対応することを試したことがあります。
Salesforce Reports and Dashboards REST API
やり方が分かってしまえば、難しくはないのですがかなり試行錯誤しましたね。今回はPostmanを使って対応してみたいと思います。
初めてPostmanを使ってSalesforceのAPIを操作する場合の設定
以下のモジュールを参考にして設定します
Quick Start: Connect Postman to Salesforce
- Salesforce でクロスオリジンリソース共有を設定する
2. Postman アカウントにサインインするか、アカウントにサインアップします。
3. Workspacesメニューを選択します。
4. Create Workspace を選択します。
5. ワークスペースに SalesforceCollection という名前を付けます。
6. Nextをクリックして進みます
8. Create Workspaceをクリックします。
9. Salesforce コレクションをフォークします。public Salesforce Developers workspace を開いて、Salesforce API コレクションのフォークを作成します(リンクをクリック)。
10. Collectionsで、Salesforce Platform API を選択して展開します。
11. Create Forkをクリックして、コレクションのフォークを作成します。
12. 「MySalesforceAPIFork」と入力します。
13. SalesforceCollection をワークスペースとして保持します。
14. Fork Collectionをクリックします
15. Salesforceの組織に認証して接続します。
- ブラウザで 1 つの 組織にのみログインしていることを確認してください。
- Postman の コレクション で、SSalesforce Platform APIsを選択する必要があります。
- No Environment が選択されていることを確認してください。
- Authorizationタブが開いているはずです。
- タイプは OAuth 2.0 である必要があります。
16. Get New Access Tokenをクリックします。下の方にあるのでスクロールしてください。
17. instance_url が Trailhead Playground を指していることを確認します。これをコピーします。重要です。
もしかしたら、lightning.force.comがmy.salesforce.comになっているかもしれませんが、このURLを使います。
18. Use Tokenをクリックします。
19. Variables タブをクリック
_endpoint 行の CURRENT VALUE 列に、手順 17 でコピーした instance_url 値を貼り付けます。
入力箇所がよく分からん。 先頭にカーソルをもっていく
20. Saveボタンをクリックします。
何か変更した時だけ機能するようです。
これで設定は終了です。念のため以下のようにして接続できるかを確かめます。
接続できたかの確認
- コレクション で、Salesforce Platform API を選択して展開します。
- RESTを選んで展開します。
- GET Limitsを選択します。メイン パネルで Limits が開きます
4. sendをクリックします。
無事接続できているとこのような応答が返ってきます。
Clone Reportsを使います。
cloneIdに複製したいレポートのIdを指定してPostメソッドで送信すればいいみたいです。
/services/data/v34.0/analytics/reports?cloneId=00OD0000001cxIE
Postなので、Bodyに以下のように新しいレポート名を指定すればよさそうです。
{ "reportMetadata" :
{"name":"myNewReport"}
}
Limitsタブの横の+をクリックしてタブを作ります。
以下のように入力してPOSTメソッドを選択します。
{{_endpoint}}/services/data/v{{version}}/analytics/reports?cloneId=
パラメータに複製したいレポートのIdを入力します。
下記のようにBodyを入力します。
送信する前に保存しておきます。
保存できたら、送信ボタンをクリックします。
このような応答があれば成功です。
Salesforceの画面からも確認してみましょう。ちゃんと新しいレポートが複製されています。