单据转换插件中获取到自定义参数的使用说明
# 单据转换插件中获取到自定义参数的使用说明
## 1.问题描述
在调用下推服务ConvertServiceHelper#push时,在下推服务参数(PushArgs)中传入自定义参数pushArgs. getCustomParams ().put(key, paramValue);如何在转换插件中,取到这个自定义参数值呢?
## 2.说明
转换插件可以使用 Object paramValue = this.getOption().getVariableValue ("key"); 获取传入的自定义参数值
## 3.代码示例
传入自定义参数:
```java
PushArgs pushArgs= new PushArgs();
pushArgs.getCustomParams().put("billStatus", "已审核");
pushArgs.getCustomParams().put("billNo", "test_0001");
ConvertServiceHelper.push(pushArgs);
```
获取自定义参数:
```java
package kd.bos.form.plugin.botp;
import kd.bos.entity.BillEntityType;
import kd.bos.entity.botp.ConvertOpType;
import kd.bos.entity.botp.ConvertRuleElement;
import kd.bos.entity.botp.plugin.AbstractConvertPlugIn;
import kd.bos.entity.botp.plugin.args.AfterBuildQueryParemeterEventArgs;
import kd.bos.entity.botp.plugin.args.AfterConvertEventArgs;
import kd.bos.entity.botp.plugin.args.AfterCreateLinkEventArgs;
import kd.bos.entity.botp.plugin.args.AfterCreateTargetEventArgs;
import kd.bos.entity.botp.plugin.args.AfterFieldMappingEventArgs;
import kd.bos.entity.botp.plugin.args.AfterGetSourceDataEventArgs;
import kd.bos.entity.botp.plugin.args.BeforeBuildGroupModeEventArgs;
import kd.bos.entity.botp.plugin.args.BeforeBuildRowConditionEventArgs;
import kd.bos.entity.botp.plugin.args.BeforeCreateLinkEventArgs;
import kd.bos.entity.botp.plugin.args.BeforeCreateTargetEventArgs;
import kd.bos.entity.botp.plugin.args.BeforeGetSourceDataEventArgs;
import kd.bos.entity.botp.plugin.args.InitVariableEventArgs;
/**
* 演示单据转换插件事件的触发时机
*
* @author rd_JohnnyDing
*/
public class Test extends AbstractConvertPlugIn {
/**
* 演示如何获取上下文信息
*/
private void getContext() {
// 源单主实体
BillEntityType srcMainType = this.getSrcMainType();
// 目标单主实体
BillEntityType tgtMainType = this.getTgtMainType();
// 转换规则
ConvertRuleElement rule = this.getRule();
// 转换方式:下推、选单
ConvertOpType opType = this.getOpType();
}
/**
* 初始化变量事件
*
* @param e
* @remark 获取上下文信息,构建一些必须的变量
*/
@Override
public void initVariable(InitVariableEventArgs e) {
this.printEventInfo("initVariable", "");
Object paramValue = this.getOption().getVariableValue ("billStatus");
}
/**
* 构建取数参数后事件
*
* @param e
* @remark 添加额外的字段、过滤条件
*/
@Override
public void afterBuildQueryParemeter(AfterBuildQueryParemeterEventArgs e) {
this.printEventInfo("afterBuildQueryParemeter", "");
Object paramValue = this.getOption().getVariableValue ("billStatus");
}
/**
* 编译数据筛选条件前事件
*
* @param e
* @remark 设置忽略规则原生的条件,改用插件定制条件,或者在规则条件基础上,追加定制条件
*/
@Override
public void beforeBuildRowCondition(BeforeBuildRowConditionEventArgs e) {
this.printEventInfo("beforeBuildRowCondition", "");
Object paramValue = this.getOption().getVariableValue ("billStatus");
}
/**
* 取源单数据前事件
*
* @param e
* @remark 修改取数语句、取数条件
*/
@Override
public void beforeGetSourceData(BeforeGetSourceDataEventArgs e) {
this.printEventInfo("beforeGetSourceData", "");
Object paramValue = this.getOption().getVariableValue ("billStatus");
}
/**
* 取源单数据后事件
*
* @param e
* @remark 根据源单数据,获取其他定制的引用数据;也可以替换系统自动获取到的数据
*/
@Override
public void afterGetSourceData(AfterGetSourceDataEventArgs e) {
this.printEventInfo("afterGetSourceData", "");
Object paramValue = this.getOption().getVariableValue ("billStatus");
}
/**
* 构建分单、行合并模式之前事件
*
* @param e
* @remark 调整分单、合并策略及依赖的字段
*/
@Override
public void beforeBuildGroupMode(BeforeBuildGroupModeEventArgs e) {
this.printEventInfo("beforeBuildGroupMode", "");
Object paramValue = this.getOption().getVariableValue ("billStatus");
}
/**
* 初始化创建目标单据数据包前事件
*
* @param e
* @remark 这个事件,只在选单时触发:
* 选单时,需要基于现有的目标单数据包,进行追加处理;
* 插件可以在此事件,获取到现有的目标单数据包,提前进行定制处理
*/
@Override
public void beforeCreateTarget(BeforeCreateTargetEventArgs e) {
this.printEventInfo("beforeCreateTarget", "");
Object paramValue = this.getOption().getVariableValue ("billStatus");
}
/**
* 创建目标单据数据包后事件
*
* @param e
* @remark 这个事件,只在下推时触发,把根据分单规则创建好的目标单,传递给插件
*/
@Override
public void afterCreateTarget(AfterCreateTargetEventArgs e) {
this.printEventInfo("afterCreateTarget", "");
Object paramValue = this.getOption().getVariableValue ("billStatus");
}
/**
* 目标字段赋值完毕后事件
*
* @param e
* @remark 插件可以在此基础上,继续填写目标字段值
*/
@Override
public void afterFieldMapping(AfterFieldMappingEventArgs e) {
this.printEventInfo("afterFieldMapping", "");
Object paramValue = this.getOption().getVariableValue ("billStatus");
}
/**
* 记录关联关系前事件
*
* @param e
* @remark 取消记录关联关系
*/
@Override
public void beforeCreateLink(BeforeCreateLinkEventArgs e) {
this.printEventInfo("beforeCreateLink", "");
Object paramValue = this.getOption().getVariableValue ("billStatus");
}
/**
* 记录关联关系后事件
*
* @param e
* @remark 根据系统自动记录的关联关系,进行相关数据的同步携带,如携带其他子单据体数据
*/
@Override
public void afterCreateLink(AfterCreateLinkEventArgs e) {
this.printEventInfo("afterCreateLink", "");
Object paramValue = this.getOption().getVariableValue ("billStatus");
}
/**
* 单据转换后事件,最后执行
*
* @param e
* @remark 插件可以在这个事件中,对生成的目标单数据,进行最后的修改
*/
@Override
public void afterConvert(AfterConvertEventArgs e) {
this.printEventInfo("afterConvert", "");
Object paramValue = this.getOption().getVariableValue ("billStatus");
}
private void printEventInfo(String eventName, String argString) {
String msg = String.format("%s : %s", eventName, argString);
System.out.println(msg);
}
}
```
单据转换插件中获取到自定义参数的使用说明
# 单据转换插件中获取到自定义参数的使用说明## 1.问题描述在调用下推服务ConvertServiceHelper#push时,在下推服务参数(PushArgs)中传...
点击下载文档
本文2024-09-23 00:26:10发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-139449.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章