在前面一节中简单的讲解了基本原理,从这节开始会详细讲解。首先需要讲解的就是数据设计,下面就是数据库的相关设计
表名:WorkflowTemplate--工作流模板
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 默认值 | 说明 | 1 | TemplateID | uniqueidentifier | 16 | 0 | | 是 | 否 | | | 2 | TemplateName | nvarchar | 36 | 0 | | | 是 | | | 3 | Workflow | nvarchar | 100 | 0 | | | 是 | | | 4 | RecordStatus | nvarchar | 36 | 0 | | | 是 | | | 5 | CreateDate | smalldatetime | 4 | 0 | | | 是 | getdate | | 6 | CreateUserID | int | 4 | 0 | | | 是 | | | 7 | ModifyDate | smalldatetime | 4 | 0 | | | 是 | getdate | | 8 | ModifyUserID | int | 4 | 0 | | | 是 | | | |
表名:WorkflowTemplateFlow--模板活动Activity
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 默认值 | 说明 | 1 | FlowID | uniqueidentifier | 16 | 0 | | 是 | 否 | | | 2 | Activity | nvarchar | 100 | 0 | | | 是 | | | 3 | ActivityName | nvarchar | 36 | 0 | | | 是 | | | 4 | ActivityType | nvarchar | 36 | 0 | | | 是 | | | 5 | ApplicationCode | nvarchar | 100 | 0 | | | 是 | | | 6 | TemplateID | uniqueidentifier | 16 | 0 | | | 是 | | | 7 | ParentFlowID | uniqueidentifier | 16 | 0 | | | 是 | | | 8 | ContainerFlowID | uniqueidentifier | 16 | 0 | | | 是 | | | 9 | GroupID | uniqueidentifier | 16 | 0 | | | 是 | | | 10 | IsGroup | int | 4 | 0 | | | 是 | | | 11 | IsExpire | bit | 1 | 0 | | | 是 | | | 12 | IsNotice | bit | 1 | 0 | | | 是 | | | 13 | ExpireDay | int | 4 | 0 | | | 是 | | | 14 | Desciption | nvarchar | 250 | 0 | | | 是 | | | 15 | RecordStatus | nvarchar | 36 | 0 | | | 是 | | | 16 | CreateDate | smalldatetime | 4 | 0 | | | 是 | getdate | | 17 | CreateUserID | int | 4 | 0 | | | 是 | | | 18 | ModifyDate | smalldatetime | 4 | 0 | | | 是 | getdate | | 19 | ModifyUserID | int | 4 | 0 | | | 是 | | | |
表名:WorkflowFlowRole--Activity审批权限
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 默认值 | 说明 | 1 | RoleID | uniqueidentifier | 16 | 0 | | 是 | 否 | | | 2 | FlowID | uniqueidentifier | 16 | 0 | | | 是 | | | 3 | RefRoleTable | nvarchar | 100 | 0 | | | 是 | | | 4 | RefRoleID | int | 4 | 0 | | | 是 | | | 5 | RoleRemark | nvarchar | 250 | 0 | | | 是 | | | |
表名:WorkflowFlowCondition--分支节点条件
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 默认值 | 说明 | 1 | ConditionID | uniqueidentifier | 16 | 0 | | 是 | 否 | | | 2 | FlowID | uniqueidentifier | 16 | 0 | | | 是 | | | 3 | TargetFlowID | uniqueidentifier | 16 | 0 | | | 是 | | | 4 | EntityName | nvarchar | 100 | 0 | | | 是 | | | 5 | EntityFormula | nvarchar | 250 | 0 | | | 是 | | | 6 | EntityValue | nvarchar | 250 | 0 | | | 是 | | | 7 | EntityRemark | nvarchar | 250 | 0 | | | 是 | | | |
表名:WorkflowInstance--工作流运行实例
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 默认值 | 说明 | 1 | InstanceID | uniqueidentifier | 16 | 0 | | 是 | 否 | | | 2 | TemplateID | uniqueidentifier | 16 | 0 | | | 是 | | | 3 | TemplateName | nvarchar | 36 | 0 | | | 是 | | | 4 | Workflow | nvarchar | 100 | 0 | | | 是 | | | 5 | BizKey | nvarchar | 100 | 0 | | | 是 | | | 6 | OrgKey | nvarchar | 100 | 0 | | | 是 | | | 7 | RunStatus | nvarchar | 36 | 0 | | | 是 | | | 8 | RecordStatus | nvarchar | 36 | 0 | | | 是 | | | 9 | CreateDate | smalldatetime | 4 | 0 | | | 是 | getdate | | 10 | CreateUserID | int | 4 | 0 | | | 是 | | | 11 | ModifyDate | smalldatetime | 4 | 0 | | | 是 | getdate | | 12 | ModifyUserID | int | 4 | 0 | | | 是 | | | |
表名:WorkflowInstanceFlow--工作流运行实例节点
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 默认值 | 说明 | 1 | InstanceFlowID | uniqueidentifier | 16 | 0 | | 是 | 否 | | | 2 | InstanceID | uniqueidentifier | 16 | 0 | | | 是 | | | 3 | FlowID | uniqueidentifier | 16 | 0 | | | 是 | | | 4 | Activity | nvarchar | 100 | 0 | | | 是 | | | 5 | ActivityName | nvarchar | 36 | 0 | | | 是 | | | 6 | ActivityType | nvarchar | 36 | 0 | | | 是 | | | 7 | ApplicationCode | nvarchar | 100 | 0 | | | 是 | | | 8 | TemplateID | uniqueidentifier | 16 | 0 | | | 是 | | | 9 | ParentFlowID | uniqueidentifier | 16 | 0 | | | 是 | | | 10 | ContainerFlowID | uniqueidentifier | 16 | 0 | | | 是 | | | 11 | PrevFlowID | uniqueidentifier | 16 | 0 | | | 是 | | | 12 | GroupID | uniqueidentifier | 16 | 0 | | | 是 | | | 13 | IsGroup | int | 4 | 0 | | | 是 | | | 14 | IsNotice | bit | 1 | 0 | | | 是 | | | 15 | IsExpire | bit | 1 | 0 | | | 是 | | | 16 | ExpireDay | int | 4 | 0 | | | 是 | | | 17 | Desciption | nvarchar | 250 | 0 | | | 是 | | | 18 | RecordStatus | nvarchar | 36 | 0 | | | 是 | | | 19 | CreateDate | smalldatetime | 4 | 0 | | | 是 | getdate | | 20 | CreateUserID | int | 4 | 0 | | | 是 | | | 21 | ModifyDate | smalldatetime | 4 | 0 | | | 是 | getdate | | 22 | ModifyUserID | int | 4 | 0 | | | 是 | | | |
表名:WorkflowInstanceRole--工作流运行实例角色
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 默认值 | 说明 | 1 | InstanceRoleID | uniqueidentifier | 16 | 0 | | 是 | 否 | | | 2 | InstanceFlowID | uniqueidentifier | 16 | 0 | | | 是 | | | 3 | RoleID | uniqueidentifier | 16 | 0 | | | 是 | | | 4 | FlowID | uniqueidentifier | 16 | 0 | | | 是 | | | 5 | RefRoleTable | nvarchar | 100 | 0 | | | 是 | | | 6 | RefRoleID | int | 4 | 0 | | | 是 | | | 7 | RoleRemark | nvarchar | 250 | 0 | | | 是 | | | |
表名:WorkflowInstanceCondition--工作流运行实例条件
序号 | 列名 | 数据类型 | 长度 | 小数位 | 标识 | 主键 | 允许空 | 默认值 | 说明 | 1 | InstanceConditionID | uniqueidentifier | 16 | 0 | | 是 | 否 | | | 2 | InstanceFlowID | uniqueidentifier | 16 | 0 | | | 是 | | | 3 | ConditionID | uniqueidentifier | 16 | 0 | | | 是 | | | 4 | FlowID | uniqueidentifier | 16 | 0 | | | 是 | | | 5 | TargetFlowID | uniqueidentifier | 16 | 0 | | | 是 | | | 6 | EntityName | nvarchar | 100 | 0 | | | 是 | | | 7 | EntityFormula | nvarchar | 250 | 0 | | | 是 | | | 8 | EntityValue | nvarchar | 250 | 0 | | | 是 | | | 9 | EntityRemark | nvarchar | 250 | 0 | | | 是 | | | |
由上可以看出,运行实例是模板的复制,就是在运行的时候把同一业务的流程进行复制,然后运行的都是实例,操作实例对象。