首页 > 解决方案 > 在保存之前针对另一个对象中的记录验证之前的记录 - Salesforce

问题描述

我有一个要求,其中商机记录详细信息页面中有客户、代理商、销售负责人、客户经理字段,并且还有另一个自定义对象名称数据组合,用于存储所有记录的数据以及上述允许的所有可能组合机会领域。

当用户在 Opportunity 中填充 Customer、Agency、Sales Owner 和 Account Manager 字段并单击 Save 时,应根据自定义对象中的记录验证这些字段中的数据。如果所有这些字段的组合与自定义对象中的任何行都不匹配,则不应保存记录并应抛出或显示错误消息。

有人可以让我知道是否可以使用配置或 Apex 在 Salesforce 中实施此方案?如果是,如何?

标签: validationconfigurationsalesforceapex

解决方案


纯配置方式:

  1. /你确定它必须使用辅助对象吗?您是否考虑过依赖选项列表或查找过滤器(如果其中一些是查找),以及如果用户输入无效组合但所有字段都是必需的 - 他们将无法保存?

  2. 假设它不能是依赖选项列表:如果您将 设置Data_combine__c.Name为文本字段(不是自动编号)并使用这些字段中的值填充它(使用工作流?)。因此,如果客户 =“Acme Ltd”,代理机构 =“纽约办事处”,销售负责人 =“John Doe”,客户经理 =“Joe Bloggs”,那么名称将是“Acme Ltd;New York Office;John Doe;Joe Bloggs” "

然后你应该能够VLOOKUP在验证规则中使用函数。有很多带有示例的博客文章和 Youtube 视频。这里明显的问题是它必须与Name限制为 80 个字符的字段进行比较。如果您的公司名称很长,那将无法正常工作。

  1. 所以最坏的情况你可以将它编码为before insert, before update机会的触发器。从 收集所有字段值trigger.new,对 Data Combine 运行查询,也许构建一个助手Map<String, Data_Combine__c>,其中 key 的结构类似于Name想法(但没有 80 个字符的限制)并进行比较?

推荐阅读