http://www.cnblogs.com/bruce_zhao/p/3809886.html

Oracle Ebs R12 SLA与GL关系变化

SLA概念:SLA(Subledger Accounting) 子帐是子分类帐会计的简称,字面上的含义就是子分类帐会计分录

SLA&GL关系:

   R12功能模块上面都启用了MOAC特性,新增了子模块和税模块,OPM和离散库存也集成了,所有的子模块会计分录都可以使用特定的公司配置出来;之间的关系分位三种:

1、子分类帐会计其实就是连接子模块会计和GL凭证之间的桥梁。就是子模块和GL之间的桥梁。所有子模块(包括FA)产生的会计分录都是使用SLA产生的,存放在SLA的表中,然后通过过帐程序过帐到GL。有点类gl_interface表的功能。

 2、子分类帐会计的第二层意思:在各个子模块都有一套独立的会计分录,看起来跟GL其实没太大区别,这就意味着在子模块其实就可以计算科目余额了。只是可惜,到目前为止我还没有类似gl_balance的表来存放科目余额。

3、各子模块目前还是可以有自己的分配帐户(就是以前查看会计科目看到的东西),分别存放在自己的分配表中,比如,AP还是存放在ap_invoices_distributions中,引入SLA后,把这个功能称为“事物处理会计”,和子分类帐会计的不同点在于,事物处理会计是通过自动会计或分配产生,而子分类帐会计是根据定义会计事件等公式产生的,分别存于不同的地方。

 

SLA&GL关系模型 关联模型,

1、 子分类帐的产生有两种方式,一种方式是直接从子模块的事物处理会计,一种是直接从子模块的事物处理上取得。
2、 子模块的事物处理会计和子分类帐会计是两个不同的东西,一定要区别对待,传送到GL的是子分类帐会计,并非事物处理会计。
3、 由于子分类帐会计的来源可能是事物处理,也可能是事物处理会计,因此很可能存在差异,这是SLA目前的缺陷。

SLA带来的益处

1、 灵活的定义会计分录的产生规则,包括摘要,借方和贷方
2、 一个事物处理可以过帐到多个ledger(就是11i的帐簿),这给跨国集团管理多个帐簿带来很大的好处
3、 统一了子模块会计分录的存放和产生规则,也就是说,各个子模块都可以根据自身的情况设置会计规则,但是这些规则产生的会计分录都回存放在SLA的表中。
4、 利于扩展,ORACLE委托外包的子模块产生的会计分录更容易集成到EBS SLA的几个重要关键词
基础事件关系图

SLA中的关键词

会计事件(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 中。
设置路径路径:子模块超级用户/设置/会计/子分类帐会计/事件/事件模型

基础事件关系图

xla_entity_types_vl(事件实体)

|――xla_entity_id_mappings(实体ID对应表)

|――xla_event_classes_vl(事件分类)

|――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->子模块追溯

前面的都是业务方面的,现在进行技术简析,更多的内容还在整理中。
    在SLA中技术方面最常用的就是日记帐来源追溯,在追溯的过程中从GL到SLA和11i差别不大,
使通过gl_import_references表来进行,该表的je_batch_id,je_header_id,je_line_num
是和GL关联,该表字段gl_sl_link_id是和SLA中的行表(XLA_AE_LINES)关联,
     在SLA中重要的几张表如下:

xla_transaction_entities:The table XLA_ENTITIES contains information about 
sub-ledger document or transactions.
    XLA_EVENTS:The XLA_EVENTS  table record all information related to a specific
event. This table is created as a type XLA_ARRAY_EVENT_TYPE.
    XLA_AE_HEADERS:The XLA_AE_HEADERS table stores subledger journal entries.

There is a one-to-many relationship between accounting events and journal entry headers.
    XLA_AE_LINES:The XLA_AE_LINES table stores the subledger journal entry lines. 
There is a one-to-many relationship between subledger journal entry headers and subledger
journal entry lines
    XLA_DISTRIBUTION_LINKS:The XLA_DISTRIBUTION_LINKS table stores the link between 
transactions and subledger journal entry lines.
    在一个系统PKG中有如下结构的插值语句,从而可以清楚的得出几个表之间的联系:

  1. Insert All When
  2. (Line_Id = 1) Then
  3. Into Xla_Transaction_Entities
  4. (Upg_Batch_Id ,
  5. Entity_Id,
  6. ……)
  7. Values
  8. (……) Into Xla_Events
  9. (Upg_Batch_Id, Entity_Id, Event_Id, ……)
  10. Values
  11. (……)
  12. Into Xla_Ae_Headers
  13. (Upg_Batch_Id,
  14. Entity_Idnt_Id ,
  15. Ae_Header_Id ,
  16. ……)
  17. Values
  18. (……) When
  19. (1 = 1) Then Into Xla_Ae_Lines
  20. (Upg_Batch_Id, Ae_Header_Id, Ae_Line_Num, ……)
  21. Values
  22. (……)
  23. Into Xla_Distribution_Links
  24. (Upg_Batch_Id ,
  25. Event_Id,
  26. Ae_Header_Id,
  27. Ae_Line_Num ,
  28. ……)
  29. Values
  30. (……)
  31. Select …… From ……;

上面提到的gl_import_references.gl_sl_link_id字段就是和xla_ae_lines.gl_sl_link_id字段关联,在这些表中和子模块关联的字段在xla_transaction_entities中,该表中有如下形式的字段
源表关联字段
source_id_int_num 对应的源ID 例如:ap_invoices_all
source_id_char_num
这两个字段是用来和源模块关联,该字段的设置是在各个子模块:
路径是:设置->会计科目设置->子分类帐会计设置->会计方法生成器->事件->事件模型
界面如下:该界面的实体代码就是对应xla_transaction_entities表中的ENTITY_CODE字段,每个来源就标示了该子分类帐是哪个模块产生的。

点击[标示]进入如下界面:该界面中的实体表列字段时子模块相关源表的字段,标示列就是SLA中

xla_transaction_entities表的列,SLA和字模块的联系就是通过该界面的设置来完成的。

安全性控制字段
security_id_char_num
security_id_int_num
这两个字段是用来进行安全验证,数据屏蔽使用

xla_transaction_entities是有VDP验证的表,各个模块使用的策略函数是

通过设置>>会计科目设置>>子分类帐会计设置>>子分类帐应用产品  来设置的,

如AP模块使用的是:XLA_SECURITY_POLICY_PKG.MO_POLICY,在该方法中有一句很重要

 

一般的MOAC
VPD使用的字段时ORG_ID该处是将ORG_ID替换为security_id_int_1,很明显了
现在分析了GL和SLA以及 SLA和字模块之间联系,在加上上面的那段插值代码中对应的表关系,就很容易整理
出常见的追溯关系了,可能也有特殊情况没有涉及到。

下面是一个实例 :

首先看**这边的分配,该分配是对应于SLA中的表xla_distribution_links

在该情况下可以查询出每个会计帐户的明细来历,这是AP**的分配

  1. Select Aid.Invoice_Id
  2. Aid.Invoice_Distribution_Id 分配ID ,
  3. Aid.Invoice_Line_Number 行号,
  4. Distribution_Line_Number 分配行号,
  5. Aid.Rcv_Transaction_Id 接收事务id,
  6. Aid.Amount 金额
  7. From Ap_Invoice_Distributions Aid, Ap_Invoices Api
  8. Where Api.Invoice_Id = Aid.Invoice_Id
  9. -- And Aid.Invoice_Id = 35357
  10. Order By Aid.Invoice_Line_Number, Distribution_Line_Number;
  11.  
  12. Begin
  13. mo_global.init('M');
  14. End;

  1. -- And Xal.Ae_Header_Id = 14012
  2. And Xdl.Application_Id = 200
  3. Order By Xdl.Source_Distribution_Id_Num_1;
  4.  
  5. Begin
  6. mo_global.init('M');
  7. End;

分析:应付分配中的账户,在SLA中会产生两行数据,并且这两行数据借贷相反 金额相同。

从GL查行数据,在GL的一个header下的行有可能是经过合并后的行,因此GL的行并不能准确的表示出帐户源的帐户信息,在GL的同一个帐户行可能对应着AP这边很多张**的帐户信息,但会计行中的子分类帐日记帐分录行的每一行则一定对应着同一张**。

如下代码是整理的追溯一般代码

  1. Select '_^_' Key,
  2. Gir.Je_Batch_Id ,
  3. --======xla_transaction_entities=========--------
  4. Xte.Application_Id 应用,
  5. Xte.Entity_Id,
  6. Xte.Ledger_Id 分类帐sob,
  7. Xte.Entity_Code,
  8. Xett.Name 事务实体类型,
  9. Le.Name 法人主体,
  10. Le.Legal_Entity_Identifier 人主体所得税纳税登记 ,--legal_entity_tax
  11.  
  12. ------------------------------
  13. /* --AP_INVOICES
  14. Ap ** Invoice_Id
  15.  
  16. --AP_PAYMENTS
  17. Ap付款 Check_Id
  18.  
  19. --RECEIPTS
  20. 收款
  21.  
  22. Cash_Receipt_Id
  23.  
  24. --TRANSACTIONS 事务处理
  25. 销售 ** Customer_Trx_Id
  26. ,
  27. Xte.Source_Id_Int_1 事务源对应ID ,
  28. ------------------------------
  29. /*--下面两个字段折旧的时候会有值
  30. ,xte.source_id_int_2
  31. ,xte.source_id_int_3*/
  32. Xte.Security_Id_Int_1 Org_Id,
  33. Xte.Source_Application_Id 源对应应用,
  34. --======xla_event=========--------
  35. Xe.Event_Type_Code, --Event type code
  36. Xent.Name 事件类型,
  37. Xe.Event_Status_Code, --Event status code
  38. Xe.Process_Status_Code, --Processing status code
  39. /*This flag indicates whether the event is on hold or not.
  40.  
  41. possible values: (Y)--yes, (N)--No*/
  42. Xe.On_Hold_Flag,
  43. --==============xla_ae_headers=======-----
  44. Xah.Ledger_Id Sob,
  45. Xah.Je_Category_Name, --General Ledger category name
  46. Xah.Accounting_Date,
  47. Xah.Period_Name 期间,
  48.  
  49. /* ,xah.balance_type_code --Balance type (Actual, Budget, or Encumbrance)
  50. ,xah.gl_transfer_date
  51. ,xah.accounting_entry_status_code
  52. ,xah.accounting_entry_type_code
  53. ,xah.zero_amount_flag*/
  54. --==============xla_ae_line=======-----
  55.  
  56. Xal.Ae_Line_Num 行号,
  57. Xal.Code_Combination_Id 账户id,
  58. Gjl.Code_Combination_Id 日记帐gcc,
  59. /* ,xal.gl_transfer_mode_code
  60. ,xal.accounting_class_code "会计分类"*/
  61. Xlp.Meaning 会计分类,
  62. Xal.Accounted_Dr 入账借项本位币,
  63. Xal.Accounted_Cr 入账贷项本位币,
  64. Xal.Currency_Code 币种,
  65. Xal.Entered_Dr 账户原币借项,
  66. Xal.Entered_Cr 账户原币贷项,
  67. Gir.Je_Line_Num 日记帐行号,
  68. Xte.Entity_Id,
  69. Xte.Application_Id,
  70. Xe.Event_Id,
  71. Xah.Ae_Header_Id,
  72. Xal.Ae_Line_Num
  73. From Xla_Transaction_Entities Xte,
  74. Xla_Entity_Types_Tl Xett,
  75. Xle_Entity_Profiles Le,
  76. Xla_Events Xe,
  77. Xla_Event_Types_Tl Xent,
  78. Xla_Ae_Headers Xah,
  79. Xla_Ae_Lines Xal,
  80. Xla_Lookups Xlp,
  81. Gl_Import_References Gir,
  82. Gl_Je_Lines Gjl
  83. Where 1 = 1
  84. And Xte.Entity_Id = Xe.Entity_Id
  85. And Xte.Application_Id = Xe.Application_Id
  86. And Xte.Legal_Entity_Id = Le.Legal_Entity_Id(+)
  87. And Xah.Event_Id = Xe.Event_Id
  88. And Xah.Application_Id = Xe.Application_Id
  89. And Xent.Event_Type_Code = Xe.Event_Type_Code
  90. And Xent.Application_Id = Xe.Application_Id
  91. And Xent.Language = 'ZHS'
  92. And Xah.Ae_Header_Id = Xal.Ae_Header_Id
  93. And Xah.Application_Id = Xal.Application_Id
  94. And Xlp.Lookup_Type(+) = 'XLA_ACCOUNTING_CLASS'
  95. And Xlp.Lookup_Code(+) = Xal.Accounting_Class_Code
  96. And Gir.Gl_Sl_Link_Id = Xal.Gl_Sl_Link_Id
  97. And Gir.Gl_Sl_Link_Table = Xal.Gl_Sl_Link_Table
  98. And Gjl.Je_Header_Id = Gir.Je_Header_Id
  99. And Gjl.Je_Line_Num = Gir.Je_Line_Num
  100. And Xett.Entity_Code = Xte.Entity_Code
  101. And Xett.Application_Id = Xte.Application_Id
  102. And Xett.Language = 'ZHS'
  103. And Gir.Je_Batch_Id = 5511
  104. ;

Oracle Ebs R12 SLA与GL关系变化的更多相关文章

  1. Oracle EBS R12文件系统结构(学习汇总网上资料)

    Oracle EBS R12在服务器端文件结构如下: 顶层目录下面分为 1)inst --–跟ebs整个实例(instance)相关的配置信息以及其他信息 2)  db   ---主要存储DB层的信息 ...

  2. Oracle EBS R12经验谈(二)

    作者: jianping.ni    时间: 2009-2-13 12:52     标题: Oracle EBS R12经验谈(二) OAF页面:银行帐户开户人LOV值列表无值    在输入 应付超 ...

  3. Oracle EBS R12多组织(多OU)访问架构

    Oracle EBS R12多组织访问架构 多组织架构实现了经营单位(OU)的数据安全性,在底层数据表中有一列ORG_ID来记录数据所属的经营单一,所有多OU的基表都是以"_ALL" ...

  4. Oracle EBS R12 客户表结构

    参考链接: Oracle EBS R12 客户表结构 Oracle EBS中的“客户”."客户地点".‘订单’之间的关系 Oracle EBS中的“客户”."客户地点&q ...

  5. Oracle EBS R12 (12.1.3) Installation Linux(64 bit)

    Oracle EBS R12 (12.1.3) Installation Linux(64 bit) Contents Objective. 3 1 Download & Unzip. 3 D ...

  6. 处理Oracle EBS R12登录首页跳转出现unexpected error问题(转)

    原文地址: 处理Oracle EBS R12登录首页跳转出现unexpected error问题 经上网搜索,造成此问题的问题有很多,如内存不足.系统参数配置不当.程序代码.系统表空间不足等原因.查询 ...

  7. ORACLE EBS R12 FOR LINUX 开机后如何启动数据库、应用脚本[Z]

    在Linux中安裝EBS  R12後, EBS關閉與啟動的程序為: 1. 關閉EBS - 先關閉Applications Server $ cd /d01/oracle/VIS/inst/apps/V ...

  8. Oracle EBS R12 WIP Component Issue&Return Process

    oracleassemblytransactionscomponentsjobsreference 目录(?)[-] 定义BOM 定义Routing 定义WIP Discrete Job 发料 Mat ...

  9. Oracle EBS R12 XML数据表格的Excel脚本报表

    http://www.cnblogs.com/quanweiru/archive/2012/07/28/2612680.html 一.概述 在EBS系统中,报表是一个非常重要的客户化开发内容,也是系统 ...

随机推荐

  1. NK3C 业务权限控制

    资源中,添加了一个类型:权限(橙色显示),现在有4种数据: 域管理员:domainAdmin 组织管理员:orgAdmin 组管理员:groupAdmin 一线员工:phoneAdmin 权限控制可以 ...

  2. java学习第三天

    关于上次的数据转换,如果定义的是 short 是,那么s=s+1,这样是错误的,会损失精度,但如果是s+=1.确实正确的,因为它包含了一个强制转化在里面.相当于 s=(int)(s+1);  然后特地 ...

  3. java 的SYSTEM类【转】

    java 的SYSTEM类[转] Posted on 2009-12-03 16:46 火之光 阅读(728) 评论(0) 编辑 收藏 System类代表系统,系统级的很多属性和控制方法都放置在该类的 ...

  4. char *p 与char p[] 比较

    看看下面的程序的输出: #include <stdio.h>char *returnStr(){    char *p="hello world!";    retur ...

  5. ORACLE 数据的逻辑组成

    数据块(block) Oracle数据块(Data Block)是一组连续的操作系统块.分配数据库块大小是在Oracle数据库创建时设置的,数据块是Oracle读写的基本单位.数据块的大小一般是操作系 ...

  6. jQuery下拉框插件8种效果

    jQuery自定义漂亮的下拉框插件8种效果 jquery美化选择器实例有:边框.下划线. 伸缩 .滑动. 覆盖. 旋转. 弹出层选择 .环形效果. 在线预览 <body class=" ...

  7. win8.1 vs2010 C++环境下 编译Android Adb.exe

    1 IntelliSense: cannot open source file "usb100.h"  adb 这是因为没有安装sdk造成的.win7下安装wdk,vs2010能够 ...

  8. linux系统的目录结构

    前言 对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要 ...

  9. sql sever 2008修改数据类型

    如果是新表,直接在表中修改: 如果不是新表,则须sql语句修改 附sql语句 alter table 表名 alter column 列名 新的数据类型

  10. 【.net】关于RegexOptions中的各个枚举值的含义

      Member name Description   Compiled Specifies that the regular expression is compiled to an assembl ...