华为MetaERP 在 EBS→Fusion 的 AP 三层映射里,“静态默认值”(建表 DDL 写死、如 POSTED_FLAG=‘N‘、DISABLED_FLAG=‘N‘)和“动态计算默认值”(运
在 EBS→Fusion 的 AP 三层映射里“静态默认值”建表 DDL 写死、如POSTED_FLAGN、DISABLED_FLAGN和“动态计算默认值”运行时按上下文派生、不落固定常量要分开看。下面只列动态计算的那部分——也就是迁移时最容易“以为迁了其实没迁对”的字段。一、Fusion FBDI 导入时动态派生的字段Header / Line这些字段 FBDI 留空 ≠ 用某个固定常量而是 Import Payables Invoices 进程按“四级派生链”算出来发票选项(BU) → 供应商站点 → 供应商头 → PO/收据 → 系统日期/GL 期间。BO 字段Fusion FBDI 列动态计算逻辑不填时计算时机发票号INVOICE_NUM取导入提交日系统日期启 Legal Entity TZ 则用 LE 时区日期导入进程发票类型INVOICE_TYPE_LOOKUP_CODE按INVOICE_AMOUNT符号推0→CREDIT≥0→STANDARD导入进程发票日期INVOICE_DATE取导入提交日启 LE TZ 用 LE 时区日期导入进程记账日期 GL_DATEACCOUNTING_DATE按 Invoice Options「Accounting Date Basis」Invoice Date / Goods Received / System Date 三选一派生注意 FBDI 非 PO 发票忽略 GRN 日期与手工录单不一致导入进程条款日期TERMS_DATE默认INVOICE_DATE若 Site 设 Terms Date BasisGoods Received 则用 GRN 日期导入/验证付款条款TERMS_IDPO 匹配→PO 头条款否→Site 条款→供应商头→Invoice Options 默认导入进程发票币种INVOICE_CURRENCY_CODESite 币种→BU 本位币导入进程付款币种PAYMENT_CURRENCY_CODESite 支付币种→发票币种导入进程付款方法PAYMENT_METHOD_LOOKUP_CODESite 支付方法→供应商头→付款默认规则导入进程付款组PAY_GROUP_LOOKUP_CODEInvoice Options 默认→Site→供应商头导入进程负债科目 CCIDLIABILITY_COMBINATIONSite 负债科目→Financials Options/Common Options 负债科目FBDI 传段值则覆盖生成分配时汇率类型EXCHANGE_RATE_TYPE取 GL 系统默认类型Corporate/User 等导入进程汇率EXCHANGE_RATE按 类型日期 查GL_DAILY_RATES反查本币发票忽略导入进程税码TAX_CODE_IDLine不留空强制走 Tax Engine按自然科目/货物用途/注册地动态定税不从 EBS 税码直迁验证/计税最早结算日预付EARLIEST_SETTLEMENT_DATE系统日期 Invoice Options「Settlement Days」导入进程付款计划/到期日AP_PAYMENT_SCHEDULES_ALL由 TERMS_ID 动态算 Installment 数量、Due/Discount 日期Validate 时重算Recalculate InstallmentsY 时关键点GL_DATE、TERMS、CURRENCY、EXCHANGE_RATE、TAX 这五个是“环境敏感”的迁移脚本里不能写NVL(ebs_col, STANDARD)这种硬编码必须让 Fusion 重算或显式传原值。二、EBS 侧“看起来像字段、其实是函数算出来”的伪默认值EBS 没有写进列的“状态”是 Validate 并发程序跑出来的显示状态存储位置动态算法发票验证状态Validated / Needs Revalidation / Never Validated不存 AP_INVOICES_ALL由AP_INVOICES_PKG.GET_APPROVAL_STATUS()按分布行MATCH_STATUS_FLAG聚合算全 A→Validated全 N/null→Never混合或 T未释放 Hold→Needs Revalidation匹配状态AP_INVOICE_DISTRIBUTIONS_ALL.MATCH_STATUS_FLAGValidate 时由 PO/Receipt 匹配结果写 A/T/N付款状态AP_INVOICES_ALL.PAYMENT_STATUS_FLAG (N/Y/P)由 AP_INVOICE_PAYMENTS_ALL 汇总算出不是录入时默认行分配生成标志AP_INVOICE_LINES_ALL.GENERATE_DISTS (N→Y→D)行录入→有足够信息置 Y→并发生成分配置 D发票总额核对INVOICE_AMOUNT vs SUM(dist.amount)Validate 时比对不等则报错迁移含义这些“状态字段”历史值不要迁——Fusion 导入后统一是未验证跑 Validate 重算EBS 的MATCH_STATUS_FLAGA不是目标值是过程产物。三、Distribution 派生层动态点DIST_CODE_COMBINATION_IDLine 传段值→导入时调GL_FLEXFIELD解析成新 CCIDPO 匹配时取 PO 分发科目覆盖自然科目段受 Invoice Option「Use distribution from purchase order」控制AMOUNTLine 金额或按PRORATE_ACROSS_FLAGLineGroup 分摊算法算ACCOUNTING_DATE继承 Line GL_DATELine 不填则继承头POSTED_FLAG导入后固定 N但这是静态是否变 Y 由 Create Accounting 事件触发不是默认值而是流程结果四、一句话收敛动态计算字段 日期类Invoice/GL/Terms/Settlement、币种类、条款/付款方法/付款组、汇率、税码、CCID、付款计划、验证状态、匹配状态、付款状态。静态默认值可硬编码 NVLWho 列、各种*_FLAG初始 N、CANCELLED_FLAG NULL、DFF NULL、SOURCE 代码。所以你前几轮那张映射表凡是落在“动态”这一堆里的EBS 抽取 SQL 里应当优先NVL传原值进 FBDI而不是模拟 Fusion 派生逻辑——派生逻辑交给 Import 进程ETL 只负责“原值携带 类型对齐”。