在“销售订单处理”中打开“销售交易输入窗口时,”上一个事务级发布会话尚未完成处理“错误

本文为当你尝试在 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表中删除问题记录。

    注意

    • 必须验证交易是否已发布到库存模块和应收账款管理模块。 如果交易未发布到“库存”模块和“应收账款管理”模块,则必须在运行 delete 语句后重新输入“销售交易输入”窗口中的事务。
    • 在以下语句中, 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. 如果交易未在“应收账款管理”模块和“库存”模块中发布,则重新输入“销售交易输入”窗口中的事务。