金蝶BOTP脚本转换,对SQL语句的支持

本文介绍了金蝶BOTP脚本如何使用短名称调用SQL函数,强调了SQL语句必须为小写且无空格。内容包括SQL函数的使用场景,性能优化建议,如利用对象线程缓存减少查询重复消耗。同时,提到了宏函数在特定场景下可能不生效的问题及其解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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的集合函数做一些之前没有实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值