前面两章讲解了工作流的整体设计和数据库设计,从这章开始就讲类的设计。整体来说我们分为4个部分:数据库访问部分,Activity活动部分,业务接口部分,引擎核心部分和生成待办部分。
一. 数据库访问部分设计. 也就是工作流的底层访问部分。这部分主要是用来操作工作流数据库的,功能点上主要包括:工作流模板信息,工作流活动信息,工作流活动角色信息,工作流活动条件信息,工作流实例信息,工作流实例节点信息,工作流实例节点角色信息,工作流实例条件信息和审批日志。下面是具体接口的代码:
1. 工作流模板.
public interface IWorkflowTemplateService
{
/// <summary>
/// Get the entity of WorkflowTemplate by entity id
/// </summary>
/// <param name="workflow">entity id which is from XML and ready it by Foundation service</param>
/// <returns>return the WorkflowTemplate result which only one</returns>
WorkflowTemplateResult ReadByWorkflow(string workflow);
/// <summary>
/// Get the entity of WorkflowTemplate by template id
/// </summary>
/// <param name="workflow">the primary key which belongs to WorkflowTemplate</param>
/// <returns>return the WorkflowTemplate result which only one</returns>
WorkflowTemplateResult ReadByTemplateID(Guid templateID);
/// <summary>
/// Save the entity of WorkflowTemplate
/// </summary>
/// <param name="data">the entity of WorkflowTemplate</param>
/// <returns>operation result which true or false</returns>
[OperationContract]
bool Save(WorkflowTemplateParameter data);
/// <summary>
/// Delete the entity of WorkflowTemplate
/// </summary>
/// <param name="templateID">The entity of primary key</param>
/// <returns>return operation result which true or false</returns>
bool Delete(Guid templateID);
/// <summary>
/// Update the entity of WorkflowTemplate
/// </summary>
/// <param name="data">the newer entity of WorkTemplate</param>
/// <returns>return operation result which true or false</returns>
bool Update(WorkflowTemplateParameter data);
}
2. Activity活动
public interface IWorkflowTemplateFlowService
{
/// <summary>
/// Get the entity of WorkflowTemplateFlow by Flow id
/// </summary>
/// <param name="FlowID">the primary key of WorkflowTemplateFlow</param>
/// <returns>return the WorkflowTemplateFlow result which only one</returns>
WorkflowTemplateFlowResult ReadByFlowID(Guid FlowID);
/// <summary>
/// Get the entity of WorkflowTemplateFlow by workflow template id
/// </summary>
/// <param name="templateID">workflow template id which belongs to WorkflowTemplateFlowResult</param>
/// <returns>return the WorkflowTemplateFlow array</returns>
List<WorkflowTemplateFlowResult> ReadByTemplateID(Guid templateID);
/// <summary>
/// Get the first entity of WorkflowTemplateFlow by entity id
/// </summary>
/// <param name="templateID">workflow template id which belongs to WorkflowTemplate</param>
/// <returns>return the first WorkflowTemplateFlow which only one</returns>
[OperationContract]
WorkflowTemplateFlowResult ReadFirstByTemplateID(Guid templateID);
/// <summary>
/// Get the closed entity of WorkflowTemplateFlow by Flow id
/// </summary>
/// <param name="FlowID">workflow template id which belongs to WorkflowTemplate</param>
/// <returns>return the WorkflowTemplateFlow array</returns>
List<WorkflowTemplateFlowResult> ReadNextByFlowID(Guid flowID);
/// <summary>
/// Get the entity of WorkflowTemplateFlowResult which is container by entity id
/// </summary>
/// <param name="templateID">the parent Flow id</param>
/// <returns>return the WorkflowTemplateFlowResult result which only one</returns>
WorkflowTemplateFlowResult ReadNoContainerNextByFlowID(Guid flowID);
/// <summary>
/// Get the entity of WorkflowTemplateFlowResult by entity id
/// </summary>
/// <param name="templateID">entity id which is from XML and ready it by Foundation service</param>
/// <returns>return the WorkflowTemplateFlow array which contains the Flow's child</returns>
List<WorkflowTemplateFlowResult> ReadContainerNextByFlowID(Guid flowID);
/// <summary>
/// Save the entity of WorkflowTemplateFlow
/// </summary>
/// <param name="data">the entity of WorkflowTemplateFlow</param>
/// <returns>operation result which true or false</returns>
Guid Save(WorkflowTemplateFlowParameter data);
/// <summary>
/// Delete the entity of WorkflowTemplateFlow
/// </summary>
/// <param name="templateID">The entity of primary key</param>
/// <returns>return operation result which true or false</returns>
bool Delete(Guid flowID);
/// <summary>
/// Delete the list of WorkflowTemplateFlow
/// </summary>
/// <param name="flowIDs">the list of keys</param>
/// <returns>return opeation result which true or false</returns>
bool DeleteList(List<Guid> flowIDs);
/// <summary>
/// Update the entity of WorkflowTemplateFlow
/// </summary>
/// <param name="data">the newer entity of WorkflowTemplateFlow</param>
/// <returns>return operation result which true or false</returns>
bool Update(WorkflowTemplateFlowParameter data);
/// <summary>
/// Delete the entity of WorkflowTemplateFlow
/// </summary>
/// <param name="templateID">The entity of primary key</param>
/// <returns>return operation result which true or false</returns>
bool SaveAndUpdateChild(WorkflowTemplateFlowParameter nowData, Guid childFlowID);
}
3. 日志
public interface IWorkflowRunLogService
{
/// <summary>
/// Save the workflow run log
/// </summary>
/// <param name="data">the entity of WorkflowRunLog</param>
/// <returns>return the operation record's primary key</returns>
Guid Save(WorkflowRunLogParameter data);
/// <summary>
/// Get the list of WorkflowRunLogResult by workflow instance id
/// </summary>
/// <param name="instanceFlowID">the workflow instance id</param>
/// <returns>return the WorkflowRunLogResult array</returns>
List<WorkflowRunLogResult> ReadByFlowID(Guid flowID);
/// <summary>
/// Get the list of WorkflowRunLogResult by workflow instance id
/// </summary>
/// <param name="instanceFlowID">the workflow instance id</param>
/// <returns>return the WorkflowRunLogResult array</returns>
List<WorkflowRunLogResult> ReadByInstanceID(Guid instanceID);
/// <summary>
/// Get the entity of WorkflowRunLogResult by primary key
/// </summary>
/// <param name="logID">the primary key of WorkflowRunLogResult</param>
/// <returns>return the one WorkflowRunLogResult</returns>
WorkflowRunLogResult Read(Guid logID);
/// <summary>
/// Update the logs's status by flowID
/// </summary>
/// <param name="flowID">the key of WorkflowInstantceFlow</param>
/// <param name="status">the target status</param>
/// <returns>return true or false</returns>
bool UpdateStatus(Guid flowID, RunStatus status);
/// <summary>
/// Update the logs's status by flowID
/// </summary>
/// <param name="flowID">the keys of WorkflowInstantceFlow</param>
/// <param name="status">the target status</param>
/// <returns>return true or false</returns>
bool UpdateListStatus(List<Guid> flowIDs, RunStatus status);
}
在设计的过程实例和这个上面2个接口差不多,就是参数多一些。(由于临时有事离开,待续)
分享到:
相关推荐
其中基于工作流引擎信息系统框架的数据模型又分为框架模型、机构模型和信息模型三类。控制模型将信息模型、机构摩型和框架模型有机的结合在一起,它根据其中定义的业务规则来流转业务流程,控制模型是工作引擎的控制...
一类资源描述:Java ASP系统毕业设计资源 1. 概述:该资源集中于Java与ASP结合的Web系统毕业设计。对于学生而言,它提供了从初步的构想到实际开发所需的全方位辅助材料,包括论文、设计文档和源代码等。 2. 包含内容...
1.Application.nsf 工作流应用库(工作流运行库,三个流程定义中,外出申请可以实际运行,其它为示意流程,不能实际运行) 2.Process.nsf 流程定义库(附加三个经过测试的简单流程定义) 3.Organization.nsf ...
MVC应用程序工作流引擎。 用于文件访问,网络,设备集成和IoC容器的支持库。 您可以: 快速构建移动和桌面应用程序。 将完全本机视图与跨平台视图混合并匹配。 将平台特定的第三方库和视图集成到应用程序中。 轻松...
火龙果软件工程技术中心 工作流...XPDL是至今工作流领域最为重要的一个标准,目前大多数工作流引擎是依据该标准设计开发的。工作流的中的三类数据:1.工作流控制数据(WorkflowControlData):工作流引擎通过控制数据来辨别
1. 纷享销客自定义函数能够通过执行简单的程序脚本更新相关CRM模块或第三方应用程序中的数据,并且可以进行数据校验判断和执行动作,记录与工作流标准匹配时,工作流引擎自动触发自定义函数并更新 CRM 记录。...
第三阶段的主要工作的测试工作,并要写出测试分析报告,项目开发总结报告。 2)、条件与限制: 1).本软件运行的最短寿命估计为5年; 2).不考虑经费来源和使用限制; 3).无法律和政策方面的限制; 4).本项目开发所需...
10.1 在 delphi 6开发 midas三层应用程序 10.1.1 在 delphi 6中创建应用服务器 10.1. 2 在delphi 6中创建客户程序 10.1.3 与应用服务器链接 10.1.4 调用服务器上的接口 10.1.5 在客户端纠错 10. ...
1.1 开发站点前的配置 1 1.1.1 创建Web站点 1 1.1.2 使用站点安全工具配置身份验证模式 2 1.1.3 配置站点的数据存储方式 4 1.1.4 定制自己的数据存储方式 4 1.2 最普通的登录方式 6 1.2.1 用户注册功能...
传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作。 然而,由于HTML5的W3C标准规范还未制定,安卓系统中类...
集成驰骋工作流引擎表单引擎jflow - 预告 springboot-plus 将于jflow合作,把开源的驰骋工作流引擎集成到框架里面去. 驰骋BPM官方网站 JFlow下载地址. JFlow 的在线文档 ,视频教程: springboot-plus 一个基于...
深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP.Net应用程序的多进程模型 NET委托...
第三方库 poi Jsoup zxing Gson 数据结构 树 栈 链表 队列 图 操作系统 linux 代码控制 自动化代码检查 sonar 代码规范 阿里巴巴Java开发规范手册 UMPAY——编码规范 日志规范 异常规范 网络 ...
� 现有应用完善度不太够,需要的开发工作量较大。----------------------------------- Android 编程基础 6 � 基于 QEMU 开发的模拟器调试手段不十分丰富,只支持通话、SMS等,速度慢。 � 暂不具备 Push Mail ...
复杂流程业务采用表单自定义,业务流程使用工作流来实现、扩展出任务接口,供开发编写业务逻辑。实现了流程任务节点和任务接口的灵活配置,既保证了公司流程的保密行,又减少了开发人员的工作量。 JEECG功能特点 1、...
第章:在三维(D)环境中工作 D显示对象的基础知识 了解FlashPlayer和AIR运行时中的D显示对象 创建和移动D显示对象 将D对象投影到D视图上 示例:透视投影 执行复杂的D转换 通过三角形获得D效果 第章:文本使用基础知识 ...
特点:该平台集成了国内领先的Uniscope三维GIS引擎技术,覆盖全域的高分辨率卫星影像(CBERS-02B、SPOT5)、较高精度的地形高程数据、导航用道路和POI等矢量信息,符合保密规定的政府用户还可以享受航空影像数据...
| 工作流引擎:Activiti | | 前端技术:vue-admin-template + Node.js + Npm + Vue + ElementUI + Axios | | 微信公众号:公众号菜单 + 微信授权登录 + 消息推送 | 三、项目模块 - oa-parent:根目录,管理子模块...