こんにちは!こんにちは!
・・・
・・・
クラウド系プラットフォームはエンジニアの負担だけでなく、全ジョブの人間を一部分の労から解放してくれます。salesforceもそうです。でも、はまるとつらい。知らないとはまる。はまるとつらい。無知だとはまる。そして死ぬ。salesforceで死んでしまうエンジニアにはなりたくはないので、ここに今までではまりかけたsalesforceの沼を列挙していきたいと思う。随時更新をする。これは、過去の自分から未来の自分への手記である。未来の自分へ。あなたはそこにいますか?
・・・
・・・
レコードタイプをコピーした場合の制御(hamaruTime:3時間)
前提
オブジェクトAにレコードタイプ:Aとレコードタイプ:Bが存在する。
レコードタイプ:Aの場合は、カスタム項目のtestPick__cを制御しているものとする。
レコードタイプ:Bはレコードタイプ:Aをコピーして作成している。
起こること
レコードタイプ:Bで、カスタム項目testPick__cの制御をしたくないのに、レコードタイプ:Aと同じ制御が走る。
解決方法
レコードタイプを新規作成する。
(もしくはレコードタイプの制御を見直す。とはいえ、なんか設定変えられなかった気が)
Triggerを編集時の有効化ではまる(hamaruTime:0.5時間)
前提
下記のtriggerとhandlerクラスがあったとする。
trigger testsTrigger on testObject (before insert) {
hogehogeTesttriggerHandler handler = new hogehogeTesttriggerHandler();
handler.OnBeforeInsert(Trigger.old);
}
public with sharing class hogehogeTesttriggerHandler {
public void OnBeforeInsert(testObject[] oldtestObject){
//なんもしない
}
}
ちょっとHandler呼ぶ条件変えよう、と思って、salesforceの編集画面からTriggerを編集してテスト流す。
起こること
Triggerが機能しない。
解決方法
Triggerを編集するとしれっと有効化が解除されるので、salesforceのトリガ編集画面からトリガを有効化する
オブジェクト一覧にないオブジェクトを探すのにはまる(hamaruTime:3時間)
前提
shiranaiObj__c shiranai = new shiranaiObj__c();
このように突然、知らないオブジェクトがnewされているのに出くわす。
起こること
ひえええ、どこにあるんやああああ、とずっと迷う。
解決方法
たいがいは、salesforce->設定->カスタム設定にある、外部サービス用のオブジェクトだったりする。ので、固有の設定を呼び出して、ふにゃふにゃしている場合はここを探すべし。
hamaranaiTime
合計6.5時間、きみははまらない。