Salesforceでのエラーメッセージが出たとき!表示例と対処法を知っておこう
目次
- 1. Salesforceでエラーメッセージが表示されるとき
- 2. Salesforceの代表的なエラー表示
- 3. 表示されたメッセージのエラー要素の活用例
- 3.1 フローでレコードの作成が試行されたときのエラーメッセージ
- 3.2 フローでレコード更新を施行したときのエラーメッセージ
- 3.3 フローでレコードの検索が行われたときのエラーメッセージ
- 3.4 フローでレコードの更新がnullに
- 3.5 初歩的なエラーはカンマの付け忘れ
- 4. Salesforceでエラーメッセージが表示されたときに確認する場所
- 5. Salesforceによる開発中で起きるエラーメッセージと対処法
- 5.1 レコードタイプのエラーと具体的な対処法
- 5.2 フローのエラーと具体的な対処法
- 6. Salesforceでエラーメッセージが出たときの対処法|まとめ
「作業中のエラーメッセージ、なんで出たのかがわからない」
Salesforceで操作をしていると、作業中にエラーメッセージが出ることが考えられます。表示されたエラーメッセージの内容から、どのように対処すればよいか?基本的に、定義されていなければエラーは出力されます。予期せぬエラーなのか、すぐに回復できるエラーメッセージなのかも気にかかることでしょう。
当記事では、Salesforceで表示されるエラーメッセージについて解説します。
エラーメッセージについて内容を調べている人は、参考にお役立てください。
Salesforceでエラーメッセージが表示されるとき
どのようなときにエラーメッセージが表示されるのでしょうか?Salesforceにおけるエラーメッセージが表示されるときは、次の状況が該当します。
- 自分にアクセス権がないデータを表示しようと実行したとき
- 自分にアクセス権のないデータを編集しようと実行したとき
- 自分にアクセス権のないデータを削除しようしたとき
エラーメッセージが表示されたときは、ブラウザの「戻る」ボタンをクリックしましょう。すると前のページに戻ります。
Salesforceの代表的なエラー表示
Salesforceで作業をしていると、度々エラー表示に悩まされます。
代表的なエラーを紹介しますので参考にしてみてください。
エラーメッセージ | エラー説明 |
REQUIRED_FIELD_MISSING | 必須フィールドの値が不足しています。 このコールには項目が必要ですが指定されていません。 |
STRING_TOO_LONG | データ値のレコードが長すぎます。 指定された文字列は文字列長の上限を超えています。 |
INVALID_TYPE_ON_FIELD_IN_RECORD | 必須種別以外の値です。 指定された値が、指定された項目の型で有効ではありません。 |
INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY | フローで次のレコードの更新が試行されたときのエラーです この操作は指定されたオブジェクトが相互参照しているオブジェクトに影響を与えますが、ログインユーザは相互参照しているオブジェクトに対する十分な権限がありません。 |
DUPLICATE_VALUE | 重複した値が存在しています。 一意でなければならない項目に重複する値は指定できません。 |
INVALID_FIELD_FOR_INSERT_UPDATE | 更新できないフィールドを変更しようとしています。 個人取引先レコードタイプの変更を、他の項目の更新と組み合わせることはできません。 |
INVALID_FIELD | 無効なフィールドが指定されました。 レコードを更新または更新/挿入しようとしたときに無効な項目名を指定しました。 |
INVALID_ID_FIELD | 無効なIDフィールドが指定されました。 人取引先レコードタイプの変更を、他の項目の更新と組み合わせることはできません。 |
LIMIT_EXCEEDED | 配列の制限を超えました。 項目のサイズまたは値、ライセンス、プラットフォームイベントの公開、またはその他のコンポーネントの制限を超えました。 |
INVALID_OPERATION | 無効な操作が試行されました。 クライアントアプリケーションが承認プロセスでロックされているレコードを変更しようとしました。 |
MALFORMED_ID | 無効なIDが指定されました。 無効な ID 文字列が指定されました。 |
QUERY_TIMEOUT | クエリのタイムアウトが発生しました |
INVALID_FIELD_FOR_INSERT_UPDATE | レコードを作成または更新する際に無効なフィールドが指定されました。 個人取引先レコードタイプの変更を、他の項目の更新と組み合わせることはできません。 |
INVALID_QUERY_FILTER_OPERATOR | 無効なクエリ演算子が使用されました |
INVALID_BATCH_OPERATION | 指定されたバッチ操作が無効です。 |
CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY | トリガやApexクラスに問題があり、エラーが発生しました。 指定されたレコードの作成、更新、有効化の権限がありません。 |
UNABLE_TO_LOCK_ROW | デッドロックまたはタイムアウト条件が検出されました。 レコードをロックできませんでした 同時に更新された場合やトランザクションの競合が発生した場合に表示されます。 |
INVALID_OPERATION | 無効な操作が試行されました 特定の状況下で許可されていない操作を行った場合に表示されます。 |
INVALID_CROSS_REFERENCE_KEY | 無効なクロスリファレンスキーが指定されました。 リレーション項目に指定した値が有効でないか、データが予期した型ではありません。 |
これらは一般的なエラーメッセージの例です。
Salesforceではさまざまなコンテキストで多くのエラーが発生する可能性がありますので、具体的な状況やエラーコードによって異なるエラーメッセージが表示されることがあります。
特定のエラーに対する詳細な解決策やコンテキストについては、Salesforceの公式ドキュメントやヘルプをご参照いただくことをお勧めします。
表示されたメッセージのエラー要素の活用例
Salesforceで作業をしていると、度々エラー表示に悩まされます。いくつかのエラー事例を紹介しますので参考にしてみてください。
フローでレコードの作成が試行されたときのエラーメッセージ
上記のエラーは、フローでレコードの作成が試行されたときに発生しました。エラー要素は、「create_invoice_line (FlowRecordCreate)」です。ExceptionCode の値については、『SOAP API 開発者ガイド』を参照してください。
https://developer.salesforce.com/docs/atlas.ja-jp.240.0.api.meta/api/sforce_api_calls_concepts_core_data_objects.htm#i1421192
フローでレコード更新を施行したときのエラーメッセージ
上記のエラーは、フローで次のレコードの更新を試行したときに発生しました。
0035h00000n5NbnAAE
更新によるエラー要素は、「ContactUpdate (FlowRecordUpdate)」です。
上記のエラーは、フローで「a015i00000Yw4jUAAR」のレコードが更新されたときに発生しました。エラー要素は、「X1_1 (FlowRecordUpdate)」です。
上記のメッセージは、フローで次のレコードの更新が試行されたときのエラーメッセージです。Nullとなります。エラー要素は、「update_todo_status_change_finished (FlowRecordUpdate)」です。ExceptionCode の値については、『SOAP API 開発者ガイド』を参照してください。
フローでレコードの検索が行われたときのエラーメッセージ
こちらのエラーは、フローでレコードの検索が試行されたときに発生しました。エラー要素は、「GetAll (FlowRecordLookup)」です。ExceptionCode の値については、『SOAP API 開発者ガイド』を参照してください。
フローでレコードの更新がnullに
上記のエラーは、フローでレコードの更新を試行した際に、nullとなりました。エラー要素は、 「Update_KYKInfo (FlowRecordUpdate)」です。ExceptionCode の値については、『SOAP API 開発者ガイド』を参照してください。
初歩的なエラーはカンマの付け忘れ
SQOLの作成でSystem.QueryExceptionを実行したときのエラーでは、コーディングミスが原因も考えられます。たとえば、「select id, name LastModifiedDate from Account」を実行したときに、「System.QueryException: only aggregate expressions use field aliasing」というエラーメッセージが表示されます。
このエラーは、実行したSQOLにカンマが抜けていることが要因です。「select id, name」とL「astModifiedDate from Account」の間にカンマを追記することで解決します。
Salesforceでエラーメッセージが表示されたときに確認する場所
エラーメッセージが表示されたときは、『SOAP API 開発者ガイド』の「API コールで使用されるコアデータ型」を参考にします。『SOAP API 開発者ガイド』は、開発者向けに用意されています。
Salesforceによる開発中で起きるエラーメッセージと対処法
実際に、Salesforceで開発している際に起きるエラーメッセージには、どのような対処が必要でしょうか。解決のヒントを解説します。
レコードタイプのエラーと具体的な対処法
プロファイルで使っているレコードタイプの場合は、削除しようとするとエラーメッセージが表示されます。具体的に表示されるのは、次のエラーメッセージです。
レコードタイプの削除でエラーが表示されたときは、現在のレコードタイプを持っているプロファイルから別のレコードタイプへ変更する処理が必要です。
フローのエラーと具体的な対処法
たとえば、フローによる割り当てで発生するエラーメッセージは、フロー処理中に割り当てを含める要素が2,000回以上実行することで表示される仕組みです。発生する例としては、Forループ文で処理中に変数の割り当てがくり返されると表示されます。
表示されるエラーメッセージは、「Number of iterations exceeded(現在行っている機能に対して実行の最大限度数を超えた)」という内容です。この制限数超過のエラーメッセージに対して、解決方法は次の処理が考えられるでしょう。
- 「必要のない割り当てをしない」という条件を条件分岐に追加
- トリガーで自動化できる処理を分離する
- レコード更新フローに任せられる処理も分離する
- くり返し処理において元のデータ件数を少なく絞る
くわしい英文の解決策は以下の公式ヘルプを参照してください。
https://help.salesforce.com/s/articleView?id=000382258&type=1
Salesforceでエラーメッセージが出たときの対処法|まとめ
エラーメッセージは、表示されたときの対処だけで済ませる場合が考えられます。Salesforceの作業中に発生したエラーに対して、備忘録的な実行内容がインターネット上で検索できるからです。ただし、状況によってはピンポイントな回答が得られないかもしれません。エラー内容によっては、十分でないことも考えられるでしょう。
エラーメッセージが表示されたときは、エラー前後の状況をできるだけ具体的に記録することが大事です。環境と具体的な手順を残しておくことで、今後の開発に役立ちます。
<Salesforce>
弊社ではSalesforceをはじめとするさまざまな無料オンラインセミナーを実施しています!
>>セミナー一覧はこちら
また、弊社ではSalesforceの導入支援のサポートも行っています。ぜひお気軽にお問い合わせください。
>>Salesforceについての詳細はこちら
>>Salesforceの導入支援実績はこちらからご覧いただけます!
医療業界に特化した営業支援、顧客管理(SFA/CRM)のコンサルティングも提供しております。こちらもぜひお気軽にお問い合わせください。
>>顧客管理(SFA/CRM)のコンサルティングの詳細はこちら