什么是派工:某项工作需要领导指定(或在一组人员中随机选出)若干人员去
完成,其中的一人是工作负责人,而其他人员则是辅助负责人完成相关工作。
先看一个完整的派工设置实例(如下图):

派工分类:
无论是指定派工,还是随机派工,都需要定义派工在哪些人员中进行,即可以从哪些人员进行派工。系统允许使用表达式,可使用二次开发进行派工修改人的定义。
当使用表达式来指定候选人时,表达式的结果是候选人的ID,如果需要指定多个候选人,那么表达式的结果应该是这样的一个字符串:把候选人的ID拼接成一个用逗号分隔的字符串如 "2,3,4,5" , 表达式中允许使用单元格名(如A1,B5)或别名来引用表单上的数据,值得注意的是请使用cstr,cint,clng ,cdbl ,cdate等函数对单元格的数据做强制类型转换后再做运算,如:请使用cint(A1)+5 ,而不要直接用A1+5。
在表达式中可能使用系统提供的部门人员函数来指定候选人,详细参看函数帮助中的“部门信息函数”和“人员信息转换函数”。如下示例表示的是当前操作人员所在分单位中的管理一科中的所有人员参与本次派工:
allUserOfDepartment( relativeDepartmentId( groupCodeOfSomeone(currentUserId()), "管理一科"))
如果使用表达式仍无法满足要求,那么WiseFlow 使用Rhino做为脚本引擎提供了强劲的二次开发能力。因此使用最后的绝招:使用脚本来指定候选人。
可以定义一个函数 getExecutor(),返回候选人的ID(如果需要返回多个候选人,那么把他们的ID拼接成一个用逗号分隔的字符串如 "2,3,4,5")来指定本步骤的候选候选人。 下面是一段脚本示例:
function getExecutor()
|
由于表达式相对二次开发而言,要简单许多,所以,从方便日后的维护出发,尽量使用表达式做定义,少用二次开发。
系统还允许指定哪些人员不参与派工。定义方式与派工候选人的定义是相同的。值得注意的是这里定义的是不参与本派工的人员。比如科室的领导不参与派工。
如下例:表示的是当前操作人员所在分单位中的“管理一科”的科长不参与派工。
masterLeaderIdOfDepartment( relativeDepartmentId( groupCodeOfSomeone(currentUserId()), "管理一科"))
当执行派工操作后,系统需要将派工信息保存到表单中。每一个派工操作,系统保存如下4个信息:
它们分别对应的字段名为: hcfzrid , hcfzrssoname , hcrids ,hcrshownames .由于系统允许在一个工作中的多个步骤中执行派工操作,所以必须为这些字段指定一个后缀,用于区分。
比如当定义字段后缀为“_1” 是,派工数据保存到的字段分别是hcfzrid_1 , hcfzrssoname_1 , hcrids_1 ,hcrshownames_1 。
当然,如果一个工作流定义中仅一个步骤需要派工,那么可以不指定后缀名。
自动创建字段
当点击“自动创建字段” 后,系统将自动在表单的主表中加上上述的4个字段。当这些字段已经存在时,系统不会重复创建。因此需要做的工作是将这4个字段绑定显示到表单界面上。值得注意的是将“主要负责人的ID”绑定到界面上时,编辑方式请设置为“列表”“人员ID与实名”,如图:

派工操作是通过点击“派工”按钮来实际执行的,因此必须在表单中的合适位置摆放一个“派工”按钮。
有时在指定派工按钮放置的单元格后,在工作流转中,派工按钮并没有显示出来,可能的原因有: