zoukankan      html  css  js  c++  java
  • Activiti 用户任务关联自定义表单

    Markdown

    问题阐述

    通常每一个“用户任务”都会对应一个表单,以供用户录入信息。尤其是在“流程定义”拥有多个版本的情形下,明确的指定表单显得极其重要。
    一份新版本的“流程定义”通常对表单有以下几点影响:

    1. 新增了环节(用户任务),这时紧跟着新增一个表单即可,以及脚本、样式、Web API;
    2. 删除了环节(用户任务),这时可以不用管,为顾及旧版本的流程定义,其对应的表单还需要保留,并不能删除;
    3. 修改了环节(用户任务),比如在 A 环节新增了两个字段,同时在 B 环节减少了两个字段,这时就要为 A、B 两个环节各自重新创建表单、重新创建脚本、样式、以及重新创建Web API,因为表单变了,那么业务也就变了,SQL(表)也都跟着变了。

    表单关联方案

    为了让特定环节(用户任务)方便的找到属于自己的表单,可以使用 Form Key 进行关联:

    Markdown

    那么在办理该用户任务时,就可以读取出该表单的名字:

    TaskFormData formData = formService.getTaskFormData(taskId);
    String formKey = formData.getFormKey();
    

    或者针对启动流程阶段,可以这样读取表单名:

    formService.getStartFormData(String processDefinitionId).getFormKey();
    

    客户端渲染

    1. 如果表单页面是一个独立的主页面,那可以直接跳转过去:
    var url = formKey + "?id=" +objId + "&taskId=" +taskId;
    window.location.href = url;
    
    1. 如果表单页面是一个分部视图(仍然可以是 .jsp),则基于 JSP EL 表达式将 formkey 填充到占位符 {0} 即可:
    <jsp:include page="../../shared/Partial/{0}.jsp" flush="true"/>
    

    脚本和样式的加入与此同理。
    在 JSP 中,当路径是一个变量时,做法参考如下:

    <% String add = "/includes/" + id + "/abc.html"; %>  
    <jsp:include page="<%= add %>"></jsp:include>
    
  • 相关阅读:
    【转载】python自动提取文本中的时间(包含中文日期)
    【转载】PCA降维
    【转载】从头到尾彻底理解KMP算法
    【转载】傅里叶分析之掐死教程(完整版)更新于2014.06.06(Heinrich)
    【转载】白素贞的身世之谜
    React 路由参数改变页面不刷新问题
    前端学习资源笔记
    Nginx配置网站默认https
    基于Docker搭建大数据集群(一)Docker环境部署
    基于Docker搭建大数据集群(三)Hadoop部署
  • 原文地址:https://www.cnblogs.com/ramantic/p/7601747.html
Copyright © 2011-2022 走看看