本文适用于以下国家/地区和语言区域设置 Microsoft Dynamics NAV。

  • 德语 (德国) (de-de)

  • 奥地利 (奥地利) (在)

  • 瑞士 (法语) (fr-ch)

  • 瑞士 (德语) (de-ch)

  • 意大利 (瑞士) (it-ch)

症状

运行"Posted Phys" Invt. "订单差异"报表,报表显示无差异。 报表包含"预期行"列、"录制行"列和"跟踪行"列。 右侧列始终为空。 此问题出现在以下产品中:

  • Microsoft Dynamics NAV 2009 R2 的德语版本

  • Microsoft Dynamics NAV 2009 R2 的奥地利版本

  • 瑞士版的 Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 Service Pack 1 的德语版本

  • Microsoft Dynamics NAV 2009 Service Pack 1 的奥地利版本

  • 瑞士版的 Microsoft Dynamics Service Pack 1

原因

发生此问题的原因是,报告的 TempPhysInvtDiffListBuffer2 变量是本地变量,永远不会从报表的任何位置分配该变量。 此外,该变量不是临时变量。 因此,该变量指向实际的"Phys"。 Invt. 差异。 始终为空的列表缓冲区"表。

解决方法

修补程序信息

Microsoft 现已提供受支持的修补程序。 但是,它仅用于更正本文中所述的问题。 仅应用于遇到此特定问题的系统。 此修补程序可能会收到其他测试。 因此,如果不受此问题的严重影响,建议等待下一个 Microsoft Dynamics NAV 2009 Service Pack 或下一个包含此修补程序的 Microsoft Dynamics NAV 版本。 注意:在特殊情况下,如果 Microsoft Dynamics 技术支持专业人员和相关产品确定特定更新将解决你的问题,则通常针对支持呼叫产生的费用可能会被取消。 通常的支持费用将应用于其他支持问题和不符合特定更新条件的问题。

安装信息

Microsoft 仅提供用于演示的编程示例,而不提供明示或默示的担保。 这包括但不限于对特定用途的可操作性或适用性的默示保证。 本文假定你熟悉演示的编程语言以及用于创建和调试过程的工具。 Microsoft 支持工程师可以帮助解释特定过程的功能。 但是,他们将不会修改这些示例以提供附加的功能或构造过程以满足你的特定要求。 请注意,安装此修补程序之前,请验证所有 Microsoft Navision 客户端用户是否都注销系统。 这包括 Microsoft Navision 应用程序服务 (NAS) 客户端用户。 实施此修补程序时,应是唯一登录的客户端用户。若要实现此修补程序,必须具有开发人员许可证。建议为 Windows 登录窗口或数据库登录窗口中的用户帐户分配"SUPER"角色 ID。 如果无法为用户帐户分配"SUPER"角色 ID,则必须验证用户帐户是否具有以下权限:

  • 要更改的对象的"修改"权限。

  • 系统对象 ID 5210 对象和系统对象 ID 9015 对象的"执行"权限。

注意,除非必须执行数据修复,否则不需要对数据存储拥有权限。

代码更改

请注意,在将修补程序应用到生产计算机之前,请始终在受控环境中测试代码修补程序。 若要解决此问题,请执行以下步骤:

  1. 将 CreateDiffListBuffer 函数中的 TempPhysInvtDiffListBuffer2 变量从本地变量更改为 Posted Phys 的全局变量。 Invt. 顺序差异。 报告 (5005351) 如下所示:

    TempPhysInvtDiffListBuffer2@1140019 : TEMPORARY Record 5005363;

    tempphysinvtdifflistbuffer2@1140019

  2. 更改 Posted Phys 中 FindOrCreateDiffListBuffer 函数中的代码。 Invt. 顺序差异。 报告 (5005351) 如下所示: 现有代码

      TempPhysInvtDiffListBuffer.INSERT;  NoOfBufferLines := NoOfBufferLines +1;END ELSE BEGIN  IF NextLineNo = 1 THEN...

    替换代码

    ...  TempPhysInvtDiffListBuffer.INSERT;  NoOfBufferLines := NoOfBufferLines +1;  // Add the following lines.  TempPhysInvtDiffListBuffer2 := TempPhysInvtDiffListBuffer;  TempPhysInvtDiffListBuffer2.INSERT;  // End of the lines.END ELSE BEGIN  IF NextLineNo = 1 THEN...

先决条件

必须安装以下产品之一,应用此修补程序:

  • Microsoft Dynamics NAV 2009 R2 的德语版本

  • Microsoft Dynamics NAV 2009 R2 的奥地利版本

  • 瑞士版的 Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 Service Pack 1 的德语版本

  • Microsoft Dynamics NAV 2009 Service Pack 1 的奥地利版本

  • 瑞士版的 Microsoft Dynamics Service Pack 1

删除信息

无法删除此修补程序。

状态

Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。

注意,这是直接从 Microsoft 支持组织内部创建的"FAST PUBLISH"一文。 此处包含的信息是作为响应新出现的问题而提供的。 由于其发布速度加快,材料可能包含拼写错误,并且可能随时修订,无需另行通知。 有关 其他注意事项, 请参阅使用条款。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。