Salesforce Sandboxes  - 管理中的主要播放器&部署定制

Salesforce沙箱es - 管理中的主要播放器&部署定制

什么是沙箱?

对于开发人员/管理员的沙箱就像一个用于孩子的游乐场,它允许开发人员/管理员自定义,播放和配置应用程序开发环境,而不会影响实际的生产发布版本。 Salesforce中的沙箱用于应用程序开发,代码管理,版本控制,测试和培训,而不会影响Salesforce生产组织中的实际数据和应用程序。

沙箱的类型:

  开发人员沙箱 Developer Pro Sandbox. 部分复制沙箱 全沙箱
他们的用法是什么? 用于孤立环境中的编码和测试 用于孤立环境中的编码和测试 用于测试环境和质量保证任务 用于测试环境和性能和负载测试和分期
它们包括生产环境的内容是什么? 生产组织配置(元数据)副本。 生产组织配置(元数据)副本。它们具有比显影剂沙箱更大的存储限制。 生产组织配置(元数据)的副本,以及Sandbox模板定义的生产数据的子集。 生产组织的复制品。
您可以创建沙箱的许可证  ·完整沙箱·PartialCopy沙箱·开发人员专业沙箱·开发人员沙箱 ·全沙箱·PartialCopy沙箱·开发人员专业沙箱 ·全沙箱·PartialCopy沙箱 ·全沙箱

SDLC过程中的沙箱

在Salesforce App开发生命周期中,采用各个阶段的代码开发,单元测试,UAT等。一个简单的例子是: 

   在不同的团队同时在多个领域工作的情况下,最终必须合并到一个组织中,这是一个单一的生产环境,随着时间的推移变得相当复杂。它克服了这个暂存平台,以压抑地测试性能而不影响生产版本。相同的示例如下所示: 

管理Sandboxes释放管理过程

虽然没有拇指规则或框流程,但在哪些组织依赖于处理其发布管理系统的过程中。但是仍有一些点来考虑运行该过程的沙箱:

  • 每次释放后做出刷新沙箱,以便我们确保利用新功能并确保我们的环境与新的更改兼容。
  • 此外,它’S推荐使用策略使ORG发布与Salesforce版本对齐,以减少刷新沙箱的努力。
  • 应准备好刷新后运行列表,并在新版本后刷新沙箱。很少应该包括的东西是:
    • 数据屏蔽需求
    • 用户配置文件修改
    • 测试数据加载
    • 部署计划
    • 关闭计划的作业
    • 管理出站电子邮件。

希望这可以帮助您概述Salesforce Sandboxes的概述。

org安全基本面

或者 g安全基本面

毫无疑问,您的ORG包含了重要数据,显然您不想与任何人分享。曾经想象如果你的重要信息泄露给第三方,那就发生了什么。他们可以通过存储在Salesforce Org中的机密信息进行游戏。在太晚才能提前采取预防措施总是更好的。所以’措施采取预防措施,使您的ORG安全,避免泄露任何重要信息。我们应该在我们最后确定的是:

  1. 用户访问
  2. 连接的应用程序
  3. 自定义代码
  4. 妥协账户

核心安全原则

我们应该设置一些安全原则,以确保您的组织的安全性。我们可以选择以下策略:

  • 防守深度: 拥有多层防御总是好的,因为使用任何一层都有可能失败。因此,如果我们有更多的图层,那么所有的层都同时失败的可能性不太可能。应该始终牢记这一原则。
  • 最重要的原则: 随着Word建议,每个实体都应该具有他们需要完成工作的最少的特权。它有助于限制损坏。

基本防御:

(i)用户和访问管理

总是需要确保需要访问ORG的用户只有访问权限。


以下是不同的访问管理层:

  • 组织访问:
    这涉及整个组织访问。我们应该确保每当一个人离开公司时,那么他就会被拨出。所有访问都应删除或带走他。要删除配置,可以冻结用户或停用它们,因此无法误用。
  • 简介:
    要删除混乱并出于安全用途,我们可以根据其配置文件授予对用户的访问权限。此外,我们可以根据配置文件给出每个对象的不同许可。字段级别安全性(FLS)控制字段的访问。创建配置文件的同时为它们分配特定的角色集。
    设置对象级别权限 one should go to
    快速查找搜索>> Profiles >> Select a Profile >>对象级别许可
    现在,您可以提供对要访问该特定配置文件的对象的读访问或写访问权限。

  • 共享默认值: 它是一个记录级别访问权限。
    • 公共对阵私人:  公众指的是,如果有人可以访问ORG中的所有对象。然后自动他可以访问该对象的所有记录。原则是保持私人,即;用户可以根据角色层次结构访问对象。
    • 内部与外部: 通过内部,我们的意思是将与ORG和外部直接登录的人是指通过公众面对社区,门户或外部喋喋不休的人员的人员。如果访问已公开,我们已通过任何门户登录,那么任何事故都有很高的机会。

(ii)健康检查:

如果用户可以访问他所需的对象,但密码非常弱吗?曾经想过?? ..是的,密码为提供安全性发挥着重要作用。我们可以保护这种情况,因为Salesforce提供了一种使您的ARG安全和安全的方法。执行健康检查:
快速搜索>> Health Check

健康检查提供以下信息:

密码长度
密码历史记录
最大无效的登录尝试
会话超时等…
健康检查以某种方式或其他方式有助于您了解Salesforce为您提供的建议。

(iii)双因素身份验证:

许多次密码被证明是非常弱的链接,这很容易被盗。他们充当一个失败的点。他们通常可以猜到。我们中的一些人有时会对所有帐户使用相同的密码有时会使用相同的帐户。

人们甚至可以使用Salesforce Authenticator来提供安全性。此应用程序可以快速安装。一旦用户登录,它们必须提供应用程序上显示的密码和一次性安全令牌。此验证器不仅限于Salesforce。
以下是设置2FA的步骤:

  1. 创建2FA权限集
  2. 分配给配置文件
  3. 在登录时,将邀请用户使用2FA

因此,2FA是完美的防御,并在向ORG提供安全性时证明很有用。

(iv)IP白名单:

采用是一种非常好的做法。这是下一个防御水平。当我们有方案等人没有提供2FA或安全令牌的设备时,它很有用。我们可以在组织中仔细选择我们的静态IP范围。我们可以为所有配置文件设置它,包括API用户和集成。到白名单IP,我们可以去
设置>> Network Access >> Put your static IP

通过这样做,每当您下次登录时,它都不需要任何安全令牌。

现在它’很多帮助你,让你的组织安全安全安全。在ingrossed并开始工作之前,请务必遵循最佳防御实践。总有一个间谍并只需要单一机会来获得所有信息。如果你留下任何漏洞,他就可以很容易。所以请不要向任何人提供单一机会并在发生致命事件之前采取预防措施。 是保护!….

Process Builder vs apex触发器–选择自动化工具

Process Builder vs apex触发器–选择自动化工具

流程建设者概述

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:

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

第2步:

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

  第3步:

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

第4步:

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

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

例如:

创建一个复选框字段“与用户一样& 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触发器上使用或反之亦然,但也取决于各种其他因素,例如:

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