Oracle EBS AP Pay Group(支付组)底层完整实现逻辑(R12 标准,区分 Lookup 基础→默认值继承→数据表存储→付款筛选引擎→IBY 支付引擎联动五层底层)
Oracle EBS AP Pay Group支付组底层完整实现逻辑R12 标准区分 Lookup 基础→默认值继承→数据表存储→付款筛选引擎→IBY 支付引擎联动五层底层核心区分Pay GroupPAY_GROUP_LOOKUP_CODE业务分类标签FND 标准 LOOKUP≠Payment Batch 付款批 ≠IBY 内部 Payment Group付款引擎自动分组下文全指 AP 应付业务属性 Pay Group。一、第一层基础数据源底层PAY GROUP 标准 Lookup 存储逻辑配置底层1. 系统底层字典表Pay Group 是标准 FND 公用 LookupLOOKUP_TYPEPAY GROUP无独立业务配置表全部存在 FND 公用表sql-- 取有效支付组编码SQL SELECT lookup_code,meaning,description,enabled_flag FROM fnd_lookup_values_vl WHERE lookup_typePAY GROUP AND enabled_flagY AND SYSDATE BETWEEN NVL(start_date_active,SYSDATE) AND NVL(end_date_active,SYSDATE1);FND_LOOKUP_TYPES存 LOOKUP_TYPEPAY 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 供应商头HeaderAP_SUPPLIERSPAY_GROUP_LOOKUP_CODE新建供应商自动带出全局默认可手工改写同供应商全地点缺省取值来源3 供应商地点SiteAP_SUPPLIER_SITES_ALLPAY_GROUP_LOOKUP_CODE优先级高于供应商头同一供应商不同结算地点可覆盖表头分组核心同一供应商原料组 / 工程组分地点区分4 发票头InvoiceAP_INVOICES_ALLPAY_GROUP_LOOKUP_CODE1. 自动继承对应供应商地点 Pay Group2. 发票工作台可单笔手工修改最终付款取值以发票此字段为准最重要关键底层规则导入发票AP_OPEN_INTERFACE接口表AP_INVOICES_INTERFACE.PAY_GROUP为空→优先取供应商地点→再供应商头→最后 AP 全局默认接口写入后落地 AP_INVOICES_ALLOracle。费用报销导入 APEXPENSE REPORT从员工供应商地点带出 Pay Group 生成应付发票。三、第三层付款批创建 筛选底层逻辑AutoSelect 程序核心Pay Group 核心使用链路付款批分三步底层执行保存筛选条件→AutoSelect 筛选发票→生成候选付款明细R11i 原生 AP 付款批、R12 IBY 付款流程共用同一筛选逻辑Oracle。步骤 1提交付款批筛选条件落地表AP_INV_SELECTION_CRITERIA_ALLCHECKRUN_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。步骤 2AutoSelect 标准 SQL 筛选发票Pay Group 筛选 WHERE 条件sqlSELECT * FROM AP_INVOICES_ALL INV WHERE 11 -- 1.发票状态已审批未付款 AND INV.APPROVED_FLAGY 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 IBYOracle Payments支付引擎底层联动逻辑R12 架构重点R12 拆分为AP 负责发票筛选、IBY 负责付款格式化 银行报文Pay Group 双层传递AP 筛选完符合条件的付款计划→推送应付待付款单据至 IBY 单据表IBY_DOCS_PAYABLE_ALL原 AP_PAY_GROUP_LOOKUP_CODE 带入本表备用筛选IBY 标准包IBY_PAYGROUP_PUB支付分组公共包在引擎内部二次分组先按银行账户、币种、付款方法自动拆系统付款组Pay Group 作为自定义业务维度绑定 Payment Process Profile (PPP 付款配置文件)不同 Pay Group 配置不同报文格式、代发规则、手续费科目最终生成正式付款记录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 GroupEMP/MAT/PROJAP 系统参数默认 Pay GroupMAT供应商【宝钢】表头 PAY_GROUPMAT宝钢国内地点不修改继承 MAT、宝钢海外地点手工改为 FOR录入宝钢国内原料发票自动带入 MAT录入宝钢零星设备备件发票发票页手工改 PAY_GROUPPROJ → AP_INVOICES_ALL.PAY_GROUP 分别为 MAT、PROJ新建付款批 1筛选 PAY_GROUPMAT → AutoSelect 只带出原料发票 新建付款批 2筛选 PAY_GROUPPROJ → 只带出改过分组的备件发票筛选数据写入 AP_PAYMENT_SCHEDULES_ALL→推送 IBY 生成建行电汇报文、农行工程付款报文。七、常见底层技术细节 误区Pay Group 不能空值筛选误区AP_INVOICES_ALL.PAY_GROUP 为空时仅在付款批不填 Pay Group 条件才会被选中指定任意 Pay Group空值发票全部过滤修改 Pay Group 生效逻辑修改供应商地点 Pay Group只对新增发票生效存量已录入发票保留原有 Pay Group历史固化如需变更历史单据必须在 Invoice Workbench 单笔修改发票字段多 OU 集团架构FND_LOOKUP 全局共享 Pay Group各 OU 供应商可共用同一编码靠 OUPay Group 双维度做集团资金拆分。