使用 Microsoft Dynamics GP 在“应付管理”中查找采购批时,出现错误消息:“数组 'VerifyBatchTotals' 的索引 0 超出脚本范围”

本文提供了使用 Microsoft Dynamics GP 在“支付管理”中查找购买批处理时发生的错误的解决方案。

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

现象

转到“应付账款批处理输入”窗口后,尝试查找一个批处理时,会收到以下错误提示:

未经处理的脚本异常:
数组“VerifyBatchTotals”的索引 0 在脚本中已超过范围。
“Batch_Lookup_Scrolling_Window SCROLL_FILL”,脚本已终止。

然后在窗口中向下滚动以查看消息的其余部分:

EXCEPTION_CLASS_SCRIPT_OUT_OF_RANGE
SCRIPT_CMD_INDEX

选择“确定”时,会收到以下消息:

已删除所选记录。

原因

此消息可能是由于SY00500过账定义主表中支票批次的损坏记录造成的。 此表保存系统中的批信息。

决议

若要解决此问题,请使用下面列出的两个选项之一重新创建SY00500发布定义主表。 可以在 Microsoft Dynamics GP 中使用 SQL 维护或使用专业服务工具库中的免费工具包重新创建此表。 下面列出了这两个选项:

注意

在继续之前,请确保具有当前的可还原备份,或先在测试环境中测试这些步骤,然后再将步骤应用到生产数据库。 如果收到任何意外的结果,请立即还原到备份。

选项 1 - 使用 SQL 维护

  1. 对 Microsoft Dynamics GP 进行完整备份。
  2. 选择 Microsoft Dynamics GP,指向 维护,然后选择 SQL
  3. 选择收到错误的公司数据库。
  4. 在“表格”列表中,选择发布定义主模板
  5. 在窗口右侧,选中每个复选框,然后选择“ 进程”。
  6. 对以下消息选择“是

    “已选择删除表;这会删除其中的任何数据。 是否确实要继续?

注意

此过程重新创建SY00500 - 发布定义主表。 但是,您将暂时丢失所有未发布的批次。 若要检索这些未发布批处理,请在子模块上运行检查链接程序。 然后,对微软Great Plains总账的批进行对账。 但是,它将任何设置为“重复”的批处理设置为“单一使用”。 如果需要,必须将这些批更改回定期。

为了检索这些批次,请执行以下步骤。

  1. 如果在 Microsoft Dynamics GP 应付管理模块中使用多币种选项,请先在“应付管理历史逻辑系统文件”上运行“检查链接”程序,然后再在“应付管理交易逻辑系统文件”上运行检查链接程序。 如果使用多货币,则可以跳过此步骤并转到步骤 2。

  2. 若要对以下文件运行检查链接程序,请选择Microsoft Dynamics GP,指向维护,选择“检查链接”,选择以下系列名称之一,然后键入相应的逻辑表名称。 按照此步骤获取以下文件:

    • 模块:应付账款管理
      系列/逻辑表:购买系列 - 应付事务逻辑

    • 模块:采购订单处理
      系列/逻辑表:购买系列 - 购买事务逻辑

    • 模块:应收账款管理
      系列/逻辑表:销售系列 - 应收账款开放式交易

    • 模块:开票
      系列/逻辑表:销售系列 - 发票工作文件

    • 模块:销售订单处理
      系列/逻辑表:Sales - Sales Work 文件

    • 模块:清单
      系列/逻辑表:清单 - 清单事务工作文件

    • 模块:材料清单
      系列/逻辑表:库存 - 库存 - 物料清单交易文件

  3. 如果使用 Microsoft Dynamics GP 项目系列 (PS) 时间和费用,则还必须对以下文件运行检查链接。 若要对以下文件运行检查链接,请选择“文件,选择“维护,选择“PS 检查”链接,然后选择以下文件名之一。 按照此步骤获取以下文件:

    • 时间表批处理 - PS 时间表交易
    • 资产日志批处理 - PS 资产日志事务
    • 费用日志批次 - PS费用日志事务
    • 库存转移批次 - PS 库存转移事务
    • 采购订单批处理 - PS 采购订单交易
    • 系列名称:供应商发票批处理 - PS 供应商发票交易
    • 员工费用批次 - PS 员工费用交易
    • 计费批处理 - PS 计费时间和材料交易
  4. 如果 Microsoft Dynamics GP 总账中存在任何批,请在“Microsoft Dynamics GP”菜单中选择工具,指向实用工具,指向财务,然后选择对账。 选择“批处理,然后选择“协调以协调批。

  5. 重新测试以验证错误消息是否已解决。

OPTION #2 - 使用专业服务工具库 (PSTL)

  1. 对 Microsoft Dynamics GP 进行完整备份。

  2. 让所有用户注销 Microsoft Dynamics GP。

  3. 使用以下步骤安装专业服务工具库(PSTL),并将其添加为 Microsoft Dynamics GP 中的快捷方式。 如果已完成此操作,可以跳过此步骤。

    安装专业服务服务库的步骤(PSTL):

    1. 请访问此 CustomerSource 站点以下载 PSTL:(下载中包含安装说明)。

    2. 安装 PSTL 后,以系统管理员(“sa”用户)身份登录到 Microsoft Dynamics GP。

    3. 当系统提示包含新代码时,请选择“ ”。

    4. 若要将 PSTL 添加到快捷栏,请选择“添加”,选择“其他窗口”,展开“技术服务工具”,展开“项目”,选择“专业工具库”,选择“添加”,然后选择“完成”。

  4. 在快捷栏上,选择 “专业服务工具”。 等待 SQL 对象生成。 当系统提示输入注册密钥时,只需选择“ 取消”。 无需使用注册密钥来使用免费工具包。

  5. 选择 “工具包”。 选择下一步

  6. 在“工具包选项”下,选择“ 重新创建 SQL 对象 ”,然后选择“ 下一步”。

  7. “系列”旁边,选择“公司”

  8. 旁边,选择SY00500

  9. 维护选项下,选择重新创建所选表重新创建所选表的数据

    重要

    必须选中“为所选表重新创建数据”复选框,以便保留表中的当前数据。 如果忘记标记它,则将丢失所有当前数据,并且必须立即还原到备份。

  10. 选择“ 执行所选维护”。

  11. 收到以下消息时,请选择“ 确定” :

    将使用数据重新创建表

    将使用数据重新创建SY00500表。 在继续操作之前,请确认已经进行了备份,SY00500已经被重新创建。

  12. 重新测试以查看错误消息是否已解决。

  13. 如果继续收到错误消息,则需要为SY00800(批处理活动)重新创建索引。 为此,请按照以下步骤解决此问题:*请确保你有公司数据库的可还原备份,以防出现不需要的数据丢失。

    1. 从“快捷方式”选项卡中选择“专业服务工具库”链接,然后选择启用工具包。 将显示“工具包”窗口。

    2. 从“工具包”窗口中选择 “重新创建 SQL 对象 ”,然后选择“ 下一步”。

    3. 选择 “系统”作为系列,并为表选择“SY00800”。

    4. “维护选项”下,为所选表选择“ 重新生成索引 ”。

      注意

      验证在为此表重新创建索引时,没有人发布或编辑批处理。 每当用户编辑或发布任何模块中的批时,SY00800表中都有一条记录。

    5. 选择“ 执行所选维护 ”按钮以重新创建索引。

详细信息

如果你有任何批处理转到批处理恢复,请参阅 KB - 在 Microsoft Dynamics GP 中将批处理保留为“发布”、“接收”、“忙碌”、“已标记”、“已锁定”或“编辑”状态,了解如何将批处理重新设置为 “可用 ”状态。