【发布时间】:2017-07-10 09:25:53
【问题描述】:
我遇到了一个我发现很难调试的错误。
我有一个工具可以访问 Dynamics NAV 页面服务以在我们的 Dynamics NAV 数据库中创建和/或更新客户。
该工具在 50% 的情况下工作正常,另外 50% 的情况下不能正常工作,而且总是出现相同的错误:
其他用户修改了“service_name”“No.=CONST(customer_number)”
问题在于 NAV 中的编辑功能被禁用,因此唯一可以编辑记录的就是工具本身。
当我在网上搜索时,我会得到类似“您尝试修改同一记录两次”的结果和一堆 NAV 代码,但我无权访问 NAV 代码,以及我们正在合作的 NAV 顾问自己也是一头雾水。
如果有人能以某种方式指出不涉及 NAV 代码的可能场景,那就太棒了。
我的工作流程如下:
- 我从 NAV 中检索记录
- 我在需要的地方编辑和修改记录
- 我创建和/或更新修改的记录
- 要么成功,要么我收到上面提到的错误
无论哪种方式,我在整个过程中只调用一次更新方法。
请帮帮我...我一无所知
亲切的问候
【问题讨论】:
-
我想您需要正确初始化记录变量。 Nav 在插入/修改时检查记录上的时间戳。如果时间戳在请求中相同但在 SQL 上发生更改,则会导致您面临的错误。
-
这是哪个时间戳?我只是得到一个复杂的类型,它分配了某些属性,我知道 NAV 键属性非常重要,但我似乎找不到时间戳。
-
时间戳在 SQL 服务器上,不能在 Nav 中访问,它只是在内部使用。您也无权访问它。我要说的是,您应该注意如何初始化用于访问导航记录的代理类型。很可能它在内部包含时间戳。
-
VS 生成了代理类...除了检索实体我什么都不做...我也在与我们的 NAV 顾问讨论这个问题,所以希望很快会有答案。 ..
-
是的 VS 生成它们,但可能是如何使用它们的问题。如果您使用代理类的对象创建了一条记录,那么您可能需要先做一些事情,然后才能使用相同的对象或相同的记录调用 modify。
标签: .net soap dynamics-nav-2016