华为MetaERP Oracle Fusion Cloud Procurement 后台程序完整获取路径 + 全套可落地示例前置基础定义Fusion 采购不存在 EBS 那种本地 PL/SQL 存
Oracle Fusion Cloud Procurement 后台程序完整获取路径 + 全套可落地示例
前置基础定义
Fusion 采购不存在 EBS 那种本地 PL/SQL 存储过程、Form 程序、直连数据库并发程序; Fusion 体系下后台程序分为 5 大类,也是租户唯一合法获取、调试、二次开发的对象:
- ESS 定时调度作业(对标 EBS Concurrent Request);
- BPM 审批流程引擎(对标 EBS WF 工作流);
- 标准 REST/SOAP WebService 接口(系统原生业务服务);
- Groovy 业务规则脚本(租户唯一可自主编写的后台逻辑);
- FBDI 批量导入后台批处理程序(接口数据导入后台任务)。
硬性约束:Oracle 底层内核 PL/SQL 包、物理表触发器、系统级 Java 服务租户无法获取源码、不能修改,仅能调用、监控日志。
一、五大类后台程序:官方获取渠道 + 实操示例
一)ESS 定时后台作业(最常用系统内置批处理程序)
1、获取 ESS 程序清单、参数、说明的 4 种官方渠道
1)Fusion 前台内置查看(无需 MOS)路径:导航栏 → 工具(Tools)→Scheduled Processes(计划流程)
- 点击「Schedule New Process」,产品筛选
Procurement,即可查看全采购模块预置 ESS 作业; - 选中任意作业,点击「查看详情」:显示作业名称、内部定义 ID、入参、运行日志、输出报表。
2)官方 PDF 手册:Scheduled Processes for Procurement 官方地址:https://docs.oracle.com/cd/G44591_01/trans/G41008-01/scheduled-processes-for-procurement.pdfOracle 收录全部采购 ESS 用途、参数含义、调度配置方案。
3)MOS 知识库精准检索:
- Doc ID:
2097844.1采购全模块 ESS 清单; - Doc ID:
2547298.1月末采购暂估 ESS 配置与排错。
4)OTBI 视图查询 ESS 运行日志:ESS_REQUESTS_REAL_TIME,可统计作业成功率、运行时长。
2、采购高频 ESS 后台程序清单 + 使用示例
| ESS 作业全称 | 业务作用(对标 EBS) | 实操调用示例 |
|---|---|---|
| Period-End Accrual for Procurement | 月末货到票未到暂估入账(EBS PO 月末暂估并发) | 前台选择账套、会计期间,定时月末自动执行;REST 远程提交任务 |
| Import Approved Purchase Orders | 审批通过申请自动生成 PO(EBS PO_AUTOCREATE) | 配置 OU、申请筛选条件,定时自动转单 |
| Import Receiving Transactions | 外部收货数据批量导入入库 | 配合 FBDI 上传收货文件后自动执行校验入库 |
| Purge Purchasing Audit Trail | 采购单据审计日志归档清理 | 月度定时清理冗余历史日志 |
示例 1:cURL 调用 ESS 提交采购暂估作业(远程后台触发)
bash
# Fusion鉴权:基础认证/JWT二选一 curl -u "你的账号:密码" \ -X POST https://xxx.fa.us2.oraclecloud.com/fscmRestApi/resources/latest/erpintegrations \ -H "Content-Type:application/json" \ -d '{ "processName":"Period-End Accrual for Procurement", "processParameters":[ {"name":"P_LEDGER_ID","value":"30010000123"}, {"name":"P_PERIOD_NAME","value":"2026-08"} ], "schedule":"IMMEDIATE" }'提交后返回RequestId,再调用查询接口监控执行日志与结果。
示例 2:Groovy 脚本在单据触发时调用 ESS 作业(单据保存自动跑批)
groovy
// 采购订单提交审批后自动触发收货数据同步ESS def essWebService = adf.webServices.ESSWebService; def jobDef = [ name:"Import Receiving Transactions", packageName:"/oracle/apps/prc/ess/receiving", type:"JOB_DEFINITION" ]; def params = [ [dataType:"STRING",name:"P_BUSINESS_UNIT_ID",value:"3001000987"] ]; // 提交ESS任务 def res = essWebService.submitRequest("订单审批自动同步收货",jobDef,"PRC",null,params); println("ESS任务ID:"+res.requestId);参考 MOS Doc ID:2780848.1Oracle Sup...
二)BPM 审批工作流后台程序(采购单据审批引擎)
1、获取流程配置、后台路由逻辑的方式
1)前台路径:流程管理(Process Management)→ 采购审批流程
- 可视化查看流程节点、审批人规则、消息推送、代理审批、条件分支;
- 「流程监控」追踪单张 PO 审批后台执行轨迹、失败断点、日志。
2)官方 BPM 流程设计文档: https://docs.oracle.com/en/cloud/saas/procurement/latest/fapra/procurement-approval-workflows.html
3)底层支撑:系统内置 PL/SQL 包PO_WF_APPROVAL_PLSQL,仅可查看执行日志,租户无法编辑源码。
简易配置示例:金额分支审批后台规则
- PO 金额<1 万:自动审批;
- 1 万≤金额<10 万:采购经理审批;
- 金额≥10 万:财务总监 + 总经理双签; 在 BPM 画布拖拽条件判断组件,配置 Groovy 表达式判断订单金额路由节点。
三)REST WebService(采购标准业务后台服务,开发集成首选)
1、全套官方示例获取入口(免费在线文档,自带 JSON/cURL 样例)
主入口:https://docs.oracle.com/en/cloud/saas/procurement/latest/fapra/op-purchaseorders.htmlOracle 功能:
- 每一个接口自带请求样例、返回 JSON、cURL 命令、字段注释、权限要求;
- 支持在线调试、复制参数直接在 Postman 测试;
- 左侧目录:采购申请、PO、收货、供应商、合同全接口。
MOS 专用样例文档(带真实业务载荷)
- Doc ID 2156563.1:采购全部 WebService 清单 + 标准入参样例Oracle Sup...;
- Doc ID 2466504.1:采购申请创建 REST 完整 JSON 样例Oracle Sup...。
实操示例 1:创建采购申请 POST 完整可执行 JSON
json
{ "PreparerPersonId": "300100012345", "BusinessUnitId": "30010009876", "RequisitionType": "PURCHASE", "NeedByDate": "2026-12-31", "requisitionLines": [ { "ItemId": "200001", "Quantity": 20, "UnitPrice": 150, "CategoryId": "100002", "requisitionDistributions": [ { "CodeCombinationId": "500001", "ChargeAccountId": "500001" } ] } ] }cURL 调用:
bash
curl -u "账号:密码" -X POST "https://xxx.fa.oraclecloud.com/fscmRestApi/resources/latest/purchaseRequisitions" \ -H "Content-Type:application/json" -d 上面JSON字符串实操示例 2:查询已审批未关闭 PO(过滤条件 finder)
bash
curl -u user:pwd "https://xxx.fa.oraclecloud.com/fscmRestApi/resources/latest/purchaseOrders?finder=ApprovedPurchaseOrders&expand=purchaseOrderLines.receivingShipments"四)Groovy 业务规则脚本(租户唯一可自主开发的后台自定义程序)
1、获取官方样例渠道
1)Fusion 内置规则编辑器自带模板; 2)Oracle 官方 Groovy 示例库:https://docs.oracle.com/en/cloud/saas/applications-common/latest/fapca/groovy-business-rules-examples.html; 3)MOS 社区大量采购场景现成脚本。
配置入口:
打开 PO 页面 → 右上角「编辑业务规则(Manage Business Rules)」→ 对象触发器(保存前 / 保存后)、验证规则、默认赋值。
场景 1:PO 行保存前单价超限拦截校验(保存前触发)
groovy
// 采购订单行级校验:单价超50000禁止保存,抛出异常拦截单据 if(Line.UnitPrice > 50000){ throw new Exception("当前物料单价超过50000元,禁止创建订单,请走专项审批流程"); } // 自动赋值需求到货日期:当前日期+15天 Line.NeedByDate = new Date()+15;场景 2:审批通过后自动调用外部系统 REST 同步订单
groovy
def restClient = adf.webServices.HttpClient; def url = "https://外部系统接口地址/syncPO"; def payload = '{"poNum":"'+Header.PoNumber+'","status":"APPROVED"}'; def resp = restClient.post(url,payload,"application/json"); if(resp.statusCode != 200){ throw new Exception("外部系统同步失败:"+resp.responseText); }五)FBDI 文件导入后台批处理程序(批量数据导入后台任务)
1、获取官方模板与后台执行逻辑
1)前台下载模板:导航栏 → 工具 →文件导入与导出(File Import Export)筛选 Procurement,下载:
- POPurchaseOrderImportTemplate.xlsm(PO 批量导入);
- PurchaseRequisitionImportTemplate.xlsm(申请单导入);
- ReceivingTransactionsImportTemplate.xlsm(收货导入)。
2)底层逻辑: 上传 Excel → 系统自动写入临时接口中间表XXX_INT(租户不可直查)→ 自动触发对应 ESS 导入作业校验、数据清洗、写入正式业务表。
3)官方操作手册:Doc ID 2380499.1 采购 FBDI 完整导入步骤。
简易操作流程示例
- 填写 Excel 头、行、发货计划、分配科目四标签页;
- 生成 CSV 压缩包上传 Fusion;
- 系统自动拉起
Import Purchase OrdersESS 后台程序; - 在 Scheduled Processes 查看导入日志,报错明细、成功条数。
二、一站式汇总:快速拿到各类程序示例的权威渠道
1、免费官方在线文档(首选)
- 采购 REST 全套示例:https://docs.oracle.com/en/cloud/saas/procurement/latest/fapra/
- ESS 调度手册:https://docs.oracle.com/cd/G44591_01/trans/G41008-01/scheduled-processes-for-procurement.pdfOracle
- Groovy 业务规则样例:https://docs.oracle.com/en/cloud/saas/applications-common/latest/fapca/groovy-business-rules-examples.html
- FBDI 导入模板下载:Fusion 前台 File Import Export 页面
2、My Oracle Support(付费运维账号,高质量落地脚本)
| Doc ID | 内容 |
|---|---|
| 2156563.1 | 采购全部 WebService + 标准载荷样例Oracle Sup... |
| 2466504.1 | 自助采购申请接口实战示例Oracle Sup... |
| 2780848.1 | Groovy 调用 ESS 作业标准脚本模板Oracle Sup... |
| 2097844.1 | 采购全 ESS 作业清单与参数说明 |
3、Oracle 官方 Github 样例仓库
Oracle ERP Cloud 集成示例:https://github.com/oracle/erp-cloud-samples 内含 Java/Python 调用 Fusion 采购 REST、ESS 调度的完整工程代码。
4、环境内自带调试工具(定位后台执行逻辑)
1)Help → Tools → Examine:查看页面操作后台执行的 REST、内部 VO 调用链路; 2)Help → About this record:查看单据绑定的后台服务、底层表映射; 3)ESS 日志查看:定位批处理报错 SQL、业务校验失败原因。
三、EBS 与 Fusion 获取后台程序方式核心差异
| 类型 | EBS R12 | Fusion Cloud Procurement |
|---|---|---|
| 批处理程序 | 直连数据库查看 PL/SQL 包、并发源码 | 仅能调用 ESS,查看日志,无法查看底层源码 |
| 审批程序 | WF 工作流 PL/SQL 定制、编辑工作流包 | BPM 可视化配置 + Groovy 轻量规则,底层 WF 内核不可改 |
| 数据集成 | 接口表 INSERT + 并发程序调试 | FBDI 上传 + ESS 后台执行,租户无接口表访问权限 |
| 自定义后台逻辑 | FORM、触发器、存储过程、DB JOB | 仅支持 Groovy 规则、REST 集成、外部调度调用 ESS |
| 调试方式 | SQL 跟踪、Form 调试器 | 前端 Examine、ESS 日志、REST 请求追踪、Groovy 调试日志 |
四、落地最佳实践建议
- 报表取数、数据分析:优先 OTBI 逻辑视图,不用纠结底层后台程序;
- 系统间集成对接:优先官方 REST 接口,其次 FBDI 批量导入,禁止尝试穿透底层数据库;
- 简单业务校验、默认赋值:Groovy 零代码规则最优;
- 定时批量作业(暂估、归档、自动转单):ESS 定时调度;
- 审批流程改造:BPM 可视化配置,尽量少写复杂 Groovy;
- 严禁尝试通过各种手段破解、直连底层数据库调用系统内部程序,违反 Oracle 云服务协议。
