Day06 工作流

文章详细介绍了工作流的基本概念,包括流程图、基础表单和工作项。还探讨了流程设计、权限设置、日期控件的配置以及敏感字符处理等技术细节,特别强调了材料配置、附件上传和审批按钮的配置。此外,提到了待办事宜的生成和工作流执行过程。
摘要由CSDN通过智能技术生成

Day06 工作流

理解工作流的基本概念及流程图

工作流就是一条相互衔接、自动流转的任务圈。我们可以将整个过程看做是一个流水作业线,其中作业线上的任务就是需要审核的表单。

根据一系列过程规则、文档、信息或任务在不同的执行者之间进行传递与执行

了解工作流常用的几张基础表单

流程基本信息表(Workflow_Process)

流程实例表(Workflow_PVI) 流程版本实例

流程步骤表(Workflow_Activity)

变迁信息表(Workflow_Transition)

变迁信息配置表(Workflow_Transition_Condition)

工作项表(Workflow_WorkItem):在工作流中将需要活动处理人处理的流程事务称为工作项,可以简单理解为待办事宜

工作流表:

流程:

流程搭建设计(流程设计器):

步骤:高级工作流--版本--流程设计。会生成Guid,根据这个Guid来启动工作流

流程处理页面配置:asseinfoworkflow.html页面详情页配置到 版本-->流程设计-->批处理--调整配置-->流程处理页面-->选择哪些活动

流程的预览:流程配置-->预览-->流程追踪(查看流程图)

流程材料的配置:

材料属于版本下的,配置之后可以应用到每个活动上

步骤:1. 新增材料:版本-->材料--新增材料-->采购信息表--MIS表

2.应用材料:版本-->流程设计-->批处理-->选择材料-->选择材料的应用活动

设置活动权限(材料配置之后):点击活动-->设置属性-->表单字段权限-->权限设置,注:缺省即默认

控件配置

申请人员获取当前登录用户且不可修改,页面显示用户姓名,数据库存用户标识。

  1. 首先把原来存入数据库的值applyuserguid,控件属性设置成mini-hidden隐藏域,然后新加一个列 id=applyusername用于展示

  2. 后端执行pageload方法,然后第一次加载 通过userSession给他设置数据库的值和返回值,通过addcallback方法返回给前端

  3. 通过epoint..init方法的回调,接收从后端返回applyusername的值,然后根据id给他赋值 注:必填属性started

日期设置:使用日期控件默认为当前时间(精确到秒),不可修改

  1. 设置不可修改,从后台处理好时间的字符串然后返回给前台

  2. 进入后台pageload方法,然后设置new Date(),通过EpointDateUtil工具类处理date类型数据转成字符串,格式化形式为HH:mm:ss

  3. 通过epoint..init方法的回调,接收从后端返回applytimeoutput的值,然后根据id给他赋值

敏感字符问题:1.把字符换成其他符合条件的其他字符 2.安全配置文件里面修改

预算信息:

  1. 首先把预算信息控件改为mini-buttonedit,然后添加点击事件onButtonClick=xxx,点击之后触发下面js方法,使用epoint.openDialog()打开子页面,进入子页面地址对应的页面

  2. 子页面中在预算名称使用renderer做了一个a标签的渲染,在这个方法中拼接data,点击之后触发下面的onBudgetNameClick,通过epoint.closeDialog方法将data回传到上一级页面

  3. 进入回调,使用split分割之后,分别设置存入数据库的值和显示文本值

物品总价:vtype属性 vtype=int。 miniui-Api手册-forms

采购类型:使用mini-radiobuttonlist,单选按钮组控件,后台action对应的方法 代码项属性 修改为单选按钮组,请选择即true,改为false

到货时间:使用日期控件选择,时间不得早于“申请时间”,在后台添加校验逻辑,return false 退出方法,不在继续往下执行;

申请说明:设置成一整列,使用mini-TextArea控件

材料上传:先根据前端api-组件-搜索webupload,查找示例,控件:mini-webuploader,然后action对应自己写的后台方法。

材料上传不成功可能是第一次加载没有给rowguid赋值,在第一次加载时使用rowguid = UUID.randomUUID().toString();

第二次加载也要给申请人员、到货时间进行赋值。注:附件存到了我们的本地库上面去了,附件上传到frame-attach表

材料丢失问题:附件控件比较特殊,在上传附件时会触发页面刷新操作,即会再次执行后台的pageLoad方法。当页面内容未保存时,按照原代码逻辑会导致生成新的业务rowguid,导致附件的rowguid和dataBean中的rowguid不一致,最终导致附件和业务表关联不起来。

我们在pageLoad中添加以下代码,使用addViewData和getViewData(通用隐藏域)保存生成的rowguid。

为什么:commonDTO机制:我们每次发一个附件上传或者点保存的时候,除了走控件对应的方法还要创建action,执行pageload()方法

附件上传数据库:系统附件默认(未配置)存到了我们的本地库上面去了,可以在应用集成--统一附件上进行创建附件数据库,然后选择储存类型,点击启用。

 

采购申请按钮配置:

新增改为采购申请,点击openAdd事件,将中的地址改为工作流启动页面地址,加上processGuid(流程标识),前面固定为工作流启动页面地址,然后根据我们配置的流程guid查找相关信息。

列表标题设置

  1. 首先在assetinfolist页面删除不需要的列,然后增加title和url列,进入assetinfolistAction后台,找到getdategrid方法。

  2. 先定义title和url初始值,然后put两个新的字段。用@Autowried 实例化流程版本实例 IWFInstanceAPI9 ,然后根据IWFInstanceAPI9查询是否有待办项,如果有获取工作项标题和流程处理页的url,如果没有默认为title = "采购详情", urlString = "";最后返回给前端,

  3. 标题使用renderer渲染了一个a标签,然后获取url和titile,然后判断url是否为“ ”,如果为空,则定义url为详情页。点击触发onTitletClick方法,传递url,里面使用epoint.openDialog打开子页面

一个登陆人只有一个处理页面()

定义工作流:配置信息,比如变迁信息

执行工作流:工作项和pvi表是执行工作流时产生的数据(工作流的实例),类似于类(定义)和对象(实例)的关系

待办事宜:生成处理页面

URL上加上了

  1. 流程版本实例Guid:WorkItemGuid

  2. 当前工作项Guid:WorkItemGuid

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值