文档章节

怎样使用CCBPM做一个项目管理系统(七)——业务数据类库-流程事件的应用

ccflow-黄志敏
 ccflow-黄志敏
发布于 2018/07/26 16:44
字数 1115
阅读 179
收藏 0

需求如下:

    在《017.员工入职流程》结束后,需要将员工数据记录到业务表Employee中,

    同时还需要为该员工新建登录系统的账号。

功能实现

事件类搭建

1.命名规则

在文件夹FlowEvent中,新建C#类,命名规则定义为FEE+流程编号。如当前流程编号为017,则新建类命名FEE017。

2.继承基类

事件类要继承的基类为:BP.WF.FlowEventBase。该基类可获取流程WorkID  FK_Node等基本属性字段值。

3.构造函数与重载字段

  构造函数为空参数即可。

   需要重载FlowMark字段,内容为当前流程编号。

4.事件类与流程关联。

    编译整体项目,WEB项目引用该类库,重新进入流程设计器打开该流程,在流程属性中点击保存实现当前事件类与流程的绑定。

 

5.流程事件功能实现

    CCBPM中包含有以下流程事件,基本包含了所有的事件类型。通过重载事件业务功能即可。

                 EventListOfNode.CreateWorkID: // 节点表单事件。
                 EventListOfNode.FrmLoadAfter: // 节点表单事件。
                 EventListOfNode.FrmLoadBefore: // 节点表单事件。
                 EventListOfNode.SaveAfter: // 节点事件 保存后。
                 EventListOfNode.SaveBefore: // 节点事件 - 保存前.。
                 EventListOfNode.SendWhen: // 节点事件 - 发送前。
                 EventListOfNode.SendSuccess: // 节点事件 - 发送成功时。
                 EventListOfNode.SendError: // 节点事件 - 发送失败。
                 EventListOfNode.ReturnBefore: // 节点事件 - 退回前。
                 EventListOfNode.ReturnAfter: // 节点事件 - 退回后。
                 EventListOfNode.UndoneBefore: // 节点事件 - 撤销前。
                 EventListOfNode.UndoneAfter: // 节点事件 - 撤销后。
                 EventListOfNode.ShitAfter:// 节点事件-移交后
                 EventListOfNode.AskerAfter://节点事件 加签后
                 EventListOfNode.AskerReAfter://节点事件加签回复后
                 EventListOfNode.QueueSendAfter://队列节点发送后
                 EventListOfNode.FlowOnCreateWorkID: // 流程事件 
                 EventListOfNode.FlowOverBefore: // 流程结束前.。
                 EventListOfNode.FlowOverAfter: // 流程结束后。
                 EventListOfNode.BeforeFlowDel: // 流程删除前。
                 EventListOfNode.AfterFlowDel: // 删除后.
                 EventListOfNode.WorkArrive: // 工作到达时.

功能实现

需求:

   在《017.员工入职流程》结束后,需要将员工数据记录到业务表Employee中,

    同时还需要为该员工新建登录系统的账号。

    流程结束事件重载

        /// <summary>
        /// 流程结束事件
        /// </summary>
        /// <returns></returns>
        public override string FlowOverAfter()
        {
            return base.FlowOverAfter();
        }

    流程数据提取

    流程数据根据流程新建时数据存储模式的不同,将分别存储在不同的数据表中。共有的数据表为ND17RPT和ND17Track数据表。

    以数据存储模式为合并模式为例,从ND17Rpt中提取表单填写的数据。

  /// <summary>
        /// 获取表单数据
        /// </summary>
        public void Get_RptData()
        {
            //获取当前流程的表单数据,其中WorkID为唯一编号
            MapData map = new MapData("ND17Rpt");
            GEEntity genEn = map.HisGEEn;
            genEn.SetValByKey("OID", this.WorkID);
            genEn.RetrieveFromDBSources();
         
            //新增员工数据
            Employee ee = new Employee();
            /**
             * 为员工表的Name字段赋值
             * 数据来源于ND17RPT数据表的RZName字段
             * RZName入职人员名称为表单中存储入职人员姓名的控件ID
             * **/
            ee.SetValByKey("Name",genEn.GetValByKey("RZName"));
            //其他字段以上做数据赋值
            //员工新增
            ee.Insert();
        }

    上述方法实现了流程数据的获取的新员工数据的新增,将会在员工数据表中新增一条数据。

    在流程结束事件中,调用该方法即可。

/// <summary>
        /// 流程结束事件
        /// </summary>
        /// <returns></returns>
        public override string FlowOverAfter()
        {
            Get_RptData();
            return base.FlowOverAfter();
        }

    基类保存事件重载

    新增员工后,还需要同时为该员工开通登录系统的账号,则需要在员工新增时同步新增一条数据到账号表中即可。

    基类的事件有以下类型,基本可以满足日常需要:  新增、新增前、新增后、删除、删除前、删除后、修改、修改前、修改后等。

    其他类型可在 BP.En.Entity中查看。

    在Employee类中,重载保存后方法。

        /// <summary>
        /// 新增员工后,要同步到port_emp表中。
        /// </summary>
        protected override void afterInsert()
        {
            BP.GPM.Emp emp = new GPM.Emp();
            emp.No = this.LoginNo;
            emp.Name = this.Name;
            emp.FK_Dept = this.FK_Dept;
            emp.Pass = "123";
            emp.Tel = this.BRLXFS;
           // emp.EmpNo = this.DDNo;
            emp.Insert();
            //其他非实体类数据表数据同步
            string mypk = emp.FK_Dept + "_" + emp.No;
            BP.DA.DBAccess.RunSQL("INSERT INTO PORT_DEPTEMP(MyPK,FK_Emp,FK_Dept,FK_Duty,DutyLevel,Leader) values('" + mypk + "','" + emp.No + "','" + emp.FK_Dept + "','0','','')");

            base.afterInsert();
        }

    上述功能即实现了流程结束后,员工表和系统组织结构表中均有一条数据新增。

    运行流程测试即可。

© 著作权归作者所有

ccflow-黄志敏

ccflow-黄志敏

粉丝 8
博文 23
码字总数 13776
作品 0
济南
程序员
私信 提问
加载中

评论(0)

驰骋工作流引擎-嵌入式表单的介绍

嵌入式表单的介绍 关键词: 工作流表单方案 表单自定义 java工作流引擎 工作流设计 定义概述:一个已经做好的表单需要绑定到节点上。 自定义表单工作模式:流程控制按钮区域是ccBPM来完成,表...

ccflow周朋
2019/03/30
78
0
工作流系统-驰骋BPM工作流 引擎的工作模式

关键字:驰骋工作流引擎 流程引擎工作模式 流程中间件工作模式 工作流快速开发平台 工作流流设计 业务流程管理 asp.net 开源工作流 bpm工作流系统 java工作流主流框架 自定义工作流引擎 内容...

孟娟
2019/11/28
107
0
关于开源驰骋工作流引擎ccbpm对bpmn2.0的支持

各位ccbpmer : Ccbpm将要支持bpmn2.0了。 我们会保留现在的ccbpm设计模式,也支持bpmn2.0的规范,让ccbpm与国际接轨。包括.net版本ccflow与java版本jflow。在新版本中,我们将要支持导出导入...

ccflow
2015/09/18
301
1
OSChina 技术周刊第三期——最最常用的 100 个 Java 类

每周技术抢先看,总有你想要的! 移动开发 【博客】浅入浅出Android(014):HTTP GET获取文本内容 【博客】[Android][Android Studio] *.jar 与 *.aar 的生成 【资讯】移动 UI 模式 —— 用...

OSC编辑部
2014/10/05
4.7K
9
驰骋工作流引擎-中间件模式代码集成

关键词:工作流快速开发平台 工作流流设计 业务流程管理 asp.net 开源工作流 bpm工作流系统 java工作流主流框架 自定义工作流引擎 表单设计器 流程设计器 前端代码集成步骤: 驰骋BPM的代码集...

孟娟
2019/12/06
65
0

没有更多内容

加载失败,请刷新页面

加载更多

汇桔网被曝拖欠12月工资至今,强制买产品,CEO称去年交易额400亿

  三言财经消息,近日有汇桔网员工爆料,汇桔网拖欠 12 月工资至今,通知延迟到 4 月才发放。   此外爆料还指出,“各种手法逼迫大家离开,员工要么继续忍受,要么主动离职,要么停薪留职...

水果黄瓜
13分钟前
24
0
SpringCloud微服务:阿里开源组件Nacos,服务和配置管理

源码地址:GitHub·点这里||GitEE·点这里 一、阿里微服务简介 1、基础描述 Alibaba-Cloud致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过...

知了一笑
19分钟前
23
0
Linux就该这么学 -- shell编程

等待完成

jionzhao
25分钟前
32
0
MariaDB修改root密码

# mysql -uroot -p 2.1 更新 mysql 库中 user 表的字段: MariaDB [(none)]> use mysql; MariaDB [mysql]> UPDATE user SET password=password('newpassword') WHERE user='root'; MariaDB ......

牛A和牛C之间的我
34分钟前
46
0
创龙Xilinx Zynq-7000系列SoC高性能处理器开发板的SFP+接口、FMC接口

TLZ7xH-EVM是一款由创龙基于SOM-TLZ7xH核心板设计的开发板,底板采用沉金无铅工艺的6层板设计,为用户提供了SOM-TLZ7xH核心板的测试平台,用于快速评估核心板的整体性能。 SOM-TLZ7xH引出丰富...

Tronlong创龙
46分钟前
55
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部