gpt4 book ai didi

c# - 在创建实体时,从外部源设置属性值,以便其持续存在

转载 作者:行者123 更新时间:2023-12-03 03:04:10 25 4
gpt4 key购买 nike

使用 Dynamics 365,我做了很多跳圈来完成我需要完成的工作。

基本上,对于创建联系人,我有一个插件,它将实体对象反序列化为 XML,然后将该 XML 发布到 Webhook。Webhook 对另一个系统执行一些操作并返回 ID。然后这个 ID 返回给插件。

我已经设置了我想要在插件中设置此 ID 的属性,如下所示:

 var response = webClient.UploadString(serviceUrl, serializedStr);
postMessageImage["po_ContactCRPID"] = response.ToString();

没有发生错误,联系人确实已创建,但我有兴趣更新的字段未在 CRM 中显示值。

我无法在创建后使用 D365 中的常规 webhook 函数,因为发布的 JSON 不允许您序列化回对象,然后能够很好地提取值,然后插入到后端的其他系统中,所以我尝试尽可能多地使用强类型类。

关于如何实现这一目标有什么想法吗?在后期操作管道上,我希望能够根据从某些 Web 服务返回的值在联系人对象(具有自定义字段)上设置属性,以便 CRM 可以使用我设置的值创建联系人。

这是我的插件代码:

 if (context.PostEntityImages.Contains("CreateContactImage") && context.PostEntityImages["CreateContactImage"] is Entity)
{
tracingService.Trace("AccountSync: CreateContactImage.");

Entity postMessageImage = (Entity)context.PostEntityImages["CreateContactImage"];
using (var client = new WebClient())
{
var webClient = new WebClient();
webClient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";

var code = "CodeFromPlugin";
var serviceUrl = this.CRPSyncServiceUrl + "?code=" + code;

var entitySeri = new EntitySerializer();
var serializedStr = entitySeri.SerializeObject(postMessageImage);
try
{
// upload the data using Post mehtod
//var response = webClient.UploadData(serviceUrl, entityBytes);
var response = webClient.UploadString(serviceUrl, serializedStr);
postMessageImage["po_ContactCRPID"] = response.ToString();
postMessageImage.Attributes["po_ContactCRPID"] = response.ToString();
tracingService.Trace("Set postMessageImage po_ContactCRPID to: {0}", response.ToString());
}
catch (Exception ex)
{
tracingService.Trace("WebEX Error: {0}", ex.ToString());
throw;
}
}

}

最佳答案

在异步创建后插件中,您将在刚刚创建的联系人目标中拥有 EntityId。

从 webhook 响应中获取 ID,然后组成一个新的 Contact 对象,设置属性 & service.Update 将保存它。

Entity contact = new Entity(“contact”);
contact.Id = target.Id;
contact[“webhook_Idfield”] = ID;
service.Update(contact);

关于c# - 在创建实体时,从外部源设置属性值,以便其持续存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52154953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com