【EAS 科目】修改科目的英文名称时,提示“同步下级科目数据发生异常。”
问题描述:
修改科目的英文名称时,提示“同步下级科目数据发生异常。”无法保存成功。
分析过程:
一、重现问题后导出错误日志进行分析
导出错误日志的操作方法:
登录客户端-服务工具平台-日志收集(若未安装请先在点击绿色“+”找到日志收集工具安装)-点击错误日志-选择错误日志保存路径
二、打开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='营业成本_物业_专项成本_委外成本_监控系统维保',
......
三、上述报错unexcept token. token is : 'e', at line 1 column 188, token type is 'Identifier' 提示输入的值中出现了意外的标识符 'e' 。
单引号是特殊场景,因为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 科目】修改科目的英文名称时,提示“同步下级科目数据发生异常。”
本文2024-09-22 19:59:00发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-110687.html