是否在Salesforce中计算合同结束日期?

是否在Salesforce中计算合同结束日期?,salesforce,Salesforce,在Salesforce中,是否有计算已完成交易的准确合同结束日期的方法?我们有一个字段,它根据[Revenue\u date\uuu c+(contract\u Length\uu c*30)]计算合同结束日期,但是,这是基于所有月份都有30天的假设,是否有办法获得更准确的合同结束日期? 我们正在制作Salesforce的专业版 据我所知,使用函数/公式将非常棘手。你可以在本月底开始试验这个东西: DATE( YEAR(TODAY()), MONTH(TODAY()),

在Salesforce中,是否有计算已完成交易的准确合同结束日期的方法?我们有一个字段,它根据
[Revenue\u date\uuu c+(contract\u Length\uu c*30)]
计算合同结束日期,但是,这是基于所有月份都有30天的假设,是否有办法获得更准确的合同结束日期?

我们正在制作Salesforce的专业版

据我所知,使用函数/公式将非常棘手。你可以在本月底开始试验这个东西:

DATE(
    YEAR(TODAY()),
    MONTH(TODAY()),
    CASE( MONTH(TODAY()),
        1, 31,
        2, IF( MOD( YEAR(TODAY()), 4) = 0, 29, 28),
        3, 31,
        4, 30,
        5, 31,
        6, 30,
        7, 31,
        8, 31,
        9, 30,
        10, 31,
        11, 30,
        12, 31,
        DAY(TODAY())
    )
)
你可以试着计算今年年底、明年等日期之间的差异(取决于合同期限),但这将是一个非常糟糕的解决方案。每次我看到土生土长的枣子在处理“图书馆”时,我都会有点哭

你能把逻辑移到顶点吗?在一个简单的“插入前,更新前”触发器中,它将非常容易:

for(My_Object__c o : trigger.new){
    o.Contract_End_Date__c = o.Contract_Start_Date__c.addMonths(o.Contract_Length__c);
}

在“before”触发器中,您可以免费保存到DB作为奖励;)因此,如果它是一个公式字段,基本上与用户看到的相同。

谢谢,我将尝试一下!:)但是,它现在给出了一个错误,它太大了,无法编译,因为它达到了5000个字符的文本限制(如果(DAY(Revenue\u Date\u c)=1,(DAY(Date)(YEAR(Revenue\u Date\u c)+(MONTH(Revenue\u Date\u c)+Contract\u Length\u c)/12),(MOD(MONTH(MONTH(Revenue\u Date\u\u c)+合同长度c,12))+1,1)-1(),(天(收入日期c)-1)),“/”和文本(MOD((月(收入日期c)+合同长度c),12)),“/”和文本((年(收入日期c)+楼层((月(收入日期c)+合同长度c)/12)))奇怪的是,这个公式字段在DE版本上运行良好,但是当我在我们的专业版中创建相同的公式字段时,我得到了错误。真的很奇怪。减少公式大小的常见技巧是在字段中使用较短的“API名称”(例如
RevDate\uuu c
)-标签上仍然可以有很好的全名:(