質問
Salesforceコネクターの一括レコード更新処理について、以下の2点を教えてください。
①処理可能なレコード数の上限はありますか?1000件を超えるレコードを更新する場合、どのように処理すればよいですか?
②トランザクション処理に対応していますか?1500件のレコード更新時に1400件目でエラーが起きた場合、すべての更新処理がロールバックされますか?
回答
①一括レコード更新処理の上限レコード数について
Salesforceコネクターの一括レコード更新処理において、処理可能な上限となるレコード数は、明示的な数値としてはございません。
ただし、膨大なデータの更新時にIntegrateサービスのひっ迫や処理時間の増加が発生することはございます。
1000件を超えるレコードを処理する場合は、[繰り返し(データ件数)]処理などを用いてSalesforceコネクターのコンポーネントへ一度に渡るデータ量を調整いただくことで、処理を分割して行うことが可能です。
②トランザクション処理について
【重要】Salesforceコネクターは、すべてのオペレーションにおいてトランザクションに対応しておりません。
そのため、コネクターの処理動作としては、複数レコード更新時に一部のレコードの更新に失敗した場合、トランザクションの設定に関わらず更新に成功したレコードをロールバックさせるようなことはできません。
例えば、1500件のレコード更新処理中に1400件目でエラーが発生した場合、1399件までの成功したレコードはコミットされた状態となり、ロールバックされません。これは製品仕様となります。
補足
・パラレルストリーミング処理(PSPフロー)を有効化すると、一括レコード更新処理コンポーネントをループ設定せずに複数のスレッドが協調して処理を実行いただけます。PSPフローはメモリ消費を抑えながら大容量データを高速に処理する機構です。
・SalesforceコネクターはSalesforceのREST API、およびBulk API2.0を内部で使用しており、動作の仕様はこれに準じております。Bulk API2.0のバッチサイズは自動で決まる仕様であるため、HULFT Square側でバッチサイズの指定はできないものの、内部処理としては自動的に決定したサイズにてバッチ処理が行われております。
参考:【公式】トランザクション
参考:【外部】Salesforce Bulk API および Bulk API 2.0 の制限および割り当て
コメント
0件のコメント
記事コメントは受け付けていません。