Smartbi审批流实战多分支机构预算提报的差异化流程设计在集团型企业中预算管理往往面临一刀切与个性化的矛盾。以某上市公司为例其华北区采用扁平化管理而华南区则实行层级审批传统OA系统难以兼顾这种差异。Smartbi的流程引擎恰好解决了这一痛点——通过可视化配置实现一套系统多重规则。1. 组织架构与流程规划1.1 用户体系建模在Smartbi中建立符合企业实际的组织结构是流程设计的基础。建议采用角色用户组的双重映射总公司 ├─ 财务部角色财务总监 ├─ 行政部角色流程管理员 │ ├─ 北京分公司用户组 │ └─ 北分管理部角色分公司经理 │ └─ 广州分公司用户组 ├─ 广分管理部角色分公司经理 └─ 华南区域部角色区域总经理提示角色用于功能权限控制用户组更适合作为流程分支的判断条件1.2 流程拓扑设计针对示例中的团建预算场景需要构建并行分支流程graph TD A[总公司发起] -- B{分支机构判断} B --|北京分公司| C1[北分填报] B --|广州分公司| C2[广分填报] C1 -- D1[北分经理审批] C2 -- D2[广分经理审批] D2 -- E[区域总经理审批] D1 -- F[总公司汇总审批] E -- F2. 关键配置步骤详解2.1 分支条件设置在流程设计器中通过决策节点实现差异化路由添加决策节点命名为分支机构判断配置条件表达式// 北京分公司路径 if(用户组.contains(北京分公司)){ return path_bj; } // 广州分公司路径 else if(用户组.contains(广州分公司)){ return path_gz; }设置输出变量path_bj → 连接北分填报节点path_gz → 连接广分填报节点2.2 动态审批人指派不同层级的审批人指定方式对比审批环节指派方式配置示例适用场景分公司经理审批按角色角色分公司经理固定岗位的常规审批区域总经理审批按用户组角色用户组广州分公司 角色区域总经理特定区域的特殊审批总公司审批手动选择指定具体用户账号临时授权或特殊事项注意避免直接绑定具体人员建议始终通过角色或用户组关联3. 填报表单与流程集成3.1 智能表单开发电子表格设计中需要特别注意A1: 【#{branchName}】季度团建预算申请表 B3: 申请部门#{deptName}自动填充 C5: 预算金额SUM(D8:D15)自动计算 D8:D15: 开放填报设置数据有效性校验关键配置项使用#{变量}实现动态标题通过权限→可见性控制限制跨部门数据查看设置单元格级的数据格式校验规则3.2 回写规则优化建议采用分表存储视图汇总的方案-- 北京分公司数据表 CREATE TABLE bj_budget ( id INT PRIMARY KEY, item_name VARCHAR(50), amount DECIMAL(12,2), submit_user VARCHAR(30) ); -- 广州分公司数据表 CREATE TABLE gz_budget ( id INT PRIMARY KEY, item_name VARCHAR(50), amount DECIMAL(12,2), submit_user VARCHAR(30), region_approver VARCHAR(30) ); -- 汇总视图 CREATE VIEW total_budget AS SELECT 北京 AS branch, * FROM bj_budget UNION ALL SELECT 广州 AS branch, * FROM gz_budget;4. 实施中的常见问题排查4.1 流程卡顿分析当流程停滞时按以下顺序检查权限验证确认发起人具有报表提交权限检查审批人是否被正确分配角色条件判断调试决策节点表达式查看流程变量的当前值系统日志# 查看流程引擎日志 grep ProcessInstance /opt/smartbi/logs/workflow.log4.2 数据隔离异常如果出现跨部门数据泄露检查报表的权限→数据权限设置验证用户组划分是否准确确认回写规则中的过滤条件某客户案例因误将广州分公司用户组设置为北京分公司的父组导致权限继承异常。调整组关系后问题解决。5. 进阶应用场景5.1 多级会签流程对于需要多方确认的采购审批添加会签节点设置审批策略通过比例60%最少通过数3配置参与角色财务代表法务代表业务部门负责人5.2 动态跳转规则实现条件化流程跳转的JavaScript示例function getNextStep() { // 根据金额大小决定审批路径 if(budgetAmount 100000){ return CFO_approval; } else if(budgetAmount 50000){ return department_head_approval; } else { return direct_approval; } }在实际项目中我们曾为某零售集团配置了23种分支条件的采购流程。关键经验是先绘制完整的流程图原型再分段实施验证最后通过版本控制管理流程变更。
Smartbi审批流实战:如何为不同分公司设计差异化的预算提报流程(附节点配置截图)
Smartbi审批流实战多分支机构预算提报的差异化流程设计在集团型企业中预算管理往往面临一刀切与个性化的矛盾。以某上市公司为例其华北区采用扁平化管理而华南区则实行层级审批传统OA系统难以兼顾这种差异。Smartbi的流程引擎恰好解决了这一痛点——通过可视化配置实现一套系统多重规则。1. 组织架构与流程规划1.1 用户体系建模在Smartbi中建立符合企业实际的组织结构是流程设计的基础。建议采用角色用户组的双重映射总公司 ├─ 财务部角色财务总监 ├─ 行政部角色流程管理员 │ ├─ 北京分公司用户组 │ └─ 北分管理部角色分公司经理 │ └─ 广州分公司用户组 ├─ 广分管理部角色分公司经理 └─ 华南区域部角色区域总经理提示角色用于功能权限控制用户组更适合作为流程分支的判断条件1.2 流程拓扑设计针对示例中的团建预算场景需要构建并行分支流程graph TD A[总公司发起] -- B{分支机构判断} B --|北京分公司| C1[北分填报] B --|广州分公司| C2[广分填报] C1 -- D1[北分经理审批] C2 -- D2[广分经理审批] D2 -- E[区域总经理审批] D1 -- F[总公司汇总审批] E -- F2. 关键配置步骤详解2.1 分支条件设置在流程设计器中通过决策节点实现差异化路由添加决策节点命名为分支机构判断配置条件表达式// 北京分公司路径 if(用户组.contains(北京分公司)){ return path_bj; } // 广州分公司路径 else if(用户组.contains(广州分公司)){ return path_gz; }设置输出变量path_bj → 连接北分填报节点path_gz → 连接广分填报节点2.2 动态审批人指派不同层级的审批人指定方式对比审批环节指派方式配置示例适用场景分公司经理审批按角色角色分公司经理固定岗位的常规审批区域总经理审批按用户组角色用户组广州分公司 角色区域总经理特定区域的特殊审批总公司审批手动选择指定具体用户账号临时授权或特殊事项注意避免直接绑定具体人员建议始终通过角色或用户组关联3. 填报表单与流程集成3.1 智能表单开发电子表格设计中需要特别注意A1: 【#{branchName}】季度团建预算申请表 B3: 申请部门#{deptName}自动填充 C5: 预算金额SUM(D8:D15)自动计算 D8:D15: 开放填报设置数据有效性校验关键配置项使用#{变量}实现动态标题通过权限→可见性控制限制跨部门数据查看设置单元格级的数据格式校验规则3.2 回写规则优化建议采用分表存储视图汇总的方案-- 北京分公司数据表 CREATE TABLE bj_budget ( id INT PRIMARY KEY, item_name VARCHAR(50), amount DECIMAL(12,2), submit_user VARCHAR(30) ); -- 广州分公司数据表 CREATE TABLE gz_budget ( id INT PRIMARY KEY, item_name VARCHAR(50), amount DECIMAL(12,2), submit_user VARCHAR(30), region_approver VARCHAR(30) ); -- 汇总视图 CREATE VIEW total_budget AS SELECT 北京 AS branch, * FROM bj_budget UNION ALL SELECT 广州 AS branch, * FROM gz_budget;4. 实施中的常见问题排查4.1 流程卡顿分析当流程停滞时按以下顺序检查权限验证确认发起人具有报表提交权限检查审批人是否被正确分配角色条件判断调试决策节点表达式查看流程变量的当前值系统日志# 查看流程引擎日志 grep ProcessInstance /opt/smartbi/logs/workflow.log4.2 数据隔离异常如果出现跨部门数据泄露检查报表的权限→数据权限设置验证用户组划分是否准确确认回写规则中的过滤条件某客户案例因误将广州分公司用户组设置为北京分公司的父组导致权限继承异常。调整组关系后问题解决。5. 进阶应用场景5.1 多级会签流程对于需要多方确认的采购审批添加会签节点设置审批策略通过比例60%最少通过数3配置参与角色财务代表法务代表业务部门负责人5.2 动态跳转规则实现条件化流程跳转的JavaScript示例function getNextStep() { // 根据金额大小决定审批路径 if(budgetAmount 100000){ return CFO_approval; } else if(budgetAmount 50000){ return department_head_approval; } else { return direct_approval; } }在实际项目中我们曾为某零售集团配置了23种分支条件的采购流程。关键经验是先绘制完整的流程图原型再分段实施验证最后通过版本控制管理流程变更。