如何使用自定义JavaScript填充Dynamics CRM活动类型发件人From字段
Dynamics CRM 填充From(Sender)活动参与方查找字段修复方案
现有代码的核心问题
- 错误指定
entityType为sender:sender是字段的逻辑名,不是实体类型,你需要填入待关联记录的实体逻辑名,例如用户为systemuser、客户为account、联系人为contact id未赋值:必须传入待关联记录的带大括号的GUID字符串,格式参考"{7B3D42F1-1234-5678-90AB-CDEF12345678}"- 第二段代码存在基础语法错误:未声明
lookUpObject变量、未获取formContext、未将查找对象放入数组、setValue传入的value未定义 - 活动参与方类型的查找字段赋值时,数组内的对象必须额外指定
participationTypeMask属性,发件人(Sender)对应的取值为1
可行实现代码示例
function PopulateFromLookUpField(executionContext) { var formContext = executionContext.getFormContext(); // 活动参与方字段支持多值,赋值必须用数组包裹 var senderValue = []; var senderRecord = {}; // 替换为待绑定记录的实际GUID,必须带大括号 senderRecord.id = "{替换为实际记录的GUID}"; // 替换为待绑定记录的实际显示名称 senderRecord.name = "Joe CRM"; // 替换为待绑定记录的实体类型,用户填systemuser、联系人填contact以此类推 senderRecord.entityType = "systemuser"; // 活动参与方必填属性,发件人对应的参与类型掩码固定为1 senderRecord.participationTypeMask = 1; senderValue.push(senderRecord); formContext.getAttribute("sender").setValue(senderValue); }
额外注意事项
- 代码注册到表单事件时,必须勾选「传递执行上下文作为第一个参数」选项
- 可在表单编辑器中双击字段确认字段逻辑名,避免逻辑名填错导致赋值失效
- 若填充后保存报错,检查当前用户对待绑定的记录有至少读取权限
内容的提问来源于stack exchange,提问作者The G
相关产品推荐
相关产品推荐

