【EAS 科目】修改科目的英文名称时,提示“同步下级科目数据发生异常。”

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

【EAS 科目】修改科目的英文名称时,提示“同步下级科目数据发生异常。”

问题描述:

修改科目的英文名称时,提示“同步下级科目数据发生异常。”无法保存成功。

分析过程:

一、重现问题后导出错误日志进行分析

导出错误日志的操作方法:

登录客户端-服务工具平台-日志收集(若未安装请先在点击绿色“+”找到日志收集工具安装)-点击错误日志-选择错误日志保存路径

image.webp


二、打开log4j.log日志,找到相关的报错信息:

exception :

com.kingdee.eas.basedata.master.account.AccountException: 同步下级科目数据发生异常。

at com.kingdee.eas.basedata.master.account.app.AccountViewControllerBean.synchronizeInferiorProperties(AccountViewControllerBean.java:3718)

at com.kingdee.eas.basedata.master.account.app.AccountViewControllerBean._update(AccountViewControllerBean.java:3149)

......(中间可省略,关键在于Caused by后面的内容

Caused by: java.sql.SQLException: translate sql exception, message is 

parse error. detail message is :

unexcept token. token is : 'e', at line 1 column 188, token type is 'Identifier'

source sql is : 

UPDATE T_BD_ACCOUNTVIEW SET FNumber = '610108020203',FLongNumber = '6101!610108!61010802!6101080202!610108020203',FName_L1='Cost of sales_Ppty mgt_Special Cost_Outsourcing_Monitoring Sys maint'e',FName_L2='营业成本_物业_专项成本_委外成本_监控系统维保',

......

image.webp


三、上述报错unexcept token. token is : 'e', at line 1 column 188, token type is 'Identifier' 提示输入的值中出现了意外的标识符 'e' 。

经分析,前端修改的英文名称对应会计科目表中的FName_L1字段,若输入的值中包含了单引号,则会与SQL语法相冲突。

单引号是特殊场景,因为SQL脚本必须用到单引号,比如 update xxx set field = '1211',如果设置的值里有单引号,会导致语法错误。

上述日志中 FName_L1='Cost of sales_Ppty mgt_Special Cost_Outsourcing_Monitoring Sys maint'e' ,表明前端输入的科目英文名称为:Cost of sales_Ppty mgt_Special Cost_Outsourcing_Monitoring Sys maint'e ,包含了单引号,导致报错。


解决方案:

1、将科目英文名称中的单引号去掉;

2、若名称中需要有符号标识,基于FName_L1字段的数据类型为字符串类型,可使用“()”、“.”、“&”符号。




【EAS 科目】修改科目的英文名称时,提示“同步下级科目数据发生异常。”

问题描述:修改科目的英文名称时,提示“同步下级科目数据发生异常。”无法保存成功。分析过程:一、重现问题后导出错误日志进行分析导出错...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息