2021/05/21

SalesforceのSOAP APIとは?概要や種類をご紹介

 
  

SalesforceのSOAP APIとは?

Salesforceが管理しているデータに対して、外部のツールからアクセスできるように提供されているプログラムインターフェースの一つがSOAP APIです。 SOAP APIは標準的なAPIです。SOAP APIを使用すれば、レコードのCRUD(登録、参照、変更、削除)やメタデータの取得、メール送信、ユーザパスワードの変更などを行うことができます。また大容量のデータを操作することも可能です。 ただし、大容量のデータの操作に関しては、SOAP APIよりもBulk APIの方が処理時間が速く手続きも少ないので、この場合はBulk APIを使用した方が効率が良いです。 このように、Salesforceでは用途に適したAPIを選択することが大切になってきます。以降にSalesforceのSOAP APIの概要や種類を説明します。

SOAP APIの種類

SalesforceのSOAP APIは30種類以上用意されていて、オブジェクトに対するCRUD操作や承認プロセス、CRMオブジェクト特有の機能、ゴミ箱へのアクセスなどを行うことができます。 標準的なCRUD操作を行うSOAP APIは次のものがあります。 1.query( ):クエリを実行 2.queryAll( ):クエリを実行(削除レコードも対象) 3.queryMore( ):query( )、queryAll( )で取得できなかった結果を取得 4.retrieve( ):IDが一致するレコードの取得 5.getUpdated( ):追加/更新されたレコードID取得 6.getDeleted( ):削除されたレコードID取得 7.search( ):検索レコード取得 8.create( ):レコード追加 9.update( ):レコード更新 10.delete( ):レコード削除 11.upsert( ):レコード追加/更新

query( )

このAPIは、指定したオブジェクトに対してクエリを実行し、条件に一致したデータを返します。CRUDの種類は「Read」です。 このAPIには、対象のオブジェクトを指定するクエリ式、取得するデータ項目、オブジェクトが該当するかどうかを判断する条件を渡します。APIは対象のオブジェクトに対するクエリを実行し、クエリの実行結果をキャッシュしてクライアントアプリケーションに返します。 例えば、すべての取引先の責任者の苗字と名前を取得するなどが可能です。 構文: QueryResult = connection.query(string queryString);

queryAll( )

このAPIは、削除されたデータや、アーカイブされているデータも含めてクエリを実行します。CRUDの種類は「Read」です。 APIの動作自体はquery( )と同じで、指定したオブジェクトに対してクエリを実行し、条件に一致したデータを返します。 例えば、過去の削除したデータも含め、すべての取引先の会社名を取得するなどが可能です。 構文: QueryResult = connection.queryAll(string queryString);

queryMore( )

このAPIは、query( )やqueryAll( )で取得できなかかったデータを取得する際に使用します。CRUDの種類は「Read」です。 通常、query( )やqueryAll( )を実行した場合、結果セット内に取得できるデータ数は500です。queryMore( )は、500以降のデータを取得する場合に使用します。 構文: QueryResult = connection.queryMore( QueryLocator QueryLocator);

retrieve( )

このAPIは、指定したIDと一致したレコードを取得します。CRUDの種類は「Read」です。 クライアントアプリケーションは、取得するレコードのIDが分かっている場合にこのAPIを使用します。APIにオブジェクト、レコードIDの配列を指定することで目的のレコードが取得できます。 例えば、取引先のIDを入力し、取引先の情報を取得することが可能です。 構文: sObject[] result = connection.retrieve(string fieldList, string sObjectType, ID ids[]);

getUpdated( )

このAPIは、指定した期間内に更新した個別のレコードリストを取得します。CRUDの種類は「Read」です。 このAPIの戻り値は、GetUpdatedResult オブジェクトの配列で、レコードIDやタイムスタンプが含まれます。 例えば、直近の30分の間にデータ更新された取引先を取得するなどが可能です。 構文: GetUpdatedResult[] = connection.getUpdated(string sObjectType, dateTime startDate, dateTime EndDate);

getDeleted( )

このAPIは、指定した期間内に削除した個別のレコードリストを取得します。CRUDの種類は「Read」です。 このAPIの戻り値は、GetDeletedResult オブジェクトの配列で、削除された各レコードのIDや削除された日時が含まれます。 例えば、直近の30分以内に削除された取引先と削除された日時を取得するなどが可能です。 構文: GetDeletedResult = connection.getDeleted(string sObjectType, dateTime startDate, dateTime EndDate);

search( )

このAPIは、組織のデータからテキスト検索をしてレコードを取得します。CRUDの種類は「Read」です。 このAPIは検索文字列に基づいてレコード検索を行う場合に使用します。 例えば、電話番号項目に特定の値が含まれる取引先を検索するなどが可能です。 構文: SearchResult = connection.search(String searchString);

create( )

このAPIは、組織データに新規のレコードを追加します。CRUDの種類は「Create」です。 このAPIではAccountやContactレコードなどを1つ以上追加する場合に使用します。クライアントアプリケーションはレコードを追加するのに十分なアクセス権限があることが前提となります。 構文: SaveResult[] = connection.create(sObject[] sObjects);

update( )

このAPIは、組織データ内の既存レコードを更新します。CRUDの種類は「Update」です。 クライアントアプリケーションは、指定するオブジェクトとそのオブジェクト内の個々の項目に対して、更新を実行するのに十分なアクセス権限があることが前提となります。 構文: SaveResult[] = connection.update(sObject[] sObjects);

delete( )

このAPIは、組織データからレコードを削除します。CRUDの種類は「Delete」です。 クライアントアプリケーションは、削除を実行するのに十分なアクセス権限があることが前提となります。また、親オブジェクトへのアクセス権限が必要な場合もあります。 削除の基本手順は次の通りです。 1)削除するレコードのIDを確認します。 2)ID配列を作成し、削除する各オブジェクトのIDを入力します。 3)delete( )の引数にID配列を渡してコールします。 4)戻り値のDeleteResultの結果より削除が成功したかどうかを確認します。 構文: DeleteResult[] = connection.delete(ID[] ids);

upsert( )

このAPIは、外部IDを用いてレコードを追加または、更新する場合に使用します。CRUDの種類は「Create」と「Update」です。 このAPIをコールした際、追加か更新かを判断する方法は次の通りです。 1)外部IDが一致しない場合は、レコード追加します。 2)外部IDが一度だけ一致した場合は、レコード更新します。 3)外部IDが複数回一致した場合は、エラーとなります。 4)バッチコールで複数のレコードを一括更新した場合は、エラーとなります。 構文: UpsertResult[] = connection.upsert(String externalIdFieldName, sObject[] sObjects);

SOAP APIをきっかけにしてSalesforceのAPIを理解しよう!

今回はSalesforceのSOAP APIの概要や標準的なAPIについて簡単に説明しました。 Salesforceにはその他にも「Bulk API」や「REST API」など、別のAPIが存在します。これらのAPIの基本データ構造は、SOAP APIの仕様に基づいているので、SOAP APIを理解しておくと他のAPIも理解しやすくなります。 まずは、今回ご紹介したSOAP APIの標準的なAPIである11種類を理解し、Salesforceの知識を深めていきましょう。]]>

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

この記事の監修者・著者

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

おすすめの動画

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

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

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