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中有如下结构的插值语句,从而可以清楚的得出几个表之间的联系:

Insert All When
(Line_Id = 1) Then
Into Xla_Transaction_Entities
(Upg_Batch_Id ,
Entity_Id,
……)
Values
(……) Into Xla_Events
(Upg_Batch_Id, Entity_Id, Event_Id, ……)
Values
(……)
Into Xla_Ae_Headers
(Upg_Batch_Id,
Entity_Idnt_Id ,
Ae_Header_Id ,
……)
Values
(……) When
(1 = 1) Then Into Xla_Ae_Lines
(Upg_Batch_Id, Ae_Header_Id, Ae_Line_Num, ……)
Values
(……)
Into Xla_Distribution_Links
(Upg_Batch_Id ,
Event_Id,
Ae_Header_Id,
Ae_Line_Num ,
……)
Values
(……)
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**的分配

Select Aid.Invoice_Id ,
Aid.Invoice_Distribution_Id 分配ID ,
Aid.Invoice_Line_Number 行号,
Distribution_Line_Number 分配行号,
Aid.Rcv_Transaction_Id 接收事务id,
Aid.Amount 金额
From Ap_Invoice_Distributions Aid, Ap_Invoices Api
Where Api.Invoice_Id = Aid.Invoice_Id
-- And Aid.Invoice_Id = 35357
Order By Aid.Invoice_Line_Number, Distribution_Line_Number; Begin
mo_global.init('M');
End;

  -- And Xal.Ae_Header_Id = 14012
And Xdl.Application_Id = 200
Order By Xdl.Source_Distribution_Id_Num_1; Begin
mo_global.init('M');
End;

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

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

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

Select '_^_' Key,
Gir.Je_Batch_Id ,
--======xla_transaction_entities=========--------
Xte.Application_Id 应用,
Xte.Entity_Id,
Xte.Ledger_Id 分类帐sob,
Xte.Entity_Code,
Xett.Name 事务实体类型,
Le.Name 法人主体,
Le.Legal_Entity_Identifier 人主体所得税纳税登记 ,--legal_entity_tax ------------------------------
/* --AP_INVOICES
Ap ** Invoice_Id --AP_PAYMENTS
Ap付款 Check_Id --RECEIPTS
收款 Cash_Receipt_Id --TRANSACTIONS 事务处理
销售 ** Customer_Trx_Id
,
Xte.Source_Id_Int_1 事务源对应ID ,
------------------------------
/*--下面两个字段折旧的时候会有值
,xte.source_id_int_2
,xte.source_id_int_3*/
Xte.Security_Id_Int_1 Org_Id,
Xte.Source_Application_Id 源对应应用,
--======xla_event=========--------
Xe.Event_Type_Code, --Event type code
Xent.Name 事件类型,
Xe.Event_Status_Code, --Event status code
Xe.Process_Status_Code, --Processing status code
/*This flag indicates whether the event is on hold or not. possible values: (Y)--yes, (N)--No*/
Xe.On_Hold_Flag,
--==============xla_ae_headers=======-----
Xah.Ledger_Id Sob,
Xah.Je_Category_Name, --General Ledger category name
Xah.Accounting_Date,
Xah.Period_Name 期间, /* ,xah.balance_type_code --Balance type (Actual, Budget, or Encumbrance)
,xah.gl_transfer_date
,xah.accounting_entry_status_code
,xah.accounting_entry_type_code
,xah.zero_amount_flag*/
--==============xla_ae_line=======----- Xal.Ae_Line_Num 行号,
Xal.Code_Combination_Id 账户id,
Gjl.Code_Combination_Id 日记帐gcc,
/* ,xal.gl_transfer_mode_code
,xal.accounting_class_code "会计分类"*/
Xlp.Meaning 会计分类,
Xal.Accounted_Dr 入账借项本位币,
Xal.Accounted_Cr 入账贷项本位币,
Xal.Currency_Code 币种,
Xal.Entered_Dr 账户原币借项,
Xal.Entered_Cr 账户原币贷项,
Gir.Je_Line_Num 日记帐行号,
Xte.Entity_Id,
Xte.Application_Id,
Xe.Event_Id,
Xah.Ae_Header_Id,
Xal.Ae_Line_Num
From Xla_Transaction_Entities Xte,
Xla_Entity_Types_Tl Xett,
Xle_Entity_Profiles Le,
Xla_Events Xe,
Xla_Event_Types_Tl Xent,
Xla_Ae_Headers Xah,
Xla_Ae_Lines Xal,
Xla_Lookups Xlp,
Gl_Import_References Gir,
Gl_Je_Lines Gjl
Where 1 = 1
And Xte.Entity_Id = Xe.Entity_Id
And Xte.Application_Id = Xe.Application_Id
And Xte.Legal_Entity_Id = Le.Legal_Entity_Id(+)
And Xah.Event_Id = Xe.Event_Id
And Xah.Application_Id = Xe.Application_Id
And Xent.Event_Type_Code = Xe.Event_Type_Code
And Xent.Application_Id = Xe.Application_Id
And Xent.Language = 'ZHS'
And Xah.Ae_Header_Id = Xal.Ae_Header_Id
And Xah.Application_Id = Xal.Application_Id
And Xlp.Lookup_Type(+) = 'XLA_ACCOUNTING_CLASS'
And Xlp.Lookup_Code(+) = Xal.Accounting_Class_Code
And Gir.Gl_Sl_Link_Id = Xal.Gl_Sl_Link_Id
And Gir.Gl_Sl_Link_Table = Xal.Gl_Sl_Link_Table
And Gjl.Je_Header_Id = Gir.Je_Header_Id
And Gjl.Je_Line_Num = Gir.Je_Line_Num
And Xett.Entity_Code = Xte.Entity_Code
And Xett.Application_Id = Xte.Application_Id
And Xett.Language = 'ZHS'
And Gir.Je_Batch_Id = 5511
;

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. 自动化脚本过程中出现This element neither has attached source nor attached Javadoc...的解决方法

    This element neither has attached source nor attached Javadoc and hence no Javadoc could be found Ec ...

  2. winform.布局

    布局:默认布局:自己拖动进行布局,工具栏里对齐方式 右键,锁定.##随容器拉动变化属性:Anchor:上下左右,固定的设置 panel的排列 1.Dock属性:(顺序填充)Top:靠上,高度不变,左右 ...

  3. java, poi, excel

    工作需要用java操作Excel,现在网上搜索了一下,决定选取POI包来操作.pom内容如下: <dependency> <groupId>org.apache.poi< ...

  4. win7如何配置access数据源

    今天想做个管理系统,需要用到数据库,还要设置数据源,可是当我打开控制面板的管理工具的数据源发现只有SQL驱动,找不到access,因为我是用acess做的啊,所以就很郁闷,不过看到了一个方法,好吧,我 ...

  5. sql良好习惯

    我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?我么还 ...

  6. Erlang 从入门到精通(一) 下载安装

    我的电脑配置: 系统:win8.1  x64 内存:16G 在官网下载http://www.erlang.org/

  7. Mahout源码分析之 -- QR矩阵分解

    一.算法原理 请参考我在大学时写的<QR方法求矩阵全部特征值>,其包含原理.实例及C语言实现:http://www.docin.com/p-114587383.html 二.源码分析 这里 ...

  8. C# 根据包含文件的路径和文件的名称的字符串获取文件名称的几种方法

    C# 截取带路径的文件名字,扩展名,等等 的几种方法 C#对磁盘IO操作的时候,经常会用到这些,路径,文件,文件名字,文件扩展名. 之前,经常用切割字符串来实现, 可是经常会弄错. 尤其是启始位置,多 ...

  9. SQL Server Profiler使用方法

    一.SQL Server Profiler使用方法 1.单击开始--程序--Microsoft SQL Server 2005--性能工具--SQL Server Profiler,如下图:   2. ...

  10. operator

    /*  * 由SharpDevelop创建.  * 用户: jinweijie  * 日期: 2015/10/28  * 时间: 9:15  *   * 要改变这种模板请点击 工具|选项|代码编写|编 ...