2021/06/28

Salesforce Apex開発におけるAPIとは?概要を簡潔にご紹介

 
  

Salesforce APIとは?

Salesforce APIとは、Salesforceにおける「アプリケーション」と「プログラム」をつなぐインターフェースです。 Salesforce APIには種類も豊富にあり、SOAP APIやBulk API、REST APIなどがあります。中でもSOAP APIが業界の中でも一番スタンダードなAPIです。 SalesforceAPIを利用することにより、簡単にデータ連携ができます。データ連携はシステム導入には必要不可欠です。 たとえば、APIを利用することで片方のアプリケーションから数値データを取得し、もう片方のプログラムでそのデータを分析・解析という使い方も可能です。

Salesforce Reports and Dashboards API via Apexについて

Salesforce Reports and Dashboards API via Apexは、レポートビルダーで定義したレポートデータにプログラムを利用してアクセスするためのものです。これにより、データへのアクセスと視覚化を大幅に改善できます。 Salesforce Reports and Dashboards API via Apexで実行できることには、レポートデータをカスタムオブジェクトに統合することやレポートデータを豊富な視覚効果に統合、カスタムダッシュボードを作成やレポートタスクを自動化などがあります。 たとえば、APIを利用して毎期ごとの特別賞受賞者のコメントが掲載されているChatter投稿を引き出すことが可能です。

Salesforce Reports and Dashboards API via Apexの概要

ここでは、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.htm

SalesforceをAPIでさらにスマートに使いこなそう!

Salesforce Reports and Dashboards API via Apexを利用することで、レポートをデータを簡単に統合でき、より機能性に優れかつ迅速なデータ処理ができます。 組織の効率化を図るためにも、APIへの理解を深めましょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】