FOR LOOP内でのSOQLを回避する方法
前書き 「Mapを使え。以上。」で終わりなのですが、あまりに味気ないので実際にありそうな具体例を二つご紹介いたします。 例1:Trigger.newに対するループ内のSOQLを回避する Bad Example ↑取引先に紐づく取引先責任者を取得するにあたって、forループ内でSOQL文を書いてしまっています。… Read More »
前書き 「Mapを使え。以上。」で終わりなのですが、あまりに味気ないので実際にありそうな具体例を二つご紹介いたします。 例1:Trigger.newに対するループ内のSOQLを回避する Bad Example ↑取引先に紐づく取引先責任者を取得するにあたって、forループ内でSOQL文を書いてしまっています。… Read More »
前書き センスのない会社ほどよく実装したがる「営業日ベースで〇日後に通知送りたい」や「○営業日後の日付が自動で入力されるようにしたい」といった要件への対応方法 ※推奨代替案:シンプルに「〇日後」で実装して後は運用回避 実装方針 「日付」項目と「休日フラグ」項目を持った「休日カレンダー」カスタムオブジェクトを作成し、それを用いて営業日数計算を行う。 例えば、2021/07/01(木)の三営業日を取得したい場合は…… Read More »
前書き 作り込まれている組織でない限りあまり操作する機会はないかもしれませんが、デバッグログレベルの変更方法を備忘録も兼ねてご紹介します。 詳細は公式ヘルプ記事「開発者コンソールのログの操作」をご参照ください。 最適なデバッグログレベルについて デバッグレベルは以下のレベルが下に行けば行くほど高く(=記録が詳細に)なっていきます。 NONE… Read More »
前書き 初心者の方向けにDatabase.rollback()の仕様と使い方について簡単解説しますノ Database.rollback()とは? Database.rollback()メソッドを利用することで、Database.setSavepoint()によって事前登録されていたsavepointまで処理をロールバックすることが可能です。 例えば↓の例では、4行目のDatabase.rollback(sp)によって2行目のSavepointまでロールバックされ、「色々な処理B」がなかったことになります。 実務で一番多いユースケース… Read More »
エラーの発生原因 プロセスビルダーでコールされたメールアラートアクションに関して、メールの送信先がない(=メール項目が空白)の場合に「Probably Limit Exceeded or 0… Read More »
エラーの原因 Apex Codeで当該の行への到達可能性がない場合に「Unreachable statement」エラーが発生します。 エラーパターン1 returnよりも後にコードの記述がある… Read More »
前書き やり方色々ありますが、今回下記の三つをご紹介します。 ①sObjectTypeの一致判定②オブジェクト名の一致判定③オブジェクトPrefixの一致判定 本記事で用いる例:レコードIDからContactかどうかを判定する 推奨:sObjectTypeの一致判定 非推奨:オブジェクト名の一致判定… Read More »
前書き 「商品が関連する商品(Opportunities with Products)」といったレポートタイプの名前(※下記画像で表示される名前)に関する規則を見ていきます。 命名の法則1 子がカスタムオブジェクトの場合「親… Read More »
Preface I wrote this article because… Read More »