正在尝试在Salesforce中创建自定义收入日期字段 [英] Trying to create a custom 'Revenue Date' field in Salesforce

查看:16
本文介绍了正在尝试在Salesforce中创建自定义收入日期字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建"收入日期"字段,该字段遵循以下逻辑。 我希望收入日期字段根据我们的CS团队编辑的日期字段进行计算。 字段(可编辑的日期字段)包括 -超车日期 -电子邮件开始日期 -启用日期 -预计电子邮件开始日期 -预计总帐日期

第5个自动计算日期字段(预计启用日期),始终具有日期值(仅在上述字段为空时使用)

因此,我尝试使用的逻辑是

(I)是否有覆盖日期?如果是,那就拿着这个停下来。如果没有,请转到(Ii)

(Ii)是否至少有"电子邮件开始日期""或"有效日期""之一?如果是,请服用这些药物中较早的一个,然后停下来。如果没有,请转到(Iii)

(Iii)是否至少存在"预计电子邮件开始日期"和"预计总帐日期"之一??如果是,请服用这些药物中较早的一个,然后停下来。如果没有,请转到(Iv)

(Iv)如果以上所有字段均为空,则取预计启用日期

我知道这看起来令人困惑,但这只是因为我们计算收入的方式取决于CS团队输入的我们在客户网站上居住的日期(与交易结束日期不同)。

似乎在下面的公式中的某个地方出了问题。

BLANKVALUE(OVER_RIDE_DATE__c, IF(NOT(ISBLANK(EMAIL_START_DATE__C))&;&;NOT(ISBLANK(Live_Date__C),IF(Email_Start_Date__c<;Live_Date__c,Email_Start_Date__c,Live_Date__c)),IF(ISBLANK(Email_Start_Date_C)&;&;ISBLANK(Live_Date_C)), IF(NOT(ISBLANK(Estimated_Email_Start_Date__c))&;&;NOT(ISBLANK(估计_G_L_日期_c)), 如果(ESTIMATED_EMAIL_START_DATE__c<;ESTIMATED_G_L_DATE__c,ESTIMATED_EMAIL_START_DATE_c,ESTIMATED_G_L_DATE__c)), IF(ISBLANK(ESTIMATED_EMAIL_START_DATE__C)&;&;ISBLANK(ESTIMATED_G_L_DATE__C)),BLANKVALUE(ESTIMATED_GO_Live_DATE__c,ESTIMATED_GO_Live_DATE__c)

推荐答案

我将尝试指导您完成我的设计过程;)

公式的基本形状可能如下所示:

BLANKVALUE(Over_ride_Date__c,
    IF(ISBLANK(Email_Start_Date__c) && ISBLANK(Live_Date__c),
        IF(ISBLANK(Estimated_Email_Start_Date__c) && ISBLANK(Estimated_G_L_Date__c),
            Estimated_Go_Live_Date__c,
            /* need to use Estimated_Email_Start_Date__c or Estimated_G_L_Date__c */
        ),
        /* need to use Email_Start_Date__c or Live_Date__c */
    )
)

现在应该很容易。如果未设置"Override",并且"Email Start Date"和"Live Date"均为空,请转到下一个变量。否则(这是我们还没有的部分),如果至少设置了其中一个-我们将尝试使用它们。与最后一对日期相似。


那么现在会是什么呢:

  1. 电子邮件和Live均已填写-采用较小的
  2. 已填写电子邮件,活动为空-接收电子邮件
  3. 电子邮件为空,实况已填-实况转播

有几种方法可以做到这一点。位长但可读:

IF(ISBLANK(Email_Start_Date__c),
    Live_Date__c,
    IF(ISBLANK(Live_Date__c),
        Email_Start_Date__c,
        IF(Email_Start_Date__c < Live_Date__c, Email_Start_Date__c, Live_Date__c)
    )
)

但我要提倡这样做:

IF(ISBLANK(Live_Date__c) || BLANKVALUE(Email_Start_Date__c, Live_Date__c) < Live_Date__c,
    BLANKVALUE(Email_Start_Date__c, Live_Date__c),
    Live_Date__c
)

这里是它有效的证明:

(仅9行,因为这都是组合:smaller/bigger/null*smaller/bigger/null)。事实上,我们已经用前面的if语句排除了最后一个(null and null)。


这将我们引向.

BLANKVALUE(Over_ride_Date__c,
    IF(ISBLANK(Email_Start_Date__c) && ISBLANK(Live_Date__c),
        IF(ISBLANK(Estimated_Email_Start_Date__c) && ISBLANK(Estimated_G_L_Date__c),
            Estimated_Go_Live_Date__c,
            IF(ISBLANK(Estimated_G_L_Date__c) || BLANKVALUE(Estimated_Email_Start_Date__c, Estimated_G_L_Date__c) < Estimated_G_L_Date__c,
                BLANKVALUE(Estimated_Email_Start_Date__c, Estimated_G_L_Date__c),
                Estimated_G_L_Date__c
            )
        ),
        IF(ISBLANK(Live_Date__c) || BLANKVALUE(Email_Start_Date__c, Live_Date__c) < Live_Date__c,
            BLANKVALUE(Email_Start_Date__c, Live_Date__c),
            Live_Date__c
        )
    )
)

这篇关于正在尝试在Salesforce中创建自定义收入日期字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆