O2OA使用手册
第1章 功能简介及概述
第6章 平台部署与配置
  • 6.1 O2OA(v9.5)开发平台更新说明(二):数据视图与内容管理双优化
  • 6.2 安装部署-私有化部署服务器架构推荐
  • 6.3 安装部署-在Linux系统中部署O2OA 平台
  • 6.4 安装部署-在Windows系统中部署O2OA 平台
  • 6.5 安装部署-通过Docker Hub快速部署docker镜像
  • 6.6 安装部署-在宝塔/PHPStudy中部署O2OA 平台
  • 6.7 安装部署-O2OA 平台之HTTP端口规划
  • 6.8 安装部署-平台服务器版本升级操作说明
  • 6.9 安装部署-O2OA 平台集群部署配置及操作说明
  • 6.10 安装部署-在线部署自定义应用的WAR包和JAR包
  • 6.11 服务器配置与管理-​O2OA主要配置文件说明
  • 6.12 服务器配置与管理-服务器端口冲突和端口修改
  • 6.13 服务器配置与管理-如何修改服务器内存占用率?
  • 6.14 服务器配置与管理-如何访问和操作H2内置数据库
  • 6.15 服务器配置与管理-​如何在O2OA中使用MySQL数据库?
  • 6.16 服务器配置与管理-如何修改平台支持的数据库驱动包
  • 6.17 服务器配置与管理-O2OA使用openGauss(华为高斯数据库)配置
  • 6.18 服务器配置与管理-O2OA 平台平台数据库配置信息样例
  • 6.19 服务器配置与管理-配置O2OA服务器连接O2云
  • 6.20 服务器配置与管理-O2OA实现服务器随操作系统自动启动
  • 6.21 服务器配置与管理-文件存储服务器配置
  • 6.22 服务器配置与管理-工作日节假日配置
  • 6.23 服务器配置与管理-消息提醒配置说明
  • 6.24 服务器配置与管理-自定义消息提醒
  • 6.25 服务器配置与管理-定制消息通知的内容
  • 6.26 服务器配置与管理-消息通知过滤
  • 6.27 服务器配置与管理-为待办创建配置邮件通知
  • 6.28 服务器配置与管理-待办待阅数据的查询操作和管理
  • 6.29 服务器配置与管理-​自动执行平台数据的备份与恢复
  • 6.30 服务器配置与管理-数据导出导入与系统数据备份
  • 6.31 ​服务器配置与管理-定期自动执行数据备份与恢复
  • 6.32 系统安全-O2OA作为认证中心实现基于OAUTH2单点认证
  • 6.33 系统安全-O2OA基于Nginx的SSL跳转、转发配置
  • 6.34 O2OA 平台如何基于nginx上下文分发的方式快速集群部署
  • 6.35 系统安全-访问日志相关配置
  • 6.36 系统架构-平台集群化部署之基于Nginx端口分发机制实现集群部署
  • 6.37 系统安全-审计日志相关配置
  • 6.38 系统安全-平台日志文件说明
  • 6.39 系统架构-基于nginx快速集群部署-上下文分发
  • 6.40 系统安全-O2OA日志输出设置log4j2.xml
  • 6.41 系统安全-用户密码初始化规则的设定(默认密码是什么)
  • 6.42 系统安全-启用HTTPS(百度云版)
  • 6.43 系统安全-启用HTTPS(腾讯云版)
  • 6.44 系统安全-自签名SSL证书验证HTTPS功能
  • 6.45 系统安全-登录密码RSA加密
  • 6.46 系统安全-用户登录IP限制
  • 6.47 O2OA 平台前端安全配置建议(一)
  • 6.48 系统安全-在用户登录过程中启用图形验证码
  • 6.49 系统协作集成-金山文档
  • 6.50 系统安全-平台部署之使用非root用户运行服务
  • 6.51 O2OA(v9.5)开发平台更新说明(一):流程平台
  • 6.52 系统协作集成-集成永中Office
  • 6.53 系统安全-O2Server启用国密加密设置
  • 6.54 系统协作集成-集成金格在线Office
  • 6.55 系统安全-日志应用使用说明
  • 6.56 O2OA(v9.5)开发平台更新说明(三):聚焦安全与系统维护的全面升级
  • 6.57 系统安全-用户重置密码操作(重置后密码是什么)
  • 6.58 系统安全-超级管理员(xadmin)密码修改
  • 6.59 O2OA(v9.5)开发平台更新说明(四):手机端焕新登场、功能再升级、体验再飞跃!
  • 6.60 系统安全-使用Web端运行服务器管理命令
  • 6.61 O2OA(v9.5)开发平台更新说明(五):应用功能优化与问题修复
  • 6.62 系统安全-o2server无法正常显示验证码解决办法
  • 第16章 开发知识及常见问题
  • 16.1 O2OA如何实现文件跨服务器的备份
  • 16.2 O2OA 平台服务器故障排查
  • 16.3 开发知识-让后端代理/接口脚本编写也能像前端一样用上debugger
  • 16.4 常见问题-SQLServer中创建新数据库使用哪个中文编码?
  • 16.5 O2OA 平台流程引擎中如何修改,定制流程的流转记录
  • 16.6 mysql数据库备份
  • 16.7 domain不正确的时候如何强制设置成正确的
  • 16.8 配置文件中使用密文存储密码
  • 16.9 常见问题-连接MySQL出现 Public Key Retrieval is not allowed 的错误
  • 16.10 常见问题-查看表结构
  • 16.11 常见问题-7.2及以上版本开启web代理后请求中没有正确使用web端口问题解决方式
  • 16.12 linux环境libreoffice安装及使用
  • 16.13 在O2OA中使用网络会议(二):Openmeetings与O2OA认证配置
  • 16.14 在O2OA中使用网络会议(一):Openmeetings-5.1.0亲手安装整理 Step-By-Step
  • 16.15 藕粉社区问答系列1
  • 16.16 藕粉社区问答系列2
  • 16.17 藕粉社区问答系列3
  • 16.18 快速入门-平台相关资料汇总
  • 16.19 快速入门-服务器总体介绍汇总
  • 16.20 快速入门-流程表单载入基础数据
  • 16.21 快速入门-常用表单脚本样例汇总
  • 16.22 快速入门-自定义表数据分页样例
  • 16.23 云服务器-阿里云ECS服务器的端口启用
  • 16.24 开发知识-React篇:在O2OA 平台框架中使用React
  • 16.25 开发知识-React篇:在O2OA门户页面中使用React
  • 16.26 开发知识-Vue篇:在Vue应用中集成O2OA
  • 16.27 开发知识-Vue篇:使用Vue-CLI开发O2应用
  • 16.28 开发知识-Vue篇:在O2门户页面中使用Vue
  • 16.29 平台中使用Druid数据库连接及监控
  • 16.30 开发知识-在PAAS平台上部署O2OA 平台
  • 16.31 开发知识-如何使用Tomcat架设webdav服务器
  • 16.32 开发知识-单个端口模式的Nginx和系统配置
  • 16.33 开发知识-Linux非root用户如何使用80端口启动O2OA
  • 16.34 开发知识-O2OA 平台启用Eruda进行移动端调试
  • 16.35 开发知识-神通数据库安装
  • 16.36 开发知识-人大金仓数据安装
  • 16.37 开发知识-中标麒麟安装达梦数据库(DM8)
  • 16.38 开发知识-中标麒麟安装人大金仓详细步骤
  • 16.39 开发知识-使用VNC连接中标麒麟V7操作系统
  • 16.40 开发知识-鲲鹏(ARM)麒麟操作系统如何替换yum源?
  • 16.41 开发知识-数据优化知识点
  • 16.42 水印安全-附件水印|加密|文档格式转换图片|PDF
  • 16.43 消息队列-配置activeMQ、kafka消息队列
  • 16.44 常见问题-数据导出或者导入时发生OOM异常
  • 16.45 常见问题-如何让用户首次登录必须改掉初始密码
  • 16.46 常见问题-如何在模块部署中控制模块的访问权限
  • 16.47 常见问题-如何在平台中开发Ftp文件上传文件的服务?
  • 16.48 常见问题-如何使用服务管理调用WebService
  • 16.49 常见问题-如何使用脚本调用外部服务
  • 16.50 常见问题-如何使用脚本控制流程自动流转
  • 16.51 常见问题-如何通过脚本调用系统内服务
  • 16.52 常见问题-接口代码疑惑解答汇总
  • 16.53 常见问题:Maven编译o2server错误: Java Heap Space
  • 16.54 常见问题-集群配置后启动报错:NullPointerException
  • 16.55 常见问题-服务器错误:can not decrypt token
  • 16.56 常见问题-IOS移动办公无法收到验证码
  • 16.57 常见问题-服务器和日志时间相差12小时的问题
  • 16.58 常见问题-为什么127.0.0.1可以访问但其他IP无法访问
  • 16.59 藕粉社区问答系列4
  • 16.60 开发知识-React篇:在React应用中集成O2OA

  • 简单的费用报销审批流程开发

    时间:2022-08-03   
    内容导读

    本篇以报销审批为样本演示 O2OA 平台流程应用的开发顺序,先明确按金额阈值分流的审批需求与表单字段,再建应用、画节点、连路由,并为各环节配置处理人。处理人可借助职务与组织范围自动匹配,分支条件由脚本按表单合计金额判断。表单只需在发起环节绑定,后续环节未绑定即沿用上游表单,收尾可加待阅通知。多人协作环节还需在单人、并行、串行与抢办之间选型,移动端则应清理固定宽度与不适用的操作条。

    本篇采用实例开发的方式,讲解如何在 O2OA 平台中开发一个简单的费用报销流程,内容包括流程设计、配置、表单设计、条件判断以及流程开发成果的验证。

    一、先决条件

    1、O2Server 服务器正常运行,系统安装部署请参考文档《服务器下载及私有云部署》

    2、使用具备管理员权限的账号登录 O2OA 平台,例如:xadmin

    3、已经完成对系统组织信息以及人员信息的录入和维护工作。设置组织架构及员工信息相关操作请参考《设置组织架构及员工信息》。

    二、模拟需求

    本篇以 OA 系统中的报销审批流程为例,说明流程应用的开发与实施步骤。

    首先模拟一个完整的报销审批流程需求。该需求主要分为两部分:流程与表单。

    1. 流程需求设计思路

    OA的报销流程部分,关于金额对流程的影响,我们将其分成两种情况:

    报销金额<=3000元时,审批路径为:【提交报销】→【部门领导审核】→【会计初审】→【分管领导审批】→【会计核定】;

    报销金额>3000元时,审批路径为:【提交报销】→【部门领导审核】→【会计初审】→【公司领导审批】→【会计核定】

    报销流程需求.png

    2. 表单需求设计思路

    OA 表单部分:表单包含标题、申请人、申请部门、费用发生地、项目名称、报销种类、单据张数、账户名称、收款账号、开户银行、公务描述和报销明细等字段。

    image.png

    三、报销流程开发与实施

    1. 登录系统,进入流程管理平台

    使用开发者身份登录 O2OA 系统(管理员需事先在组织管理中配置完成)。从首页左上角的 O2OA 应用菜单进入流程应用管理平台。如下图所示:

    image.png

    2. 创建流程应用

    在流程应用管理中,点击“新建应用”,创建名为报销管理的流程应用,如下图所示:

    image.png

    在系统弹出的流程应用信息录入对话框中输入应用名称为:报销管理。

    image.png

    “应用名称”:必填项,此处应填写为“报销管理”;

    “应用别名”:选填项,可根据实际要求填写;

    “应用描述”:选填项,可根据实际要求填写;

    “应用类型”:选填项,可根据实际要求填写;

    填写完成后点击“完成”即可。点击打开报销管理应用,可以看到如下界面:

    image.png

    流程应用设计器界面左侧包含六种设计元素:

    表单配置:设计和开发流程中需要使用的表单。

    流程配置:设计和开发流程各审核环节的信息。

    数据配置:设计和管理流程中需要使用的数据,如报销类型、请假类型等固定可选数据。

    脚本配置:设计和开发流程中需要调用的脚本。

    资源文件:提供流程中可直接访问的固定文档、图片,便于以 URL 方式访问。

    应用属性:对应用信息与权限进行管理和设定。

    本章教程主要讲解 O2OA 流程和表单两种元素的配置,其他元素将在后续高阶课程中陆续介绍。

    3. 设计报表流程表单

    在“表单配置”导航中,点击新建图标新建表单,系统会弹出模板供选择。

    image.png

    点击“通用表单模板”,新建一个表单,并将表单名称改为“报销申请表单”。如下图:

    报销申请表.png

    在“基本信息”表格中,将字段标题修改为需要的字段。

    image.png

    行数不足时,可选中一个单元格,点击增加行功能以增加需要的行数,如下图所示:

    插入单元格.png

    为新增行的标题单元格设置样式“标题单元格”,内容单元格设置样式“内容单元格”

    image.png

    拖动左侧“文本”控件到新增的标题单元格中

    1646018208210846.png

    删除多余的内容控件,重新拖入左侧符合业务需求的内容控件并修改相应的配置

    标题:";文本字段";,标识为"subject";,设置默认值和非空校验:

    return this.workContext.getWork().title;

    前端脚本在O2OA API里面有很清楚的用法介绍,具体访问地址是:https://www.o2oa.net/api/

    1646018241148500.png

    申请人:“人员组织” creatorPerson,设置默认值:return this.workContext.getWork().creatorIdentityDn;

    申请部门:“人员组织” creatorUnit,设置默认值:return this.workContext.getWork().creatorUnitDn;

    费用发生地:“地址” place

    项目名称:“文本字段” projectName

    报销种类:“下拉框” type ,可选值:差旅报销、雇员报销。默认值:return "差旅报销";

    1646018271795884.png

    单据张数:“数字字段” number

    账户名称:“文本字段” account

    收款账号:“文本字段” receivingAccount

    开户银行:“文本字段” bankAccount

    公务描述:“多行文本” description

    将“订单列表”修改为“报销明细”,报销明细列改为序号、科目名称、开始日期、结束日期、费用描述、发票金额

    image.png

    删除多余的内容控件,重新拖入左侧符合业务需求的内容控件并修改相应的配置

    科目名称:“下拉框” subjectName,可选值:火车票、飞机票、住宿、餐费、其他

    1646018344665901.png

    开始日期:“日期选择” startDate

    结束日期:“日期选择” endDate

    费用描述:“文本字段” costDescription

    发票金额:“数字字段” amount

    设置“发票金额”列的合计数值,其他列均设置为不需要

    1646018372785581.png

    设置“报销明细”不能为空。报销明细使用的是“数据表格”控件,内容以数组存储,因此配置时需要选择“值长度”。

    1646018413476782.png

    删除审批信息模块

    3. 移动端表单开发与实施

    在前述表单设计器中,点击右上方“Mobile”按钮,系统会将页面切换到 Mobile 表单设计器,可在此进行移动端表单的相关设计与调整。如下图所示:

    从 PC 端同步过来的表单信息带有固定宽度,而 Mobile(移动)端并不需要,因此删除对应 div 上的固定宽度,使其自适应手机宽度即可。

    另外,从 PC 端表单同步到移动端表单的还有顶部操作栏 actionBar,该组件在移动端表单中无法使用,可在此将其从移动端表单中删除。最终的设计效果如下图所示:

    image.png

    至此,我们完成了报销审批流程中表单部分的开发。下一章将介绍报销审批流程中的流程开发部分。

    5. 报销流程相关设计

    在流程设计器的模板选择中,选择默认流程作为基础模板,如下图所示:

    新建默认流程.png

    将流程名称修改为“报销审批流程”,然后按照需求将所有节点活动拖入,并分别修改名称。如下图所示:

    修改流程名字.png

    接下来需要绘制上述路由(连线)。双击活动节点即可创建路由,然后修改路由名称。路由表示审批过程的流转指向,按业务需求确定由哪个环节流转到哪个环节。

    提示:某些浏览器通过双击无法实现添加路由的功能,此时可以使用顶部操作栏中的添加路由按钮来完成添加路由的操作。

    配置路由.png

    接下来需要为每个活动配置对应的处理人。在“提交报销”环节中,系统会自动判断处理人为空时默认以拟稿人为处理人,因此该环节无需配置。

    “部门领导审核”环节的处理人应为拟稿人所在的部门领导,需要进行配置:选择范围为拟稿人所在部门的部门正、副职,可通过职务实现该功能。

    请注意:职务需要提前在组织管理里的组织信息中设计并配置完成。

    具体配置步骤如下:

    1)选择“请审核”这条路由,在右侧“属性”->“选择”选项卡中配置选择人员项;

    2)在选择项基本栏中,将标识和标题配置为:creatorLeader;

    3)在选择项选择栏中,将组织范围设置为:拟稿人所在组织->直接所属组织;

    4)在选择项选择栏中,将职务范围设置为:指定职务,并在选择职务栏中选择前期配置好的职务,此处选择部门正职和部门副职领导。

    配置形式如下图所示:

    每个活动配置对应的处理人.png

    请注意,配置完成后需要点击上方的添加选择项,为流程添加一个路由选择项。添加完成后,在“部门领导审核”环节配置处理人时,可直接选择流程数据 creatorLeader 作为环节处理人。

    流程实际运行时,上一环节提交前,系统会按指定要求打开处理人选择框,供用户选择处理人。

    配置界面如下图所示:

    关联.png

    “财务领导审核”环节,我们默认其处理人为财务部部门正职领导,可直接在处理人环节选择该职务。

    image (25).png

    image.png

    选择职务后,系统会弹出添加职务参数的对话框。其含义是:前面只选择了职务名称,但每个组织都可能设有相同职务(如部门正职),因此需要明确本环节取用的是哪个组织的部门正职。

    这里的参数用于指定该职务所属组织,可选择组织“财务部”后确定。

    image.png

    需要注意的是,这里的“选择”环节不需要配置处理人,但是由该环节引出的两条路由需要配置条件,因为要根据金额的不同流转到不同的环节。

    选中小于等于3000的这条路由,可以看到“条件”这个页签,在里面输入:

    return parseFloat(this.data.datatable.total.amount) <=3000; 

    同样,在大于3000的路由条件中输入:

    return parseFloat(this.data.datatable.total.amount) >3000;

    image.png

    按同样方式,“分管领导审批”和“公司领导审批”也通过指定职务实现,即指定公司下的公司领导和分管领导职务,需在组织管理中添加。职务添加如下图所示:

    组织配置职务.png

    最后一个环节“会计核定”,假如用户提出有两名会计、需要 AB 角去处理,那么我们首先要配置会计职务,这里需要把两个会计都配置上,然后在“会计核定”环节选择上这个职务。

    AB角处理.png

    下面需要说明一下“会计核定”环节的处理方式问题。

    处理方式.png

    流程的处理方式分为四种:

    单人:多人都可以同时收到待办,但其中一人处理后,其他人的待办会消失。

    并行:多人可以同时收到待办并同时处理,所有待办人处理完毕后流转到下一环节。

    串行:多人按顺序收到待办,例如 ABC 三人,A 处理完毕后 B 收到待办,再由 C 收到待办,之后进入下一环节。

    抢办:多人同时收到待办,其中一人打开文件后,其他人会收到当前文件已被锁定的提示;待其中一人处理完毕后,其他人的待办会消失。

    默认处理方式均为单人,可按照业务需求修改。此处的 AB 角不需要修改,使用单人方式即可实现。

    现在处理人已配置完成,还剩最后一步:需要把前面制作的表单与当前流程关联起来。在“提交报销”环节需要配置表单“报销申请表单”,后续环节可以配置也可以不配置,如果没有配置表单,就会沿用上一个环节的表单。

    流程表单关联操作如下图所示:

    关联表单.png

    在结束环节增加向拟稿人发送待阅的功能。待阅人脚本:return this.workContext.getWork().creatorIdentity;

    image.png

    至此,我们的报销审批流程开发完毕,可以投入使用。希望上述内容对读者的业务开发与实施有所帮助。

    除信息发布模块的开发外,管理员还可以进行流程开发、移动端设置或其他实施工作。以下文章可能对您有帮助:

    《设置组织架构及员工信息》

    《设定员工在系统中的角色》

    《信息管理和信息栏目开发》

    《简单的费用报销审批流程开发》

    《使用 O2OA 移动办公 APP 体验手机办公》

    《应用市场使用说明》

    用户常见问题

    整理自藕粉社区真实提问,按浏览量排序

    Q企业微信的审批流程数据能导入吗?

    查看原帖讨论 · 19,314 次浏览

    Q集成企业微信后,在企业微信应用中审批流程,提交后一直loading

    查看原帖讨论 · 9,309 次浏览

    以上问题仍无法解决?到 藕粉社区 提问,或致电 400-888-0545。

    相关内容

    O2OA 翱途 企业应用开发平台

    兰德网络O2OA平台软件

    开源、自主可控的协同办公底座

    研发与运营

    纵横翱途(杭州)科技有限公司

    企业级协同应用 · 工作流引擎 · AI 智能体

    www.o2oa.net | 400-888-0545