在“销售订单处理”中打开“销售交易项”窗口时出现“上一个事务级过帐会话尚未完成处理”错误
本文为尝试在 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表中删除问题记录。
注意
- 必须验证交易是否已过帐到库存模块和应收账款管理模块。 如果交易未过帐到库存模块和应收账款管理模块,则必须在运行删除语句后在“销售事务条目”窗口中重新输入交易。
- 在以下语句中, 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 菜单上的 “维护 ”,然后选择“ 检查链接”。
在“系列”列表中,选择“销售”,然后在“销售工作”表组上运行检查链接过程。
如果交易未在应收账款管理模块和库存模块中过帐,请在“销售交易项”窗口中重新输入交易。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈