四、資產模塊常用表
對於資產模塊,個人實際接觸比較少,主要是通過官方文檔和一個簡單的資產明細報表的開發做的理解,會有很多不准確甚至錯誤的地方,之后會不斷更新完善
1、首先通過前台ebs界面找到各個字段對應的各個表,而后分析各個表本身,以及相關的關系,在此過程中熟悉方法,並加深理解:
通過SYSTEM中的last—query 是前台進行操作后,后台進行的最近的一個查詢語句,而並不一定在查找該具體項是從哪里來的;要想具體看在那里 需要利用屬性 項目 里 的block找到相應的sql語句;那么依然找不到一些想要的數據時怎么來的怎么辦呢? 通過‘幫助’里面找到最后一項的版本信息中找到form的名字,從服務器中拉出來一點點看
2、FA中涉及到的常用表的理解
總體上,絕大部分表中都有asset_id和book_type_code,因為都是大部分信息在這個限定下的才有實際應用意義,-類似於總賬模塊下的 ledger_id和period_name(當然coa部分在ledger_id卻情下來后也定下來了)自我理解,對於現實中的資產操作 無非就是 買入 折舊 報廢,以及在這個過程中的分配對於這些動作 的相關信息儲存在下面各個表當中,不同的動作導致不同的表中插入各種數據
將報廢看作折舊的最終狀態做理解,所以報廢的一些操作也會在fa_books中產生數據的影響,而折舊和fa_books表可以類比總賬部分行表和頭表的關系做理解,
(1)FA_ADDITIONS_B
表理解:
FA_ADDITIONS_B包含描述性信息,以幫助您識別您的資產。 Oracle資產不使用此表進行計算折舊。
字段理解:
資產ID(ASSET_Id關聯其他表)
資產編號(ASSET_NUMBER)
類別(ASSET_CATEGORY_ID)
說明(description)
序列號(SERIAL_NUMBER)
資產類型(ASSET_TYPE)
數量(CURRENT_UNITS)當執行數量上的報廢時,Oracle資產減少CURRENT_UNITS報廢的數量。
所有權(OWNED_LEASED)
已購(NEW_USED)
屬類別(ATTTIBUTE_CATEGORY_CODE)
與其他表的重要關聯:
FA_CATEGORIES_VL中的(CATEGORY_ID)關聯字段(ASSET_CATEGORY_ID )得到類別中文描述;
關聯到前台的大類、小類
(2)FA_BOOKS
FA_BOOKS包含計算折舊所需的信息。
當最初添加資產時,Oracle Assets在其中插入一行表。這將成為資產的“活動”行。每當你使用折舊表(FA_DEPRN_DETAIL)以更改資產的折舊信息,或如果報廢或恢復它,Oracle Assets在表中插入另一行,
然后它成為新的“活動”行,並將前一行標記為過時。在任何時間點,在任何給定的折舊帳簿資產的表中只有一個“活動”行。通常,Oracle資產使用活動行, 其特點為 DATE_INEFFECTIVE和TRANSACTION_HEADER_ID_OUT為NULL。同時在實際寫包的時候,這2個字段,和period_counter、period_name通過最大值,最小值,去確定一段期間,在資產剩余使用壽命的函數中尤為明顯。另外TRANSACTION_HEADER_in與DATE_EFFECTIVE同樣也有聯系,但是並不是簡單的1對1的關系,這部分內容需要在實踐中進一步理解!!!!!!!!!!!!!!!
當Oracle資產終止一行時,DATE_INEFFECTIVE和TRANSACTION_HEADER_OUT設置為新行的DATE_EFFECTIVE和新行的TRANSACTION_HEADER_IN。你可以很容易地識別受同一事務影響的行,因為它們具有相同的DATE_EFFECTIVE / DATE_INEFFECTIVE和TRANSACTION_HEADER_ID_IN /
TRANSACTION_HEADER_ID_OUT對。
當Oracle資產創建新行時,用於TRANSACTION_HEADER_ID_IN列的值與TRANSACTION_HEADER_ID插入到的行FA_TRANSACTION_HEADERS,DATE_EFFECTIVE是系統日期。
當報廢資產時,Oracle Assets插入一個新行以報廢的金額為度降低當前成本(COST)。當恢復資產時,Oracle Assets插入一個新行增加COST 的值,增加多少呢,對應COST_RETIRED FA_RETIREMENTS中對應行的COST_RETIRED。
字段理解:
賬簿(book_type_code),
原始價值(original_cost)
當前價值(cost) 這個值得改變與折舊沒有關系,只與前台是否做調整,以及東西是否報廢去衡
殘值(salvage_value)本字段和下面的percent_salvage_value字段兩者只能有一個字段有值,salvage字段是由前台設定的,當其為null時,殘值用當前價值cost*殘值率得出
殘值率(percent_salvage_value)
資產啟用時間(date_placed_in_service) 與原始價值在邏輯位置上相同,一般和下面deprn_start_date字段寫相等
折舊開始日期(deprn_start_date) 計算資產使用壽命時,可能用到的字段,與折舊日期(prorate_date)也會用到
這里涉及到一個問題什么時候用折舊開始日期,因為按照目前項目上的情況,都是資產於下月的1號進行折舊,即
當前賬期的折舊,在下個賬期進行計算。好好理解2個字段的不同。
每次事務發生的時間開始時間(date_effective)本次折舊發生的時間,這里應該理解折舊是一個時間段,而非一個時間點
每次事務發生的時間結束時間(date_ineffective)本次折舊結束的時間點
transactions_header_id_in 每筆折舊發生時產生的id 理解上和date_effective 相似,不過這是一個i d transactions_header_id_out每筆折舊發生時產生的id 理解上和date_ineffective 相似,不過這是一個id
對於上面的字段, date_effective和 transactions_header_id_in應該是1對1 的關系,但是在實際應用的函數書寫考慮時,並未做1對1的關系,這里需要進一步理解
與其他表的關聯關系:
與FA_BOOK-CONTROLS相關 通過book_type_code 或者這就賬簿的總體信息,
FA_DISTRIBUTION_HISTORY(transactions_header_id_in,transactions_header_id_out)相關
(3)FA_BOOK-CONTROLS
包含所有的影響折舊帳簿中的資產的信息
set_of_books_id 對應總賬 gl_ledgers中的ledger_id
Accounting_flex_structure對應總賬 gl_ledgers中的 coa
以LAST_PERIOD_COUNTER是運行折舊的最近的賬期。 Oracle資產使用它來防止在一個期間內多次運行折舊程序
並確保在連續的期間內都可以運行折舊程序
INITIAL_PERIOD_COUNTER記錄在使用oracle資產模塊進行折舊的第一個期間(因為可能之前不是用的oracle系統進行折舊)
INITIAL_DATE記錄在使用oracle資產模塊進行第一次折舊的時間
ACCOUNTING_FLEX_STRUCTURE 就是總帳中的coa 相當於GL_CODE_COMBINATIONS中的CHART_OF_ACCOUNTS_ID。
DEPRN_REQUEST_ID最近一次進行折舊請求的id
當然book_type_name 賬簿的中文 描述也在這里面
(4)FA_DEPRN_DETAIL
其包含每個分配行上的關於這就的信息。 Oracle資產使用此信息為總賬模塊的日記賬做信息存儲吧。
每次運行折舊時的資產,該表中每個分配行插入一行;例如,如果你將資產分配給兩個不同的成本中心,折舊時程序在此表中為資產插入兩行。所有會在相同的asset_Id下有多個distribution_Id ,其中distribution_Id可能相同也可能不同,因為同一批分配的distribution_Id相同,不同批的自然就不同
DEPRN_AMOUNT是本分配線下的本次這就的金額
YTD_DEPRN為本會計年度的這就金額綜合
DEPRN_RESERVE 為當前所有這就金額總和
添加資產時,Oracle Assets在此表中插入一行在本期間之前的期間。此行具有資產ADDITION_COST_TO_CLEAR列中的成本,以及DEPRN_SOURCE_CODE為'B'。此列用於報告新資產。基本可以理解為剛分配的時候
運行折舊時,Oracle Assets將成本轉移到當前周期行中的COST列,此行的DEPRN_SOURCE_CODE為'D'。
這里關於折舊和分配加上自己的一些理解,首先新增一條資產以后在折舊明細表中肯定存在一個distribution_id,特殊理解點在於如果之后如果以此資產進行多次分配,折舊表中不會再增加distribution_id,.而在分配歷史表中則在不斷增加數據,二者做關聯的時候注意使用外連接的方式(這個思路有待求證)
字段理解:
Period_counter 與FA_DEPRN_PERIODS的相同字段做關聯
(5)FA_DEPEN_PERIODS
包括有關折舊期間的信息,PERIOD_OPEN_DATE和PERIOD_CLOSE_DATE每次進行折舊的期間的開始結束日期。(和其他表中的date_effective,date_ineffective的關聯關系稍微想想)
每次運行折舊程序時,它將關閉當前期間,將PERIOD_CLOSE_DATE設置為系統日期。 它也是通過在此表中插入一個新行來打開下一個期間其中PERIOD_CLOSE_DATE為NULL,PERIOD_OPEN_DATE等於舊行的PERIOD_CLOSE_DATE。
(6)FA_RETIREMENTS
包含有關資產報廢的信息。(這里報廢的概念其實也包括資產的恢復,即REINSTATE)
當報廢資產,或者恢復資產並更新時,這個表中就會插入一條數據當報廢一條數據時,Oracle Assets插入的行具有的TRANSACTION_HEADER_ID_IN和DATE_EFFECTIVE這兩個參數對應在FA_TRANSACTION_HEADERS中的TRANSACTION_HEADER_ID和DATE_EFFECTIVE。並且此時的TRANSACTION_HEADER_ID_OUT和DATE_INEFFECTIVE為NULL。
如果恢復了已經計算收益或損失的Oracle資產的報廢,Oracle資產則會更新TRANSACTION_HEADER_ID_OUT和DATE_INEFFECTIVE用新的FA_TRANSACTION_HEADERS中的TRANSACTION_HEADER_ID和DATE_EFFECTIVE行
如果恢復了沒有計算增益或損失Oracle資產的報廢,Oracle Assets只是從表中刪除行,因為它沒有財務影響。
辣么,問題來了,怎么去知道他是否進行了收益和損失的計算呢
通過字段status的內容:
PENDING Oracle資產尚未計算收益或損失的報廢。
PROCESSED Oracle資產已經計算了收益或虧損的報廢。
REINSTATE Oracle資產尚未處理恢復。
DELETE Oracle資產已處理恢復。
字段理解:
報廢價值(COST_retired)
報廢狀態(STATUS)
報廢類型(retirement_type_code)
實際報廢價值(nbv_retired)
表關聯:
關於報廢和折舊表的聯系腦子中並不清楚,暫時先不做關聯,等實際應用上再去理解吧
FA_TRANSACTION_HEADERS(TRANSACTION_HEADER_ID,DATE_EFFECTIVE)與(TRANSACTION_HEADER_ID_in,date_effective),此時報廢表中的TRANSACTION_HEADER_ID_out和date_ineffective為空
(7) FA_DISTRIBUTION_HISTORY
FA_DISTRIBUTION_HISTORY
包含分配資產的雇員,位置和會計Flexfield值有關的信息。折舊程序使用此信息
分配折舊費用,Transfers form使用它維持資產轉移的審計跟蹤。
當您使用Transfers for初始分配給資產時,Oracle Assets為每個分配插入一行。每當轉移,報廢,恢復或重新分類資產,Oracle資產將相應的行標記為過時並創建新行,新航可以反映分配單位,員工,總帳折舊費用科目或位置。
Oracle資產通過設置DATE_INEFFECTIVE和TRANSACTION_HEADER_ID_OUT到來終止一次分配,分別對應新行的DATE_EFFECTIVE和TRANSACTION_HEADER_ID_IN。這意味着你可以識別受同一事務影響的行,因為它們有相同的DATE_EFFECTIVE / DATE_INEFFECTIVE和TRANSACTION_HEADER_ID_IN / TRANSACTION_HEADER_ID_OUT對。
對於新行,TRANSACTION_HEADER_ID_IN與FA_TRANSACTION_HEADERS中相同已插入行的TRANSACTION_HEADER_ID相等,DATE_EFFECTIVE系統日期。
當執行完全報廢時,Oracle資產將更新資產的當前分配行,其中RETIREMENT_ID為
FA_RETIREMENTS中的ETIREMENT_ID,以便您可以輕松確定哪個報廢影響行。 Oracle資產字段TRANSACTION_UNITS中以負數存儲單位數字。TRANSACTION_UNITS的總數為FA_RETIREMENTS中UNITS,除了符號相反。
當您執行部分報廢時,Oracle資產更新這部分報廢的相關行。任何分布對於任何還存有數量的行,會在units_assigned減少已經報廢的數量,然后插入一個新的行,而終止舊的行。
如果完全恢復報廢,Oracle Assets插入新行,這新行中的數據與完全報廢之前的數據相同,除了它們有不同的DISTRIBUTION_ID,TRANSACTION_HEADER_ID_IN和DATE_EFFECTIVE。
如果你部分恢復報廢,Oracle Assets插入新行,其中UNITS_ASSIGNED中加上之前報廢數量,並分配一個新的 DISTRIBUTION_ID,TRANSACTION_HEADER_ID_IN和DATE_EFFECTIVE。
RETIREMENT_ID標識受退休影響的所有行。
TRANSACTION_UNITS 是每一次報廢、恢復報廢、轉移、增加、重分類的發生事件的數量
(新)fa_asset_keywords
首先要明白,資產模塊有三個彈性域,
1,類別
2,關鍵字
3,(分配表中)地點
fa_additions_b.ASSET_KEY_CCID 和fa_asset_keywords.CODE_COMBINATION_ID 可與 fnd_flex_values_vl,fnd_id_flex_segments等表通過gcc表中的各個SEGMENT關聯起來,找到上面3個彈性域的相關信息
