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