当前位置: 首页 > news >正文

po审批问题

今天遇到一个PO审批的问题

现象为:po订单为34万,按照审批流程到副总就可以结束,但是流程到了总经理审批。

原因是:采购修改了gcc的科目,但是没有及时修改审批组的科目,导致po的dist中的科目与approval group的什么规则 approval rules不一致。

小知识:

po的审批主要以两个维度审核,金额和科目,金额是订单的总金额,科目为po分配行(dist中的科目)

由谁来审批,是根据po的采购员决定,首先由采购员审批,如果采购员由权限则审批结束,否则由他所属组织的上一级继续审批,同理上一级没有权限则再上一级审批,直到有权限或者最后一位审批者才会结束。

审批组织架构维护为

po用户->Setup->Personnel->Position Hierarchy

界面中有多个审批组织,其中name为“职位”

岗位

po用户->Setup->Approvals->Approval Assignments

使用Position Hierarchy中的name可以查找该职位对应的岗位

审批组

po用户->Setup->Approvals->Approval Groups

使用Approval Assignments的Job可以在该界面找到对应的审批权限(金额和科目)

审批组说明

审批组有两种类型 DOCUMENT_TOTAL / ACCOUNT_RANGE

1、DOCUMENT_TOTAL:整单总金额规则(头级、全 PO 金额)

  • 管控对象:整张 PO 含税总金额(PO 头合计)
  • rule_type=I(INCLUDE):该审批人最多可审批 amount_limit 以内整单例:DOCUMENT_TOTAL I、限额 50000 →≤5 万副总终审;>5 万自动往上流总经理
  • 只要审批组配了这条,就代表按整单金额做权限上限

只配 DOCUMENT_TOTAL、没有任何 ACCOUNT_RANGE=I → 隐性 = 所有科目都不在审批范围,哪怕金额在限额内,单据依旧向上走总经理(就是你之前遇到的场景)

2、ACCOUNT_RANGE:科目区间规则(行分配科目级)GL 科目弹性域

管控对象:PO分配行对应的费用科目(CODE_COMBINATIONS 科目组合),分两种:

  1. ACCOUNT_RANGE + I (包含)这个科目区间的费用,才受上面 DOCUMENT_TOTAL 金额管控例:I 科目从 6601~6609、限额 5 万→ PO 全部科目落在 6601-6609、金额≤5 万:副总直接终审
  2. ACCOUNT_RANGE + E (排除)黑名单科目,无论金额多少,一律不能被本审批人终审,强制上浮例:E 6701 科目 → PO 只要有一行科目是 6701,哪怕金额 100 元,副总批完继续流转总经理

配套另外 2 个常用 object_code(顺带)

  • ITEM_CATEGORY_RANGE:物料类别管控
  • ITEM_RANGE:单个物料编码管控

一句话总结你的业务疑问

  1. 审批组:只有 DOCUMENT_TOTAL、无 ACCOUNT_RANGE I全科目不在审批权限 → 金额≤副总限额也不能终审,继续到总经理
  2. 审批组:DOCUMENT_TOTAL + ACCOUNT_RANGE I(全科目全覆盖)PO 科目全在包含区间、金额≤限额 →副总直接终审停流
  3. DOCUMENT_TOTAL + I 全科目 + E 个别科目命中 E 黑名单科目 → 无论金额大小,必须继续上总经理

常用代码

查询po的金额和科目

SELECT poh.segment1 po_no, poh.currency_code curr_code, NVL(poh.rate, 1) ex_rate, pol.quantity * pol.unit_price, gcc.concatenated_segments 完整会计科目, --拼接全科目 gcc.segment1 段1, gcc.segment2 段2, gcc.segment3 科目段, --通常自然科目在本段(审批ACCOUNT_RANGE管控段) gcc.segment4 段4 FROM po_headers_all poh INNER JOIN po_lines_all pol ON poh.po_header_id = pol.po_header_id INNER JOIN po_distributions_all pda ON pol.po_line_id = pda.po_line_id JOIN gl_code_combinations_kfv gcc ON pda.code_combination_id = gcc.code_combination_id WHERE poh.segment1 = '&po编号';

查询po使用的审批流

SELECT hou.name 经营单位, pha.segment1 PO单号, pp.full_name 采购员, ppos.name 采购员职位, pj.name 岗位, pcg.control_group_name 审批组名称, decode(pcr.object_code, 'DOCUMENT_TOTAL', '整单金额规则', 'ACCOUNT_RANGE', 'GL科目区间规则', 'ITEM_CATEGORY_RANGE', '物料类别', '其他') 规则类型, --decode(pcr.RULE_TYPE_CODE,'I','INCLUDE包含(可审批)','E','EXCLUDE排除(黑名单)') 规则属性, pcr.control_rule_id, pcr.object_code, pcr.RULE_TYPE_CODE, pcr.amount_limit 审批限额, pcr.segment1_low, pcr.segment2_low, pcr.segment3_low, pcr.segment1_high, pcr.segment2_high, pcr.segment3_high FROM po_headers_all pha JOIN hr_operating_units hou ON pha.org_id = hou.organization_id JOIN per_all_people_f pp ON pha.agent_id = pp.person_id AND SYSDATE BETWEEN pp.effective_start_date AND pp.effective_end_date JOIN per_assignments_f pas ON pp.person_id = pas.person_id AND pha.creation_date BETWEEN pas.effective_start_date AND pas.effective_end_date JOIN per_positions_v ppos ON pas.position_id = ppos.position_id JOIN per_jobs_vl pj ON ppos.job_id = pj.job_id JOIN po_position_controls_all ppca ON ppca.position_id = ppos.position_id AND ppca.org_id = pha.org_id JOIN po_control_functions pocf ON ppca.control_function_id = pocf.control_function_id JOIN po_control_groups_all pcg ON ppca.control_group_id = pcg.control_group_id LEFT JOIN po_control_rules pcr ON pcg.control_group_id = pcr.control_group_id WHERE pha.segment1 = '&po编号' --替换成你的PO号 AND SYSDATE BETWEEN ppca.start_date AND NVL(ppca.end_date, SYSDATE + 1) AND pcg.enabled_flag = 'Y';

po已经完成的审批流程

SELECT pahv.sequence_num, poh.segment1 PO单号, pahv.employee_name 审批人姓名, pap.full_name HR员工全称, ppos.name 职位名称, pj.name 岗位, pahv.action_code 审批动作, pahv.action_date 审批日期 FROM po_action_history_v pahv JOIN po_headers_all poh ON pahv.object_id=poh.po_header_id AND pahv.object_type_code='PO' JOIN per_all_people_f pap ON pahv.employee_id=pap.person_id LEFT JOIN per_assignments_f pas ON pap.person_id=pas.person_id LEFT JOIN per_positions_v ppos ON pas.position_id=ppos.position_id LEFT JOIN per_jobs_vl pj ON ppos.job_id=pj.job_id WHERE SYSDATE BETWEEN pap.effective_start_date AND pap.effective_end_date AND SYSDATE BETWEEN pas.effective_start_date AND pas.effective_end_date AND poh.segment1='&po编号' ORDER BY pahv.sequence_num;

审批组规则

SELECT hou.name 经营单位, pj.name 岗位名称, pcg.control_group_name 审批组, pcr.amount_limit 本位币审批限额, --限额字段在这里 pcr.object_code, pcr.RULE_TYPE_CODE, pcr.segment1_low, pcr.segment2_low, pcr.segment3_low, pcr.segment1_high, pcr.segment2_high, pcr.segment3_high, pcr.* --科目起止段 FROM po_position_controls_all ppca JOIN po_control_groups_all pcg ON ppca.control_group_id = pcg.control_group_id JOIN po_control_rules pcr ON pcg.control_group_id = pcr.control_group_id JOIN per_jobs_vl pj ON ppca.job_id = pj.job_id JOIN hr_operating_units hou ON ppca.org_id = hou.organization_id WHERE 1=1 AND pcr.object_code = 'DOCUMENT_TOTAL' --单据总金额控制 AND SYSDATE BETWEEN ppca.start_date AND NVL(ppca.end_date, SYSDATE + 1) AND pcg.enabled_flag = 'Y' --AND pj.name LIKE '%副總%'; AND pj.name IN ('123','456');
http://www.jsqmd.com/news/949593/

相关文章:

  • 2026 上海零基础电工培训怎么选?从资质维度拆解择校避雷方法 - 新闻观察者
  • 解读 `signal(SIGPIPE, SIG_IGN);`
  • 厦门市2026年黄金回收白银回收铂金回收放心选真心推荐 靠谱门店排行 + 联系电话整理 - 中业金奢再生回收中心
  • 奇迹 MU 荣耀出征手游官网下载:荣耀出征最新官方下载渠道
  • 新手福音:在快马平台借助Codex重连机制,无忧开启你的第一行代码
  • WindowResizer:如何突破Windows窗口限制,打造个性化桌面布局?
  • 2026惠州黄金回收避坑指南!拆解五大套路,认准中检认证的惠奢汇(惠城旗舰店) - 生活测评小能手
  • 告别手动重复点击:AutoClicker鼠标自动化工具终极指南
  • Loft复式自建房楼道电梯太窄床垫进不来?环保可拆洗床垫这样选不踩坑
  • 2026年酒泉市黄金回收白银回收铂金回收门店 TOP5榜单无套路:实体店铺地址电话一览 - 诚金汇钻回收公司
  • 别再手动调参了!用OpenCV-Python的滚动条,5分钟搞定图片HSV/RGB阈值调试
  • NB-IoT智能照明系统设计:从低功耗硬件到云端策略的物联网实践
  • 面向学术初稿的AIGC含量本地检测方案实现与踩坑记录
  • 2026 沈阳名包回收 TOP5 实测盘点|闲置奢品变现指南 - 奢侈品回收评测
  • chfsgui图形化文件共享工具:5分钟搭建个人文件服务器的终极指南
  • 星辰变手游官网下载:星辰变归来最新官方下载渠道
  • 教育部发布查重新规,提交前一晚满篇红,还能按时毕业吗?5款AI查重降重工具一夜逆袭 - AI论文先行者
  • 盘锦市2026年黄金回收白银回收铂金回收权威门店 TOP5+正规可靠机构电话与地址汇总 - 中安检金银铂钻回收
  • Arduino 10秒倒计时器:从电路设计到代码实现的完整DIY指南
  • 基于快马与miniconda打造标准化开发环境,提升团队协作效率
  • 告别臃肿:5分钟上手G-Helper,让你的华硕笔记本重获新生
  • 常用学术场景AI内容检测工具的付费逻辑实测与疑点解答
  • MuseTalk终极指南:如何让静态图像实时开口说话 [特殊字符]
  • 5个必知技巧:如何用marked.js打造高性能Markdown解析体验
  • 树莓派Geany配置GTK开发环境:解决gtk/gtk.h找不到问题
  • 终极指南:如何用开源工具轻松解密RPG Maker MV/MZ加密资源
  • Java 资深工程师面试全维度解码
  • OpenCV入门实战:人脸检测、背景移除、边缘检测与图像模糊
  • Topit:3步让Mac窗口置顶,开启高效多任务处理新时代
  • 短剧出海译制全流程:翻译、配音、对口型怎么做