子分类账知识学习(汇总网上比较有用的资料)
子模塊和GL之間關聯的變化
??? 12i在功能模塊上的變化很多,比如,基本每個模塊都啟用了MOAC特性,新增加了子帳模塊,稅模塊等等很多新的模塊,OPM庫存和離散庫存集成了。不過這些變化中,大部分不是我們需要重點關注的,不過有一個東西需要重點關注那就是子帳模塊。子帳模塊功能非常強大,現在所有的子模塊會計分錄都可以使用特定的公式配置出來。但是對技術而言,我們不太關心如何配置生成會計分錄,我們只關心子模塊的會計分錄和GL的會計分路之間的關聯性,以方便我們做子模塊和GL的對應報表。然而,現在如果你要做對應報表,你就必須要了解子帳。因此,在這里重點只介紹子帳。
??? 子帳的概念——SLA(Subledger Accounting)
??? 概念
??? 子帳是子分類帳會計的簡稱,字面上的含義就是子分類帳會計分錄,但是這東西到底用來干嗎的呢?!
??? 通俗的說:
??? 1、子分類帳會計其實就是連接子模塊會計和GL憑證之間的橋梁,更簡單的說,就是子模塊和GL之間的橋梁。所有子模塊(包括FA)產生的會計分錄都是使用SLA產生的,存放在SLA的表中,然后通過過帳程序過帳到GL。有點類gl_interface表的功能。
??? 2、子分類帳會計的第二層意思:在各個子模塊都有一套獨立的會計分錄,看起來跟GL其實沒太大區別,這就意味著在子模塊其實就可以計算科目余額了。只是可惜,到目前為止我還沒有類似gl_balance的表來存放科目余額。
??? 3、各子模塊目前還是可以有自己的分配帳戶(就是以前查看會計科目看到的東西),分別存放在自己的分配表中,比如,AP還是存放在ap_invoices_distributions中,引入SLA后,把這個功能稱為“事物處理會計”,和子分類帳會計的不同點在于,事物處理會計是通過自動會計或分配產生,而子分類帳會計是根據定義會計事件等公式產生的,分別存于不同的地方。
??? 子帳架構
??? 解釋:
??? 1、 子分類帳的產生有兩種方式,一種方式是直接從子模塊的事物處理會計,一種是直接從子模塊的事物處理上取得。
??? 2、 子模塊的事物處理會計和子分類帳會計是兩個不同的東西,一定要區別對待,傳送到GL的是子分類帳會計,并非事物處理會計。
??? 3、 由于子分類帳會計的來源可能是事物處理,也可能是事物處理會計,因此很可能存在差異,這是SLA目前的缺陷。
??? 子分類帳帶來的益處
??? 1、 靈活的定義會計分錄的產生規則,包括摘要,借方和貸方
??? 2、 一個事物處理可以過帳到多個ledger(就是11i的帳簿),這給跨國集團管理多個帳簿帶來很大的好處
??? 3、 統一了子模塊會計分錄的存放和產生規則,也就是說,各個子模塊都可以根據自身的情況設置會計規則,但是這些規則產生的會計分錄都回存放在SLA的表中。
??? 4、 利于擴展,ORACLE委托外包的子模塊產生的會計分錄更容易集成到EBS
??? SLA的幾個重要關鍵詞
??? SLA的關鍵詞有很多,不過和我們寫程序密切相關的應該是下面幾個關鍵詞。這幾個關鍵詞是我們弄清楚子模塊和GL之間的關鍵。如果理解了這幾關鍵詞在SLA中的具體位置以及作用,加上SLA的的架構圖,很容易的就理解了SLA作為子模塊和GL的橋梁作用,對過帳程序具有深刻的理解,便于我們以后編寫追溯程序以及追溯報表。
??? 會計事件(account event)
??? 會計事件,就是一個事物處理的不同事件類型產生的記錄,它結合了主要分類帳,事件類型,事件分類。一個事物處理可能會有多個會計時間,因為一個事物處理可能發生多種動作,而每個動作都需要產生相應的會計憑證。因此,我們可以把一個會計事件看成是一張完整的憑證,我們把這張憑證錄入到子模塊的會計分錄表里就形成了完整的會計分錄。所以,我對會計事件的理解通俗歸納為以下幾點:
??? 1、 會計事件就相當于一張憑證,錄入到GL就是一對會計分錄
??? 2、 同一個事物處理,比如收款可能會對應多個會計事件,因為收款創建會產生會計事件,收款核銷也是一個會計事件。
??? 查看路徑:子模塊超級用戶/查詢/會計事件
??? 主要分類帳(leadger)
??? 分類帳的概念在12i中表示的是帳簿,也就是11i的SOB,主要分類帳決定了過帳到哪個SOB
??? 事件實體(EVENT ENTITY)
??? 事件實體決定了會計分錄來源,以應收為例子,事件實體決定了到底是從 “應收事物處理”過來的還是從“收款”過來的。存放在表:xla_entity_types_vl中,會計分錄和事物處理關聯的表是是xla_transaction_entities ,事件實體同時定義了關聯的標識是哪個字段,存放在xla_entity_id_mappings,下面我會詳細介紹怎么做關聯。
??? 設置路徑路徑:子模塊超級用戶/設置/會計/子分類帳會計/事件/事件模型
??? 事件分類(EVENT CLASS)
??? 事件分類是根據事件實體進一步區分會計分錄的方法。比如,收款分為“收款”和“雜項收款”,事件分類的表為:xla_event_classes_v,屬于xla_transaction_entities的子表。
??? 設置路徑路徑:子模塊超級用戶/設置/會計/子分類帳會計/事件/事件模型
??? 事件類型(EVENT TYPE)
??? 事件類型是比事件分類更小的事件劃分方法,每個事件分類會細分成多個事件類型。比如:收款會分成:收款已核銷,收款未核銷,收款已更新等等類型。存放在表:xla_event_types_vl中。
??? 設置路徑路徑:子模塊超級用戶/設置/會計/子分類帳會計/事件/事件模型
??? SLA&GL關系模型
??? 關聯模型中,實際參與的表很多,我們只拿最重要的表來描述,以便大家入門,不至于摸不著頭腦,力求簡單。
??? 基礎事件關系圖
??? xla_entity_types_vl(事件實體)
??? |――xla_entity_id_mappings(實體ID對應表)
??? |――xla_event_classes_v(事件分類)
??? |――xla_event_types_vl(事件類型)
??? 子分類帳關系圖
??? xla_transaction_entities(會計事物處理實體)
??? |――xla_events(會計事件)
??? |――xla_ae_headers(子帳頭)
??? |――xla_ae_lines(子帳行)
??? |――xla_distribution_links(關聯事物處理信息)
??? 子模塊和GL關系圖
??? gl_import_references(總帳參考)
??? |(gl_sl_link_id,gl_sl_link_table)
??? xla_ae_lines(子帳行)
??? 說明:GL和子模塊之間的關聯是通過gl_import_reference實現的,關鍵字段是????gl_sl_link_id,gl_sl_link_table。
??? GL->子模塊追溯
??? 偽代碼
??? begin
??? --特別注意,這里可能存在一對多關系
??? --一對多在業務上表現為匯總過帳
??? selectxal.ae_header_id,xal.ae_line_num,jh.je_source
??? from gl_je_lines jl,
??? gl_je_headers jh,
??? gl_import_references gir,
??? xla_ae_lines xal
??? wherejl.je_header_id=gir.je_header_id
??? and jh.je_header_id=jl.je_header_id
??? andjl.je_line_num=gir.je_line_num
??? andgir.gl_sl_link_id=xal.gl_sl_link_id
??? andgir.gl_sl_link_table=xal.gl_sl_link_table
??? and jl.je_header_id=:1
??? and jl.je_line_num=:2
??? --根據je_header_id找到相應的會計實體,主要是需要實體代碼和幾個source_id
??? --通過source_id…和entity_code的組合判斷,可以準確的追溯到具體的事物處理
??? select xte.entity_code
??? ,xte.source_id_int_1
??? ,……
??? ,xte.source_id_char_1
??? ,……
??? ,xte.security_id_int_1
??? ,xte.security_id_int_2
??? ……
??? fromxla.xla_transaction_entities xte,
??? xla_ae_headers xah
??? where xah.ae_header_id=:1
??? andxte.entity_id=xah.entity_id
??? andxte.application_id=xah.application_id
??? --根據日記帳來源查詢xla_subledgers表獲得drilldown的程序
??? --由于這部分是寫死的,因此,對程序員來說,只能做參考
??? --至于怎么寫的靈活和通用,還需要參考琢磨寫成一個通用的動態SQL
??? selectxs.drilldown_procedure_name
??? from xla.xla_subledgers xs
??? wherexs.je_source_name=:je_source_name
??? andxs.application_id=:application_id
??? --上面的信息查詢出來后,組合成一個動態SQL,返回一個準確的結果集
??? --當然,通常情況下,我們都沒有考慮寫成通用程序,因此可以寫死是
??? --哪些會計事件,會計實體代碼
??? END;
??? 一個簡單的列子(收款和總帳憑證對應報表,簡單寫死事件實體)
??? SELECT CR.CASH_RECEIPT_ID???CASH_RECEIPT_ID,
???CR.DOCUMENT_NUMBER??? GATHER_NUM,
??? JH.DOC_SEQUENCE_VALUEDOC_SEQUENCE_VALUE,
???CR.CUSTOMER_NAME????? CUSTOMER_NAME,
??? CR.REMIT_BANK_BRANCHBANK_NAME,
??? CR.REMIT_BANK_ACCOUNTBANK_ACCOUNT,
???CR.RECEIPT_NUMBER???? RECEIPT_NUMBER,
???CR.AMOUNT????????????AMOUNT,
???CR.STATE_DSP????????? STATE_DSP,
???H.EVENT_TYPE_CODE???? EVENT_TYPE_CODE
??? FROMXLA_AE_LINES????????????????L,
???XLA_AE_HEADERS??????????????H,
??? XLA.XLA_TRANSACTION_ENTITIESTE,
???GL_IMPORT_REFERENCES???????? IR,
???GL_JE_HEADERS???????????????JH,
???AR_CASH_RECEIPTS_V??????????CR
??? WHERE CR.CASH_RECEIPT_ID =TE.SOURCE_ID_INT_1(+)
??? AND CR.CURRENCY_CODE =P_CURRENCY
??? AND TE.ENTITY_CODE(+) = 'RECEIPTS'
??? AND TE.ENTITY_ID =H.ENTITY_ID(+)
??? AND TE.APPLICATION_ID =H.APPLICATION_ID(+)
??? AND H.AE_HEADER_ID =L.AE_HEADER_ID(+)
??? AND H.APPLICATION_ID =L.APPLICATION_ID(+)
??? AND L.GL_SL_LINK_TABLE =IR.GL_SL_LINK_TABLE(+)
??? AND L.GL_SL_LINK_ID =IR.GL_SL_LINK_ID(+)
??? AND IR.JE_HEADER_ID =JH.JE_HEADER_ID(+)
??? AND L.AE_LINE_NUM(+) = 1
??? ANDH.ACCOUNTING_ENTRY_STATUS_CODE(+) = 'F'
??? AND H.ACCOUNTING_DATE BETWEENTRUNC(P_START_DATE) AND (TRUNC(P_END_DATE) + 86399 / 86400)
SLA
子分類帳與子模塊的關聯關系
SLA
子分類帳與子模塊的關聯關系
SLA子分類帳與子模塊的關聯關系一、應付帳款
--發票分錄
select?ai.INVOICE_NUM, xal.*
from?AP_INVOICES_ALL??????????ai,
XLA_TRANSACTION_ENTITIES xte,
xla_events?????????????? xe,
XLA_AE_HEADERS?????????? xah,
XLA_AE_LINES???????????? xal
where?ai.SET_OF_BOOKS_ID =?2027
and?ai.SET_OF_BOOKS_ID = xte.LEDGER_ID
andai.INVOICE_ID = xte.SOURCE_ID_INT_1
and?ai.INVOICE_NUM =?'4600060381@2012_1500000511_2'
and?xte.ENTITY_ID = xe.ENTITY_ID
and?xe.EVENT_ID = xah.EVENT_ID
and?xal.AE_HEADER_ID = xah.AE_HEADER_ID
--付款分錄
select?ac.CHECK_NUMBER, xal.*
from?AP_INVOICES_ALL??????????ai,
AP_INVOICE_PAYMENTS_ALL aip,
AP_CHECKS_ALL ac,
XLA_TRANSACTION_ENTITIES xte,
xla_events?????????????? xe,
XLA_AE_HEADERS?????????? xah,
XLA_AE_LINES???????????? xal
where?ai.SET_OF_BOOKS_ID =’&sob_id’
and?ai.SET_OF_BOOKS_ID = xte.LEDGER_ID
andac.check_id = xte.SOURCE_ID_INT_1
and?ai.INVOICE_NUM =?'&INVOICE_NUM?'
and?xte.ENTITY_ID = xe.ENTITY_ID
and?xe.EVENT_ID = xah.EVENT_ID
and?xal.AE_HEADER_ID = xah.AE_HEADER_ID
and?ai.INVOICE_ID=aip.INVOICE_ID
and?aip.CHECK_ID=ac.CHECK_ID
二、應收帳款
select rct.TRX_NUMBER,xah.* ? from RA_CUSTOMER_TRX_ALL rct , ? ? ? ?XLA_TRANSACTION_ENTITIES xte, ? ? ? ?xla_events xe, ? ? ? ?XLA_AE_HEADERS xah, ? ? ? ?xla_ae_lines xal?
where rct.SET_OF_BOOKS_ID=2027 ? ?and rct.CUSTOMER_TRX_ID=22206?
? and rct.SET_OF_BOOKS_ID=xte.LEDGER_ID ? and xte.SOURCE_ID_INT_1=rct.CUSTOMER_TRX_ID ? and xte.ENTITY_ID=xe.ENTITY_ID ? and xe.EVENT_ID=xah.EVENT_ID?
? and xah.AE_HEADER_ID=xal.AE_HEADER_ID?
-- ?and xah.PERIOD_NAME='&period_name'
For internal use ONLY?
?
~ 3 ~?
?
?
正常收款?
select arc.RECEIPT_NUMBER,xal.* ? from AR_CASH_RECEIPTS_ALL arc , ? ? ? ?XLA_TRANSACTION_ENTITIES xte, ? ? ? ?xla_events xe, ? ? ? ?XLA_AE_HEADERS xah, ? ? ? ?xla_ae_lines xal?
where arc.SET_OF_BOOKS_ID=xte.LEDGER_ID ? and xte.SOURCE_ID_INT_1=arc.CASH_RECEIPT_ID ? and xte.ENTITY_ID=xe.ENTITY_ID ? and xe.EVENT_ID=xah.EVENT_ID?
? and xah.AE_HEADER_ID=xal.AE_HEADER_ID ? and arc.CASH_RECEIPT_ID=1348516?
?
雜項收款?
select arc.RECEIPT_NUMBER,xal.* ? from AR_CASH_RECEIPTS_ALL arc ,?
? ? ? ?AR_MISC_CASH_DISTRIBUTIONS_ALL amc, ? ? ? ?XLA_TRANSACTION_ENTITIES xte, ? ? ? ?xla_events xe, ? ? ? ?XLA_AE_HEADERS xah, ? ? ? ?xla_ae_lines xal?
where arc.SET_OF_BOOKS_ID=xte.LEDGER_ID ? and xte.SOURCE_ID_INT_1=arc.CASH_RECEIPT_ID ? and arc.CASH_RECEIPT_ID=amc.CASH_RECEIPT_ID ? and xte.ENTITY_ID=xe.ENTITY_ID ? and xe.EVENT_ID=xah.EVENT_ID?
? and xah.AE_HEADER_ID=xal.AE_HEADER_ID ? and arc.CASH_RECEIPT_ID=51815 ? and xte.APPLICATION_ID=222
三、資產
FA_DEPRN_DETAIL_H折舊回滾表
FA_DEPRN_EVENTS?折舊事件表
注:R12回滾是基于資產卡片,R11I回滾是基于資產帳簿
--資產折舊
select?fa.TAG_NUMBER, fdp.PERIOD_NAME, xal.*
from?FA_ADDITIONS_B???????????fa,
FA_DEPRN_DETAIL????????? fdd,
FA_DEPRN_PERIODS???????? fdp,
XLA_TRANSACTION_ENTITIES xte,
xla_events?????????????? xe,
XLA_AE_HEADERS?????????? xah,
XLA_AE_LINES???????????? xal
where?fa.TAG_NUMBER =?'&TAG_NUMBER?'
and?fa.ASSET_ID = fdd.ASSET_ID
and?xte.SOURCE_ID_INT_1 = fdd.ASSET_ID
and?xte.SOURCE_ID_CHAR_1 = fdd.BOOK_TYPE_CODE
and?xte.SOURCE_ID_INT_2 = fdd.PERIOD_COUNTER
and?xte.SOURCE_ID_INT_3 = fdd.DEPRN_RUN_ID
and?fdp.BOOK_TYPE_CODE = fdd.BOOK_TYPE_CODE
and?fdp.PERIOD_COUNTER = fdd.PERIOD_COUNTER
and?xte.ENTITY_ID = xe.ENTITY_ID
and?xah.EVENT_ID = xe.EVENT_ID
and?xah.AE_HEADER_ID = xal.AE_HEADER_ID
--資產事務
select?xe.EVENT_TYPE_CODE,xah.EVENT_TYPE_CODE,xal.*
from?FA_TRANSACTION_HEADERS fth,
XLA_TRANSACTION_ENTITIES xte,
xla_events?????????????? xe,
XLA_AE_HEADERS?????????? xah,
XLA_AE_LINES???????????? xal
wherefth.TRANSACTION_HEADER_ID=xte.SOURCE_ID_INT_1
and?xte.ENTITY_ID = xe.ENTITY_ID
and?xah.EVENT_ID = xe.EVENT_ID
and?xah.AE_HEADER_ID = xal.AE_HEADER_ID
and?fth.ASSET_ID=15008335
FA_ASSET_HISTORY
| Description: | Historical information about asset reclassifications and unit adjustments |
四、成本管理
--庫存
select?xe.EVENT_TYPE_CODE, xah.EVENT_TYPE_CODE, xal.*
from?MTL_TRANSACTION_ACCOUNTS mta,
XLA_TRANSACTION_ENTITIES xte,
xla_events?????????????? xe,
XLA_AE_HEADERS?????????? xah,
xla_ae_lines???????????? xal
where?mta.ORGANIZATION_ID =?277
and?mta.TRANSACTION_ID = xte.SOURCE_ID_INT_1
and?mta.ORGANIZATION_ID = xte.SOURCE_ID_INT_2
and?mta.TRANSACTION_SOURCE_TYPE_ID = xte.SOURCE_ID_INT_3
and?mta.TRANSACTION_ID =?9871318
and?xte.ENTITY_ID = xe.ENTITY_ID
and?xe.EVENT_ID = xah.EVENT_ID
and?xah.AE_HEADER_ID = xal.AE_HEADER_ID
--接收
select?xte.ENTITY_CODE, xah.EVENT_TYPE_CODE, rae.EVENT_SOURCE, xal.*
from?RCV_TRANSACTIONS?????????rt,
RCV_ACCOUNTING_EVENTS??? rae,
XLA_TRANSACTION_ENTITIES xte,
xla_events?????????????? xe,
XLA_AE_HEADERS?????????? xah,
xla_ae_lines???????????? xal
whererae.RCV_TRANSACTION_ID = xte.SOURCE_ID_INT_1
and?rae.ACCOUNTING_EVENT_ID = xte.SOURCE_ID_INT_2
and?rt.ORGANIZATION_ID = xte.SOURCE_ID_INT_3
and?rt.TRANSACTION_ID =?498557
pa_cost_distribution_lines_all有單獨的會計分錄產生(僅限于PA模塊,如果來源其它模塊,此表會記錄,但分錄在其它模塊。關聯xla_events),如果是來源庫存的,SYSTEM_REFERENCE5是關聯mtl_transaction_accounts中的INV_SUB_LEDGER_ID;如果來源接收,SYSTEM_REFERENCE5是關聯RCV_RECEIVING_SUB_LEDGER中的RCV_SUB_LEDGER_ID ?
PA_COST_DISTRIBUTION_LINES_ALL?
SYSTEM_REFERENCE5 ?This column refers to a record in another application. When the?
cost distribution line is related to Oracle Payables transactions, it holds AP_INVOICE_DISTRIBUTIONS_ALL.?
INVOICE_DISTRIBUTION_ID. When the cost distribution line is related to manufacturing or receiving transactions, it holds the debit subledger identifier. This column is not used for labor or usage transactions.?
?
PA_EXPENDITURE_ITEMS_ALL?
DOCUMENT_HEADER_ID?
This column refers to a header-level record identifier in another application. If the expenditure item originated in Oracle Payables, it holds the AP_INVOICES_ALL.INVOICE_ID. If the expenditure item originated in Oracle Purchasing, it holds the PO_HEADERS_ALL.PO_HEADER_ID. This column is not used for labor and usage expenditure items.?
DOCUMENT_DISTRIBUTION_ID?
This column refers to a distribution-level record identifier in another application. If the expenditure item originated in Oracle Payables, it holds the?
AP_INVOICE_DISTRIBUTIONS_ALL.INVOICE_DISTRIBUTION_ID. If the expenditure item originated in Oracle Purchasing, it holds the?
RCV_TRANSACTIONS.TRANSACTION_ID. This column is not used for labor and usage expenditure items.?
DOCUMENT_LINE_NUMBER This column refers to a line-level record identifier in another?
application. If the expenditure item originated in Oracle Payables, it holds the?
AP_INVOICE_LINES_ALL.LINE_NUMBER. If the expenditure item originated in Oracle Purchasing, it holds the PO_DISTRIBUTIONS_ALL.PO_DISTRIBUTION_ID. This column is not used for labor and usage expenditure items.?
DOCUMENT_PAYMENT_ID This column refers to the payment record identifier in Oracle?
Payables. It holds the?
AP_PAYMENT_DISTRIBUTIONS_ALL.PAYMENT_ID. This column is only populated when you enable cash basis?
accounting or, for payment discounts, when you use accrual basis accounting. This column is not used for labor and usage expenditure items.?
VENDOR_ID?
This column indicates the vendor identifier for supplier cost transactions. If the expenditure item originated in Oracle Payables, it holds the AP_INVOICES_ALL.VENDOR_ID. If the expenditure item originated in Oracle Purchasing, it holds the PO_HEADERS_ALL.VENDOR_ID. This column is not used for labor and usage expenditure items.?
TRANSACTION_SOURCE?
來源PA_TRANSACTION_SOURCE:這里能區分成本的來源
轉載于:https://www.cnblogs.com/wanghang/p/6299214.html
總結
以上是生活随笔為你收集整理的子分类账知识学习(汇总网上比较有用的资料)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 乌镇西栅免费表演项目
- 下一篇: 做技术到底可以做到哪种地步-技术为什么越