切换到宽版
  • 3999阅读
  • 0回复

HAMS流程设计第三篇(流程节点介绍:用户任务节点) [复制链接]

上一主题 下一主题
离线zzwcl
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2015-05-29
用户任务
描述
用户任务用来设置必须由人员完成的工作。 当流程执行到用户任务,会创建一个新任务, 并把这个新任务加入到分配人或群组的任务列表中。
图形标记

用户任务显示成一个普通任务(圆角矩形),左上角有一个小用户图标。

XML内容
XML中的用户任务定义如下。id属性是必须的。 name属性是可选的。
<userTask id="theTask" name="Important task" />
                                  
用户任务也可以设置描述。实际上所有BPMN 2.0元素都可以设置描述。 添加documentation元素可以定义描述。
<userTask id="theTask" name="Schedule meeting" >
  <documentation>
          Schedule an engineering meeting for next week with the new hire.
  </documentation>
描述文本可以通过标准的java方法来获得:
task.getDescription()
持续时间
任务可以用一个字段来描述任务的持续时间。可以使用查询API来对持续时间进行搜索, 根据在时间之前或之后进行搜索。
我们提供了一个节点扩展,在任务定义中设置一个表达式, 这样在任务创建时就可以为它设置初始持续时间。表达式应该是java.util.Date, java.util.String (ISO8601格式),ISO8601 持续时间 (比如PT50M)或null。 例如:你可以在流程中使用上述格式输入日期,或在前一个服务任务中计算一个时间。 这里使用了持续时间,持续时间会基于当前时间进行计算,再通过给定的时间段累加。 比如,使用"PT30M"作为持续时间,任务就会从现在开始持续30分钟。
任务的持续时间也可以通过TaskService修改, 或在TaskListener中通过传入的DelegateTask参数修改。
用户分配
用户任务可以直接分配给一个用户。 这可以通过humanPerformer元素定义。 humanPerformer定义需要一个 resourceAssignmentExpression来实际定义用户。 当前,只支持formalExpressions。
<process ... >
  ...
  <userTask id='theTask' name='important task' >
    <humanPerformer>
      <resourceAssignmentExpression>
        <formalExpression>kermit</formalExpression>
      </resourceAssignmentExpression>
    </humanPerformer>
  </userTask>
只有一个用户可以坐拥任务的执行者分配给用户。 在HAMS档案管理系统的流程引擎中,用户叫做执行者。 拥有执行者的用户不会出现在其他人的任务列表中, 只能出现执行者的个人任务列表中。
直接分配给用户的任务可以通过TaskService像下面这样获取:
List<Task> tasks = taskService.createTaskQuery().taskAssignee("kermit").list();
任务也可以加入到人员的候选任务列表中。
天道酬勤
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个