我正在使用 Microsoft Dynamics 365 CRM 的 SDK 对实体调用 Upsert 请求。此 Upsert 调用还包括子实体,在本例中它是销售订单和该销售订单上的产品。当我最初调用 Upsert 时,它工作正常,当我更新某些内容时,它工作正常。但是,如果我添加其他产品并尝试通过订单实体上的更新插入来添加该产品,则会失败,表示无法在现有订单上找到该产品。这是有意的行为吗?我是否需要为每个添加或删除的行调用单独的添加和删除请求?
这是代码片段
//create order entity
var so = new CRMSalesOrder();
//create product entity for each product
var sod = new CRMSalesOrderDetail();
so.Order_Details.Add(sod);
//create the upsert request
multipleRequest.Settings.ReturnResponses = true;
var upsertRequest = new UpsertRequest()
{
Target = so,
RequestId = Guid.NewGuid()
};
multipleRequest.Requests.Add(upsertRequest);
batchResponse = (ExecuteMultipleResponse)service.Execute(multipleRequest);
感谢您的帮助!
从未尝试过 UpsertRequest 和相关实体的组合。我知道可以在一次通话中与孩子一起创建家长记录 - https://learn.microsoft.com/en-us/previous-versions/dynamicscrm-2016/developers-guide/gg309282(v=crm.8) ?redirectedfrom=MSDN 如果您失败了,我相信 Upsert 消息无法处理它,因为它的设计不支持这种情况。