ClassLab環境独自の禁止コーディングルール

CX項目の作成禁止

結論

CX項目を 「入居トリガーでのみ作成する」 ルールに統一し、それ以外のクラス・バッチ・WebService等からの CX項目作成(insert)を 禁止 する。

👉 入居作成経路ごとに CX項目の作成タイミング/内容がズレることで、初回SMSや発信番号などの参照データが不整合になる根本原因を断つため

ルール

項目 内容
禁止対象 CXFields__c の insert(新規作成)
許可される作成元 入居トリガーのみ
禁止される作成元 バッチ、WebService、Managerクラス、API、テストクラス等

✅ CX項目の作成は 入居トリガーに一元化 してください。

背景(今回の事象)

スマサポ販路(川商ハウス)で 「0120で発信しているのに、初回SMSに050番号が記載される」 という不整合が発生。

応急対応

  • 初回SMS送信制御を「1時間遅延」に設定
  • 結果として、0120番号の反映は確認できた

⚠️ ただしこれは 一時的な回避策 に過ぎず、根本原因は未解決

問題の本質

CX項目(CXFields__c)の「作成経路」が複数存在している

現在の実装では、CXFields__c が以下のような 複数の処理から作成 されています。

作成元
入居トリガー
sumasapoImportBatch
MailFormWebService
CallManagement
CXFieldsManager
その他バッチ・API・テストクラス

➡ どの処理から作成されたかによって、以下が異なってしまう状態:

  • 作成タイミング
  • 初期値の入り方
  • 発信番号(FirstCallPhoneNumber__c)の確定タイミング

初回SMSは CX項目を参照しており、タイミング差に弱い

初回SMSの電話番号は CXFields__c.FirstCallPhoneNumber__c を参照している。

しかし:

  • CX項目が 「未完成の状態」で作られる
  • もしくは 「後から上書きされる」

その結果、SMS生成時点では古い番号(050)が参照される ケースが発生。

関連情報