首页 > 解决方案 > 在 Dynamics crm 中从一个子网格复制另一个子网格的值

问题描述

如何将一页子网格中的记录复制到具有相同实体的另一页子网格。我在此表单中有一个机会表单我在此单击中创建了一个按钮,它将打开相同的机会,从我想将数据从第一个机会页面复制到其他页面我复制了所有文本框、下拉列表、查找值我使用了查询字符串复制了这个值。我被从第一页到另一页的子网格数据复制卡住了。

我尝试在它插入第一页子网格的查询字符串中传递对象:

if(Xrm.Page.data.entity.attributes.get('cts_originalsalespersonid').getValue() == null)
{
var OriginalOwnerId = Xrm.Page.data.entity.attributes.get('ownerid').getValue()[0].id;
var OriginalOwnerName = Xrm.Page.data.entity.attributes.get('ownerid').getValue()[0].name;
}
else
{
var OriginalOwnerId = Xrm.Page.data.entity.attributes.get('cts_originalsalespersonid').getValue()[0].id;
var OriginalOwnerName = Xrm.Page.data.entity.attributes.get('cts_originalsalespersonid').getValue()[0].name;
}

extraqs += '&cts_originalsalespersonid=' + OriginalOwnerId;
extraqs += '&cts_originalsalespersonidname=' + OriginalOwnerName;

var opid = Xrm.Page.data.entity.getId();
var opName = Xrm.Page.data.entity.getEntityName();
    
var queryOpt = {
        entityName: "cts_lineitem",
        attributes: ["cts_opportunityid"],
        values: [opid,],
        columnSet: ["rx_totalquantity", "cts_itemid","cts_itemnumber"]
    };
var fetchedLineItem = XrmServiceToolkit.Soap.QueryByAttribute(queryOpt);

var xVals = fetchedLineItem.map(function (obj) { return obj.attributes; });
var xNames = xVals.map(function (obj) { return obj.cts_itemnumber; });
  
for (var i = 0; i < xVals.length; i++) 
{
var addAddresses = new XrmServiceToolkit.Soap.BusinessEntity("cts_lineitem");
addAddresses.attributes["cts_opportunityid"] = { id: opid, logicalName: "opportunity", type: "EntityReference" };
addAddresses.attributes["rx_totalquantity"] = xVal[i].rx_totalquantity;
addAddresses.attributes["cts_itemid"] = xVals[i].cts_itemid;
addAddresses.attributes["cts_itemnumber"] = xVals[i].cts_itemnumber;

addAddresses.attributes["cts_lineitemid "] = xVals[i].cts_lineitemid ;
addResponse = XrmServiceToolkit.Soap.Create(addAddresses);
}

window.open('/main.aspx?etn=opportunity&pagetype=entityrecord&extraqs=' + encodeURIComponent(extraqs), '_blank');

[1]: https://i.stack.imgur.com/emjam.png这是主页 我放了一个按钮
[2]: https://i.stack.imgur.com/8kFL3.png 这个主要机会有子网格
[3]:https ://i.stack.imgur.com/I4vxq.png 这里这个页面我需要在子网格中复制数据

标签: dynamics-crm

解决方案


如果我理解您的要求正确,您需要复制机会记录,其中包含所有字段和子记录。对于子记录,我的意思是所有链接的记录(子网格)

我想建议略有不同(在我的意义上更好)。

有两种方法可以执行此操作。

  1. Dynamics 365 工作流工具,记录克隆。
  2. 在服务器端而不是客户端执行 opp 的副本。

当我指的是服务器端时,我指的是插件。你有一个按钮,点击这个按钮运行一个动作(自定义)

运行此操作(插件)时,使用子网格记录执行记录的复制。这是更稳定和简单的方法,几乎​​可以一直执行。通过这种方式,您可以创建记录防弹的副本。


推荐阅读