干货:如何在BOTP规则中使用substring函数

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

干货:如何在BOTP规则中使用substring函数

业务需求:

外系统通过EAS集成模块传过来一个字段,子票包区间,字段结构: 1234-45678(举例),到目标系统EAS的单据-应收票据,要求拆为2个字段,子票包开始序号1234、子票包结束序号45678,“-”前后多少位数不一定,唯一确定的是前后是用“-”隔开的。

解决方法:通过botp规则配置,使用substring和index结合的方式解决。


知识点①:验证服务器支不支持我们即将要用的函数

image.webp


知识点②:最终解决问题的语句


-----例如:子票包区间,1234-45678。以下语句的意思是:从集成的中间单据分录中找到“子票包区间”这个字段,取从第一个字符数起,到“-”之前的位置的字符

使用#sql_val("") 是因为直接使用“子票包区间”这个字段系统会报错,所以从数据库取一次,确保这是个字符串,这样才能支持substring取数;

字段.substring(  0,字段.indexOf("-"))这个是BOTP里面使用这个函数的语法


公式结果  = (#sql_val("select CFZX_ZPQJ from CT_EIP_JZT2023010101Entry where fid='" + 本部英克凭证和票据pm42023.分录.ID + "'")).substring(  0, (#sql_val("select CFZX_ZPQJ from CT_EIP_JZT2023010101Entry where fid='" + 本部英克凭证和票据pm42023.分录.ID + "'")).indexOf("-")  ) ;

image.webp

----下面这句话则表示从"-"后面那个字符开始到最后一个字符。最后一个字符并不需要表达,+1表示从“-”后面那个字符开始取

公式结果  = (#sql_val("select CFZX_ZPQJ from CT_EIP_JZT2023010101Entry where fid='" + 本部英克凭证和票据pm42023.分录.ID + "'")).substring(   (#sql_val("select CFZX_ZPQJ from CT_EIP_JZT2023010101Entry where fid='" + 本部英克凭证和票据pm42023.分录.ID + "'")).indexOf("-") + 1 ) ;


指导老师:陈凯生

干货:如何在BOTP规则中使用substring函数

业务需求:外系统通过EAS集成模块传过来一个字段,子票包区间,字段结构: 1234-45678(举例),到目标系统EAS的单据-应收票据,要求拆为2...
点击下载文档
分享:
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息