流程建设者概述

Process Builder是您在构建时的图形表示。它包括

标准,即时预定的操作。

有以下事项可以通过Process Builder完成:

  • 创建记录:除了更新记录外,您还可以创建记录并在记录中设置字段值。
  • 创建Chatter Post:   将Chatter更新推入组或饲料。
  • 创建批准:传统上,您需要一个触发器自动将记录推入批准过程。使用Process Builder,您可以根据过程的标准自动执行此操作。
  • 快速整合工作流程:在一个过程中快速整合多个工作流规则。
  • 调用apex类:您现在可以调用apex类。

触发概述

触发器是代码,即代码 执行 在记录之前或之后 插入 或者 更新。

通常,A. apex(代码) 基于基于标准的评估,用于提出一系列事件。这些事件执行以下类型的操作

  • 插入
  • 更新
  • 删除
  • 合并
  • 颠覆
  • undelete.

在apex触发器中,您必须拥有

  • 需要编写知识。
  • 需要设计测试类以满足所需的测试覆盖范围。

但过程构建器的主要区别在于您无法删除任何记录,并且无法显示任何错误。对于这些,您必须编写触发器代码。例如:

顶点限制

  • 通过SOQL查询检索的记录总数50,000
  • DML 10,000检索的记录总数
  • 100(同步)发出的SOSL查询总数(SYNC)| 200(异步)
  • 发布的SOSL查询总数20
  • 由单个SOSL查询检索的记录总数2,000
  • 150发布的DML陈述总数
  • 触发100万的最大字符数

处理构建器限制

编辑: 用户无法在激活后编辑进程。因此,如同流程一样,需要通过克隆初始进程并对该克隆记录进行修改来创建新的进程。

验证: 进程不触发验证规则,因此可以使数据无效。

删除: 在失活后至少12小时不能删除非活动过程,并且不会出现在回收站中

错误信息: 创建不触发的进程时,您无法指定错误消息,这些进程随着流或验证规则而触发。

公式帮助: 在标准中使用公式时,语法中没有任何功能有助于预览

句法: 选择列表字段被评估为进程构建器中的文本字段,以便它们不支持任何选择列表公式 累积了 or ISNEW.

顶点触发最佳实践

  • APEX代码必须提供异常处理。
  • 查询大数据集使用SOQL循环
  • 不要在内部使用SOSL和SOQL循环。
  • 避免硬编码ID

流程建设者最佳实践

  • 查看:要查看对象上是否有任何工作流,以与过程相同的事情。此外,验证无主动顶点触发。
  • 避免: 采访Apex,工作流程和处理相同的过程。
  • 文档: 使用“描述”字段填充信息,例如何时由谁以及进程创建的信息.Also,如果进程相互作用。
  • 测试: 然后测试更多。例如,当您首次开始使用此时,请先练习沙箱。

如果你做错了,那么在这里有很多影响用户和数据的能力。

现在这个问题是 为什么要处理构建器以及它与触发有何不同?

流程构建器完全自定义。这里没有必需的代码,因为我们需要冗长的逻辑和记录来完成并满足要求或者我们使用流程构建器,所以需要更少的时间来完成要求。

它在触发器上有一些好处:

场景 选项 原因
场景I.

填充记录更新的查找字段:

传统上需要一个触发器,可以使用流程构建器轻松完成。

问题是多层查找逻辑 - 即触发器中所需的相关数据的多个/嵌套地图。

          Process builder 扳机 传统上是需要触发的东西。进程构建器允许管理员可以在不使用代码的情况下执行此操作。
场景II

根据记录标准设置帐户所有者

流程建设者

扳机

进程构建器可用于根据对象的条件分配记录的所有权。
情景III

基于记录标准发布喋喋不休

流程建设者

扳机

Process Builder可用于基于记录标准发布到喋喋不休。
场景IV.

在机会时提交报价进行批准 阶段=提案

流程建设者 扳机 需要2个进程,以便根据机会阶段更新报价,另一个在满足报价标准时提交批准的报价。
场景V.

通过记录标准启动流程VS按钮或链接。

流程建设者

扳机

流程构建器可用于设置记录条件,然后启动触发器就绪流程。
场景VI.

克隆机会并更改现场值

流程建设者

扳机

虽然进程构建器可以创建一个新的记录,但它不能引用来自克隆机会的任何值,而不使用流量来捕获机会值。

让’S查看给定的Process Builder示例:

允许联系人在联系地址和帐户帐单地址中复制当前用户地址,只有在任何地址字段(街道,国家/地区,状态)是空/空的时。

步骤1:

在联系人对象上制作进程 - 构建器。为联系方式提供标准..AILing街 (null = false) 同样,对于所有地址的联系人和机会。

第2步:

“立即行动” 向Contact.Owner.country提供邮件国家的参考并激活您的进程:

 第3步:

现在通过在ORG中留下任何地址字段空白来测试ORG中的此过程构建器。

第四步:

在留下联系地址后,这里是与联系人的所有者地址相同的地址。同样,您可以为您的联系人帐户进行测试。

这是使用流程构建器而不是使用顶点的原因。 但在某些情况下,您必须编写进程构建器不能的触发码。

例如:

创建一个复选框字段“与用户一样& COMPANY”。当联系人被插入Salesforce时出现错误,该国家与用户国家和公司国家相同。

以上例子 无法通过流程构建器完成,因为这不允许您在插入联系人时丢失错误。
创造  复选框字段名为“与用户一样& COMPANY“联系。

APEX类:
public class SameUserAndCompanyCountryContact {

public static void sameCountry(List<Contact> conList){

   User user = new User();

   user = [SELECT Id , Country , CompanyName from User where Id =:UserInfo.getUserId()];

   System.debug('>>>>>>>>>>RB<<<<<<<<<<<<'+user);

Organization orgDetails = [ SELECT Name , Country , Address from Organization where Name =: user.CompanyName];

System.debug('>>>>>>>>>>>RB<<<<<<<<<<<<'+orgDetails);

for(Contact con : conList) {

  if(con.MailingCountry == user.Country && con.MailingCountry == orgDetails.Country){

   con.addError('Country of Company and User is same as country of Contact trying to insert');

     con.Same_Country_As_User_And_Company__c = True;

         }

      }

   }

}
apex触发:
trigger ErrorOnSameCountry on Contact (before insert){
  List<Contact> conList = Trigger.new;
     if(conList!=null) {
       SameUserAndCompanyCountryContact.sameCountry(conList);

    }
}

虽然Process Builder在Apex触发器上使用或反之亦然,但也取决于各种其他因素,例如:

  • 代码的复杂性。
  • 程序逻辑。
  • 过程建设者中的快速迭代可能是具有挑战性的。
  • 单位测试考虑因素。