如何在自定义对象新建时自动填充符合条件的必填lookup字段
需求实现方案
最优方案:Account对象自定义快速操作(低代码优先,维护成本最低)
该方案为最优解:完全基于Salesforce原生低代码能力实现,无需编码,兼容性强,后续迭代成本极低,且可以精准控制仅在Account相关列表入口生效,不影响其他场景下的
service_hub__c新建逻辑。
实现步骤如下:
- 进入Salesforce设置,找到
Account对象管理页,进入「按钮、链接和操作」菜单,点击「新建操作」 - 操作类型选择创建记录,目标对象选择
service_hub__c,自定义操作标签为「新建Service Hub」后保存 - 进入快速操作的布局编辑页,将业务需要展示的字段(包含
account__c、contact__c两个必填关联字段)添加到布局中后保存 - 点击「预定义字段值」选项卡,添加两条字段赋值规则:
account__c字段值设置为{!Account.Id},继承当前访问的Account记录IDcontact__c字段值使用公式赋值,自动取当前Account下首联系人为真的记录ID,公式示例:
公式逻辑说明:如果当前Account下存在首联系人标记为真的Contact,取第一条的ID赋值,不存在则留空等待用户手动填写CASE( 1, COUNT( [Account].Contacts WHERE First_Contact__c = true ), FIRST( [Account].Contacts WHERE First_Contact__c = true ).Id, NULL )
- 进入
Account对象的页面布局设置,找到service_hub__c相关列表的配置项,将原有默认的「新建」按钮替换为刚才创建的自定义快速操作 - 保存页面布局后即可测试生效
备选方案1:自定义URL按钮(适合不希望调整原有按钮交互逻辑的场景)
如果仅需要修改新建按钮的跳转逻辑,不想使用快速操作的弹窗交互,可以使用Lightning URL Hack方案:
- 进入
Account对象的「按钮、链接和操作」菜单,新建一个自定义URL按钮,显示类型选择「列表按钮」,勾选「在相关列表中显示」 - 按钮URL填写如下内容:
/lightning/o/service_hub__c/new?defaultFieldValues=account__c={!Account.Id},contact__c={!IF(COUNT( [Account].Contacts WHERE First_Contact__c = true )>0, FIRST( [Account].Contacts WHERE First_Contact__c = true ).Id, '')} - 将
service_hub__c相关列表的默认新建按钮替换为该自定义URL按钮即可生效
备选方案2:记录触发流(兜底方案,适合全场景强制自动填充的需求)
如果需要所有入口新建service_hub__c时,只要填写了关联Account就自动带出首联系人,不限于从Account相关列表进入的场景,可以使用记录触发流实现:
- 新建记录触发流,触发对象选择
service_hub__c,触发时机为记录创建前 - 新增「获取记录」节点,查询
Contact对象,过滤条件为AccountId = {!$Record.account__c} AND First_Contact__c = true,仅返回第一条记录 - 新增「赋值」节点,将查询到的Contact ID赋值给
{!$Record.contact__c} - 保存并激活流即可,该方案不需要修改任何按钮或页面布局,所有新建
service_hub__c的入口都会自动触发填充逻辑
内容的提问来源于stack exchange,提问作者Fawad azam
相关产品推荐
相关产品推荐

