自动执行业务流程
审批王是图形化的流程设计工具,并与您的业务对象实现数据互通。例如您可以从合同台帐中直接发起一个审批流程,然后在审批王中处理审批相关业务,最终审批结果更新回合同台帐。
我们所说的表单就是申请单,用户在提交申请的时候,什么地方可以填,需要填写什么内容,是输入还是选择等等,这些都是管理员在后台设置里面定义的。
设计表单的操作就是对照实际的申请单,从系统中选择相应的字段类型,逐一添加,形成一张电子申请单的样式。不同的字段类型,展现给用户的界面也是不同的。比如下拉框,用户就是从几个选项中选择一个内容;比如数值字段,用户只能输入数字等。字段类型可参照下一节“字段”。
以下以“日常费用报销”单为例,为您演示设计表单的操作步骤。
为了更便捷的设计申请单,审批王提供了多种类型的字段类型。
申请单中的字段类型包括了三类:输入类字段、选择类字段、以及其他字段。
输入类字段指通过输入方式添加内容的字段,包括:
注:字段名需唯一,显示名称可以重复。
在日常工作中,一个主表单里面通常还会嵌套另一个表格,我们称之为“子表”。子表的作用类似于明细表,它拥有多行数据,且字段名都是相同的,用户在填写表单时,可以输入任意多行数据。以“日常报销申请单”为例,报销明细就是子表。子表添加的方式如下:
这样,用户在填写日常报销申请单时,点击“+”就会出现“报销类别”“报销金额”“费用产生日期”三个字段,填写完内容后,子表中会出现这一条记录,再点击“+”,输入一行数据,重复操作,可以将每一笔报销的费用都输入到表格中。
如果您熟悉HTML的编写,可以使用 html 自定义表单样式。默认表格样式的表单,一行显示2个字段,宽字段一行显示1个,宽度高度等都是系统固定的,不能通过字段属性进行调整,但是您可以通过导出默认模板,下载html文件,并修改表单的 html 结构和样式来实现自定义功能。
例如,为了实现如下图中的Excel表格样式,具体操作如下:
<style>
//在这里通过id、class等定义样式
</style>
<div class='instance-template'>
<table class="table-page-title form-table no-border text-align-center" style="width: 100%;display: inline-table;">
<tr class="instance-name">
<td class="instance-table-name-td page-title">
{{instance.name}}
</td>
</tr>
</table>
<table class="table-page-body form-table">
<tr style="height:0px">
//默认是2个字段4列,可通过添加th增加多列,以及设置width的大小来定义每列的宽度
<th style='width: 11%'></th>
<th style='width: 11%'></th>
<th style='width: 8%'></th>
<th style='width: 10%'></th>
<th style='width: 8%'></th>
<th></th>
<th style='width: 12%'></th>
<th></th>
<th style='width: 12%'></th>
<th></th>
</tr>
//下面是表单内容
...
</table>
</div>
配置意见栏公式,将流程某一步骤处理人的意见显示在申请单的某一栏上。 以下以发文流程为例介绍意见栏公式的配置过程:
{yijianlan:{step:"领导签发"}}
,注意step.后面跟流程某一步骤名。常见的意见栏公式如下:
{yijianlan:{step:"领导签发"}}
。该步骤如果传阅给其他人,并勾选签批字段框,则发件者和收件者的意见都会出现在意见栏中。{yijianlan:{step:"集团文书处理",only_cc: true}}
。在文书处理步骤传阅给其他人,可在此意见栏上签批意见;该步骤如果传阅给其他人也只显示收件者的意见。{yijianlan:{step:"领导批示", only_handler:true}}
{yijianlan:{step:"股份公司领导意见"}};{yijianlan:{step:"集团公司领导意见"}}
。股份公司领导步骤签的意见和集团公司领导签的意见出现在同一个意见栏上。{yijianlan:{step:"领导批示", default:"已阅", image_sign: true, only_cc: false}}
,配置了图片签名的处理人,签批意见之后,申请单上会以图片签名结尾。{yijianlan:{step:"领导批示", default:"已阅"}}
,处理人在提交申请单后,在意见栏为空的情况下,系统会默认为您签下“已阅”的意见。审批王中每个提交的申请单都有系统标题,系统默认格式是流程名称+流水号。为了更便捷的定位申请单,申请单的标题可以使用申请单中的某一字段值或多个字段值组合,达到自定义文件标题的目的。
如果您熟悉脚本的编写,可以通过使用JavaScript脚本语言在表单中添加脚本。除了使用我们提供的公式、条件等格式之外,您还可以通过添加脚本来实现自定义功能。
例如,为了实现对数值型金额字段自动转换成大写金额,可以在表单脚本中输入以下语句:
CoreForm.custom_numToCny = function (num) {
if(isNaN(num))return "无效数值!";
var strPrefix="";
if(num<0)strPrefix ="(负)";
num=Math.abs(num);
if(num>=1000000000000)return "无效数值!";
var strOutput = "";
var strUnit = '仟佰拾亿仟佰拾万仟佰拾元角分';
var strCapDgt='零壹贰叁肆伍陆柒捌玖';
num += "00";
var intPos = num.indexOf('.');
if (intPos >= 0){
num = num.substring(0, intPos) + num.substr(intPos + 1, 2);
}
strUnit = strUnit.substr(strUnit.length - num.length);
for (var i=0; i < num.length; i++){
strOutput += strCapDgt.substr(num.substr(i,1),1) + strUnit.substr(i,1);
}
return strPrefix+strOutput.replace(/零角零分$/, '整').replace(/零[仟佰拾]/g, '零').replace(/零{2,}/g, '零').replace(/零([亿|万])/g, '$1').replace(/零+元/, '元').replace(/亿零{0,3}万/, '亿').replace(/^元/, "零元");
};
字段脚本:
CoreForm.custom_numToCny({total});
给字段增加公式之后,填写审批单的时候,就无需录入此字段的值,而是由系统根据公式得到相应的值。常见的公式包括:
{
和}
(注意都是半角)将字段名扩起来,如:{请假天数}
设计完表单后,管理员要设计流程的走向,即文件的审批过程及每一步相应的处理人。
在审批王中,每个审批环节我们称为“节点”,节点与节点之间用连线进行串联。一个节点之后可以只有一个节点即只有一种后续的审批情况,也可以通过连线串联多个节点,即有多种的后续审批情况。后续的审批节点即可以由上一步人员在审批时指定也可以根据设置的判断条件系统自动判断。
以创建一个“日常费用报销”流程为例,为您演示如何创建新流程。
具体步骤如下:
登入华炎魔方,进入“设置-审批王-流程”,点击“流程设计器”;
\
系统会弹出新窗口,在表单分类中选择某一类别的表单(也可直接点击“新增分类”来新建流程表单分类),再在该类别的在流程列表页中,单击选择已建立好的表单分类,如“财务 流程”,流程列表中会显示表单分类下对应的所有流程;点击右上角的新建流程,填写流程名称“日常费用报销”。
点击新建完成的流程,在流程界面中,选中“开始”,右侧的面板中有流程信息、画图、属性、权限三个选项。
一个审批步骤对应“流程设计器”中的一个节点。可通过“画画”选中相应的节点类型拖到流程图上,然后将鼠标悬停在某个节点,点击“+”号,拖拽到另一个节点上,即可添加两个节点之间的连线。您也将鼠标放到线上点击“-”号,将连线删除。根据实际需求选择节点,用连线进行节点间的连接。 各个不同类型的节点可参考以下介绍:
点击节点,右侧面板中会有流程信息、画图、属性、权限四个选项。
保存流程,关闭返回流程列表界面,启用新建的流程,完成流程的新建。
审批王里的条件节点的目标是智能选择审批路径。
如费用报销流程中,根据报销金额的不同,审批步骤/审批人也会有所不同,判断规则是报销金额是否大于10000,如果是的话,申请单提交给总经理审批后再交给财务经理,如果不是的话,申请单直接交给财务经理审批即可。
这里的“报销金额判断”就是一个典型的“条件”节点。条件公式为:{报销金额合计}>=10000 和 {报销金额合计}<10000,两个公式分别连线到“总经理审批”节点和“财务经理”审批节点。
这样,当用户提交申请单后,系统会根据本次申请的实际金额作判断,决定下一步执行“总经理审批”还是是“财务经理审批”。
设置上述条件节点的具体步骤如下:
管理员可以在“流程分类”中可以修改流程类别的名称和顺序,这样新建流程的弹出框中的流程类别的名称和顺序会随之变化;
在“设置”界面中,点击“审批王”下的“流程分类”,来调整流程分类的显示顺序。排序号是按着从大到小的序号进行排序的,默认是空,也是最小的序号。
工作区管理员可以进行流程导入导出,流程一键导入导出功能可以帮助您快捷新增流程,节省大量时间。具体操作如下:
每一步的处理人对于表单内容都可以查看,但修改和填写的权限都是不同的,如发文流程,办公室编号步骤只能填写“发文编号”字段,但不能填写或修改其他字段,如此将步骤和字段编辑权限进行对应关系的设置需要管理员在后台进行操作。
流程设置时,节点处理人可选择以下几种:
您可以设置新建该申请单的权限。可以选择整个公司均有权限、也可以选择某个部门或者某些个人有权限提交本申请。如果没有权限的人员则在新增流程文件时就看不到此流程。
设置的方法有两种:
有些用户,虽然不一定参与申请单的审批过程,如某些业务的分管领导或总经理,但是需要随时查看某些流程的所有申请单。有时,我们将这样的权限称为“监控权限”。这个需求,可以通过如下设置来实现。
有些用户,虽然不一定参与申请单的审批过程,但是需要随时查看某些流程的所有申请单,并且需要在特定情况下,删除某些申请单。有时,我们将这样的权限称为“管理权限”。这个需求,可以通过如下设置来实现。
目前系统可以实现根据流程相关名称(文本),或根据表单字段公式实现自动生成文件编号功能。
具体编号设置规则如下:
打开流程设计器,在需要自动生成编号的字段配置好的公式:auto_number(预算外指标调整)。
进入“审批王”,选择“流程编号”。
点击进入到编号设置规则界面后,点击“新建”来新建流程编号规则。
以OB[{YYYY}]{NUMBER}为例,简要说明当前编号规则情况:
编号规则:OB[{YYYY}]{NUMBER} ,在表单上显示的编号样式为:OB[2020]6。
管理员在流程脚本中可以对该工作区中所有的流程进行配置“打印模板”、“表单模板”、“自定义脚本”、“字段关系”的脚本,以及“流程导出”,还可将其他的流程导入到该工作区.
具体的操作流程如下:
管理员在流程详细界面可以上传名为 “正文.docx” 的文档作为申请单新建正文时的模板,如需使用此功能需要满足以下条件: 1、流程设计器中流程的步骤属性中需要勾选“修改正文”,如在开始节点想上传正文则在开始节点的属性中勾选“修改正文”; 2、在设置-流程进入流程的详细信息页面上传名为 “正文.docx” 的文档; 3、需要windows桌面客户端,在桌面客户端中新建申请单后即可看到正文新建按钮,点击“新建”按钮即可在“正文.docx”的基础上在线编辑正文内容。
管理员在流程详细界面可以上传文档作为申请单上传附件时的模板,在新建申请单后会在附件上传按钮旁显示‘模板’按钮,点击按钮即可下载附件模板,本地编辑后即可上传。
数值类型常量:直接使用数值,如:1000
字符类型常量:使用“””(注意是半角)将字符串扩起来,如:“北京”
表单字段变量:使用“{”和“}” (注意都是半角)将字段名扩起来,如:{请假天数}
基于提交人的系统变量:包括姓名、角色、部门等
提交人的所在部门(全路径): {applicant.organization.fullname}
提交人的所在部门(最底层部门名): {applicant.organization.name}
提交人的角色名: {applicant.roles}
提交人的姓名:{applicant.name}
基于姓名表单字段的系统变量:包括姓名、角色、部门等
{报销人}.organization.fullname
{报销人}.organization.name
{报销人}.roles
{报销人}.name
基于数值字段的函数:
基于表格(子表)中的数值字段的函数:
统计多选项中有几项被选中了:length({交通工具})
数值类型的判断,允许使用以下符号:
字符类型的判断,允许使用以下符号/函数:
=:是,如:{项目}=“北京”
!=:非,如:{项目}!=“北京”
.contains():包含,如:.contains({applicant.roles},‘部门经理’) 提交人是部门经理。请注意:由于一个人可能承担了多个审批岗位,所以应该用_.contains(包含)来判断,而不能用“=”。
一个条件判断如果不够,可以多个条件判断组合使用。允许组合关系包括:
对数值进行判断
如请假天数大于三天需要总经理审批,小于等于三天只需要人事部审核。这类型的判断还用于金额等。
对提交人进行判断
如提交人是Tony则由总经理直接审批,若不是则需要部门经理审批。如何取得提交人是谁,则通过公式的编写。
如当提交人是部门员工,则由部门经理审批;而当提交人是部门经理,则由总经理审批。条件中,首先要使用系统提供的函数来获取相关的信息。如:{applicant.roles}获取提交人的角色。
运用或、与的关系进行多个条件组合判断。如是部门经理或者是办公室人员由办公室审批,而不是部门经理且不是办公室人员的由部门经理审批。
岗位,岗位是根据流程定的,不同的流程,经过的岗位不同,对应的处理人也不同。 本产品将岗位分为两种,一种管辖范围为某个部门,如部门经理;一种管辖范围为整个公司,如人事专员、法务、办公室主任、总经理等。
例如:一个普通员工请假,请假这件事,从开始提出申请,到部门经理审核,再根据请假天数判断是否上报总经理,再到人事部备案,最后通知提交人。整件事做下来,在不同的步骤需要不同的人来做。
上例中的部门经理是一个岗位,管辖范围就是本部门,在这个岗位的人需要审核请假单。但这个岗位的人可以不唯一,根据部门而定,财务部员工请假需要财务部经理审核,销售部员工请假需要销售部经理审核。同理,总经理也是一个岗位,管辖范围是整个公司,这个岗位的人在一固定阶段是唯一的而且就是公司的总经理。
管辖范围根据岗位不同而不同,同一个人在不同的岗位上管辖范围就不同。如财务部经理,在请假流程上管辖范围是财务部,在费用报销流程上管辖范围就是整个公司。
岗位成员,指岗位的处理人。一般一个岗位有一个或多个岗位成员。如上面的例子中,部门经理是一个岗位,财务部经理、销售部经理、安监部经理等都是岗位“部门经理”的岗位成员。“总经理”也是一个岗位,而这个岗位成员往往就只有公司总经理一个人了。 如上图(大写字母表示人),可以建立岗位“总经理”、“分管领导”、“部门经理”,其中“总经理”对应岗位成员A,管辖整个公司;“分管领导”对应岗位成员B、C分别管辖财务和行政两大模块;“部门经理”对应岗位成员D、E、F、G、H、I,分别管辖对应的部门。
管理员在设计审批流程时,需要对“岗位”和“岗位成员”进行设置。因为当审批流程的某一处理步骤的“处理人”类型是“指定审批岗位”时,“审批岗位”中的选项就是就是管理员所设置的“岗位”;
例如:当在“岗位”中新建了“部门经理”,“科长”等时,审批流程中的“审批岗位”的选项中就包括了“部门经理”,“科长”;
岗位设置的详细步骤:
“岗位成员”就是岗位上的处理人。假设岗位是“部门经理”,则“岗位成员”对应具体的部门的部门经理,例如人事部的部门经理,财务部的部门经理,技术部的部门经理。
岗位成员设置的详细步骤:
基于“岗位”来定义流程的优点:
减小了人员调整对流程设置的影响:
如果部门经理要换人,假设有10个流程都定义了某步骤为这个人处理,那么就需要分别修改这10个流程。而如果这10个流程的步骤是审批岗位“部门经理”处理,那么就无需修改这10个流程,只需在审批岗位的设置中,将此部门的部门经理换为他人即可。
注意:
一个用户可以对应多个岗位 ,例如,同一个人,既是办公室的部门经理,也是公司的办公室主任。
一个岗位也可以有多个用户,(对应相同或不同的管辖范围即部门)。例如,“部门经理”的岗位,可以财务部的岗位成员1人、人事部的岗位成员是2人,这样,人事部的审批过程中,有时需要在这两个部门经理中选择一人。
资产调拨流程与同步
在华炎魔方中定义的业务对象,可以与华炎魔方中定义的审批流程进行集成。这样的信息同步包括两种方式:
首先,我们先新建一个资产调拨流程,详细步骤具体可参考 [表单设计] 和 [流程设计] 。
进入流程设计器表单开发界面,如下图配置表单字段,添加资产调拨台账相关字段“资产名称”、“调出部门”、“调入部门”等。
设计完表单后,设计流程走向,添加所有审批节点,并配置节点的字段权限,完成审批人的字段修改权限。
完成资产调拨流程的配置后,需要与资产台账进行集成关联,点击“审批王”-“对象流程映射”,新建一个对象流程“台账发起资产调拨申请”;
设计同步子表数据的配置请参考进阶教程进行配置。
进入资产调拨台账,新建一条记录:U盘调拨,并发起审批,点击流程名在审批里自动发起一个资产调拨申请,相关字段自动带出。
审批节点“调入单位审批”,选择实际调拨日期,完成流程审批,并同步字段进入资产调拨台账。
图片签名,即手写签名,是OA系统中领导审批完成后一种替换文字的技术途径,显示的表单样式给用户类似纸质审批单的感受,在打印存档时会给用户更高的文档认可度。
在流程审批过程中,我们可以将相关的签名信息通过图片的形式上传到系统中进行保管。上传后的图片签名将在审批时自动获取,流程没有提交之前不显示图片签名,若审批人未上传系统将自动获取到审批人的人员名称。
例如:上图中,签核历程的前2个审批环节“处室负责人”以及“主管领导签字”,系统中上传了审批人的图片签名,审批完成后自动替换文本名称,而第3个审批环节“办公室负责人查阅”的审批人未上传图片签名,审批完成后未显示图片签名,默认显示审批人名称。
图片签名设置的详细步骤:
针对一些常见的需求问题(包括管理员设置时碰到的,以及不同用户在审批时可能提到的),我们一起看下在审批王系统中,究竟如何实现?
系统使用类
表单和流程的设置过程相对复杂,特别是引入一些更细致的需求之后。所以,如果在一个工作区里,已经设置完善了某一个流程,而现在又需要在另一个工作区里重建这样的流程,这时,有类似“拷贝”的方法将非常方便,可节省大量时间。
审批王中的“拷贝”过程,就是通过导出流程和导入流程来实现的。
导出流程的具体操作如下:
导入流程的具体操作如下:
可参考 审批王流程设计-流程导入导出。
申请单一般为本人填写并提交。如果需要帮别人代填,该怎么操作了?
如果和自己填写一样操作、只是在标题或备注里标记“代***申请”,这样做未尝不可,但是也可能会带来一些问题:
实际上,系统提供给了代填的机制,具体操作方法可参考下图的实例:
新建一条日常费用报销表单,在左下角的“提交人”位置,点击即打开选人界面,在搜索框输入您需要代填人的名字,回车选中名称,即可帮他人代填申请单。这时,表单上的“提交人”就是他人的名字。
管理员设置流程时的一般考虑,是尽可能地给各个步骤都设置好处理人的范围,越准确越好。这样,在申请单流转时,要么能自动找到下一步处理人;要么由当前处理人选择发给谁继续处理。
实际的情况相对复杂。举个例子,当某公司的人员流动较大时,系统的人员变更往往没那么及时,审批人不准确的情况可能会频繁发生。换个角度,有时流程的提交人对业务比较熟悉、对人员变动也较清楚。这样,改由提交人在填写表单时就能选择好后续的处理人,不失为一种较好的处理方式。
在流程中进行相应设置,能实现这样的需求。具体步骤如下:
完成以上操作,打开申请表单,流程的审批步骤会出现在表单底部,提交人可选择所有后续节点的处理人。
比如,上面的请假申请已设置为“申请人指定步骤、审批人”。申请人填写完成请假信息后,底部会出现流程的审批步骤,后续节点的处理人默认为空,在每个步骤的“操作”(人员选择器)进行选人,即可完成所有节点的选人,这时提交即可。
我们知道,申请单流转过程中的参与人员都能在收件箱里查找到这些申请单,并能查看最新的流程进展情况。
还存在这样的需求,有些高级别的用户,即便没有参与流转、或是申请单尚未流转到达,也希望能随时看到这些申请单。典型如办公室主任,需要随时能查看到公司的所有发文单的进展详情。
为此,系统加入了“监控权限”这一概念。对于特定流程而言,具有“监控权限”的人员,可以在自己的“监控箱”中,看到这个流程下所有的申请单。
“监控权限”的设置方法如下:
上图中的3种权限,如需修改,点击“授权部门”、“授权用户”,勾选相应的部门、用户即可。具体,可参考 审批王流程设计-流程权限设置 。
表单设计类
选择类型字段,除了设置默认值选项的下拉框外,还有odata字段:可通过API配置系统中的其他数据源,或外部数据库、其他业务系统接口,并填写字段名、可搜索字段、公式这4个字段属性可预置选择项,再根据实际应用,增加过滤条件。
以‘XX公司单车核算明细表’为例,现有车牌号台账,为queue_import数据导入,使用部门为“信息管理部”的车牌号如下图所示:
odata字段“车牌号码”,配置 [过滤条件-函数支持] (#函数支持) 实例,根据申请人分部带出对应车牌号。
可参照下图,进行配置:
/api/v4/number_plate
。http://cn.steedos.com/app/-/contracts/view/{_id}
。{number_plate_id.name}
。OData支持一组内置过滤器操作,比如:
state eq '启用'
,即显示状态等于启用的数据。amount gt 10000
,即显示金额大于1万的数据。in array
,即属于数组。支持js脚本,实例:
function () {
var ins = WorkflowManager.getInstance();
if (ins && ins.applicant_company) {
return `(company eq '${ins.applicant_company}') and (state eq '启用')`
}
}
下图为两种不同的请假申请单。
观察可知,右侧的请假申请单上有“部门经理意见”等两个领导意见栏。部门经理签署的意见,不但显示在签核历程之中,也同时显示在请假申请单的对应意见栏中。这样,请假单打印或归档时,就自带了领导意见。
以下以请假流程为例,介绍意见栏公式的配置过程:
常见的意见栏公式包括:
具体设置,请参考 审批王表单设计-签字意见设置。
很多申请单都有申请部门这一字段,用于录入申请人所在的部门。如下图:
上面这个请假申请的“部门”,除了由申请人自行录入之外,也可以给这一字段增加公式。这样,在填写申请表的时候,就无需录入此字段的值,系统自动得出申请人的所在部门。
设置方法如下:
请注意,所在部门的公式有两种,可根据需要来进行设置。
{applicant.organization.fullname}
:是指申请人所在部门的全路径名。形如”华炎软件/客户服务事业部/大客户服务部”。当申请人同时隶属于多个部门时,则为所在主部门的全路径。{applicant.organization.name}
:是指申请人所在部门的名称。形如“大客户服务部”,这是最底层的部门名,不包含上级组织名。当申请人同时隶属于多个部门时,则为所在主部门的名称。字段公式的设置,可参考 审批王表单设计-字段公式 。
以发文流程为典型,很多申请单都需要自动编号功能。
例如上图的发文单,就实现了依据表头字段、自动生成文件编号的功能。
其设置方法如下:
简要说明目前编号规则情况:
编号规则:河北港口党办字[{YYYY}]{NUMBER}号,在表单上显示的标号样式为:河北港口党办字[2017]392号。
可参考 审批王流程设计-流程编号设置 。
申请单经常会有数值型的字段,例如下图表单上的的餐费、办公费、业务费、其他费用、合计等都是数值。其中,合计应为餐费等费用的数值之和。
合计的数由系统自动计算得出,既简化了填单的工作,数值也会更加准确。
如上图所示,当餐费金额为1000、业务费为500、其他费用为300时,合计应自动计算为1800,无须单独填写。
通过设置“合计”字段的公式,可实现自动求和的想法。具体操作如下:
设置字段公式时,除了数值型的加减乘除,您还可以使用其他函数,具体使用方法,可参考 审批王表单设计-字段公式
在本系统中,待审核、已审核、监控箱的列表显示时,会显示每个申请单的“标题”。
申请单的默认标题是“流程名”+序号,如上图中的第2条的“请假申请5”,这样的标题不太直观,如果显示为上图中的第1条的“陈磊申请年假2天”,就会更好。
那么,如何自定义这样的标题了?具体操作如下:
如上图,在标题公式里输入:{applicant_name}+“申请”+{请假类别}+{tianshu}+“天” 。这样,当陈磊提交请假申请时,如果请假类别为“年假”、请假天数为2天,则列表显示的标题就是“陈磊申请年假2天”。
自定义标题,可以选取多个表单字段、系统字段以及默认值组合而成,当然也可以只选取其中之一。
关于标题公式的设置,可以参考 审批王表单设计-标题公式
流程设计类
每个组织由多个部门组成,每个部门除成员外会有1个部门经理。下图为组织内的2个部门组成人员的简单例子。
员工提交差旅费用报销时,先发给“部门经理”。如果是技术部的员工,则发给技术部经理;如果是行政部的员工,则应发给行政部经理。这里的“部门经理”,在系统中的对应概念就是“审批岗位”。
不同的员工提交后,自动发给自己的部门经理,需要预先做好的工作包括:
这里的主要工作,是新建一个名叫“部门经理”的“审批岗位”,并给每个部门指定好谁是这个部门的“部门经理”。
就是把流程的这个步骤的“处理人”设为“指定审批岗位”,“审批岗位”则设为“部门经理”。这样,系统就会根据申请人所在部门,自动定位到对应的“部门经理”。
具体操作如下:
关于审批岗位,具体可参考 审批王审批岗位 。
流程经常涉及到总经理审批这一节点,例如请假流程。但并不是所有的单子都要提请总经理审批。
比如,典型的请假流程可能是:如果请假天数大于或等于3天,则请假申请单必须提交总经理批准;如果请假天数小于3天,则只需部门经理批准即可、无需提交总经理批准。
通过在流程中增加“条件节点”,可实现上述智能选择审批路径的需求。
设置的具体步骤如下:
这么设置后,当流转到“部门经理审批”这一步时,系统会根据申请单的不同来自动指定下一步骤:如果请假天数大于或等于3天,则下一步为“总经理审批”;如果小于3天,则下一步为“人事部备案”,这就跳过了“总经理审批”这一步。
关于如何设置条件节点,可参考 审批王流程设计-条件节点 。
流程中最常见的节点可能就是“部门经理审批”了,例如这个流程:
如果提交人是部门员工,则发给部门经理审批;而当提交人就是部门经理时,也还是发给部门经理审批。这样一来,第一步、第二步都同为部门经理一人,显然有些重复与累赘。
我们知道,要跳过某一步骤,审批王的推荐做法是增加一个条件节点。例如这篇参考: 判断是否发总经理 ,连线条件设置为“{请假天数}<3”,意即申请单上的“请假天数”<3就跳过“总经理审批”节点。与之类似,这里的跳过“部门经理审批”的连线条件就是:如果提交人自己是部门经理。而某用户是否是某角色可以使用系统提供的函数来获取:{applicant.roles}就能获取到提交人的所有角色。
根据上面的分析,我们可以通过在流程中增加“条件节点”判断提交人的角色,来实现上述智能选择审批路径的需求。
设置的具体步骤如下:
如此设置,部门经理自己提交申请时,会自动跳过“部门经理审批”。
关于条件判断的实际运用,可参考审批王流程设计-条件判断的实际运用
管理员设置好了表单和流程后,如果不加限制,每一步的处理人都可以修改表单上的内容。例如这个付款申请单:
但是依据实际的管理要求,每一步的处理人对于表单内容修改权限应该各不相同。上图中的“实际付款日期”就应该等到出纳付款之时才能填写,之前或之后的处理人都没有填写的权限。
对于某一步的人员能或是不能修改某个字段,诸如此类的需求,可以由管理员在后台进行操作,设置好步骤与字段编辑权限的对应关系。
关于字段填写权限,请参考 审批王流程设计-表单字段。