最近使ったので、備忘的に。
Salesforceのレポートは公式にURLパラメータが利用可能です。
https://help.salesforce.com/s/articleView?id=sf.reports_filter_url.htm&type=5
今回は、検索条件のURLパラメータとエクスポートのURLパラメータを使った使用例をいくつ共有します。
検索条件を指定する場合のURLパラメータ
https://<DOMIAN NAME>.lightning.force.com/lightning/r/Report/<SFDC ID OF REPORT>/view?queryScope=userFolders&fv0=<Filter Value>
fv0, fv1, fv2...という形で、レポートに指定する条件の上から順に指定してくことができます。
CSVをダウンロードする場合のURLパラメータ
https://<DOMIAN NAME>.lightning.force.com/<SFDC ID OF REPORT>?csv=1&exp=1&enc=Shift_JIS&isdtp=p1
条件指定とDLを同時に指定することは不可でした。
encで「UTF-8」など指定の文字コードを指定可能です。
カスタムリンクでの相対URLでの式
/lightning/r/Report/<SFDC ID OF REPORT>/view?queryScope=userFolders&fv0={!<OBJECT_API_NAME>.Id}
数式やカスタムリンクの場合は、相対URLで用意するのがベターですね。
画面フローや数式でURLを可変的に使う場合の式
HYPERLINK(
LEFT({!$Api.Enterprise_Server_URL_630}, FIND('/services', {!$Api.Enterprise_Server_URL_630}))+ CASESAFEID({!C_GetReportID.Id}) + "?csv=1&exp=1&enc=Shift_JIS&isdtp=p1",
"指定した一覧レポートをDL",
"_blank"
)
こちらは画面フローで利用した数式です。
C_GetReportID:あらかじめレポートを検索しレポートIDを取得しています
Record Hunterの検索結果をレポートの条件に設定する場合
HYPERLINK(
LEFT({!$Api.Enterprise_Server_URL_630}, FIND('/services', {!$Api.Enterprise_Server_URL_630}))+"lightning/r/Report/"+ CASESAFEID({!C_GetReportID.Id}) + "/view?queryScope=userFolders&fv0="+{!contextId}+"&fv1="+{!selectIdsText} ,
"検索結果に応じた一覧レポートを表示",
"_blank"
)
こちらも画面フローで利用した数式です。
C_GetReportID:あらかじめレポートを検索しレポートIDを取得しています
selectIdsText:Record Hunterで選択したレコード一覧を保持しています
特記事項
DL指定と検索条件指定は同時に機能しませんでした。
もしDL指定と検索条件指定の両方を同時指定が可能な方法を見つけられた方はご連絡お待ちしております!