こんにちは!こんにちは!
・・・
・・・
クラウド系プラットフォームはエンジニアの負担だけでなく、全ジョブの人間を一部分の労から解放してくれます。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時間、きみははまらない。