BOTP脚本中允许通过短名称调用常用函数调用(目前只支持SQL函数);
提供简单易用的sql函数,简化数据库访问。
SQL函数语法
假定,sql是表示SQL语句的变量。
1.#sql_val 从数据库获取一个值(OBJECT);
java.lang.Object value = #sql_value(sql);
2.#sql_row 从数据库获取一行记录(MAP);
java.util.Map row = #sql_row(sql);
注:以SQL语句中的列名的小写形式作为Map的key,对应列的值作为与key关联的值。
3.#sql_col 从数据库表获取多行记录的某一列值(ARRAY);
java.lang.Object[] array = #sql_list(sql);
4.#sql_list 从数据库表获取结果集(由MAP组成的List);
java.util.ArrayList list = #sql_list(sql);
注:list中的每一个元素是一个java.util.Map对象,Map的内容以SQL语句中的列名的小写形式作为Map的key,对应列的值作为与
该key关联的值。
5.#sql_exec 执行修改/插入/删除SQL(返回影响的行数)。
int updated = #sql_exec(sql);
注意以上sql中,不能包含空格或其他字符,并且 必须使用小写形式(原文档上的注释,测试没发现空格的特殊影响)
需要#sql_val 几乎能实现目前所有业务函数!
1.函数举例:
a.弱类型关联函数
公式结果 = __BOTGetProperty(销售出库单.销售出库单分录.核心单据行ID,"entry.taxRate");
可以替换为:
公式结果 = #sql_val("select ftaxRate from **核心单据分录表名称 where fid ='"+销售出库单.销售出库单分录.核心单据行ID+"'");
2.利用sql的集合函数做一些之前没有实现