在“销售订单处理”中打开“销售交易项”窗口时出现“上一个事务级过帐会话尚未完成处理”错误

本文为尝试在 Microsoft Dynamics GP 或 Microsoft Business Solutions - Great Plains 中的“销售订单处理”中打开“销售交易输入”窗口时,可能会发生的 “你的上一个事务级过帐会话尚未完成处理 ”错误提供解决方法。

适用于: Microsoft Dynamics GP
原始 KB 编号: 852623

症状

尝试在 Microsoft Dynamics GP 或 Microsoft Business Solutions - Great Plains 中打开“销售订单处理”窗口时,可能会收到以下错误消息:

上一个事务级过帐会话尚未完成处理。 请留出时间完成。 如果认为失败,请注销 Great Plains 并重新登录以恢复事务。

注意

若要打开“销售交易项”窗口,请选择“ 交易”,指向“ 销售”,然后选择“ 销售交易项”。

原因

在SY00500表、SY00800表或SOP10100表中锁定记录时,可能会出现此问题。 记录的批号为空,或者用户 ID 列为批号。

解决方案

要解决此问题,请按照下列步骤操作:

  1. 让所有用户退出 Microsoft Dynamics GP。

  2. 备份公司数据库。

  3. 在 SQL 查询分析器中,针对 DYNAMICS 数据库对 SY00800 表运行以下 delete 语句。

    DELETE SY00800
    
  4. 通过对公司数据库运行以下两个语句,在 SY00500 表中查找问题记录。

    注意

    在以下语句中, xxx 表示包含错误的用户 ID。

    SELECT * from SY00500 where BACHNUMB = ''
    SELECT * from SY00500 where BACHNUMB = 'xxx'
    
  5. 如果返回的记录带有空白 BACHNUMB 字段,请使用以下 delete 语句。

    DELETE SY00500 where BACHNUMB = ''
    
  6. 如果 BACHNUMB 字段中返回的记录带有用户 ID,请使用以下 delete 语句。

    注意

    在以下语句中, xxx 表示包含错误的用户 ID。

    DELETE SY00500 where BACHNUMB ='xxx'
    
  7. 验证是否可以在“销售交易项”窗口中选择现有文档。 若要打开此窗口,请选择“ 事务”,指向“ 销售”,然后选择“ 销售事务项”。 如果要删除现有文档,请选择“ 删除”。 如果要取消现有文档,请选择“ Void”。

  8. 如果继续收到错误消息,或者无法在“销售事务项”窗口中选择现有文档,请在 SQL 查询分析器中针对公司数据库运行以下脚本,以在SOP10100表中查找问题记录。

    注意

    在以下脚本中, xxx 表示包含错误的用户 ID。

    SELECT BACHNUMB,* from SOP10100 where BACHNUMB = '' SELECT BACHNUMB,* from SOP10100 where BACHNUMB = '<xxx>'
    SELECT * FROM SOP10200 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = 'xxx')
    SELECT * FROM SOP10200 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = ' ')
    SELECT * FROM SOP10102 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = 'xxx')
    SELECT * FROM SOP10102 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = ' ')
    
  9. 记下返回的任何记录,然后在 SQL 查询分析器中运行以下语句,从SOP10100表中删除问题记录。

    注意

    • 必须验证交易是否已过帐到库存模块和应收账款管理模块。 如果交易未过帐到库存模块和应收账款管理模块,则必须在运行删除语句后在“销售事务条目”窗口中重新输入交易。
    • 在以下语句中, xxx 表示包含错误的用户 ID。
    DELETE SOP10200 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = 'xxx')
    DELETE SOP10200 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = ' ')
    DELETE SOP10102 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = 'xxx')
    DELETE SOP10102 where SOPNUMBE in (SELECT SOPNUMBE from SOP10100 where BACHNUMB = ' ')
    DELETE SOP10100 where BACHNUMB = '' DELETE SOP10100 where BACHNUMB = 'xxx'
    
  10. 在 Microsoft Dynamics GP 中,指向 Microsoft Dynamics GP 菜单上的 “维护 ”,然后选择“ 检查链接”。

  11. “系列”列表中,选择“销售”,然后在“销售工作”表组上运行检查链接过程。

  12. 如果交易未在应收账款管理模块和库存模块中过帐,请在“销售交易项”窗口中重新输入交易。