Salesforce公式运算符和函数I(详情)

公式运算符和函数I(详情)

IF

描述:

确定表达式为真或为假。如果为真则返回一个给定值,如果为假则返回另一个值。

使用:

IF(逻辑测试, value_if_true, value_if_false),用要计算的表达式替换 逻辑测试,用您希望当表达式为真时所返回的值替换 value_if_true,用您希望表达式为假时所返回的值替换 value_if_false。

公式字段示例:

付款逾期

IF(AND(Payment_Due_Date__c < TODAY(),​​Payment_Status__c =“UNPAID”) , “PAYMENT OVERDUE”, ​null)

此公式确定付款到期日期是否已过,以及付款状态是否为“UNPAID”(未付)。如果是,则返回文本“PAYMENT OVERDUE”(付款逾期);如果不是,则保持该字段为空。本示例使用名为 Payment Due Date(付款到期日期)的自定义日期字段和一个名为 Payment Status(付款状态)的自定义文本字段。

插入税率

使用该默认值公式可根据用户所在城市设置资产的税率。使用以下默认值创建自定义百分比字段:

IF($User.City = "Napa", 0.0750,

 IF($User.City = "Paso Robles", 0.0725,

  IF($User.City = "Sutter Creek", 0.0725,

   IF($User.City = "Los Olivos", 0.0750,

    IF($User.City = "Livermore", 0.0875, null

    )

   )

  )

 )

)

自定义按钮示例:

{!

IF(Sample.BillingCountry = "US",

"http://maps.google.com/maps?q=​"&Sample.BillingStreet&​

"+"&Sample.BillingCity&"+​"&Sample.BillingState&"+​"&Sample.BillingCountry,

(IF(Sample.BillingCountry = "UK",

"http://maps.google.co.uk/maps?q=​"&Sample.BillingStreet

&​"+"&Sample.BillingCity&​"+​"&Sample.BillingCountry,

"http://maps.google.com")))

}

本示例使用 IF 函数来确定地址是在美国还是在英国,以便它可以使用相应类型的 Google 地图来显示地址。

技巧提示:

请确保您的 value_if_true 和 value_if_false 表达式属于相同的数据类型。

在使用包含 $Profile.UserType 变量的 IF 函数来确定登录用户所拥有的 Salesforce 用户许可证类型时,请使用下列值:

Standard(用于 Salesforce)

PowerPartner(用于 PRM 用户)

CustomerSuccess(用于客户入口网站用户)

PowerCustomerSuccess(用于客户入口网站管理员)

例如,使用下列公式可以确定登录用户是否具有引号中的许可证类型:

IF(ISPICKVAL($Profile.UserType ,"Standard"), 100, 0.1)

IF(ISPICKVAL($Profile.UserType ,"PowerPartner"), 100, 0.1)

IF(ISPICKVAL($Profile.UserType ,"CustomerSuccess"), 100, 0.1)

备注:只有在 Enterprise、Unlimited、Performance 和 Developer Edition 中才能使用 $Profile 合并字段。

IMAGE

描述:

插入具有备用文本和高度与宽度规格的图像。

使用:

IMAGE(image_url、alternate_text、height、width) 并使用图像的完整路径替换 image_url。使用您想要在图像因为一些原因无法显示时显示的文本字符串替换 alternate_text。屏幕阅读器软件可使用此文本。使用图像的垂直尺寸(用像素表示)替换高度。使用图像的水平尺寸(用像素表示)替换宽度。

对于报表,图像不会自动调整大小以适合报表列。使用高度和宽度参数显式调整图像的大小,使其适合列而不被部分截断。

示例:

HYPERLINK("ymsgr:sendIM?"&Yahoo_Name__c, IMAGE("http://opi.yahoo.com/online?u=" & Yahoo_Name__c & "&m;=g&t;=0", "Yahoo"))

该公式显示可单击的 Yahoo! Messenger 图标,指明用户是否已经登录该服务。用户可以单击该图标以启动与该用户的 Yahoo! Messenger 会话。本示例对联系人使用一个名为 Yahoo Name(Yahoo 名称)的自定义文本字段,您可以在该字段中存储联系人的 Yahoo! Messenger ID。

技巧提示:

高度和宽度参数是可选的。

可以用文本字符串替换图像 url 和备用文本参数。请用引号引起每个文本字符串。

可用使用数字来替换高度和宽度参数。

如果您希望将图像显示在别处,请将它们添加到“文档”选项卡中。例如,可以将产品图像存储在文档文件夹中,将该图像的 URL 复制到文档中,并将该 URL 粘贴到“产品”选项卡上公式字段中的图像 url 参数中。

如果您使用的是 Internet Explorer,有时,您必须更改安全设置,以便在图像使用 HTTP 协议时 Explorer 不会显示警告提示。有关更改安全设置的说明,请参阅 Internet Explorer 的联机帮助。

IMAGE 函数中不能包含 GETSESSIONID 函数作为其参数之一。

IMAGE 函数仅可用于公式字段和电子邮件模板。

如果联系人是通过个人客户引用的,则不能在自定义公式字段中显示与该联系人相关的图像。

IMAGEPROXYURL

描述:

安全检索外部图像,并阻止未经授权地请求用户凭据。

使用:

<apex:image value="{!IMAGEPROXYURL("http://exampledomain.com/pic.png")}"/>,并使用图像替换 http://exampledomain.com/pic.png

示例:

<apex:image id="salesforce-twitter"

value="{!IMAGEPROXYURL("https://pbs.twimg.com/profile_images/1014182734606897153/JfveQU3Z_400x400.jpg")}"

   alt="Salesforce on Twitter" />

此 IMAGEPROXYURL 函数检索,并显示来自外部源 Twitter 图像主机的图像。此函数会通过 HTTPS 加载 Salesforce Twitter 简档图像。此函数也阻止图像未经授权地请求用户凭据。

技巧提示:

对于托管在服务器上您无法控制的所有图像,使用 IMAGEPROXYURL。

渲染图像 URL 可随时更改。请勿随处复制并粘贴。

请勿在 Salesforce 外部使用渲染的图像 URL。

INCLUDE

描述:

返回 S-Control 代码片断中的内容。使用此函数可以在许多 S-Control 中重复使用常用代码。

使用:

{!INCLUDE(源代码, [inputs])},用要引用的 S-Control 代码片断替换源代码。用需要传递到该代码片断的任何信息替换输入。

S-Control 示例:

包括页眉代码片断

<html> <body> {! INCLUDE($SControl.Header_Snippet, [title ="My Title",theme = "modern"])} </body> </html>

本示例所引用的代码片断为您创建并在 Web 选项卡中显示的页面提供页眉。本示例显示页标题“My Title”(我的标题)。使用 $SControl 全局变量可以引用 Custom S-Control。

包括输入参数

通过下面的两个示例可以了解如何创建可重复使用的代码片断并将其包括在 S-Control 中。

<h2                 class=”{!$Request.titleTheme}.title”>​{!$Request.titleText}</h2>

此片段需要两个输入参数:titleTheme 和 titleText。它是一个可重复使用的 HTML 标记,用来基于输入参数显示页标题和主题。接着,将创建一个包括此代码片断的 S-Control:

<html> <head> </head> <body> {!INCLUDE($SControl.Title_Snippet, [titleTheme = "modern", titleText = "My Sample Title"]) } ... Insert your page specific content here ... </body> </html>

此 S-Control 使用名为 Title_Snippet 的代码片断来显示页面标题“My Sample Title”(我的示例标题),并使用“modern”(现代)显示风格。用您自己的 HTML 内容替换Insert your page specific content here(在此插入页面特定内容),并将该 S-Control 用作 Web 选项卡的源代码,以便在 Salesforce 中创建自己的页面。

技巧提示:

由于此函数只是引用 S-Control 代码片断,而不是复制它,因此它始终运行 S-Control 代码片断的最新内容。请记住,对 S-Control 代码片断进行更改会对所有引用该代码片段的 INCLUDE 函数都将受到影响。

使用 $Request 全局变量可以访问该代码片断内的任何信息。

此函数仅对自定义按钮、链接和 S-Control 可用。

INCLUDES

描述:

决定多选选项列表字段中选择的任何值是否等于您所指定的文本文字。

使用:

INCLUDES(multiselect_picklist_field, text_literal),用多选选项列表的合并字段名替换 multiselect_picklist_field(多选选项列表字段),用您希望匹配的以引号括起的多选选项列表值替换 text_literal(文字表示值)。

示例:

如果爱好自定义多选选项列表字段中选择的某个值是“高尔夫”,则 INCLUDES(Hobbies__c, "Golf") 将返回 TRUE(真)。

技巧提示:

text_literal(文字表示值)表达式必须为文本类型,且应当放在引号内。它不能是一个合并字段或函数的结果。

如果出现以下任何情况中的一种,Salesforce 将返回错误:

您没有提供 text_literal(文字表示值)表达式。

您提供了空的 text_literal(文字表示值)表达式,如 "" 或 " "。

使用 ISBLANK 决定多选选项列表字段是否为空。

使用 INCLUDES 函数内包括的 PRIORVALUE 函数检查多选选项列表字段的上一个值是否包括特定值。例如:

INCLUDES(

   PRIORVALUE(multiselect_picklist_field),text_literal

)

ISBLANK

描述: ​​

判断表达式是否具有值,如果没有值则返回 TRUE(真)。如果它包含一个值,则该函数返回 FALSE(假)。

使用:

ISBLANK(表达式),用您希望计算的表达式替换表达式。

示例:

(IF(ISBLANK(Maint_Amount__c), 0, 1) + ​

 IF(ISBLANK(Services_Amount__c), 0,1) + ​

  IF(ISBLANK(Discount_Percent__c), 0, 1) + ​

   IF(ISBLANK(Amount), 0, 1) +​

    IF(ISBLANK(Timeline__c), 0, 1)) / 5

此公式可提取一组字段,并计算人员所用的百分比。此公式字段检查五个字段以查看它们是否为空。如果为空,则该字段计数为 0。对于任何包含一个值的字段计数“1”,且该总和除以五(计算的字段数)。当显示“高级公式”子选项卡时,此公式需要您选中“空白字段处理”下面的将空白字段视为空白选项。

技巧提示:

在新公式中使用 ISBLANK 替代 ISNULL。ISBLANK 与 ISNULL 功能相同,但还支持文本字段。Salesforce 将继续支持 ISNULL,您不需要更改任何现有公式。

如果字段包含字符、空白或零,则则字段不为空。例如,如果字段包含使用空格键插入的空格,则该字段不为空。

如果字段没有值,则使用 BLANKVALUE 函数返回指定字符串;如果您只想检查字段是否有值,则使用 ISBLANK 函数。

如果您对数值字段使用该函数,则字段没有值且未配置将空白字段处理为零时,该函数只返回 TRUE。

如果您通过选项列表使用此函数,则使用 ISBLANK(TEXT(<picklist>)),以将选项列表项目转换为文本值。

ISCHANGED

描述:

将字段的值与上一个值相比较,如果二者不相等,则该函数返回 TRUE(真)。如果二者相等,则该函数返回 FALSE(假)。

使用:

ISCHANGED(字段),用要比较的字段名替换字段。

验证规则示例:

下面的验证规则可禁止用户更改已经创建的目标名称:ISCHANGED(Name)。

NOT(AND( ISCHANGED( Priority ), ISPICKVAL( Priority , "Low") ) ) 验证规则可确保,如果用户更改了个案的 Priority(优先级),更改后的新优先级不能为“Low”(低)。

NOT(AND(ISCHANGED(CloseDate),OR(MONTH(CloseDate)<> MONTH(TODAY()),YEAR(CloseDate) <> YEAR(TODAY())),$Profile.Name <> "Sales Manager")) 为验证规则,可禁止用户将业务机会的结束日期更改为当前月份和年份以外的日期,除非该用户具有“销售管理员”简档。

备注:只有在 Enterprise、Unlimited、Performance 和 Developer Edition 中才能使用 $Profile 合并字段。

技巧提示:

此函数仅可用于:

分配规则

验证规则

字段更新

工作流规则(如果评估条件设置为当记录为以下各项时评估规则:创建以及每次编辑。

用于在进程构建器中执行操作的公式条件。

使用 NOT 函数可以将返回值(TRUE(真)和 FALSE(假))反向。

在计算新建的记录上的任何字段时,此函数返回 FALSE(假)。

如果某文本字段以前为空,当该字段包含有值时,此函数返回 TRUE(真)。

对于数字、百分比或货币字段,在以下情况下,此函数返回 TRUE(真):

该字段以前为空,且现在包含有值

该字段以前为零,而现在为空

该字段以前为零,且现在包含其他任意值

ISCLONE

描述:

查看记录是否为另一个记录的副本,且如果是副本则返回 TRUE。反之,返回 FALSE(假)。

使用:

ISCLONE()

验证规则示例:

使用 (ISCLONE(),以在对象上创建验证规则,并查找其他记录复制的记录。

技巧提示:

此函数不得与字段连用。

使用 NOT 函数可以将返回值(TRUE(真)和 FALSE(假))反向。

ISNEW

描述:

在创建新记录的过程中检查公式是否正在运行,如果是,则返回 TRUE(真)。如果正在更新现有的记录,则该函数返回 FALSE(假)。

使用:

ISNEW()

验证规则示例:

使用下面的验证规则可以禁止用户创建结束日期为过去日期的记录。AND (ISNEW(), CloseDate < TODAY()) 检查用户是否正在创建新业务机会,如果是的话,则确保 Close Date(结束日期)是今天或今天之后的日期。

使用下面的验证规则可确保用户在创建业务机会之后至少向其中添加一个产品。

NOT(OR(ISNEW(),HasOpportunityLineItem))

在本示例中,当现有的业务机会没有任何产品时,验证规则中的公式将显示下面的错误消息:“在保存之前必须先向该业务机会中添加产品”。在首次保存时不会显示错误,因为只有在最初保存记录之后,才能添加产品;但是这会禁止用户重新保存或关闭不包含产品的业务机会。

技巧提示:

此函数仅对验证规则、字段更新、工作流规则、分配规则和进程可用。

使用 NOT 函数可以将返回值(TRUE(真)和 FALSE(假))反向。

当在含有基于时间的触发器的工作流规则中使用时,此函数始终返回 FALSE(假)。

当在批准操作的字段更新中使用时,此函数始终返回 FALSE(假)。

ISNULL

重要:在新公式中使用 ISBLANK 替代 ISNULL。ISBLANK 与 ISNULL 功能相同,但还支持文本字段。Salesforce 将继续支持 ISNULL,您不需要更改任何现有公式。

描述:

确定表达式是否为空(空白),如果是则返回 TRUE(真)。如果它包含一个值,则该函数返回 FALSE(假)。

使用:

ISNULL(表达式),用您希望计算的表达式替换表达式。

示例:

(IF(ISNULL(Maint_Amount__c), 0, 1) + ​

 IF(ISNULL(Services_Amount__c), 0,1) + ​

  IF(ISNULL(Discount_Percent__c), 0, 1) + ​

   IF(ISNULL(Amount), 0, 1) +​

    IF(ISNULL(Timeline__c), 0, 1)) / 5

此公式可提取一组字段,并计算人员所用的百分比。此公式字段检查五个字段以查看它们是否为空。如果为空,则该字段计数为 0。对于任何包含一个值的字段计数“1”,且该总和除以五(计算的字段数)。当显示“高级公式”子选项卡时,此公式需要您选中“空白字段处理”下面的将空白字段视为空白选项。

验证规则示例:

AND(ISPICKVAL(StageName, "Closed Won"),

  ISNULL(Project_Start_Date__c))

当处于“已结束并赢得客户”阶段时,此验证规则使名为项目开始日期的自定义日期字段在一定条件下为必填字段。

技巧提示:

文本字段永不为空,因此与文本字段一起使用此函数始终会返回 False(假)。例如,公式字段 IF(ISNULL(new__c) 1, 0) 始终为零,而无论 New 字段中的值是多少。对于文本字段,使用 ISBLANK 函数。

多项选择选项列表字段在 s-control、按钮和电子邮件模板中绝不会为空,因此在这些上下文中与多项选择选项列表字段一起使用此函数始终会返回 False(假)。

当在 ISNULL 函数中引用空“日期”和“日期/时间”字段时,其始终返回 True(真)。

不要对日期/时间字段使用 ISNULL。

当在 ISNULL 函数中引用数字、百分比或货币字段时,请为您的公式选取将空白字段视为空白。选择将空白字段视为零为空白字段给出 0 值,因此它们将不视为空。

合并字段可以作为空白处理,这会影响调用此函数的组件(如 S-Control)的结果。

使用验证规则确保数字字段中包含特定值时,请使用 ISNULL 函数包含不包含任何值的字段。例如,要验证自定义字段中包含值“1”,请使用下面的验证规则以在该字段为空白或为任何其他数字时显示错误:

OR(ISNULL(field__c), field__c<>1)

ISNUMBER

描述:

确定文本值是否为数字,如果是则返回 TRUE(真)。反之,返回 FALSE(假)。

使用:

ISNUMBER(文本),用文本字段的合并字段名替换文本。

验证规则示例:

OR(LEN(Bank_Account_Number__c) <> 10, NOT(ISNUMBER(Bank_Account_Number__c)))

该验证规则确保名为 Bank Account Number 的自定义文本字段为 10 位数字且不为空。

技巧提示:

该函数对于空值则返回 FALSE(假)。

ISNUMBER 函数与您所在的区域无关。例如,ISNUMBER("123,12") 和 ISNUMBER("1 000") 返回 FALSE(假),即使用户本地区域为“法国”。

包括空格的中文、日文和韩文以及特殊字符返回 FALSE(假)。

对于科技计数格式,例如 “2E2” 或 “123.123”,ISNUMBER 函数返回 TRUE(真)。

ISPICKVAL

描述:

确定选项列表字段的值是否等于所指定的文本文字。

使用:

ISPICKVAL(picklist_field, text_literal),用选项列表的合并字段名替换 picklist_field(选项列表字段),用以引号括起的选项列表值替换 text_literal(文字表示值)。文字表示值不能是一个合并字段或一个函数的结果。

示例:

合同启用

IF(ISPICKVAL( Status , "Activated"), NOW()-ActivatedDate, null) 计算自合同被启用以来的天数。如果合同状态不是“Activated”,则此字段为空。

佣金金额

IF(ISPICKVAL(StageName, "Closed Won"),

  ROUND(Amount *0.02, 2), 0)

本示例计算处于“Closed Won”(已结束并赢得客户)阶段的任何业务机会的佣金金额。该字段的值将是任何已结束/赢得客户的业务机会的金额乘以 0.02。对于未处理或已丢失的业务机会,佣金值为零。

竞争对手触发的工作流

ISPICKVAL(Stage, “Closed Lost”) && INCLUDES(Competitor__c, “Acme”)

在工作流规则或进程中,如果在已失去的业务上的竞争对手多选选项列表字段是 Acme,此公式配置 Salesforce 触发相关联的操作。

技巧提示:

用属于选项列表类型的自定义或标准字段替换 picklist_field。

您的文字表示值表达式必须属于文本类型,而且应当放在引号内。它不能是一个合并字段或函数的结果。

使用 CASE 函数可以确定选项列表值是否等于特定的值。

在使用 ISPICKVAL 函数返回选项列表字段以前的值时,请在 ISPICKVAL 函数内部包括 PRIORVALUE 函数,如下面的示例所示:

ISPICKVAL(PRIORVALUE

(picklist_field), text_literal)

上一篇:微服务架构的四大金刚利器


下一篇:07>>>数据清洗