MS Dynamics返回用于创建记录但仍缺少记录的GUID

时间:2014-03-06 20:09:35

标签: api dynamics-crm microsoft-dynamics

我们正在使用第三方MS Dynamics托管,我们使用Dynamics API网络服务“CrmService”向他们发送数据。

当我们调用“创建”方法时,看起来好像调用成功,因为Dynamics服务器将GUID返回给调用者。查看下面的CrmService代码告诉我,如果没有错误,那就是我应该得到的。

但是,Dynamics中缺少记录本身。记录无处可寻。所以问题是:

1)关于我获得GUID的记录可能发生什么的任何理论(在外星人旁边)?

2)考虑到我无法访问动态服务器本身,怎么会想要调试这样的事情?

3)托管服务应该为调试此问题执行哪些一系列良好的故障排除步骤(您是否检查过?或者这样?等等)?

public System.Guid Create(BusinessEntity entity) {
    object[] results = this.Invoke("Create", new object[] {
        entity});
        return ((System.Guid)(results[0]));
}

1 个答案:

答案 0 :(得分:0)

我知道两个可能的原因:

情景1

有趣的是“你正在使用第三方MS Dynamics托管”。这可能意味着您与其他租户(CRM组织数据库)共享CRM服务器。在这种环境中,当插件设计为线程安全时,可能会出现问题。

我见过的插件实际上会混淆同时处理的请求的数据。这些错误的来源可以是例如自动编号插件产品,由同一部署中的多个租户共享。通常在创建记录时触发自动编号插件。您的记录在另一个数据库中结束并非不可能。

场景2

您的系统中有一个工作流程,通过创建删除记录的记录(直接或间接)触发。异步插件实际上也可能是一个嫌疑人。

异步进程在原始事务范围之外运行,因此您的代码不一定要知道它。