salesforce REST APIを使用して、なるべくAPIコールを少なく、多くのデータ更新を行う方法を教えていただきたいです。
環境
・laravel
・salesforce(顧客情報を保存する外部APIをして使用)
・Mysql(ローカル)
解決したいこと
ローカルDBから、一日一回salesforce側に、顧客情報を更新するバッチ処理を作成しています。
以下の条件で、なるべく少ないAPIコール数でsalesforceに更新をかけに行く方法を教えていただきたいです。
条件
・REST APIを使用
・親子関係のあるレコードごとに連携をしたい
・最大連携データ数700人
・使用するsalesforceのオブジェクト 7オブジェクト使用する
(スタッフ・スキル・資格...etc)
・upsertを使う(新規追加の場合もあれば、更新を行う場合もあるので)
現状の調査結果
自分が調べた限りですと、スタッフに関連する子オブジェクトのレコードをまとめて連携しに行く方法は見つかりませんでしたので、以下のオブジェクトごとに連携する方法で進めています。
Composite API、sObject CollectionsAPIを使用する
Composite APIは、sObject CollectionsAPIを5つまで含めることができるとのことでしたので
200件x5で最大1,000件の、レコードを更新できるので一番APIコール数が少なくすむ方法かなと思っています。
・7オブジェクトに更新をかけに行くので、最大7コールで済む
懸念
更新失敗時に、親子関係の整合性が取れなくなってしまう。
salesforceドキュメント
Composite API
わかりにくい箇所、足りない情報がありましたら、ご指摘ください