本文介绍了如何在审批流程中通过插件修改显示值,包括节点记录格式化插件的使用。详细说明了JAVA插件和KS脚本的注册方法,JAVA插件需要实现特定接口并注册,而KS脚本则在KDE平台编写并注册。还提供了JAVA和KS脚本的插件示例代码,展示了如何获取和处理审批流程中的各项数据。
一、 业务场景 用户查看审批详情时,想修改显示值可以通过插件来实现。可以在“节点记录格式化插件”中,放入自己的插件实现自己想要的逻辑。如下图
二、 业务插件注册 注册业务插件:业务插件分为两种,分别是JAVA插件和KS脚本。点击业务插件,进入插件注册页面,如下图所示:
三、 JAVA插件使用
1. JAVA插件注册 将完整包名输入“插件类”文本框,当流程走到该节点后会执行注册的插件。如下图:
2. 节点记录格式化插件API-JAVA要求:
实现接口:kd.bos.workflow.engine.extitf.IWorkflowPlugin
方法: public IApprovalRecordItem formatFlowRecord(IApprovalRecordItem item)
说明:根据特定的业务逻辑返回节点信息。
参数:IApprovalRecordItem对象,对象中可获取
返回值:IApprovalRecordItem类型对象
3. 节点记录格式化插件-JAVA插件例子
@Override
public IApprovalRecordItem formatFlowRecord(IApprovalRecordItem item) {//流转记录格式化请实现此方法
String activityId = item.getActivityId();//获取当前流程节点id
String activityName = item.getActivityName();//获取当前流程节点名称
String assignee = item.getAssignee();//获取审批人姓名
List<ApprovalAttachmentInfo> attachments = item.getAttachments();//获取附件
String avatar = item.getAvatar();//获取头像地址
String decisionType = item.getDecisionType();//获取决策项类型
String message = item.getMessage();//获取审批意见
String openId = item.getOpenId();//获取openId
Long ownerId = item.getOwnerId();//获取当前处理人的id
String ownerName = item.getOwnerName();//获取当前处理人的姓名
String result = item.getResult();//获取处理结果
String state = item.getState();//获取单据状态
String subactivityname = item.getSubactivityname();//获取
String taskId = item.getTaskId();//获取任务ID
String time = item.getTime();//获取处理时间
Long userId = item.getUserId();//获取节点处理人id
String userStr = item.getUserStr();//获取节点处理人id
}
四、 KS脚本使用
KS插件注册 类型选择脚本,点击下图红框弹出选择脚本页面。
点击如下图红框所示,进入KDE平台
3. 在KDE平台新增脚本,插件类型为“流程插件”,插入方法为“formatFlowRecord”点击确定进入脚本编辑页面
4. 节点记录格式化插件-KS脚本例子
/**
* @author IERP
* @date 2019-11-04
*/
var plugin = new WorkflowPlugin({
formatFlowRecord : function(e){
var activityId = item.getActivityId();//获取当前流程节点id
var activityName = item.getActivityName();//获取当前流程节点名称
var assignee = item.getAssignee();//获取审批人姓名
var attachments = item.getAttachments();//获取附件
var avatar = item.getAvatar();//获取头像地址
var decisionType = item.getDecisionType();//获取决策项类型
var message = item.getMessage();//获取审批意见
var openId = item.getOpenId();//获取openId
var ownerId = item.getOwnerId();//获取当前处理人的id
var ownerName = item.getOwnerName();//获取当前处理人的姓名
var result = item.getResult();//获取处理结果
var state = item.getState();//获取单据状态
var subactivityname = item.getSubactivityname();//获取
var taskId = item.getTaskId();//获取任务ID
var time = item.getTime();//获取处理时间
var userId = item.getUserId();//获取节点处理人id
var userStr = item.getUserStr();//获取节点处理人id
return item; //IApprovalRecordItem类型数据
}
});
推荐阅读
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *