【发布时间】:2014-03-06 20:09:35
【问题描述】:
我们使用第三方 MS Dynamics 托管,并使用 Dynamics API Web 服务“CrmService”向他们发送数据。
当我们调用“Create”方法时,它看起来好像调用成功了,因为 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]));
}
【问题讨论】:
-
您要创建什么类型的实体?除了外星人之外,最常见的问题是安全限制阻止您“看到”记录。您不需要访问服务器本身,因为您可以像创建记录一样查询记录。您的目标是哪个版本的 MS CRM?
-
感谢您修复格式问题 Filburt。版本是 CRM 4.0 (4.0.7333.2155)。我应该提到我可以通过 sql server management studio 访问 CRM DB。我正在查看记录应该在的表格。但事实并非如此。然而我有一个 GUID。 Dynamics 中是否有 API 日志可供我告诉托管人员查看?
-
我不得不承认,我对 CRM 4.0 及其 SDK 的了解不够深入,无法提供很多有用的建议(但对 2011 年非常了解),但通常最后的故障排除方法是询问您的托管服务用于在 CRM 中打开跟踪以捕获在处理新创建的记录期间可能发生的任何错误。
-
如果您从 CRM 获取 Guid 则创建的记录,如果您不填充 Guid,则它是由 SQL Server 生成的,这意味着 CREATE 调用必须完成。你能解释一下代码吗?它看起来有点不寻常。我期待像
Guid results = service.Create(businessEntity);这样的东西。也许您可以发布构成Invoke方法的底层代码。 -
我们有超过 1 个环境,相信我,有时我们会连接到第一个环境并创建记录并在第二个环境 crm/sql 数据库中搜索该记录。我认为这是问题
标签: api dynamics-crm microsoft-dynamics