zoukankan      html  css  js  c++  java
  • FA常用表

    四、资产模块常用表

    对于资产模块,个人实际接触比较少,主要是通过官方文档和一个简单的资产明细报表的开发做的理解,会有很多不准确甚至错误的地方,之后会不断更新完善

    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个弹性域的相关信息

  • 相关阅读:
    【POJ 3162】 Walking Race (树形DP-求树上最长路径问题,+单调队列)
    【POJ 2152】 Fire (树形DP)
    【POJ 1741】 Tree (树的点分治)
    【POJ 2486】 Apple Tree (树形DP)
    【HDU 3810】 Magina (01背包,优先队列优化,并查集)
    【SGU 390】Tickets (数位DP)
    【SPOJ 2319】 BIGSEQ
    【SPOJ 1182】 SORTBIT
    【HDU 5456】 Matches Puzzle Game (数位DP)
    【HDU 3652】 B-number (数位DP)
  • 原文地址:https://www.cnblogs.com/akami/p/6933643.html
Copyright © 2011-2022 走看看