2012-03-13 81 views
4

我遇到了一個自定義驗證規則問題,這些規則強制我根據特定條件在自定義字段中顯示「空白」值。如何將「空白」分配給Salesforce中的Decimal字段

當通過界面手動編輯字段時,我只是刪除了文本框的內容,並且它可以很好地保存。但是,如果使用頂點代碼,我如何才能將「空白」值放入字段中?將null分配給該字段似乎不能使其工作。我查了日誌和無效的developper控制檯正確地分配給我的財產,但更新仍拋出異常與這樣的消息:

​​

這裏是我分配在心尖代碼無效:

customObject.CustomField__c = null; 
update customObject; 

因爲驗證規則需要該字段爲'空白',所以賦值零也不起作用。有沒有一個隱藏的技巧,讓我通過頂點做到這一點?

編輯:這裏是驗證公式。如果計算結果爲真實的,有錯誤:

AND(ISPICKVAL(CustomStatusField ,'Custom Value') , !ISBLANK(CustomField__c))) 

所以基本上驗證是:當CustomStatusField等於'Custom Value'CustomField__c必須爲空白。

編輯#2: 我終於解決了我的問題。上面的代碼按預期工作,但又有一個鬼鬼祟祟的觸發器導致該字段被更新爲非空值,從而導致驗證規則失敗。上帝我討厭廣泛使用商業邏輯的觸發器!

+0

你可以發佈驗證規則公式嗎? – 2012-03-13 15:55:46

+0

@MatthewKeefe:我用驗證規則更新了問題。 – 2012-03-13 16:09:07

回答

6

我剛剛嘗試過這一點,並且在apex代碼中將字段設置爲null對我有用。 錯誤消息是否可能來自不同的驗證規則? (有人可能在創建驗證規則時剪切並粘貼了錯誤消息......) 或者工作流或觸發器正在運行並試圖將該字段設置爲非空值?

+0

的確有另一個觸發器試圖設置另一個值!該死的副作用! – 2012-03-13 18:53:26

相關問題