如何将“空白”分配给Salesforce中的Decimal字段

问题描述:

我遇到了一个自定义验证规则问题,这些规则强制我根据特定条件在自定义字段中显示“空白”值。如何将“空白”分配给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

我刚刚尝试过这一点,并且在apex代码中将字段设置为null对我有用。 错误消息是否可能来自不同的验证规则? (有人可能在创建验证规则时剪切并粘贴了错误消息......) 或者工作流或触发器正在运行并试图将该字段设置为非空值?

+0

的确有另一个触发器试图设置另一个值!该死的副作用! – 2012-03-13 18:53:26