在 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
针对公司数据库在 SQL 中运行此脚本,查找包含单个撇号的任何凭证编号、文档编号或供应商 ID,此过程将读作未封闭的报价。 (CONTRLNUM) 的凭证编号的任何结果都可能是 子句,但文档编号和供应商 ID 也会添加到脚本中,并且可能也可能不是问题:
SELECT * FROM PM00400 WHERE CNTRLNUM LIKE '%''%' or DOCNUMBR LIKE '%''%' or VENDORID LIKE '%''%'
对于上述脚本返回的任何结果,请对上面返回的每个结果运行“ALL 支付”脚本。 (因为问题很可能是凭证编号,因为这是用户可编辑的字段。检查付款设置,确保默认的下一个凭证编号中没有撇号。)
注意
如果没有此脚本,则可能需要打开一个支持案例,以获取获取此脚本的帮助,并确定此文档可能位于的所有表。
使用 SQL 中的直接“update”语句手动修复“所有应付款”脚本返回的所有表的凭证编号,以删除凭证编号和文档编号中的单个撇号。请务必将字段写入到更改它的所有字段/表中完全相同。 (如果问题出在供应商 ID 上,请不要使用这些步骤。可以使用 PSTL 中的供应商修饰符工具来更改供应商 ID.)
如果需要帮助,可以创建支持案例以获取进一步的帮助。 若要通过电话联系客户服务,请拨打 888-477-7877。
更多信息
若要防止将来发生此问题,可以锁定 “凭证编号 ”字段,以防止用户修改凭证编号。 若要执行此操作,请执行以下步骤:
依次选择“Microsoft Dynamics GP”、“ Microsoft Dynamics GP>Tools>设置>购买>应付账款”。
取消标记 “事务输入处的替代凭证编号 ”选项,然后选择“ 确定”。