数据流(Dataflow)

转换

对上个节点产生的数据进行转换映射、过滤(写JS码)、数据清洗等操作。

数据清洗

数据清洗是指将数据项进行处理。例如:字典翻译(如1代表男,0代表女)、值转换(如将long的Timestamp值转换成日期)、复杂值处理(如脱敏手机号,只保留前后3位)、去重(如将无效记录剔除)等。

清洗方式支持公式和Java程序两种。

公式

通过@公式对输出数据进行处理。

  1. 仅支持简单类@公式
  2. 取普通字段值$[result.object1.key1]
  3. 取数组字段值$[result.object1.array1[index].key1]

Java程序

通过Java事件对输出数据进行处理。 事件需要实现com.actionsoft.bpms.cc.ds.ValueFunction接口。

import java.text.SimpleDateFormat;
import java.util.Date;

import com.actionsoft.bpms.cc.ds.ValueFunction;
import com.actionsoft.messaging.MessageContext;

public class DataConvertDemo implements ValueFunction {
     /**
     * 示例:对时间戳进行格式化,并追加其他字段值进行一句话描述
     *
     * @param obj 当前字段值,对应类型的Java Object
     * @param ctx 当前引擎上下文,使用ctx.getProperty(JSONPath语法)获取其他字段值
     * @param indexes 数组场景时,表示当前值在数组中的下标,indexes下标值对应相应层级的数组,非数组场景时为null
     * @return 转换后的值
     */
    @Override
    public Object process(Object obj, MessageContext ctx, int... indexes) {
         Long createTime = (Long) obj; //1635418181000
         Date date = new Date(createTime);
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");
         String formatDate = dateFormat.format(date); //2021年10月28日18时49分
         String tagName = ctx.getProperty("result.data.moduleList[" + indexes[0] + "].pageList[" + indexes[1] + "].tagName", String.class); //炎黄盈动
         return "于" + formatDate + "创建标签:" + tagName; //于2021年10月28日创建标签:炎黄盈动
    }
}


Seven
 010-62962343-690
 liujx@actionsoft.com.cn
感谢您对该文档的关注!如果您对当前页面内容有疑问或好的建议,请与我联系。如果您需要解答相关技术问题请登录AWS客户成功社区