【Salesforce】invalid query locator

【Salesforce】invalid query locator

SalesforceのApexで、SOQLで取得したレコードを参照した際にエラーが発生しました。

無効なクエリロケータとのことです。

調べてみると、ちゃんとありました。
https://help.salesforce.com/articleView?id=000323582&language=ja&type=1&mode=1

今回はバッチのstartで使用したクエリロケータが原因だったようです。

startメソッドではサブクエリによって子レコードを取得しており、それを参照した際にエラーが発生しました。

修正としては、サブクエリで取得している部分を別のSOQLで取得するようにして解決しました。

イメージ的にはこんな感じです。

事前に取引先のIDから取引先責任者のリストを取得するMapを作成しています。

サブクエリを使用する際には注意が必要なんですね。

特に、バッチのstartで返すクエリロケータには使用厳禁のようです。

私自身はサブクエリをあまり使用しませんが、エラーの調査を依頼された場合は疑ってみます。

No comments.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です