关于botp中sql多值取数的一些思考

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

关于botp中sql多值取数的一些思考

背景来源:

二开单据生成凭证时,将每个分录预算扣减费用类型去重后将名称拼接在摘要上。即下图只需显示两个预算扣减费用类型即可

image.webp

需求分析:

该问题按Java逻辑来思考,比较简单。即先传个单头字段去拿到去重后的分录idList,然后遍历这个List调用公式getFromObjectID()拿到这个对象,然后get对应值,在进行字符串拼接即可。以前文档说过#sql_val()只能取到一个参数,所以需要寻找其他办法。如下图所示我们发现#sql_col()比较符合我们的要求。

image.webp

实现步骤:

在单据转换规则界面按F9进入自定义公式界面,然后参照以下逻辑输入脚本(仅供参考,脚本格式见附件)


下面简单描述下写这个脚本过程中踩得雷也就是我们所讲的误区


误区一:自定义脚本里面拿到的字符串数组不能用xxxx[i]获取其中某一个具体数据,所以这个只能用自定义函数实现

image.webp


误区二:字符串和字符串数组需要区分,字符串获取长度用.length()方法,字符串数组直接.length即可

if(valueArr.length==0){

     return  null;


误区三:自定义脚本和自定义函数中通过对象获取值的方式不同

自定义脚本中通过对象获取值的方法:

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

自定义函数的写法:

__BOTgetObjectFromID( id ).get("name");


获取多值参考脚本.rar

关于botp中sql多值取数的一些思考

背景来源:二开单据生成凭证时,将每个分录预算扣减费用类型去重后将名称拼接在摘要上。即下图只需显示两个预算扣减费用类型即可需求分析:...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息