Oracle EBS AP Pay Group(支付组)底层完整实现逻辑(R12 标准,区分 Lookup 基础→默认值继承→数据表存储→付款筛选引擎→IBY 支付引擎联动五层底层)
2026/6/5 9:02:56 网站建设 项目流程

Oracle EBS AP Pay Group(支付组)底层完整实现逻辑(R12 标准,区分 Lookup 基础→默认值继承→数据表存储→付款筛选引擎→IBY 支付引擎联动五层底层)

核心区分:Pay Group(PAY_GROUP_LOOKUP_CODE,业务分类标签,FND 标准 LOOKUP)≠Payment Batch 付款批 ≠IBY 内部 Payment Group(付款引擎自动分组),下文全指 AP 应付业务属性 Pay Group。

一、第一层:基础数据源底层:PAY GROUP 标准 Lookup 存储逻辑(配置底层)

1. 系统底层字典表

Pay Group 是标准 FND 公用 Lookup,LOOKUP_TYPE='PAY GROUP',无独立业务配置表,全部存在 FND 公用表:

sql

-- 取有效支付组编码SQL SELECT lookup_code,meaning,description,enabled_flag FROM fnd_lookup_values_vl WHERE lookup_type='PAY GROUP' AND enabled_flag='Y' AND SYSDATE BETWEEN NVL(start_date_active,SYSDATE) AND NVL(end_date_active,SYSDATE+1);
  • FND_LOOKUP_TYPES:存 LOOKUP_TYPE=PAY GROUP 元数据(系统预置,不可删除)
  • FND_LOOKUP_VALUES/FND_LOOKUP_VALUES_VL:存储所有自定义 Pay Group 编码、名称、生效日期
  • 校验规则:全系统所有 Pay Group 字段只能录入本表有效 LOOKUP_CODE,录入无效值报错,全模块统一数据源,保证主数据一致性。

2. AP 全局默认配置底层(AP Options)

表:AP_SYSTEM_PARAMETERS_ALL字段:DEFAULT_PAY_GROUP_LOOKUP_CODE逻辑:应付选项设置全局默认支付组,是供应商主数据默认取值源头;新建供应商无赋值时自动带入该编码Oracle。

二、第二层:自上而下四层默认值穿透赋值逻辑(数据携带底层,EBS 核心默认继承架构)

优先级:发票手工修改 > 供应商地点 > 供应商头 > AP 全局默认值,四层赋值逐级向下继承,字段统一为PAY_GROUP_LOOKUP_CODE(VARCHAR2(25))

层级数据库表字段赋值规则
1 应付全局配置AP_SYSTEM_PARAMETERS_ALLDEFAULT_PAY_GROUP_LOOKUP_CODE系统兜底默认
2 供应商头(Header)AP_SUPPLIERSPAY_GROUP_LOOKUP_CODE新建供应商自动带出全局默认,可手工改写;同供应商全地点缺省取值来源
3 供应商地点(Site)AP_SUPPLIER_SITES_ALLPAY_GROUP_LOOKUP_CODE优先级高于供应商头,同一供应商不同结算地点可覆盖表头分组(核心:同一供应商原料组 / 工程组分地点区分)
4 发票头(Invoice)AP_INVOICES_ALLPAY_GROUP_LOOKUP_CODE1. 自动继承对应供应商地点 Pay Group;2. 发票工作台可单笔手工修改,最终付款取值以发票此字段为准(最重要)

关键底层规则

  1. 导入发票(AP_OPEN_INTERFACE):接口表AP_INVOICES_INTERFACE.PAY_GROUP为空→优先取供应商地点→再供应商头→最后 AP 全局默认;接口写入后落地 AP_INVOICES_ALLOracle。
  2. 费用报销导入 AP(EXPENSE REPORT):从员工供应商地点带出 Pay Group 生成应付发票。

三、第三层:付款批创建 & 筛选底层逻辑(AutoSelect 程序核心,Pay Group 核心使用链路)

付款批分三步底层执行:保存筛选条件→AutoSelect 筛选发票→生成候选付款明细,R11i 原生 AP 付款批、R12 IBY 付款流程共用同一筛选逻辑Oracle。

步骤 1:提交付款批,筛选条件落地表AP_INV_SELECTION_CRITERIA_ALL(CHECKRUN_ID 主键)

用户在付款批界面录入的 **Pay Group 筛选条件(单值 / 区间 / 多值)** 落地本表,字段:

  • PAY_GROUP_FROM、PAY_GROUP_TO:单选 / 范围筛选;

多选 Pay Group 场景:R12 存入辅助表AP_PAY_GROUP,多条 VENDOR_PAY_GROUP,筛选时 SQL 用 IN (多个编码) 实现或逻辑匹配Oracle。筛选条件完整字段:付款截止日 (PAY_THROUGH_DATE)、支付组、付款优先级、银行账户、OU、币种等全部存入本表,作为 AutoSelect 的 SQL 绑定变量Oracle。

步骤 2:AutoSelect 标准 SQL 筛选发票(Pay Group 筛选 WHERE 条件)

sql

SELECT * FROM AP_INVOICES_ALL INV WHERE 1=1 -- 1.发票状态:已审批未付款 AND INV.APPROVED_FLAG='Y' AND NVL(INV.PAID_FLAG,'N')='N' -- 2.到期/折扣日≤付款截止日 AND NVL(INV.DISCOUNT_DATE,INV.DUE_DATE) <= :PAY_THROUGH_DATE -- 3.Pay Group筛选核心条件(关键) AND INV.PAY_GROUP_LOOKUP_CODE BETWEEN :PAY_GROUP_FROM AND :PAY_GROUP_TO -- 附加:付款优先级、OU、币种、冻结标识等 AND NVL(INV.HOLD_FLAG,'N')='N';

不填 Pay Group:该条件从 WHERE 中移除,全量分组发票参与筛选。

步骤 3:筛选结果落地应付付款明细AP_PAYMENT_SCHEDULES_ALL(付款计划行)

每张发票的 ** 付款计划行(分期付款)** 携带原发票 PAY_GROUP_LOOKUP_CODE,是后续合并生成付款单的数据源;同一张发票多期付款,全部沿用同一支付组编码。

四、第四层:R12 IBY(Oracle Payments)支付引擎底层联动逻辑(R12 架构重点)

R12 拆分为AP 负责发票筛选、IBY 负责付款格式化 + 银行报文,Pay Group 双层传递:

  1. AP 筛选完符合条件的付款计划→推送应付待付款单据至 IBY 单据表:IBY_DOCS_PAYABLE_ALL,原 AP_PAY_GROUP_LOOKUP_CODE 带入本表备用筛选;
  2. IBY 标准包IBY_PAYGROUP_PUB(支付分组公共包)在引擎内部二次分组:
    • 先按银行账户、币种、付款方法自动拆系统付款组;
    • Pay Group 作为自定义业务维度,绑定 Payment Process Profile (PPP 付款配置文件):不同 Pay Group 配置不同报文格式、代发规则、手续费科目;
  3. 最终生成正式付款记录IBY_PAYMENTS_ALL,可追溯原始 Pay Group 编码用于对账统计。

五、第五层:凭证 & 报表取值底层逻辑

1. 子分类账 SLA 会计分录

SLA 取AP_INVOICES_ALL.PAY_GROUP_LOOKUP_CODE作为辅助核算维度,可配置不同 Pay Group 对应不同费用科目段(如 EMP 员工组入福利费、MAT 原料入原材料),无需改弹性域结构,靠 Pay Group 做科目分流。

2. 标准报表底层取数逻辑

应付账龄、资金需求报表AP_CASH_REQUIREMENT:全部关联 AP_INVOICES_ALL 的 PAY_GROUP 字段做分组 SUM 汇总,SQL GROUP BY PAY_GROUP_LOOKUP_CODE。

六、关键实操底层示例(数据流转全链路)

配置前置:FND_LOOKUP 新增 3 个 Pay Group:EMP/MAT/PROJ

  1. AP 系统参数默认 Pay Group=MAT;
  2. 供应商【宝钢】表头 PAY_GROUP=MAT,宝钢国内地点不修改(继承 MAT)、宝钢海外地点手工改为 FOR;
  3. 录入宝钢国内原料发票:自动带入 MAT;录入宝钢零星设备备件发票,发票页手工改 PAY_GROUP=PROJ; → AP_INVOICES_ALL.PAY_GROUP 分别为 MAT、PROJ;
  4. 新建付款批 1:筛选 PAY_GROUP=MAT → AutoSelect 只带出原料发票; 新建付款批 2:筛选 PAY_GROUP=PROJ → 只带出改过分组的备件发票;
  5. 筛选数据写入 AP_PAYMENT_SCHEDULES_ALL→推送 IBY 生成建行电汇报文、农行工程付款报文。

七、常见底层技术细节 & 误区

  1. Pay Group 不能空值筛选误区:AP_INVOICES_ALL.PAY_GROUP 为空时,仅在付款批不填 Pay Group 条件才会被选中;指定任意 Pay Group,空值发票全部过滤;
  2. 修改 Pay Group 生效逻辑:修改供应商地点 Pay Group只对新增发票生效,存量已录入发票保留原有 Pay Group(历史固化),如需变更历史单据必须在 Invoice Workbench 单笔修改发票字段;
  3. 多 OU 集团架构:FND_LOOKUP 全局共享 Pay Group,各 OU 供应商可共用同一编码,靠 OU+Pay Group 双维度做集团资金拆分。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询