本文为当你尝试在 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 列为批号。
解决方法
若要解决该问题,请执行以下步骤:
让所有用户Microsoft Dynamics GP 退出。
创建公司数据库的备份。
在 SQL 查询分析器中,针对 DYNAMICS 数据库对SY00800表运行以下 delete 语句。
DELETE SY00800
通过针对公司数据库运行以下两个语句来查找SY00500表中的问题记录。
注意
在以下语句中, xxx 表示包含错误的用户 ID。
SELECT * from SY00500 where BACHNUMB = '' SELECT * from SY00500 where BACHNUMB = 'xxx'
如果有使用空白 BACHNUMB 字段返回的记录,请使用以下 delete 语句。
DELETE SY00500 where BACHNUMB = ''
如果有在 BACHNUMB 字段中使用用户 ID 返回的记录,请使用以下 delete 语句。
注意
在以下语句中, xxx 表示包含错误的用户 ID。
DELETE SY00500 where BACHNUMB ='xxx'
验证是否可以在“销售事务输入”窗口中选择现有文档。 若要打开此窗口,请选择 “事务”,指向 “销售”,然后选择“ 销售事务条目”。 如果要删除现有文档,请选择“ 删除”。 如果要取消现有文档,请选择 Void。
如果继续收到错误消息,或者如果无法在“销售事务输入”窗口中选择现有文档,请在 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 = ' ')
请注意返回的任何记录,然后在 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'
在 Microsoft Dynamics GP 中,指向“Microsoft Dynamics GP”菜单上的 “维护 ”,然后选择“ 检查链接”。
在 “系列 ”列表中,选择“ 销售”,然后在 “销售工作 ”表组中运行检查链接过程。
如果交易未在“应收账款管理”模块和“库存”模块中发布,则重新输入“销售交易输入”窗口中的事务。