关于botp中脚本编写常见注意事项原创
金蝶云社区-Hadwin
Hadwin
1人赞赏了该文章 462次浏览 未经作者许可,禁止转载编辑于2020年10月24日 11:23:42

现场背景:最近接了不少脚本报错,java.lang.NullPointerException

at com.kingdee.bos.kscript.dom.expr.BinaryOpExpr.output(BinaryOpExpr.java:83)这类异常是典型的脚本报错,下面我们来分析几个常见用法


案例一:sql写法

  BOTgetObjectFromID(#sql_val("你要的拼接的sql"));

sql编写注意事项:

正常我们的sql是这样的sql = select * from 表名 where 条件 = 'xxxxxx';

所以针对标准的写法应该是以下这种用“+”作为连接符拼接起来

#sql_val("SELECT FID FROM T_MM_ProjectGroup where FNUMBER = '" + 1.2 + "'"))

注意:#sql_val()语法只能查出一个参数


案例二:脚本中中获取某个对象的具体值写法

误区:我们很多人java写多了dep脚本写多了就会养成一个习惯拿到对象后直接.get(xxx属性)这个在dep和普通java是可以的在dap中是不能这样处理的,正确用法是拿到对象后去.这个字段在数据源中对应字段名,正确写法如下:

formula_result = __BOTgetObjectFromID(#sql_val("")).adminOrgUnit;


案例三:关于类型转换问题(这个和java类似,不用像dep中获取全路径后,再去操作。但对象仍然是一个弱对象需要用var接收)

以日期date类型转化为String为例

new java.text.SimpleDateFormat("yyyy-MM-dd").format(发货通知单.业务日期).substring(5,7)




赞 1