Dynamics CRM 2016客户端动态填充查找字段问题咨询
Dynamics CRM 2016客户端复制记录:查找字段处理方案
针对你遇到的复制记录时普通字段正常但查找字段无法填充的问题,我来逐个解答你的疑问:
问题1:type值能否用于填充实体类型字段?具体如何实现?
你拿到的type值其实是CRM里的ObjectTypeCode(对象类型代码),每个系统实体(比如Account、Contact)和自定义实体都对应唯一的这个代码,完全可以用它来获取实体的逻辑名称,进而填充查找字段。
实现步骤:
通过ObjectTypeCode查询实体逻辑名称
用CRM客户端的Xrm.WebApi查询entitymetadata实体(存储所有元数据的核心实体),过滤条件匹配你拿到的type值即可。示例代码如下:function getEntityNameByTypeCode(typeCode) { return Xrm.WebApi.retrieveMultipleRecords( "entitymetadata", "?$select=logicalname&$filter=objecttypecode eq " + typeCode ).then( function success(result) { return result.entities.length > 0 ? result.entities[0].logicalname : null; }, function error(err) { console.error("查询实体元数据失败:", err.message); return null; } ); }构造查找字段值并填充
拿到实体逻辑名称后,按照CRM要求的格式构造查找字段对象(必须包含id、name、entityType三个属性),再设置到目标字段上。示例:// 假设这是你获取到的待复制属性数据 var sourceLookupData = { name: "this is the name", type: "10026", Value: "{6BddfDC-8B10-47F4-BC49-A537d2E43E}" }; // 调用函数获取实体名称,填充目标查找字段 getEntityNameByTypeCode(sourceLookupData.type).then(function(entityName) { if (entityName) { var targetLookupValue = [ { id: sourceLookupData.Value.replace(/[{}]/g, ""), // 移除GUID的大括号 name: sourceLookupData.name, entityType: entityName } ]; // 替换成你的目标查找字段逻辑名 Xrm.Page.getAttribute("new_targetlookupfield").setValue(targetLookupValue); } });
问题2:是否可直接将原字段的name属性值填充到新字段中?
完全可以!这个name就是原查找字段显示的关联记录主名称(比如Account的公司名、Contact的全名),直接用它作为新查找字段的name属性即可。不过要注意两个关键点:
- 单独设置
name没用,必须同时搭配正确的id和entityType,否则查找字段只是显示文本,不会真正关联到对应的记录。 - 只要你获取到的
name是原查找字段的正确显示值,直接复用就没问题,不需要额外处理。
通用代码封装建议
如果要让代码更通用,可以封装一个处理查找字段复制的函数,适配任意查找字段:
function copyLookupField(sourceAttrData, targetFieldLogicalName) { getEntityNameByTypeCode(sourceAttrData.type).then(function(entityName) { if (entityName && sourceAttrData.Value) { var lookupValue = [ { id: sourceAttrData.Value.replace(/[{}]/g, ""), name: sourceAttrData.name, entityType: entityName } ]; Xrm.Page.getAttribute(targetFieldLogicalName).setValue(lookupValue); } }); } // 使用示例:copyLookupField(sourceLookupData, "new_targetlookupfield");
内容的提问来源于stack exchange,提问作者Damkulul
相关产品推荐
相关产品推荐

