在 Microsoft Dynamics GP 中运行用于应付帐款管理的历史过期试用余额时出现“字符串后面的未封闭引号”错误消息

本文提供了针对运行“应付账款管理的历史过期试用余额”报表时发生的错误的解决方案。

适用于: Microsoft Dynamics GP
原始 KB 编号: 2580792

症状

为应付账款管理运行历史过期试用余额报表时,会收到以下错误消息之一:

信用单) 的错误消息 1 (

[Microsoft][ODBC SQL Server Driver][SQL Server]第 1 行:“XXXXX”附近的语法不正确。[Microsoft][ODBC SQL Server Driver][SQL Server]字符串 'and DocumentType=5' 前的未封闭引号。

付款) 错误消息 2 (

[Microsoft][SQL Native Client][SQL Server]字符串 “and DocumentType = 6” 后“S”[Microsoft][SQL Native Client][SQL Server] 未闭合引号的语法不正确

后跟以下消息:

存储的 proc pmHistoricalAgedTrialBalance 返回了以下结果:DBMS: 105,Microsoft Dynamics GP: 0

原因

这些错误是由 Microsoft Dynamics GP 中的一个已知问题引起的,该问题在“ 凭证编号 ”字段中输入了信用额度备注或手动付款文档并带有撇号。

解决方案

使用以下方法之一来解决此问题:

解决方法 1

  1. 针对公司数据库在 SQL 中运行此脚本,查找包含单个撇号的任何凭证编号、文档编号或供应商 ID,此过程将读作未封闭的报价。 (CONTRLNUM) 的凭证编号的任何结果都可能是 子句,但文档编号和供应商 ID 也会添加到脚本中,并且可能也可能不是问题:

    SELECT * FROM PM00400
    WHERE 
    CNTRLNUM LIKE '%''%' or 
    DOCNUMBR LIKE '%''%' or 
    VENDORID LIKE '%''%' 
    
  2. 对于上述脚本返回的任何结果,请对上面返回的每个结果运行“ALL 支付”脚本。 (因为问题很可能是凭证编号,因为这是用户可编辑的字段。检查付款设置,确保默认的下一个凭证编号中没有撇号。)

    注意

    如果没有此脚本,则可能需要打开一个支持案例,以获取获取此脚本的帮助,并确定此文档可能位于的所有表。

  3. 使用 SQL 中的直接“update”语句手动修复“所有应付款”脚本返回的所有表的凭证编号,以删除凭证编号和文档编号中的单个撇号。请务必将字段写入到更改它的所有字段/表中完全相同。 (如果问题出在供应商 ID 上,请不要使用这些步骤。可以使用 PSTL 中的供应商修饰符工具来更改供应商 ID.)

如果需要帮助,可以创建支持案例以获取进一步的帮助。 若要通过电话联系客户服务,请拨打 888-477-7877。

更多信息

若要防止将来发生此问题,可以锁定 “凭证编号 ”字段,以防止用户修改凭证编号。 若要执行此操作,请执行以下步骤:

  1. 依次选择“Microsoft Dynamics GP”、“ Microsoft Dynamics GP>Tools>设置>购买>应付账款”。

  2. 取消标记 “事务输入处的替代凭证编号 ”选项,然后选择“ 确定”。