批处理保存在 Microsoft Dynamics GP 中的“过帐”、“正在接收”、“忙碌”、“已标记”、“已锁定”或“已编辑”状态中

本文提供了在 Microsoft Dynamics GP 或 Microsoft Business Solutions - Great Plains 中尝试发布批处理并打开批处理时发生的错误的解决方案。

适用于: Microsoft Dynamics GP
原始 KB 数: 850289

症状

尝试在 Microsoft Dynamics GP 或 Microsoft Business Solutions - Great Plains 中发布批后,会为该批分配以下状态之一:

  • 张贴
  • 接收
  • 忙碌
  • 标记为
  • 已锁定
  • 编辑

无法发布或取消标记批。 尝试打开批处理时,可能会收到以下错误消息:

“Batch 被另一个用户标记为要发布。”

原因

出现此问题的原因可能是电源波动或其他问题导致发布进程停止。

解决方案

注意

“解析”部分中的所有脚本都必须在查询工具中运行。 若要打开相应的查询工具,请在 Microsoft SQL Server Management Studio 中运行 语句。 若要打开SQL Server Management Studio,请选择“开始”,指向“MicrosoftSQL Server (2019) (程序>”或) 的版本,然后选择“SQL Server Management Studio”。 若要运行脚本,请选择“ 新建查询”。

若要解决此问题,请执行以下步骤:

  1. 确保拥有公司数据库的当前备份,并要求所有用户退出 Microsoft Dynamics GP。 若要在 Microsoft Dynamics GP 中创建备份,请在所有用户从 Microsoft Dynamics GP 注销后执行相应的步骤:

    1. 在“ 文件 ”菜单上,选择“ 备份”。
    2. 在“ 公司名称” 列表中,选择要备份的公司。
    3. “选择备份文件 ”框中,选择黄色文件夹以打开要在其中放置备份文件的位置。

    1. 在对象资源管理器中,展开数据库,以便看到要备份的数据库。
    2. 右键单击“ 数据库名称”,转到 “任务”,然后选择“ 备份”。
    3. 选择 “添加 ”按钮,然后选择要保存备份的位置和文件名。
    4. 选择 “确定” 开始备份。
  2. 查看下表的内容,验证所有用户是否已注销: DYNAMICS..ACTIVITYDYNAMICS..SY00800DYNAMICS..SY00801TEMPDB..DEX_LOCKTEMPDB..DEX_SESSION。 为此,请运行以下脚本。

    SELECT * FROM DYNAMICS..ACTIVITY SELECT * FROM DYNAMICS..SY00800 SELECT * FROM DYNAMICS..SY00801 SELECT * FROM TEMPDB..DEX_LOCK SELECT * FROM TEMPDB..DEX_SESSION
    

    注意

    当所有用户从 Microsoft Dynamics GP 注销时,这些表中不会有任何记录。

  3. 如果未返回任何结果,请转到步骤 4。 否则,请使用以下任何适当的脚本清除卡住的记录。

    DELETE DYNAMICS..ACTIVITY DELETE DYNAMICS..SY00800 DELETE DYNAMICS..SY00801 DELETE TEMPDB..DEX_LOCK DELETE TEMPDB..DEX_SESSION
    
  4. 针对公司数据库运行以下脚本。 将 XXX 替换为你尝试在 Microsoft Dynamics GP 中发布或选择的批号或名称。

    UPDATE SY00500 SET MKDTOPST=0, BCHSTTUS=0 where BACHNUMB='XXX'
    

    注意

    的值 BACHNUMB 与 Microsoft Dynamics GP 中的 Batch ID 窗口的值相同。

  5. 验证事务的准确性。

  6. 验证是否可以编辑和发布批。