mar*_*set 4 null salesforce apex-code
我遇到了一个自定义验证规则问题,这些规则迫使我根据特定条件在自定义字段中显示"空白"值.
当通过界面手动编辑字段时,我只是删除文本框的内容,它保存得很好.但是使用顶点代码,如何将"空白"值放在字段中?为字段分配null似乎并不能使其工作.我检查了开发人员控制台的日志,并且正确地将null分配给我的属性,但是更新仍然会抛出一个异常,其中包含以下消息:
FIELD_CUSTOM_VALIDATION_EXCEPTION, CustomField; must be blank: [CustomField__c]
Run Code Online (Sandbox Code Playgroud)
以下是我在顶点代码中指定null的方法:
customObject.CustomField__c = null;
update customObject;
Run Code Online (Sandbox Code Playgroud)
分配零也不起作用,因为验证规则需要该字段为"空白".是否有一个隐藏的技巧,允许我通过顶点做到这一点?
编辑:这是验证公式.如果它的计算结果为true,则会出现错误:
AND( ISPICKVAL(CustomStatusField ,'Custom Value') , !ISBLANK(CustomField__c )))
Run Code Online (Sandbox Code Playgroud)
因此验证基本上是:当CustomStatusField等于时'Custom Value',CustomField__c必须为空.
编辑#2:我终于解决了我的问题.上面的代码按预期工作,但是有另一个偷偷摸摸的触发器导致字段更新为非空值,从而使验证规则失败.上帝,我讨厌广泛使用触发器来实现业务逻辑!
我刚试过这个,在顶点代码中将字段设置为null对我有用.错误消息是否可能来自不同的验证规则?(有人可能在创建验证规则时剪切并粘贴了错误的错误消息...)或者工作流或触发器正在运行并尝试将字段设置为非空值?
| 归档时间: |
|
| 查看次数: |
8176 次 |
| 最近记录: |