对上个节点产生的数据进行转换映射、过滤(写JS代码)、数据清洗等操作。
数据清洗是指将数据项进行处理。例如:字典翻译(如1代表男,0代表女)、值转换(如将long的Timestamp值转换成日期)、复杂值处理(如脱敏手机号,只保留前后3位)、去重(如将无效记录剔除)等。
清洗方式支持【公式】和【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日创建标签:炎黄盈动
}
}