【问题标题】:dynamics 365 API 9.1 how to associate opportunity to productdynamics 365 API 9.1 如何将机会与产品相关联
【发布时间】:2020-05-31 22:04:31
【问题描述】:
【问题讨论】:
标签:
rest
dynamics-crm
microsoft-dynamics
dynamics-365
dynamics-crm-webapi
【解决方案2】:
有两种方法可以创建多对多关系。一个是native,它不暴露相交实体,另一个是manual。
想一想,本地多对多可以通过链接或关联两条记录来创建,虽然有一个内部相交实体存储它,但可以在高级查找查询中使用,但没有实体形式来查看记录。所以没有额外的字段。
然而,在手动多对多中 - 相交实体是一个物理实体(如 opportunityproduct),存储两个相关的实体查找(opportunityid 和 productid),还可以向该实体添加更多自定义字段。表单可用于该实体并且可以自定义。
您可以使用带有两个查找 ID 的 service.Associate() 消息或简单的 service.Create() 消息来创建相交实体记录。
对于 web api 查询,我建议您使用CRM REST builder 工具来编写和测试查询。
示例:
var entity = {};
entity["productid@odata.bind"] = "/products(CB14D0FF-82A6-EA11-A812-000D3A32CA3C)";
entity["opportunityid@odata.bind"] = "/opportunities(5B67A6B7-3C5A-EA11-A811-000D3A5A1CAC)";
entity["uomid@odata.bind"] = "/uoms(BF07B35A-8AB2-4CFC-9475-71F8A5FB1D05)";
entity.opportunityproductname = "arun test";
entity.quantity = 5;
Xrm.WebApi.online.createRecord("opportunityproduct", entity).then(
function success(result) {
var newEntityId = result.id;
},
function(error) {
Xrm.Utility.alertDialog(error.message);
}
);