修改Dynamics 365 Sales代码:新建账户后预填充关联字段打开任务快速创建表单
修改代码实现Dynamics 365 Sales中创建账户后预填充任务表单Regarding字段
原代码仅能打开任务快速创建表单,无法预填充Regarding字段,需通过传递实体引用参数实现预填充,修改后的完整代码如下:
function taskFormAccount() { var formType = Xrm.Page.ui.getFormType(); // 仅在新建账户表单场景下执行 if (formType === 1) { // 获取当前账户的ID与名称 var accountId = Xrm.Page.data.entity.getId(); var accountName = Xrm.Page.getAttribute("name").getValue(); // 确保账户信息已存在(保存后才会生成有效ID) if (accountId && accountName) { Xrm.Navigation.openForm({ entityName: "task", useQuickCreateForm: true, parameters: { // 配置Regarding字段的预填充值 regardingobjectid: `${accountId},account`, regardingobjectidname: accountName } }); } } }
关键修改说明
- 获取账户信息:通过
Xrm.Page.data.entity.getId()获取新建账户的唯一ID,Xrm.Page.getAttribute("name").getValue()获取账户名称 - 预填充参数配置:在
openForm的parameters中,regardingobjectid需按[账户ID],[实体逻辑名]的格式传入,regardingobjectidname传入账户名称,以此自动填充任务表单的Regarding查找字段 - 异常规避:添加账户ID和名称的非空判断,避免账户未保存时因无有效ID导致的预填充失败
注意事项
需将此函数绑定到账户表单的OnSave事件,并设置为保存成功后触发——新建账户只有完成保存后才会生成有效ID,此时才能正确传递预填充参数。
内容的提问来源于stack exchange,提问作者Huzaifa Mehmood
相关产品推荐
相关产品推荐

