问题描述

用户参照合同录入第一阶段的执行单,保存时提示“语法错误或违反访问规则”,其他合同均正常,只有这张合同出现这个问题。

用友U8合同执行单保存报错,提示“语法错误或违反访问规则”-LMLPHP

解决过程

语法错误或违反访问规则是SQL Server常见的报错,但其他合同均正常只有这张合同有问题,那么很大概率是有特殊字符导致语句执行出错,例如单引号。

由于录入合同执行单时只选择了阶段,未录入任何信息,因此如有错误也是来源于原始合同,所以后台查看原始合同数据表,看是否有问题:

用友U8中,与合同相关的主要数据表包括

 --查询合同概要表
select * from CM_Contract_B where strContractID ='HT191000069'
--查询合同标的表
select * from CM_Contract_Item_B where GUID='D1EDDFF3-36B2-46CB-ACB7-31A027EB9C3D'
--查询合同条款表
select * from CM_Contract_Caluse_B where GUID='D1EDDFF3-36B2-46CB-ACB7-31A027EB9C3D'

查询后发现,合同概要表无任何特殊字符,合同标的中,第40行的自定义项28存在单引号 ‘ :

用友U8合同执行单保存报错,提示“语法错误或违反访问规则”-LMLPHP

要求用户对合同标的进行变更,去除这个特殊字符后,问题得到解决。

05-11 02:19