この記事の目次
Salesforce APIとは?

Salesforce Reports and Dashboards API via Apexについて

Salesforce Reports and Dashboards API via Apexの概要

レポートの実行
Salesforce Reports and Dashboards API via Apexで、レポートを同期、非同期に実行可能です。 これは詳細の有無に関係なく可能で、メタデータを設定して絞り込むことも可能です。 たとえばレポートの同期実行をする場合、こちらのコードを使用します。List <Report> reportList = [SELECT Id,DeveloperName FROM Report where
DeveloperName = 'Closed_Sales_This_Quarter'];
String reportId = (String)reportList.get(0).get('Id');
Reports.ReportResults results = Reports.ReportManager.runReport(reportId, true);
System.debug('Synchronous results: ' + results);
レポートメタデータの取得
Reports and Dashboards API via Apexでは、レポートのメタデータを取得できます。 これにより、レポートおよびレポートタイプが何なのかも確認できます。 もしカスタムグラフ視覚効果を作成したい場合、項目や集計などのメタデータ情報を取得し利用しましょう。レポートデータの取得
レポートデータの取得は、ReportResultsクラスで行います。 これによって、ファクトマップを取得できます。 たとえば、抽出対象のレポートからIdを取得および実行し、レポートの最初のダウングルーピングを取得後にファクトマップを取得する際のコードはこちらです。String factMapKey = groupingVal.getKey() + '!T';
Reports.ReportFactWithDetails factDetails = (Reports.ReportFactWithDetails)reportResults.getFactMap().get(factMapKey);
レポートのテスト
Reports and Dashboards API via Apexコードのテストカバー率が必要です。 Apexでのテストの際、SeeAllDataアノテーションは、trueもしくはfalseどちらであっても必然的に無視されます。つまり、レポートの結果にはテストで作成した以外のデータもあります。 もしレポートの結果を制限したい場合、レポートで検索条件を利用しましょう。要件と制限事項
Reports and Dashboards API via Apexは、一般的なAPI制限以外にも制限があります。 具体的には、1時間あたり501回以上はレポートの同期実行を組織で要求できないことや、APIでは一度に21回以上のレポートの同期実行の要求はサポートしていないこと、レポートの実行時にカスタム項目の検索条件は20件まででるというような制限があります。 たとえば、大量のレポートの同期実行をしたい場合は、20回ごとに実行する必要があります。 出典:Apex 開発者ガイド|要件および制限事項 参照:https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_analytics_limitations.htmSalesforceをAPIでさらにスマートに使いこなそう!

この記事の監修者・著者

-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
最新の投稿
- 2023年12月6日キャリア・転職システムエンジニアへのキャリアチェンジで必要な資格は?
- 2023年12月6日キャリア・転職キャリアチェンジでエージェントを活用するメリット
- 2023年12月6日キャリア・転職プログラマーへのキャリアチェンジに必要な資格は?
- 2023年12月6日キャリア・転職サーバーエンジニアへのキャリアチェンジで必要な資格は?