SalesforceのTooling APIとは?概要や使い方をご紹介します
IT・技術関連
更新日:2024.09.05
エンジニア採用
APIって何? APIとは「Application Programming Interface」の略です。簡単にいうと、ソフトウエア同士で機能を共有するときに使用するプログラムの命令です。 例えば、ソフトウエアAがデータ検索機能を持っていたとして、ソフトウエアBがその検索機能を使用したい場合、ソフトウエアAが公開している「データ検索API」をソフトウエアBが使用することでデータ検索が可能となります。 データ検索に限らず、いろいろな機能のAPIを公開しておけば、外部のソフトウエアからそれらを使用することが可能です。ただし、内部のプログラムコードまで公開しているわけではないので、外部のソフトウエアは、あらかじめAPIの仕様や使い方を理解しておく必要があります。 SalesforceにはさまざまなAPIが公開されているので、外部のソフトウエアからSalesforceの機能を使用することができます。
Tooling APIとは?
SalesforceのAPIの一つであるTooling APIは、ApexやVisualforceの開発者向けのAPIです。カスタム開発ツールを作成するための機能が提供されています。 Tooling APIでは、SOAPインターフェースとRESTインターフェースを使用することができ、例えば、デバッグログやヒープダンプ(メモリの状態)の参照するなどの機能を持ったカスタム開発ツールを作成することができます。 ちなみに、Apexとはプログラミング言語です。VisualforceとはSalesforceのカスタム開発ツールの作成を支援するWeb開発フレームワークです。Tooling APIでは何ができるのか?
Tooling APIでは、ApexやVisualforceの管理やApexの匿名実行、デバッグログへのアクセス、ヒープダンプの参照などを行うことができます。 具体的には以下のようなことが可能です。 1)ApexクラスやVisualforceページの作業コピーの管理 2)ApexクラスやVisualforceページの作業コピーの更新チェックやエラーチェック 3)ApexクラスやVisualforceページの作業コピーの変更をコミット 4)ApexコードやSOQLステートメントをフロート表示 5)Apexの匿名実行 6)静的リソースファイルの作業コピーの管理 7)カスタムオブジェクトのカスタム項目の管理 8)自分や他ユーザーのログファイルの生成 9)ヒープダンプマーカーの設定 10)デバッグログやヒープダンプへのアクセス 11)コードカバー率結果へのアクセスTooling APIのサンプルプログラム
Tooling APIのSOAPインターフェースを使用して、Apexクラスをプログラムから生成するJavaサンプルプログラムを紹介します。 Apexクラスの生成に成功すると”Successfully created Class:”の後にIDを表示し、Apexクラスの生成に失敗すると”Error: could not create Class”の後にエラーメッセージを表示するようになっています。 // ————————————————- // Apexクラスを生成するコード // ————————————————- String classBody = “public class Messages {\n” + “public string SayHello() {\n” + ” return ‘Hello’;\n” + “}\n” + “}”; // ————————————————- // Apexクラスのインスタンス化とデータセット // ————————————————- ApexClass apexClass = new ApexClass(); apexClass.Body = classBody; ApexClass[] classes = { apexClass }; // ————————————————- // Apexクラスの生成 // ————————————————- SaveResult[] saveResults = sforce.create(classes); for( int i = 0; i < saveResults.Length; i++ ){ // 生成に成功 if( saveResults[i].success ){ Console.WriteLine(“Successfully created Class: ” + saveResults[i].id); } // 生成に失敗 else{ Console.WriteLine(“Error: could not create Class “); Console.WriteLine(” The error reported was: ” + saveResults[i].errors[0].message + “\n”); } }Tooling APIが使用できるエディション
Tooling APIが使用できるのは、Enterprise Edition、Performance Edition、Unlimited Edition、Developer Editionです。 Enterprise Editionは、CRM全機能や高度なカスタマイズが可能で、大規模で複雑なシステムの設計が行えます。Performance Editionは、ソーシャルやモバイル分野で営業サービスの拡大を目的とした設計が行えます。 Unlimited Editionは、Lightningプラットフォームを通じてあらゆる情報をオンデマンドで管理し共有するなどの設計が行えます。Developer Edition は、LightningプラットフォームとAPIを使用でき、Salesforceの拡張や他のソフトとの統合を設計することができます。Tooling APIのSOQL機能
Salesforceのメタデータへのアクセスが必要な場合は、Tooling APIのSOQL機能を使用します。 Tooling APIのSOQL機能を使用すると、ソース管理の統合や、継続的なインテグレーション、Apexクラスまたはトリガーを利用可能な状態にすることなどが可能です。 以下にTooling APIのSOQL機能の主なものを紹介します。メタデータやオブジェクトプロパティの取得
オブジェクトのフィールドに関するメタデータを取得する場合や、オブジェクトプロパティを取得する場合は、FieldDefinitionを使用します。 FieldDefinitionは、標準フィールドやカスタムフィールドにおいて、フィールドメタデータに行ベースでアクセスすることが可能です。ApexクラスやVisualforceページの作業コピーの管理
Apexクラスとトリガーや、Visualforceページとコンポーネント作業コピーを管理する場合は、ApexClassMember、ApexTriggerMember、ApexPageMember、ApexComponentMember、MetadataContainerを使用します。 ApexClassMemberは、Apexクラスの作業コピーを管理します。ApexTriggerMemberは、Apexトリガーの作業コピーを管理します。ApexPageMemberは、Visualforceページの作業コピーを管理します。ApexComponentMemberは、Visualforceコンポーネントの作業コピーを管理します。 MetadataContainerは、上記の4つのオブジェクトの作業コピーを管理します。静的リソースファイルの作業コピーの管理
静的リソースファイルの作業コピーを管理する場合は、StaticResourceを使用します。 StaticResourceは、編集または保存するための静的リソースファイルの作業コピーを管理します。静的リソースを使用すれば、スタイルシート、JavaScript、画像、各ファイルなど、Visualforceページで参照できるコンテンツをアップロードすることができます。作業コピー更新や変更コミット
ApexクラスとトリガーやVisualforceページとコンポーネントの作業コピー更新、エラーの確認、変更をコミットする場合は、ContainerAsyncRequestを使用します。 ContainerAsyncRequestは、MetadataContainerオブジェクトをコンパイルして、使用可能状態にします。ヒープダンプマーカーの設定やコードのオーバーレイ
ヒープダンプマーカーを設定したり、Apex実行時のApexコードやSOQLステートメントをオーバーレイする場合は、ApexExecutionOverlayActionを使用します。 ApexExecutionOverlayActionは、クラスまたはトリガーの特定のコード行で実行するApexコードやSOQLクエリを指定しオーバーレイします。また、オプション機能としてヒープダンプを生成することも可能です。ログファイルの生成
自分用または他のユーザー用のログファイルを生成する場合は、TraceFlagでチェックポイントを設定します。 TraceFlagは、指定したログレベルでトレースするApexデバッグログの記録を開始します。ヒープダンプファイルへのアクセス
デバッグログとヒープダンプファイルにアクセスする場合は、ApexLog、ApexExecutionOverlayResultを使用します。 ApexLogは、デバッグログを取得できます。ApexExecutionOverlayResultは、ApexExecutionOverlayActionで定義されたApexコードやSOQLクエリからのヒープダンプファイルを取得できます。カスタムフィールドの管理
カスタムオブジェクトのカスタムフィールドを管理する場合は、CustomFieldを使用します。 CustomFieldは、固有データを保管するカスタムオブジェクトのカスタムフィールドを取得できます。SalesforceメタデータAPIのCustomFieldオブジェクトとフィールドへのアクセスも可能です。アクセスコードカバレッジ結果
アクセスコードカバレッジテストの結果を取得する場合は、ApexCodeCoverage、ApexOrgWideCoverage、ApexCodeCoverageAggregateを使用します。 ApexCodeCoverageは、クラスやトリガーのコードカバレッジテストの結果を取得できます。ApexOrgWideCoverageは、組織全体のコードカバレッジテストの結果を取得できます。 ApexCodeCoverageAggregateは、クラスやトリガーの集約コードカバレッジテストの結果を取得できます。テスト結果の管理
テストの実行やテスト結果を管理する場合は、ApexTestQueueItem、ApexTestResultを使用します。 ApexTestQueueItemは、Apexジョブキュー内の単一のApexクラスでテストを実行します。ApexTestResultは、テストメソッドの実行結果を取得できます。検証ルールとワークフロールールの管理
検証ルールとワークフロールールを管理する場合は、ValidationRule、WorkflowRuleを使用します。 ValidationRuleは、条件一致時の式を指定する検証ルールや、ワークフロールールを取得できます。 WorkflowRuleは、指定基準を満たした特定のワークフローアクションを実行するために使用するワークフロールールを取得できます。また、SalesforceメタデータAPIのWorkflowRuleオブジェクトへアクセスすることも可能です。Salesforce Tooling APIを活用しよう!
今回は、SalesforceのTooling APIの概要や使い方、サンプルプログラムを紹介しました。 Tooling APIを使用すると次のようなことが可能になります。 1)既存 Force.com ツールに機能を追加 2)Force.com 開発用の動的モジュールを、エンタープライズインテグレーションツールに追加 3)特定のアプリケーションやサービスの開発ツールを作成 ぜひ活用できるようにしておきましょう。]]>この記事の監修者・著者
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ
- 2024-06-30キャリアインフラエンジニアはやめとけって本当?きつい理由を口コミを交えて解説
ITエンジニアの派遣を利用したい企業様へ
- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。