转:传智播客—jbpm与OA项目(七) 续二

系统 1715 0

二、设计流程

         我们学习的内容以“请假流程”为例。

1. 设计流程

开始 -> 提交申请 -> 部门经理审批 -> 结束:

clip_image005

开始

为其添加一个名称为“提交申请”的 Task ,设置它的 Assignment Actor 为“ #{applicantActorId} ”。

为其添加一个名称为“审批”的 Task ,设置它的 Assignment handler 为“ cn.itcast.oa.process.leave.DeptManagerAssignmentHandler ”。

结束

 

DeptManagerAssignmentHandler 类的实现明天再列出,将上面设计的流程部署到 OA 项目中。然后编写测试类对流程进行测试。因为使用 JBPM 流程在前边已经讲过了,所以在些就不详细列出了。上面的流程执行过程为,开始:创建流程实例 à 办理任务:提交申请 à 办理任务:部门经理审批 à 结束。

 

三、表单实例

         我们已经将流程定义、表单定义搞定了和测试执行流程,接下来我们应该生成表单实例。将表单实例入到流程中进行流转处理。

 

         通过第一部分的全景图我们知道: FormDefinition FormInstance ApproveInfo Employee 之间的关系。

         FormDefinition :表单定义,能过定义生成实例。

         FormInstance :表单实例,一个流程中只能有一个表单实例。

         ApproveInfo :审批信息,一个流程中可以具有多个审批。

         Employee :职员

 

FormInstance

public class FormInstance {

    // 表单状态常量

    public static final String STATUS_PROCESSING = " 正在审批中 " ;

    public static final String STATUS_APPROVED = " 已通过审批 " ;

    public static final String STATUS_NOT_APPROVED = " 未通过审批 " ;

   

    private Long id ;

    private FormDefinition formDefinition ; // 使用的表单定义

    private Map<String, Serializable> propertyMap = new HashMap<String, Serializable>(); // 表单信息

 

    private Employee applicant ; // 申请人

    private Date applyTime ; // 申请时间

    private String title ; // 标题

    private String status ; // 状态

    private Set<ApproveInfo> approveInfos = new HashSet<ApproveInfo>(); // 审批信息

    private Long processInstanceId ; // 流程实例 ID

//setters and getters…

}

 

ApproveInfo

public class ApproveInfo {

    private Long id ;

    private Employee approver ; // 审批人

    private Date approveTime ; // 审批时间

    private FormInstance formInstance ; // 表单实例

    private boolean approval ; // 是否同意

    private String comment ; // 意见

    private Long taskInstanceId ; // 任务实例 ID

//setters and getters…

}

 

         现在看一看什么才是最重要的?就是这些实体,实体体现了业务逻辑。把业务逻辑搞明白了,实体设计出来了。实现上没有什么太难的。

 

         明日将学习具体生成表单实例并应用到流程中,生成审批信息等。我们也可以查看自己的申请和待我申请等与审批模块相关的操作信息。

转:传智播客—jbpm与OA项目(七) 续二


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论