函数配置
函数配置¶
函数配置主要是对一些变动的参数、复杂的业务逻辑的处理,如源平台拉取时间不能是一成不变的固定值、目标平台一些字段的兼容不对,这些情况都需要用到我们函数去做处理。
- 函数又分为【文本函数】、【时间函数】、【数字函数】、【逻辑函数】、【高级函数】,如下图:
一、时间函数¶
拉取平台开始、结束时间¶
拉取配置
当我们需要拉取源平台数据时,有两个字段需要我们去设置--【开始时间】、【结束时间】;当我们填写固定值(如下图),那么每次方案执行时,开始拉取的时间都是从固定值开始拉取,就会出现重复拉取,耗费时间的问题,那么我们要怎么去设置呢? ----函数【LastSourceExecDatetime】
避免出现重复拉取的情况---我们开始时间可以配置函数为{获取源平台上次执行时间[LastSourceExecDatetime]},这样我们方案开始拉取的时间就会更变为上一次平台执行的时间,例如上次平台执行时间为:2023-11-02 08:12:13,那么拉取时间就从2023-11-02 08:12:13开始拉取,下图:
第一次执行时需要先设置固定值或者设置偏移时间
时间格式转换¶
时间格式
- 时间函数分不同的格式:【长日期】、【短日期】以及【时间戳】;
使用示例
1.只需配置【DATETIMETODATETIME】时间转换函数:
2.日期时间转日期时间,长日期转短日期;
- 只需在配置【DATETOTIMESTAMP】时间转换函数;
- 日期转时间戳函数,将日期转化为11位时间戳,例:1596078632;
- 只需在配置【TIMESTAMPTODATE】时间转换函数;
- 时间戳转日期函数,时间戳统一转换为[年-月-日 时:分:秒]格式日期字符串;
例如:客户想要出库时间为长日期,而我们目标平台写入拉取到的数据是一个时间戳,不满足客户需求,那么就要用到时间转换:
二、逻辑函数¶
条件判断¶
逻辑函数分为单条件判断【IF】;多条件判断【IFS】
单条件判断【IF】
- 判断一个条件能否满足;如果满足返回一个值,如果不满足则返回另外一个值。
- IF(A,B,C),表示如果满足条件A,那么返回B,否则返回C。
配置店铺001对应客户CUST001
多条件判断【IFS】
- 至少设置一个判断条件和真值,否则函数无法运算
- 只有判断条件1不符合时,才会进入判断条件2
- IFS函数不需要输入假值,如果不满足所有判断条件,则显示空值
多对一的情况:比如一个几个店铺对应一个客户===店铺001--客户CUST001,店铺002--客户CUST001,店铺003--客户CUST--001
三、文本函数¶
文本格式配置¶
文本函数顾名思义就是对文本加以处理得到我们需要的数据格式;例如:字符拼接【CONCAT】、左截取【LEFT】、右截取【RIGHT】等,如下图:
截取函数¶
左截取-右截取
-
- 若是想要一个订单号的前几位数可以使用左截取函数取出来
-
- 若是想要一个订单号的后几位数可以使用右截取函数取出来
拼接函数¶
拼接函数
-
- 客户自定义个字段,想要将客户信息跟批次信息拼接传输到目标平台
-
- 这种情况可以使用拼接函数【CONCAT】,将两个或多个字段信息拼接到一起
长度函数¶
长度函数
-
- 长度函数【LEN】:返回字段内容或字符串的长度
-
- 需要计算字符串长度的使用可以使用长度函数
字符大小¶
转大写-转小写
-
- 把文本中小写的英文字符转换为大写字符
-
- 把文本中大写的英文字符转换为小写字符
替换函数¶
替换函数
-
- 根据指定的字符数,将字符串中部分内容替换为不同的字符串。
-
- A代表想要替换的文本
-
- B代表替换后的文本
四、数字函数¶
四舍五入¶
四舍五入
-
- 将数字四舍五入到指定的位数
-
- 需要精确到几位数的需求(一般是价格字段)可用【ROUND】函数处理
乘积¶
乘积
-
- 返回所有参与字段中数值的乘积
-
- 需要计算金额(数量*单价),可用【PRODUCT】函数处理
除法函数¶
除法
-
- 需要将得到的金额反算我们单价(金额/数量),可用【SUB】函数处理
五、高级函数¶
类型函数¶
类型转换
-
- ResolveFiled InnerEx解析字段(Kev:FCustomerlDname:客户)时发生异常异常信息:未将对象引用设置到对象的实例。
-
- 出现这种错误一般都是因为类型不正确导致的,我们可以运用【TOOBJECT】函数将它类型转换过来
空值数组函数¶
空值数组
-
- 当源平台(金蝶云)单据只有表头没有明细行,目标平台的明细需要取到源平台字段时,需要建立个空数组去获取