工作流插件开发——工作流流转记录格式化业务插件原创
金蝶云社区-刘子洋
刘子洋
3人赞赏了该文章 3227次浏览 未经作者许可,禁止转载编辑于2019年11月04日 16:22:51

一、 业务场景 用户查看审批详情时,想修改显示值可以通过插件来实现。可以在“节点记录格式化插件”中,放入自己的插件实现自己想要的逻辑。如下图

                             image.png

二、 业务插件注册 注册业务插件:业务插件分为两种,分别是JAVA插件和KS脚本。点击业务插件,进入插件注册页面,如下图所示:

                             image.png

三、 JAVA插件使用 

1. JAVA插件注册 将完整包名输入“插件类”文本框,当流程走到该节点后会执行注册的插件。如下图:

                             image.png

2. 节点记录格式化插件API-JAVA要求:

  • 实现接口:kd.bos.workflow.engine.extitf.IWorkflowPlugin 

  • 方法: public  IApprovalRecordItem  formatFlowRecord(IApprovalRecordItem item) 

  • 说明:根据特定的业务逻辑返回节点信息。 

  • 参数:IApprovalRecordItem对象,对象中可获取 

  •  返回值:IApprovalRecordItem类型对象

3. 节点记录格式化插件-JAVA插件例子


  1. @Override  

  2.     public IApprovalRecordItem formatFlowRecord(IApprovalRecordItem item) {//流转记录格式化请实现此方法  

  3.         String activityId = item.getActivityId();//获取当前流程节点id  

  4.         String activityName = item.getActivityName();//获取当前流程节点名称  

  5.         String assignee = item.getAssignee();//获取审批人姓名  

  6.         List<ApprovalAttachmentInfo> attachments = item.getAttachments();//获取附件  

  7.         String avatar = item.getAvatar();//获取头像地址  

  8.         String decisionType = item.getDecisionType();//获取决策项类型  

  9.         String message = item.getMessage();//获取审批意见  

  10.         String openId = item.getOpenId();//获取openId  

  11.         Long ownerId = item.getOwnerId();//获取当前处理人的id  

  12.         String ownerName = item.getOwnerName();//获取当前处理人的姓名  

  13.         String result = item.getResult();//获取处理结果  

  14.         String state = item.getState();//获取单据状态  

  15.         String subactivityname = item.getSubactivityname();//获取  

  16.         String taskId = item.getTaskId();//获取任务ID  

  17.         String time = item.getTime();//获取处理时间  

  18.         Long userId = item.getUserId();//获取节点处理人id  

  19.         String userStr = item.getUserStr();//获取节点处理人id  

  20.  }  


四、 KS脚本使用 

  1. KS插件注册 类型选择脚本,点击下图红框弹出选择脚本页面。

    image.png

  2. 点击如下图红框所示,进入KDE平台


    image.png

3. 在KDE平台新增脚本,插件类型为“流程插件”,插入方法为“formatFlowRecord”点击确定进入脚本编辑页面

image.png

4. 节点记录格式化插件-KS脚本例子


  1. /** 

  2. * @author IERP 

  3. * @date 2019-11-04 

  4. */  

  5. var plugin = new WorkflowPlugin({  

  6.     formatFlowRecord : function(e){  

  7.        var activityId = item.getActivityId();//获取当前流程节点id  

  8.         var activityName = item.getActivityName();//获取当前流程节点名称  

  9.         var assignee = item.getAssignee();//获取审批人姓名  

  10.         var attachments = item.getAttachments();//获取附件  

  11.         var avatar = item.getAvatar();//获取头像地址  

  12.         var decisionType = item.getDecisionType();//获取决策项类型  

  13.         var message = item.getMessage();//获取审批意见  

  14.         var openId = item.getOpenId();//获取openId  

  15.         var ownerId = item.getOwnerId();//获取当前处理人的id  

  16.         var ownerName = item.getOwnerName();//获取当前处理人的姓名  

  17.         var result = item.getResult();//获取处理结果  

  18.         var state = item.getState();//获取单据状态  

  19.         var subactivityname = item.getSubactivityname();//获取  

  20.         var taskId = item.getTaskId();//获取任务ID  

  21.         var time = item.getTime();//获取处理时间  

  22.         var userId = item.getUserId();//获取节点处理人id  

  23.         var userStr = item.getUserStr();//获取节点处理人id  

  24.       

  25.         return item;  //IApprovalRecordItem类型数据  

  26.     }  

  27. });  



赞 3