水工鸟的专栏

水工鸟CSDN博客

H3流程开发笔记(二)启动一个新流程(上)

前提

1.请假流程模板流程 ,设计如下图


点击工具栏的表单,添加表单页面地址
image

 

右击发起结点,在弹出的页面中设置该活动的表单
image 

 

 

 

 

发布模板

 

2.创建业务数据库以及请假记录表

 

image

数据库名称:H2_BusinessDemo,表ApplyLeaveInfo语句如下

create table ApplyLeaveInfo(
ID int identity , --主键编号
startDate date ,--起始日期
endDate date,--结束日期
ApplyResult bit,--结果
WorkItemId nvarchar(36), --流程项编号,与H3的OT_WorkItem关联

tokenId [int] NULL--步骤编号
)

 

3.创建网站

新建WebSite,这里取名为FlowSite

添加H3相关DLL的引用 (下图中有WorkSheet.DLL,如果不用H3的表单控件,可不添加之类库)

image

添加InterPrise的Data和Common的引用,用于操作业务库数据

image

 

新建类BasePage,放到App_code,定义一些方法在该类里(比如获取用户信息),然后所有的表单页面继承该类

 

4.创建登录页面Login.aspx

拉一个登录控件,在登录事件中定义如下

注意其中两地方:
1).获取用户信息和保存用户权限,这里使用Session记录,当然也可以换其它方式,BasePage.UserValidatorSessionName就是一个只读字符串,定义在BasePage中

 

2).检测流程引擎是否就绪,这里使用了Try…Catch的方式

 

5.显示待处理列表

获取流程类型和名称:


//查询待处理表

H3中,操作的流程记录放在OT_WorkItem这张表里,里面有流程实例,流程名称,版本,以及发起人,参考者,如果一个活动项的参考者为一个组,那么在完成这个活动的前一个活动后,会插入组内的所有用户的待处理,登录人的待处理只要以自己的ID去查询该表,查询语句如下

SELECT * FROM OT_WorkItem WHERE WorkflowPackage='流程类型' AND WorkflowName='流程名称' AND Participant='参与者ID' AND State!=2 AND State!=3         ORDER BY ReceiveTime DESC

 

在H3的Portal里有封装这样的方法

public static System.Data.DataTable QueryWorkItem(
          string WorkflowPackage, // 流程类型
          string WorkflowName, // 流程名称
          int WorkflowVersion, // 流程版本
          string ActivityName, // 流动项名称(流程步聚名称)
          string[] Instances, // 实例ID(启动一个流程产生一个实例)
          string[] Participants, // 参与者
          System.DateTime From, //开始时间
          System.DateTime To, // 结束时间
          OThinker.H3.WorkItem.WorkItemState State, //工作项的状态{等待,正在工作中,完成,被取消}
          OThinker.H3.Instance.PriorityType Priority, //优先级的类型{低,普通,高}
          string InstanceName, // 实例名称,与InstanceId对应
          string Receiptor, // 暂时还不知道干嘛的
          OThinker.Data.BoolMatchValue Approval, // 是否批准
          OThinker.Data.BoolMatchValue Elapsed) //是否计划完成(true的话,就是计划完成时间要小于当前时间)

以下是查询事件内容:

 

源码下源:FlowSite

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fzzsh/article/details/5638467
个人分类: 工作流
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭