プログラマ38の日記

主にプログラムメモです。

Salesforce: APIで用意されている機能について

SalesforceにはいくつかのAPIが用意されています。こういうことをやりたいときにこれを使えばいいというのがわかるようにまとめてみました。Rest API、Bulk APIは外していて、SOAP APIに限定しました。(APIVer40の時に書いています)

 

メソッド 処理内容 どのAPIの機能か
Enterprise/Partner
Metadata
Apex
Tooling
convertLead リードを取引先にする。      
changeOwnPassword 自身のパスワードを変更する。      
create レコードを作成する。      
delete レコードを削除する。      
describeGlobal 主に組織内のSobject情報をリストで取得する。      
describeSObject   Sobject情報を取得する。      
describeXXX その他の情報XXXを取得できる。      
emptyRecycleBin   ゴミ箱を空にする。      
executeListView   リストビューを実行し、結果を取得する。      
findDuplicates 登録する前に重複ルールに該当結果を取得する。      
performQuickActions   アクションを実行する。      
login ログインする。(セッションIDと、インスタンスURLを取得する)    
logout ログアウトする。(ログイン時のセッションIDを終了する。)    
merge    レコードをマージする。(リード、取引先、取引先責任者に限定された機能)      
process   承認プロセスの操作をする。      
query    SOQLを実行し、レコードを取得する。      
queryAll   SOQLを実行し、削除済みレコードを含めてレコードを取得する。      
queryMore    query/queryAllの次の結果を取得する。(検索結果の件数が多い場合、何度かにわけて結果を取得する)      
renderEmailTemplate   メールテンプレート文字列とレコードの値をマージする。      
renderStoredEmailTemplate    定義したメールテンプレートとレコードの値をマージする。      
resetPassword    指定したユーザのパスワードをリセットし、リセット後のパスワードを取得する。(通知メールを送るわけではない)      
setPassword    指定したユーザに指定したパスワードをセットする(ログイン後、パスワードの変更画面が表示される。)      
retrieve   SalesforceIdを指定してレコードを取得する。      
search グローバル検索のようにレコードを検索し、結果を取得する。      
sendEmail    指定した宛先、件名、本文、添付ファイルでメールを送信する。      
sendEmailMessage   Sobject「メールメッセージ(EmailMessage)」のドラフトメールを送信する。      
undelete   ゴミ箱から復元する。      
update レコードを更新する。      
upsert レコードをアップサートする。      
getServerTimestamp Salesforceからサーバ時刻を取得する。    
getUpdated 指定されたオブジェクトに対して指定された期間内に更新されたレコードを取得する。      
getDeleted 指定されたオブジェクトに対して指定された期間内に削除されたレコードを取得する。      
getUserInfo ログインしたユーザ情報を取得する。    
invalidateSessions 指定されたセッションIDを終了する。    
deploy メタデータをデプロイする。      
checkDeployStatus デプロイの状況を取得する。(deployは非同期のため定期的に状況をチェックする。)      
cancelDeploy デプロイをキャンセルする。      
deployRecentValidation クイックリリースする。      
retrieve メタデータを取得する。      
checkRetrieveStatus メタデータの取得状況を取得する。(メタデータの取得は非同期のため定期的に状況をチェックする。)      
describeMetadata メタデータタイプの一覧を取得する。      
listMetadata 指定したメタデータタイプのコンポーネント一覧を取得する。      
createMetadata メタデータコンポーネントを作成する。      
upsertMetadata メタデータコンポーネントをアップサートする。      
updateMetadata メタデータコンポーネントを更新する。      
deleteMetadata メタデータコンポーネントを削除する。      
readMetadata メタデータコンポーネントを取得する。      
renameMetadata メタデータコンポーネントをリネームする。      
compileClasses クラスを作成する。(開発環境用)      
compileTriggers トリガを作成する。(開発環境用)      
compileAndTest クラスを作成しテストする。(本番環境用)      
runTests テストを実行する。    
executeAnonymous AnonymousApexを実行する。    
create Tooling API objectsを作成する。      
update Tooling API objectsを更新する。      
upsert Tooling API objectsをアップサートする。      
delete Tooling API objectsを削除する。      
search グローバル検索のようにTooling API objectsを検索し、取得する。      
query SOQLのようにTooling Api Objectsを検索し、取得する。      
queryAll 削除されたTooling API objectsを含めてSOQLのようにTooling API objectsを検索し、取得する。      
queryMore query/queryAllの次の結果を取得する。(検索結果の件数が多い場合、何度かにわけて結果を取得する)      
describeGlobal Tooling API objectsの一覧を取得する。      
describeSObject 指定したTooling API objectsの詳細を取得する。      
describeXXX その他のTooling API objectsの情報を取得する。      
retrieve Idを指定してTooling API objectsを取得する。      
getUpdated 指定された期間内に更新されたTooling API objectsを取得する。      
getDeleted 指定された期間内に削除されたTooling API objectsを取得する。      
runTestsAsynchronous 非同期でテストを実行する。      

 ※APIメソッドはすべてではありません。

 

まとめていく中で、Tooling APIの使い道がピンときませんでした。開発者コンソールの一部では使っていると思いますが、自分の中ではこういう所で使えそうというイメージが持てませんでした。

Enterprise/Partner APIと同じ名前のメソッドが、Tooling APIで定義されていますが、取得するのがTooling API Objectsというメタデータ寄りの定義情報になります。

メタデータの作成や取得をするならMetadata APIの方を使うことになりますし、Tooling APIだけが持っているメソッドはほぼありません。

Tooling API Objectsがいまいち理解できていないのだと思いますが、今は使う場面がありません。

 

あと、APIを使う上での注意事項は次になります。

  • 基本logoutは使いません。データ連携などで、同じユーザが同じタイミングで複数の処理を動作させている可能性があります。1つの処理でlogoutすると、同時に動いているほかの処理でセッションIDが無効となりエラーとなってしまいます。
  • APIのコール数の上限や、送信メール数の制限を超えないようにします。 
  • sendEmailでメールを送信する時は、エラーとなる宛先があるなどSalesforceに負荷がかかると処理が中断される場合があります。
  • レコードの作成、更新などでもSalesforceに負荷がかかると処理が中断される場合があります。