克隆Crm记录公共脚本
通过自定义按钮调用如下js脚本实现记录克隆功能
代码如下:
function clone() { debugger let extraq = '', entityName = this.Xrm.Page.data.entity.getEntityName(), fieldCount = 0, isFieldCountLimitExceeded = false; this.Xrm.Page.data.entity.attributes.forEach(function (c) { if (fieldCount > 45) { isFieldCountLimitExceeded = true; return; } let attributeType = c.getAttributeType(), attributeName = c.getName(), attributeValue = c.getValue(); //不需要复制的字段可以直接跳过 if (!attributeValue || attributeName === 'createdon' || attributeName === 'modifiedon' || attributeName === 'createdby' || attributeName === 'modifiedby' || attributeName === 'processid' || attributeName === 'stageid' || attributeName === 'ownerid' || attributeName.startsWith('transactioncurrency')) return; if (attributeType === 'lookup' && !c.getIsPartyList() && attributeValue.length > 0) { extraq += (attributeName + 'name=' + attributeValue[0].name + '&'); fieldCount++; if (attributeName === 'customerid' || attributeName === 'parentcustomerid' || (typeof c.getLookupTypes === 'function' && c.getLookupTypes().length > 1)) { extraq += (attributeName + 'type=' + attributeValue[0].entityType + '&'); fieldCount++; } attributeValue = attributeValue[0].id; } if (attributeType === 'datetime') { attributeValue = attributeValue.toDateString(); } extraq += (attributeName + '=' + attributeValue + '&'); fieldCount++; }); if (isFieldCountLimitExceeded) { alert('This form contains more than 45 fields and cannot be cloned'); } else { var newWindowUrl = Xrm.Utility.getGlobalContext().getCurrentAppUrl() + '&etn=' + entityName + '&pagetype=entityrecord' + '&extraqs=?' + encodeURIComponent(extraq); window.open(newWindowUrl); } }
标签:
Dynamics 365
, PowerPlatform
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)