小弟服务的公司要求我写一个线上请假系统,在网路上找免费的workflow软体,发现ProcessMaker Community蛮适用的,因此开始了学习ProcessMaker之旅。
目前请假系统已经接近完工,于是开始写教程,提供有兴趣的人参考。
首先介绍系统架构,由于公司原本是採纸本请假,人工递送方式,假单批完会送到人事做注记,原本就有一个人事用的注记系统,请参考下图
这个系统一看就知道是用Crystal Reports写的,只能是单机版应用程式,没有权限控管,只是单纯做资料库的CRUD而已,后端资料库是早期的MSSQL Express,要跟ProcessMaker结合也并非不行,于是资料库採取新旧并用,以便让人事能够持续使用旧系统注记,同时开发ProcessMaker的网页版注记介面,至于人员资料,为了能充分利用ProcessMaker的组织功能,主要的人事资料异动 (如新进、离职等,都用ProcessMaker的介面来完成,请参考下图
如果用有管理权限的帐号登入,就可以新增用户,在上方栏目选Admin,左侧栏目选Users,就具有新增、修改、删除用户等功能,进入新增后,可以建立新用户,如下图,可以输入中英文姓名、登入帐号、电子信箱、有效日期、密码等,也可以勾选让用户第一次登入后改密码,另外也可以选择适合该用户的日曆 (Calendar)
左侧栏目还有几个常用的功能,首先说明群组 (Groups) 功能,这个功能是用来增加各种群组,每个用户不限一个群组,群组的功能就是用来在特定情况下,只允许某个特定群组执行该功能,这里举一个实际例子,下面有几张图,第一张图表示具有HR群组的人员,一共有3位,因为个资保护,将姓名抹除,第二张图显示在 ”请假单(上传)” 这个步骤中设定了两个条件,第一是选单编号变数值为5 (选单编号是由一个下拉式选单所产生) ,第二是群组HR变数值为1 (群组HR是由一个Trigger所产生,Trigger因为不知道该怎么翻成中文,所以沿用原文,在每个Dynaform或特定步骤前后都可以置入Trigger,Trigger实际上也就是一小段php程式)
下图就是根据@@USR_USERNAME这个系统变数,来判断该用户是否属于HR等3个群组,如果符合,就将相对应的变数设为1
然后将这个Trigger加入第一个Dynaform之后,在用户完成选择表格之后就可以判断用户是否属于HR群组,当进行到 ”请假单(上传)” 这个步骤时,如果非属于HR群组,这个步骤即被跳过
接下来说明何为Dynaform,其实Dynaform就是一个网页表单,里面可以放入各类UI元件以完成特定的功能,在这个例子中, “选择表格” 是最简单的Dynaform,如下图,它只有两个UI,一个下拉选单和一个按钮,下拉选单里面每一个选项都是一个Dynaform,对应到ddSelectForm,如要执行外出单的话,该值就必须为1,依此类推
今天就先解说到此,下次将介绍Departments的功能及其运用方式。
FB社团同步发表
ProcessMaker中文交流