zoukankan
html css js c++ java
产品生成器模块的问题
今天看到设置规则这个地方,在设置本地规则时,验证类型选择 公式,在公式设置选项卡的类型处选择 已计算(这个地方那个英文为Calculated,翻译为已计算不太好理解,翻译成通过计算可能会好一些),然后点击已计算按钮,设定公式,在检查规则语法时出现了如下错误:
跟踪代码后得知,是类PBARuleExpressionActionValue的methodName出现了问题
str methodname()
{
return
(
this
.parmnameRecId()
?
enum2str(PBARuleValueRelation) :
''
)
+
PBARuleExpressionActionValue::methodnameParm(PBAVar,PBARuleArrayIdx,PBARuleActionType)
+
(
this
.parmnameRecId()
?
PBARuleChecker::methodname(
this
.parmnameRecId()) :
''
);
}
我们知道enum2str的结果是标签的内容,如果在中文环境下,该函数的返回结果为中文,这样该方法执行后得到函数名类似于
"公式Table_0_false5637144582",由于在X++中函数名中不能出现汉字,因为汉字并不是合法的标识符的组成元素,于是就出现了不能在脚本中使用此符号的错误。
将该函数更改为如下代码即可:
str methodname()
{
SysDictEnum sysDictEnum
=
new
SysDictEnum(EnumNum(PBARuleValueRelation));
return
(
this
.parmnameRecId()
?
sysDictEnum.value2Symbol(PBARuleValueRelation) :
''
)
+
PBARuleExpressionActionValue::methodnameParm(PBAVar,PBARuleArrayIdx,PBARuleActionType)
+
(
this
.parmnameRecId()
?
PBARuleChecker::methodname(
this
.parmnameRecId()) :
''
);
}
既然中文不能作为标识符,又用Enum2Str的返回结果当成函数名的一部分,不报错才怪。
查看全文
相关阅读:
Linux官方源、镜像源汇总
python3 pip报错 TypeError: 'module' object is not callable
2019-11-27:kali 2019-4中文乱码解决方法
2019-11-26:密码学基础知识,csrf防御
2019-11-25:信息收集,笔记
2019-11-24:postgresql数据库安装,最后报错failed to load SQLModule 问题的解决方案
2019-11-22:xss绕过笔记
2019-11-20:xss学习笔记
2019-11-19:无返回的盲型xxe,使用带外读取数据
2019-11-19:xxe漏洞利用,笔记
原文地址:https://www.cnblogs.com/Farseer1215/p/789847.html
最新文章
Docker 批量启动
flume面试题
sqoop面试题
大数据面试题
java面试题
Hive分析窗口函数
Hive手写SQL案例
Hive动态分区
向Hive中传入变量的方式
Hive优化策略
热门文章
Hive数据倾斜的原因及主要解决方法
ubuntu vsftpd 530 Login incorrect 根本原因和解决方案
Ubuntu Server 18.04 配置 FTP(vsftpd)
跳板机和堡垒机
监控报I/O问题,怎么办?
使用465端口加密发邮件
Supervisor 为服务创建守护进程
Linux管理工具集合
计算机专用英语词汇1695个词汇表
Ubantu以root用户进入(图形化桌面)系统
Copyright © 2011-2022 走看看