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

  • 相关阅读:
    linux进程间通信-共享内存
    where和having子句的区别
    多进程和多线程的区别(转载)
    android手机调试时不能打印Logcat日志信息
    来源不清,随笔
    转载
    C语言和Lua的交互
    python常用代码笔记
    python入门问题(windows7+python35+pycharm)
    常用matlab代码笔记
  • 原文地址:https://www.cnblogs.com/akami/p/6933643.html
Copyright © 2011-2022 走看看