# 添加自定义文件处理函数
该章节旨在指导用户通过接口实现,增加自定义文件处理函数。
# 文件处理函数实现
新建java项目
将BFT Agent根目录bftagent/lib/com.primeton.filetransfer.common-7.6.0.jar加入项目依赖。
编写接口实现类
创建java类, 实现com.primeton.filetransfer.function.ProcessingFileFunction
以下示例实现的功能: 对每一行字符前增加函数指定的
content
package com.primeton.fun; import com.primeton.filetransfer.function.ProcessingFileFunction; import com.primeton.filetransfer.util.Pair; import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; public class SelfFileFunc implements ProcessingFileFunction { private final String REG = "^add_test\\((.+)\\)"; // 自定义函数类似: add_test(addContent) private final Pattern ADD_TEST_FUNCTION_PATTERN = Pattern.compile(REG); private String addContent; @Override public Pair<Boolean, String> processingLine(String line, String functionStr, Date date) { // date参数, 此处演示, 暂时不使用, 按实际需求决定是否使用 // 此函数会被多次调用, functionStr建议在 isRightFunction 方法体里边初始化好 // 这里主要对line参数处理 if (line == null) { return Pair.of(true, line); } line = addContent + line; return Pair.of(true, line); } @Override public boolean isRightFunction(String functionStr) { // 这里主要校验自定义函数的合法性, 需按自己实际需求实现 final Matcher matcher = ADD_TEST_FUNCTION_PATTERN.matcher(functionStr); if (!matcher.find()) { return false; } int groupCount = matcher.groupCount(); if (groupCount != 1) { return false; } addContent = matcher.group(1); return true; } }
将写好的代码进行打包,将打好的jar报放置在BFTAgent根目录/bftagent/lib下。
重新启动BFTAgent,加载新建文件处理函数。
# 函数说明
字段名 | 说明 |
---|---|
processingLine | 文件按行读取, 此方法会被多次调用, 用来处理每一行的信息, 返回的数据会重写到文件的这一行中 |
isRightFunction | 只会被调用一次, 主要用来验证策略定义的解析函数是否正确; 建议解析定义函数在此方法实现 |
# 参数说明
字段名 | 说明 |
---|---|
line | 按行读取的每一行, 此数据是被处理的主要对象 |
functionStr | 自定义处理函数, 建议在isRightFunction方法中验证, 并初始化好 |
date | 会计日日期, 按实际需求决定是否使用 |
# 文件处理函数字典值配置
在BFT Console中点击菜单【系统管理】→【字典码表】,如下图所示:
搜索【类型代码】“PROCESS_FILE_FUNCTION”
点击【新增字典项】添加文件处理函数,如下图所示:
名称 | 说明 |
---|---|
字典类型 | 固定值,代表文件处理函数类型,不可填写 |
字典项编号 | 函数值 |
字典项名称 | 函数实现类路径 |
排序 | 该自定义函数的显示位置 |
# 策略中使用新增处理函数
在BFT Console中点击菜单【策略管理】->【传输策略】,右侧区域显示 “传输策略” 界面
点击 【新增】>【一对一传输】新增传输策略,在高级属性文件处理栏选择新增的文件处理函数