2012-05-31 19 views
2

我必须计算新记录的协议价值。假设协议价值是ending_days - begining_days。我把这个公式放在我的对象中。salesforce.com公式:如何检查记录是否为新

IF(Beginning_ ç<>结束 _c,Ending_ C-开始 _c,0)。

我也与此有关

1两个问题:什么是协议约定的价值,我在假设我所承担或做它的一些具体别的意思是否正确?

2:我必须仅为新记录创建协议值。所以,我应该照顾这个事实在我的IF条件。例如:我应该IF代码是这个样子

IF(AND(//不知何故检查记录是新的,Beginning_ ç<>结束 _c ),Ending_ C-开始 _c,0)

回答

2

首先,如果Beginning__c == Ending__c然后Ending__c-Beginning__c已经是0,因此您的公式并不需要,如果在所有。其次,公式每次在SOQL中引用时都会被评估,如果您想要一次性计算,您应该使用before insert触发器或工作流并将结果存储在常规字段中。

+0

请你详细说明第二点。我对数据库和apex编码也很陌生。谢谢 ! – LivingThing

+0

请点击此处 - > http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm#CSHID=apex_triggers.htm|StartTopic=Content%2Fapex_triggers.htm|SkinName=webhelp – mmix

0

回答你的问题的第2部分。在你的公式中使用函数ISNEW()。 所以你完整的公式将是:

IF (AND(ISNEW(),Beginning_c <> Ending_c),Ending_c-Beginning_c,0)