CSV 组织结构图模板(按汇报线确定审批权限)
把 HRIS 的 CSV 导出文件变成一张“谁能签什么”的流程图。manager_id 列变成一条升级阶梯,三个审批权限落在判断上,自批、代理和跨成本中心各有一条路线。
生成此图的 CSV 文件
每行一个步骤。「连线至」列中的数字是行号——正是它画出了连线,也正是大多数文件缺少的那一列。
| # | 形状 | 方框文字 | 连线到 | 连线文字 | 横向泳道 | 纵向泳道 |
|---|---|---|---|---|---|---|
| 1 | Start | 针对某个成本中心提出申请 | 2 | 员工 | 申请部门 | |
| 2 | Process | 从 HRIS 导出文件中读取申请人所在的行 | 3 | 员工 | 申请部门 | |
| 3 | Decision | 这一行是否写明了经理? | 6, 4 | 写明了, 没有写明 | 员工 | 申请部门 |
| 4 | Process | 请人力资源团队修正汇报线 | 5 | 员工 | 人力资源团队 | |
| 5 | Decision | 汇报线是否在截止时间前修正? | 6, 22 | 已修正, 未修正 | 员工 | 人力资源团队 |
| 6 | Process | 顺着 manager_id 向上生成审批链 | 7 | 直属经理 | 申请部门 | |
| 7 | Decision | 申请人是否处在自己的审批链上? | 8, 12 | 不在, 在,跳过一级 | 直属经理 | 申请部门 |
| 8 | Decision | 指定的审批人是否在岗? | 10, 9 | 在岗, 休假中 | 直属经理 | 申请部门 |
| 9 | Process | 转交审批人行上写明的代理人 | 10 | 直属经理 | 人力资源团队 | |
| 10 | Decision | 是否在直属经理的审批权限之内? | 11, 12 | 在权限之内, 超出权限 | 直属经理 | 申请部门 |
| 11 | Process | 直属经理签批该申请 | 19 | 直属经理 | 申请部门 | |
| 12 | Process | 上报部门负责人 | 13 | 部门负责人 | 申请部门 | |
| 13 | Decision | 是否在部门负责人的审批权限之内? | 14, 15 | 在权限之内, 超出权限 | 部门负责人 | 申请部门 |
| 14 | Process | 部门负责人签批该申请 | 19 | 部门负责人 | 申请部门 | |
| 15 | Process | 上报本条线的总监 | 16 | 总监 | 申请部门 | |
| 16 | Decision | 是否在总监的审批权限之内? | 17, 18 | 在权限之内, 超出权限 | 总监 | 申请部门 |
| 17 | Process | 总监签批该申请 | 19 | 总监 | 申请部门 | |
| 18 | Decision | 是提交执行委员会还是撤回? | 20, 25 | 提交执行委员会, 撤回 | 总监 | 申请部门 |
| 19 | Decision | 这笔支出是否落在其他条线的成本中心? | 21, 23 | 是, 否 | 执行委员会 | 财务 |
| 20 | Decision | 执行委员会是否批准? | 19, 24 | 批准, 不批准 | 执行委员会 | 总裁办 |
| 21 | Process | 由财务代表承担的成本中心会签 | 23 | 执行委员会 | 财务 | |
| 22 | Reject | 已退回:汇报线上没有可用的审批人 | 员工 | 人力资源团队 | ||
| 23 | Success | 已批准并计入该成本中心 | 执行委员会 | 财务 | ||
| 24 | Reject | 已拒绝且记录了理由 | 执行委员会 | 总裁办 | ||
| 25 | End | 申请人已撤回 | 员工 | 申请部门 |
#,形状,方框文字,连线到,连线文字,横向泳道,纵向泳道
1,Start,针对某个成本中心提出申请,2,,员工,申请部门
2,Process,从 HRIS 导出文件中读取申请人所在的行,3,,员工,申请部门
3,Decision,这一行是否写明了经理?,"6, 4","写明了, 没有写明",员工,申请部门
4,Process,请人力资源团队修正汇报线,5,,员工,人力资源团队
5,Decision,汇报线是否在截止时间前修正?,"6, 22","已修正, 未修正",员工,人力资源团队
6,Process,顺着 manager_id 向上生成审批链,7,,直属经理,申请部门
7,Decision,申请人是否处在自己的审批链上?,"8, 12","不在, 在,跳过一级",直属经理,申请部门
8,Decision,指定的审批人是否在岗?,"10, 9","在岗, 休假中",直属经理,申请部门
9,Process,转交审批人行上写明的代理人,10,,直属经理,人力资源团队
10,Decision,是否在直属经理的审批权限之内?,"11, 12","在权限之内, 超出权限",直属经理,申请部门
11,Process,直属经理签批该申请,19,,直属经理,申请部门
12,Process,上报部门负责人,13,,部门负责人,申请部门
13,Decision,是否在部门负责人的审批权限之内?,"14, 15","在权限之内, 超出权限",部门负责人,申请部门
14,Process,部门负责人签批该申请,19,,部门负责人,申请部门
15,Process,上报本条线的总监,16,,总监,申请部门
16,Decision,是否在总监的审批权限之内?,"17, 18","在权限之内, 超出权限",总监,申请部门
17,Process,总监签批该申请,19,,总监,申请部门
18,Decision,是提交执行委员会还是撤回?,"20, 25","提交执行委员会, 撤回",总监,申请部门
19,Decision,这笔支出是否落在其他条线的成本中心?,"21, 23","是, 否",执行委员会,财务
20,Decision,执行委员会是否批准?,"19, 24","批准, 不批准",执行委员会,总裁办
21,Process,由财务代表承担的成本中心会签,23,,执行委员会,财务
22,Reject,已退回:汇报线上没有可用的审批人,,,员工,人力资源团队
23,Success,已批准并计入该成本中心,,,执行委员会,财务
24,Reject,已拒绝且记录了理由,,,执行委员会,总裁办
25,End,申请人已撤回,,,员工,申请部门运作方式
在动图表之前,先把导出文件弄干净
请用纯文本编辑器而不是电子表格打开这份 CSV,看第一行。如果字段之间是分号,那是欧洲区域设置导出的,多数导入程序会把整份文件读成一列。如果第一个表头格看上去像 employee_id、但前面有个看不见的字符,那是 UTF-8 的字节顺序标记,它会让这个表头匹配不上。请确认任何含逗号的字段都用双引号包住,以及带前导零的员工号还活着——它们通常死在一趟电子表格的往返里。
把导出文件精简成用于分流的五列
employee_id、full_name、job_title、manager_id 和 cost_centre。源文件里什么都别删;取一份副本。然后检查两件画树也需要检查的事:恰好有一行的 manager_id 是空的,以及没有任何 manager_id 指向文件里不存在的 employee_id。上个月离职的一位经理仍然写在十二行上,这是一条审批链走到一半就断掉最常见的原因。
把它改造成编辑器的那几列
QueryChart 按表头名称导入,所以要产出的列是形状、方框文字、连线到、连线文字、横向泳道和纵向泳道。方框文字是框里的标签,形状是流程、决策、开始、结束、成功或拒绝,两列泳道决定方框的位置。连线到是下一个步骤的行号,判断处用逗号分隔多个,连线文字按同样的顺序承载对应的分支标签。把文件拖到一张打开的图表的表格区域上,或者把 CSV 文本粘贴进去。
把你们真实的审批权限打到那三个判断上
“是否在直属经理的审批权限之内?”和它的两个同伴是故意不带数字的,因为这些金额不在任何 HRIS 导出文件里——它们来自一份授权审批制度。请把币种和金额写进每一个判断的方框文字里,并在方框备注里注明它出自哪一版制度、上一次复核是什么时候。一条没有数字的阶梯,什么也分流不了。
决定代理人为空意味着什么
休假这一支假定审批人所在的行带着一个 delegate 或 acting_manager 的值。请现在就决定它为空时怎么办:自动升一级,还是把申请挂起并通知人力资源团队。两种都站得住脚。不作决定,意味着这份申请停在一位具名的负责人那里,而那个人并不在读它,这和丢了没有区别。
把这张图和人员编制的组织结构图分开
同一份导出文件可以产出两件东西,而它们回答的是不同的问题。在 QueryChart 的组织结构图编辑器里画出来的树,显示谁向谁汇报、每位经理下面有多少人。而这张流程图显示的是一份申请如何穿过那棵树。不要试图让一份文档同时做两件事——那棵树会长出它解释不了的决策菱形,而这张流程图会长出每一个从不审批任何东西的员工。
常见问题
HRIS 导出文件到底需要哪几列?
五列。employee_id,每个人一个稳定的标识符。manager_id,装着这个人的经理的 employee_id,层级就活在这一列里。full_name 和 job_title,它们成为方框上供人阅读的文字。以及 cost_centre,正是它让跨成本中心那个判断有可能被回答。薪酬或人力资源导出文件里的其余一切——薪档、入职日期、工作地点、合同类型、社保号——要么与分流无关,要么就是你不该粘贴进一张图里的数据。请取一份文件副本,留下这五列,源文件不要动。
为什么我的 CSV 打开后是一整列?
因为分隔符不是逗号。在欧洲区域设置下生成的导出文件惯常使用分号,因为那里逗号是小数点,而一份满是分号的文件按逗号分隔来读,就是一行一个字段。另有两个常见原因:文件被存成了 UTF-16 而不是 UTF-8,于是每个字符后面都跟着一个空字节,什么都匹配不上;或者第一个表头格带着一个字节顺序标记,悄悄地让 employee_id 变成了另一个字符串。请先用纯文本编辑器打开文件看第一行,再去怪导入程序。
这和组织结构图是一回事吗?
不是,而且值得把差别说准。组织结构图是一棵树:它回答谁向谁汇报、结构有多深、每位经理下面有多少人,而 QueryChart 有一个专门的组织结构图编辑器,能从同一份导出文件里画出这棵树。这份模板是一张流程图。它回答的是一个分流问题——这份申请需要审批,需要谁签字,以及当那个人超出权限、不在岗、或者本人就是申请人时,它该去哪里。树是输入。流程图是你拿它做的事。多数机构两者都需要,而且要分开画。
导入的时候会坏掉什么?
三件事,而其中只有一件会出声。连线到列装的是行号而不是步骤名称,所以一条指向不存在的行的连线会被丢弃且毫无提示,那个方框就那么孤零零地待着。插入一行会给它下面的每一行重新编号,这也是追加加重新指向比中间插入更安全的原因。而编辑器认不出来的形状名称会被规整成流程,于是一个打错的决策变成了一个矩形,而它的分支标签还挂在自己的箭头上。每次导入之后请检查那些菱形;无声的失败最先在那里显形。
审批权限该怎么定?
从一份成文的授权审批制度里来,而不是从组织结构图里来。组织结构图告诉你级别的顺序;制度告诉你每一级的金额,而这两样东西由不同的人维护。有三条实用规则。给每一级都写明一个数字,最高一级也不例外,这样就不存在一个谁都不能批的金额。让各档不重叠,这样对某一个金额而言,能签字的最低级别恰好只有一个。以及写明一份申请能不能被拆分,因为一份只有金额上限、没有防拆分条款的制度,限制的是文书工作而不是支出。