华为MetaERP 在多OU(Multi-Org / MOAC)环境下做PO接口开发,接口表中的 ORG_ID不是随意填的数字,它有严格的关联与校验规则。以下从数据定义、关联SQL、并发程序校验、常见
在多OU(Multi-Org / MOAC)环境下做PO接口开发,接口表中的ORG_ID不是随意填的数字,它有严格的关联与校验规则。以下从数据定义、关联SQL、并发程序校验、常见坑点四个维度说明。
一、基本关联规则
PO各接口表中的ORG_ID字段,直接等值关联HR_OPERATING_UNITS.ORGANIZATION_ID,代表该笔采购单据所属的业务经营单位(Operating Unit)。
-- 标准关联校验SQL SELECT hou.organization_id AS org_id, hou.name AS operating_unit_name, hou.short_code, hou.business_group_id, gl.set_of_books_id AS ledger_sob_id FROM hr_operating_units hou JOIN gl_ledgers gl ON hou.set_of_books_id = gl.ledger_id WHERE hou.organization_id = :p_org_id; -- 接口表填入的ORG_ID关键规则:
PO_HEADERS_INTERFACE.ORG_ID=HR_OPERATING_UNITS.ORGANIZATION_ID(数值型,非NAME/CODE)同一个OU下的PO共享同一
ORG_ID,基表PO_HEADERS_ALL.ORG_ID即从此继承PO_REQUISITIONS_INTERFACE_ALL.ORG_ID、RCV_HEADERS_INTERFACE.ORG_ID同理关联HR_OPERATING_UNITS
⚠️
ORG_ID(经营单位)≠ORGANIZATION_ID(库存组织/Inventory Org),后者填在PO_LINE_LOCATIONS_INTERFACE.SHIP_TO_ORGANIZATION_ID和PO_DISTRIBUTIONS_INTERFACE.DESTINATION_ORGANIZATION_ID,两者不可混淆。
二、多OU环境下接口表 ORG_ID 必须满足的前置条件
在R12 MOAC架构下,填入接口表的ORG_ID必须同时满足:
校验项 | 说明 |
|---|---|
存在于HR_OPERATING_UNITS |
|
同Ledger关联 | 通常一个OU绑定一个 |
在运行职责的安全配置文件内(并发程序运行时) | Import程序以提交请求的"职责+用户"运行, |
Vendor Site属于同OU |
|
三、并发程序(Import Std PO)对 ORG_ID 的处理逻辑
单OU职责(仅设
MO: Operating Unit):接口行ORG_ID若为空,程序用会话MO_GLOBAL.GET_CURRENT_ORG_ID填充;若有值则以接口表值为准(须与会话有权限的OU一致)。MOAC多OU职责(设
MO: Security Profile):程序会遍历安全配置文件内所有OU,能处理接口表中不同ORG_ID的多行(推荐做法:接口表每行明确填对应ORG_ID)。ORG_ID不匹配安全配置文件:该行被标记错误或在日志提示
ORG_ID not accessible by current responsibility。
最佳实践:外部系统写入接口表时,务必通过HR_OPERATING_UNITS.NAME或SHORT_CODE反查ORGANIZATION_ID再填充,不做硬编码数值。
-- 推荐:从OU名称解析ORG_ID SELECT organization_id INTO l_org_id FROM hr_operating_units WHERE UPPER(name) = 'SHENZHEN PURCHASING OU' AND date_disabled IS NULL;四、各接口表 ORG_ID 字段汇总
接口表 | ORG_ID字段 | 关联基表/视图 |
|---|---|---|
| ORG_ID |
|
| 无独立ORG_ID | 继承 |
| 无独立ORG_ID | 继承头 |
| ORG_ID(可选填,建议填) | 应与头ORG_ID一致,校验用 |
| ORG_ID |
|
| ORG_ID |
|
五、常见多OU接口问题排查清单
✅ 接口表
ORG_ID能否在HR_OPERATING_UNITS中找到且未禁用✅
VENDOR_SITE_ID.ORG_ID = PO_HEADERS_INTERFACE.ORG_ID(供应商地点须在同一OU定义)✅ 提交 Import Standard PO 的职责 Security Profile 是否包含该
ORG_ID✅
SET_OF_BOOKS_ID(接口表或Distribution层)与OU绑定的Ledger一致✅ 多OU混合导入时,不同行的
ORG_ID分别对应各自OU,且职责Security Profile覆盖全部