克隆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);
    }
}
复制代码

 

posted @   西伯利亚小菜鸟  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示