本篇以报销审批为样本演示 O2OA 平台流程应用的开发顺序,先明确按金额阈值分流的审批需求与表单字段,再建应用、画节点、连路由,并为各环节配置处理人。处理人可借助职务与组织范围自动匹配,分支条件由脚本按表单合计金额判断。表单只需在发起环节绑定,后续环节未绑定即沿用上游表单,收尾可加待阅通知。多人协作环节还需在单人、并行、串行与抢办之间选型,移动端则应清理固定宽度与不适用的操作条。
本篇采用实例开发的方式,讲解如何在 O2OA 平台中开发一个简单的费用报销流程,内容包括流程设计、配置、表单设计、条件判断以及流程开发成果的验证。
1、O2Server 服务器正常运行,系统安装部署请参考文档《服务器下载及私有云部署》
2、使用具备管理员权限的账号登录 O2OA 平台,例如:xadmin
3、已经完成对系统组织信息以及人员信息的录入和维护工作。设置组织架构及员工信息相关操作请参考《设置组织架构及员工信息》。
本篇以 OA 系统中的报销审批流程为例,说明流程应用的开发与实施步骤。
首先模拟一个完整的报销审批流程需求。该需求主要分为两部分:流程与表单。
OA的报销流程部分,关于金额对流程的影响,我们将其分成两种情况:
报销金额<=3000元时,审批路径为:【提交报销】→【部门领导审核】→【会计初审】→【分管领导审批】→【会计核定】;
报销金额>3000元时,审批路径为:【提交报销】→【部门领导审核】→【会计初审】→【公司领导审批】→【会计核定】
OA 表单部分:表单包含标题、申请人、申请部门、费用发生地、项目名称、报销种类、单据张数、账户名称、收款账号、开户银行、公务描述和报销明细等字段。
使用开发者身份登录 O2OA 系统(管理员需事先在组织管理中配置完成)。从首页左上角的 O2OA 应用菜单进入流程应用管理平台。如下图所示:
在流程应用管理中,点击“新建应用”,创建名为报销管理的流程应用,如下图所示:
在系统弹出的流程应用信息录入对话框中输入应用名称为:报销管理。
“应用名称”:必填项,此处应填写为“报销管理”;
“应用别名”:选填项,可根据实际要求填写;
“应用描述”:选填项,可根据实际要求填写;
“应用类型”:选填项,可根据实际要求填写;
填写完成后点击“完成”即可。点击打开报销管理应用,可以看到如下界面:
流程应用设计器界面左侧包含六种设计元素:
表单配置:设计和开发流程中需要使用的表单。
流程配置:设计和开发流程各审核环节的信息。
数据配置:设计和管理流程中需要使用的数据,如报销类型、请假类型等固定可选数据。
脚本配置:设计和开发流程中需要调用的脚本。
资源文件:提供流程中可直接访问的固定文档、图片,便于以 URL 方式访问。
应用属性:对应用信息与权限进行管理和设定。
本章教程主要讲解 O2OA 流程和表单两种元素的配置,其他元素将在后续高阶课程中陆续介绍。
在“表单配置”导航中,点击新建图标新建表单,系统会弹出模板供选择。
点击“通用表单模板”,新建一个表单,并将表单名称改为“报销申请表单”。如下图:
在“基本信息”表格中,将字段标题修改为需要的字段。
行数不足时,可选中一个单元格,点击增加行功能以增加需要的行数,如下图所示:
为新增行的标题单元格设置样式“标题单元格”,内容单元格设置样式“内容单元格”
拖动左侧“文本”控件到新增的标题单元格中
删除多余的内容控件,重新拖入左侧符合业务需求的内容控件并修改相应的配置
标题:";文本字段";,标识为"subject";,设置默认值和非空校验:
return this.workContext.getWork().title;
前端脚本在O2OA API里面有很清楚的用法介绍,具体访问地址是:https://www.o2oa.net/api/
申请人:“人员组织” creatorPerson,设置默认值:return this.workContext.getWork().creatorIdentityDn;
申请部门:“人员组织” creatorUnit,设置默认值:return this.workContext.getWork().creatorUnitDn;
费用发生地:“地址” place
项目名称:“文本字段” projectName
报销种类:“下拉框” type ,可选值:差旅报销、雇员报销。默认值:return "差旅报销";
单据张数:“数字字段” number
账户名称:“文本字段” account
收款账号:“文本字段” receivingAccount
开户银行:“文本字段” bankAccount
公务描述:“多行文本” description
将“订单列表”修改为“报销明细”,报销明细列改为序号、科目名称、开始日期、结束日期、费用描述、发票金额
删除多余的内容控件,重新拖入左侧符合业务需求的内容控件并修改相应的配置
科目名称:“下拉框” subjectName,可选值:火车票、飞机票、住宿、餐费、其他
开始日期:“日期选择” startDate
结束日期:“日期选择” endDate
费用描述:“文本字段” costDescription
发票金额:“数字字段” amount
设置“发票金额”列的合计数值,其他列均设置为不需要
设置“报销明细”不能为空。报销明细使用的是“数据表格”控件,内容以数组存储,因此配置时需要选择“值长度”。
删除审批信息模块
在前述表单设计器中,点击右上方“Mobile”按钮,系统会将页面切换到 Mobile 表单设计器,可在此进行移动端表单的相关设计与调整。如下图所示:
从 PC 端同步过来的表单信息带有固定宽度,而 Mobile(移动)端并不需要,因此删除对应 div 上的固定宽度,使其自适应手机宽度即可。
另外,从 PC 端表单同步到移动端表单的还有顶部操作栏 actionBar,该组件在移动端表单中无法使用,可在此将其从移动端表单中删除。最终的设计效果如下图所示:
至此,我们完成了报销审批流程中表单部分的开发。下一章将介绍报销审批流程中的流程开发部分。
在流程设计器的模板选择中,选择默认流程作为基础模板,如下图所示:
将流程名称修改为“报销审批流程”,然后按照需求将所有节点活动拖入,并分别修改名称。如下图所示:
接下来需要绘制上述路由(连线)。双击活动节点即可创建路由,然后修改路由名称。路由表示审批过程的流转指向,按业务需求确定由哪个环节流转到哪个环节。
提示:某些浏览器通过双击无法实现添加路由的功能,此时可以使用顶部操作栏中的添加路由按钮来完成添加路由的操作。
接下来需要为每个活动配置对应的处理人。在“提交报销”环节中,系统会自动判断处理人为空时默认以拟稿人为处理人,因此该环节无需配置。
“部门领导审核”环节的处理人应为拟稿人所在的部门领导,需要进行配置:选择范围为拟稿人所在部门的部门正、副职,可通过职务实现该功能。
请注意:职务需要提前在组织管理里的组织信息中设计并配置完成。
具体配置步骤如下:
1)选择“请审核”这条路由,在右侧“属性”->“选择”选项卡中配置选择人员项;
2)在选择项基本栏中,将标识和标题配置为:creatorLeader;
3)在选择项选择栏中,将组织范围设置为:拟稿人所在组织->直接所属组织;
4)在选择项选择栏中,将职务范围设置为:指定职务,并在选择职务栏中选择前期配置好的职务,此处选择部门正职和部门副职领导。
配置形式如下图所示:
请注意,配置完成后需要点击上方的添加选择项,为流程添加一个路由选择项。添加完成后,在“部门领导审核”环节配置处理人时,可直接选择流程数据 creatorLeader 作为环节处理人。
流程实际运行时,上一环节提交前,系统会按指定要求打开处理人选择框,供用户选择处理人。
配置界面如下图所示:
“财务领导审核”环节,我们默认其处理人为财务部部门正职领导,可直接在处理人环节选择该职务。
![]()
选择职务后,系统会弹出添加职务参数的对话框。其含义是:前面只选择了职务名称,但每个组织都可能设有相同职务(如部门正职),因此需要明确本环节取用的是哪个组织的部门正职。
这里的参数用于指定该职务所属组织,可选择组织“财务部”后确定。
需要注意的是,这里的“选择”环节不需要配置处理人,但是由该环节引出的两条路由需要配置条件,因为要根据金额的不同流转到不同的环节。
选中小于等于3000的这条路由,可以看到“条件”这个页签,在里面输入:
return parseFloat(this.data.datatable.total.amount) <=3000;
同样,在大于3000的路由条件中输入:
return parseFloat(this.data.datatable.total.amount) >3000;
按同样方式,“分管领导审批”和“公司领导审批”也通过指定职务实现,即指定公司下的公司领导和分管领导职务,需在组织管理中添加。职务添加如下图所示:
最后一个环节“会计核定”,假如用户提出有两名会计、需要 AB 角去处理,那么我们首先要配置会计职务,这里需要把两个会计都配置上,然后在“会计核定”环节选择上这个职务。
下面需要说明一下“会计核定”环节的处理方式问题。
流程的处理方式分为四种:
单人:多人都可以同时收到待办,但其中一人处理后,其他人的待办会消失。
并行:多人可以同时收到待办并同时处理,所有待办人处理完毕后流转到下一环节。
串行:多人按顺序收到待办,例如 ABC 三人,A 处理完毕后 B 收到待办,再由 C 收到待办,之后进入下一环节。
抢办:多人同时收到待办,其中一人打开文件后,其他人会收到当前文件已被锁定的提示;待其中一人处理完毕后,其他人的待办会消失。
默认处理方式均为单人,可按照业务需求修改。此处的 AB 角不需要修改,使用单人方式即可实现。
现在处理人已配置完成,还剩最后一步:需要把前面制作的表单与当前流程关联起来。在“提交报销”环节需要配置表单“报销申请表单”,后续环节可以配置也可以不配置,如果没有配置表单,就会沿用上一个环节的表单。
流程表单关联操作如下图所示:
在结束环节增加向拟稿人发送待阅的功能。待阅人脚本:return this.workContext.getWork().creatorIdentity;
至此,我们的报销审批流程开发完毕,可以投入使用。希望上述内容对读者的业务开发与实施有所帮助。
除信息发布模块的开发外,管理员还可以进行流程开发、移动端设置或其他实施工作。以下文章可能对您有帮助:
用户常见问题
整理自藕粉社区真实提问,按浏览量排序
Q企业微信的审批流程数据能导入吗?
查看原帖讨论 · 19,314 次浏览
Q集成企业微信后,在企业微信应用中审批流程,提交后一直loading
查看原帖讨论 · 9,309 次浏览
以上问题仍无法解决?到 藕粉社区 提问,或致电 400-888-0545。
相关内容
上一篇:设置组织架构及员工信息
下一篇:信息管理和信息栏目开发