Oracle Fusion Apps《Financials Implementation Guide》SLA 章节,不瞎编。
一、先把这篇文档的"骨架"读懂
你贴的这章讲的是Subledger Accounting(SLA)——也就是 Fusion 里"子模块业务交易 → 子分类账日记账 → GL"的会计转换引擎。它的核心命题只有一个:
同一笔业务交易,按不同会计准则 / 不同账簿 / 不同业务含义,生成不同的会计分录。
文档里反复出现几条主线,必须先拎清:
1. 核心对象层级(从底到顶,非常重要)
Source(事务源头字段) ↓ 映射到 Accounting Attribute(核算属性,如 Accounting Date / Entered Amount / Distribution Type…) ↓ 被 Journal Line Rule(日记账行规则:借/贷/损益/条件) ↓ 组合进 Subledger Journal Entry Rule Set(事件类/事件类型的完整分录定义) ↓ 归集到 Accounting Method(核算方法,如 US GAAP / French Statutory) ↓ 分配给 Ledger(账簿)2. 文档覆盖的五大组件
组件 | 作用 | 文档里重点段落 |
|---|---|---|
Accounting Attributes | 把事务 Source 映射到分录头/行上的字段(必设:Accounting Date / Distribution Type / Entered Amount / Entered Currency / First Distribution ID) | 全章前半 |
Accounting Method | 把一组 Journal Entry Rule Set 打包,挂到 Ledger | "Accounting methods group…" 段 |
Journal Entry Rule Set | 针对某个 Event Class / Event Type 的完整分录定义(Header 级 + Line 级) | "Subledger journal entry rule sets provide…" |
Journal Line Rule | 单行规则:Side(借/贷/损益)、Merge、Condition、Business Flow Link | "Journal line rules are defined…" |
Account Rule | 决定科目怎么出:Account Combination / Segment / Mapping Set / 条件优先级 | "Account rules are used to determine…" |
3. 两个"高级开关"(业务场景里很关键)
Business Flow(业务流):把"发票 → 付款 → 核销"这类跨事件串起来,Applied To 系列属性用来回溯前一事件的分录(跨币种还算 Gain/Loss)。
Accrual Reversal / Accounting Reversal:应计暂估反转 & 原交易冲销,靠 Reversal Indicator + Distribution ID 实现。
二、SLA 模块设置步骤(自底向上法,文档推荐两种,这个更稳)
文档提到可以Top-Down(先建 Accounting Method)也可以Bottom-Up(先建组件)。生产实施几乎都用 Bottom-Up,因为依赖关系清晰。
🔢 标准 8 步(每步都对应你贴的文档段落)
Step 1|确认 Subledger Transaction 的 Source 是否已足够
每个应用(AP/AR/Projects/Costing…)会往 SLA 抛 Source
Accounting Attribute 只能从"已分配到 Event Class 的 Source"里选
👉 文档原话:"Once sources are assigned to accounting event classes, they are eligible for assignment to accounting attributes"
Step 2|Event Class 层分配 Accounting Attributes(必设 5 个)
Accounting Date(Header,必设)
Distribution Type(Line,必设)
Entered Amount(Line,必设)
Entered Currency Code(Line,必设)
First Distribution Identifier(Line,必设)
可选:Accrual Reversal GL Date / Transfer to GL / Exchange Gain-Loss / Third Party / Tax…
Step 3|建 Description Rule(头 & 行)
字面量 + Source 拼接,例:
Loan Origination Date 11/01/11
Step 4|建 Account Rule(科目规则,最复杂的一层)
三种类型任选/混用:
Account Combination Rule:直接出完整 CCID(Source / Constant / Mapping Set / 引用另一个 Account Rule)
Segment Rule:只出一个段(比如 Cost Center),其余段由 Account Rule 补齐,段规则优先
Value Set Rule:无 COA 时跨 COA 共享
👉 文档里的Priority 机制很重要:条件按顺序判,命中即停;Mapping Set 比 Constant 灵活得多(Supplier Type → 不同支出科目那种例子)。
Step 5|建 Journal Line Rule
关键属性:
Side:Debit / Credit / Gain / Loss / Gain or Loss
Accounting Class:Liability / Expense / Tax / Asset…
Condition:例
Line Type = Tax才出税行Link Journal Lines:
None
Copy from corresponding line(同分录内借/贷互拷段,比如费用成本中心 = 付款成本中心)
Business Flow(跨事件串,如贷款发放 → 贷款结清)
Step 6|组装 Subledger Journal Entry Rule Set
Header 分配:Accounting Date(必)+ Accrual Reversal GL Date + Description + Supporting Ref
Line 分配:Journal Line Rule + Account Rule + Supporting Ref
一个 Event Class / Event Type 可配多个 Rule Set,按 Ledger 不同给不同 Rule Set(US GAAP vs Statutory 就是这么分的)
Step 7|建 Accounting Method → 挂 Journal Entry Rule Set
Accounting Method 可绑 COA(绑了就只能在同 COA 的 Ledger 用;不绑就能跨 Ledger)
新建 / 改组件后状态变Incomplete,必须Activate Subledger Journal Entry Rule Set Assignments 才能跑 Create Accounting
Step 8|Accounting Method 分配给 Ledger
不同 Ledger 给不同 Accounting Method → 同一笔 AP 发票在 US GAAP Ledger 和 French Statutory Ledger 出不同分录
⚠ 文档提醒:迁移(Export/Import)前Rule Set 和 Accounting Method 必须先激活成功,否则 Import 失败;且要连 Define Ledgers 等依赖一起迁。
三、SLA 与 Fusion 三大架构的关系(这是用户最容易糊的地方)
1️⃣ 核算架构(Accounting / Ledger 层)
Primary Ledger (US GAAP) └─ Accounting Method: US_GAAP_AM └─ Journal Entry Rule Set (AP Invoice / AR Invoice / …) Secondary Ledger (French Statutory, non-valuation) └─ Accounting Method: FR_STATUTORY_AM └─ Journal Entry Rule Set (同事件类,不同科目/不同行规则)SLA 是Ledger 级别的:一个 Ledger 挂一个 Accounting Method
同一 Event(如 AP Invoice Validation)在 Primary / Secondary 各跑一次 Create Accounting,出两套分录
Reporting Currency Ledger 再跟一轮折算
2️⃣ 组织架构(Legal Entity / Business Unit)
LE 决定"这套账归谁"(法定报表口径)
BU 决定"哪个业务单元录的交易"(AP/AR 事务层)
SLA不直接认 BU,而是通过:
Subledger Transaction → Source(BU_ID / LE_ID)→ Accounting Attribute → Journal Line
Third Party 属性(Party Type C/S + Party ID)把客商维度带进分录
Supporting Reference 可以把 BU / LE / 项目号等维度存在行上(甚至维余额)
👉 逻辑链:BU 录业务 → LE 归属账簿 → SLA 按 Ledger 的 Accounting Method 转分录 → GL 按 LE 出法定报表
3️⃣ 管理架构(部门 / 成本中心 / 项目 / 利润中心)
这一层 Fusion 不在 COA 外另搞,而是塞进COA Segment + Supporting Reference:
Segment Rule 从 Distribution Account 拷成本中心 / 公司段 → 管理口径自然进科目
Supporting Reference Balances 可以"不开 COA 段"也能按管理维度维余额(文档原话:Reconciliation back to source / P&L by dimensions not in COA)
例:贷款管理 → Supporting Ref 存 Credit Status + Loan Contract Number,单独维余额
四、典型业务场景核算逻辑(配示例)
下面挑 Fusion 里最常被问的 6 个场景,每个都按「业务动作 → SLA 组件怎么走 → 分录」拆。
场景 1|应付发票校验(AP Invoice Validation)
业务:AP Invoice 录入 → 校验通过 → 产生负债
SLA 路径:
Event Class:
AP_INVOICESEvent Type:
VALIDATEDJournal Entry Rule Set 给两个 Line Rule:
Liability 行:Side=Credit, Acct Class=Liability, Account Rule=供应商负债科目(可能 Mapping Set 按 Supplier Type 出不同 CCID)
Expense 行:Side=Debit, Acct Class=Expense, Account Rule=费用科目(Distribution Account 的 Natural Account 段)
分录(本位币 USD,发票也是 USD):
借 | 贷 |
|---|---|
管理费用 / 采购费用 1000 | |
应付账款 – 供应商 A 1000 |
Accounting Attribute 必填:Accounting Date(=Event Date)、Entered Amount=1000、Entered Currency=USD、Dist Type=AP_INV_DIST、First Dist ID=…
场景 2|应付付款(AP Payment)
业务:付钱,负债消掉,现金减少
SLA 路径:
Event Class:
AP_PAYMENTSJournal Line Rule:
贷现金(Side=Credit, Acct Class=Cash)
借负债(Side=Debit, Acct Class=Liability)
Link Journal Lines = Copy from corresponding line → 成本中心从负债行拷到现金行(文档举的例子:费用发生的成本中心也要扛付款)
分录:
借 | 贷 |
|---|---|
应付账款 – 供应商 A 1000 | |
银行存款 1000 |
如果发票外币、付款外币、汇率变 → Gain/Loss Reference 把借/贷行分组,差额自动出汇兑损益行(Exchange Gain/Loss Account 属性或 Gain/Loss Journal Line Rule)
场景 3|发票-付款核销(Business Flow 跨事件)
业务:Invoice 已入账,Payment 已入账,现做核销
SLA 路径:
核销事件的 Journal Line Rule 勾Business Flow
Applied To 系列属性(Applied To First Dist ID / Applied To Distribution Type / Applied To Amount…)指回 Invoice 那笔 Event
Create Accounting 用 "Applied To 属性 + Business Flow Class" 找到原 Journal Line
跨币种时Applied To Amount 用来算 Gain/Loss
分录逻辑:
如果同币种同金额 → 核销本身可不生成新行(或只生成"清账"标记,取决于 Event Type 设计)
如果发票 USD、付款时汇率变 → 在原 Liabilities 行基础上,额外出 Exchange Gain/Loss 行
场景 4|汇兑损益(Invoice 与 Payment 不同汇率)
文档依据:Gain or Loss Reference 把"同一组业务"的行捆一起,借合计 vs 贷合计差 = 损益
举例:
发票:EUR 1000,汇率 1.10 → USD 1100(借 Exp 1100 / 贷 AP 1100)
付款:EUR 1000,汇率 1.12 → USD 1120(借 AP 1120 / 贷 Cash 1120)
Gain/Loss Reference 相同 → 系统算:AP 侧 1100 vs 1120 差 20 →Exchange Loss 20
借 | 贷 |
|---|---|
应付账款 1120 | |
银行存款 1120 | |
汇兑损失 20 | |
应付账款 20(或 net 掉,看 Event Type 设计) |
场景 5|应计(Accrual)与反转(Accrual Reversal)
业务:月末估一笔费用,次月 1 号自动反转
SLA 路径:
Accrual 事件:正常出 Expense / Accrued Liability
Accrual Reversal GL Date 属性赋值(> Accounting Date)
Create Accounting 看到 Accrual Reversal GL Date 有值 →自动生成一笔反转分录
分录:
当月:Dr Exp 1000 / Cr Accrued Liab 1000
次月 1 号反转(系统自动):Dr Accrued Liab 1000 / Cr Exp 1000
场景 6|会计冲销(Accounting Reversal)
业务:原发票错了,要红冲再重录
SLA 路径:
Accounting Reversal Indicator =
Y(冲销不补新行)或B(冲销 + 新行)Reversal Distribution Type + First/Last Distribution ID 必须分配
Create Accounting 读到 Indicator=Y → 原 Distributions 对应的 Journal Line 反向出一笔
分录:
原:Dr Exp 1000 / Cr AP 1000
红冲(Y):Cr Exp 1000 / Dr AP 1000
五、各业务场景会计核算分录汇总表
下面这张是你要的"汇总大表",我按 Fusion 常见子账 × 典型 Event Type 铺开。注:科目名是示意,真实来自 Account Rule / Mapping Set。
# | 子模块 | 业务事件(Event Class / Type) | Journal Line Rule(Side / Acct Class) | 示意分录(本位币) | SLA 关键属性 / 规则 |
|---|---|---|---|---|---|
1 | AP | Invoice Validated | Cr Liability / Dr Expense(Tax 行条件 Line Type=Tax) | Dr 费用 1000 / Cr 应付 1000(+税行) | Entered Amt/Ccy, Dist ID, Third Party |
2 | AP | Payment Created | Dr Liability / Cr Cash;Link=Copy from corresp line | Dr 应付 1000 / Cr 银行 1000 | Gain/Loss Reference(若汇率变) |
3 | AP | Payment → Invoice Applied | Business Flow 行,Applied To Dist ID 指回 Invoice | 同币种:清账;异币种:+GainLoss 行 | Applied To Amount 算跨币 Gain/Loss |
4 | AP | Accrual | Dr Exp / Cr Accrued Liab | Dr 费 1000 / Cr 应计 1000 | Accrual Reversal GL Date 设次月 1 号 |
5 | AP | Accrual Reversal(auto) | 系统按 Accrual Reversal GL Date 自动反向 | Dr 应计 1000 / Cr 费 1000 | Accrual Reversal GL Date |
6 | AP | Accounting Reversal(Y) | Reversal Ind=Y,原行反向 | Cr 费 1000 / Dr 应付 1000 | Reversal Dist Type + Dist ID |
7 | AR | Invoice Created | Dr Receivable / Cr Revenue(Tax) | Dr 应收 1000 / Cr 收入 1000 | Entered Amt/Ccy, Party Type=C |
8 | AR | Receipt | Dr Cash / Cr Receivable | Dr 银行 1000 / Cr 应收 1000 | Gain/Loss Reference |
9 | AR | Receipt → Invoice Applied | Business Flow,Applied To 指回 Invoice | 清账 + 跨币损益 | Applied To Amount |
10 | Projects | Cost Distribution | Dr Project Exp / Cr Accrued Labor(Material…) | Dr 项目支出 500 / Cr 应计 500 | Account Rule 引 Proj Cost Acct |
11 | Assets | Capital Purchase | Dr Asset / Cr Liability;Condition: Dist CC=Liab CC AND Asset Flag=Y | Dr 资产 5000 / Cr 应付 5000 | Journal Line Rule Condition(文档示例) |
12 | Cross | 期末重估 / 结算 | Gain/Loss 行,Side=Gain or Loss | Dr/Cr 汇兑损益 XX | Subledger Gain or Loss Option |
💡 同一行事件在不同 Accounting Method(US GAAP vs Local Statutory) 下可以:
走不同 Journal Entry Rule Set(多行 / 少行 / 不同 Acct Class)
同一 Rule Set 下换 Account Rule(Mapping Set 不同 → 科目不同)
这就是 Fusion "一套交易、多套核算"的落地方式。