zoukankan      html  css  js  c++  java
  • 分类账和法人实体

    首先,对于EBS中的法人实体和分类账以及OU之间的一个层次关系如下图:

    其中,对于分类账和法人实体,并不简单是一对多的关系,按照理论上来讲:由于分类账存在辅助分类账,所以一个法人实体除了对应一个主分类账(Primary Ledger)外,还可能存在辅助分类账,但是一个法人实体肯定只对应一个唯一的主分类账,而对于分类账之间是否存在有“主从关系”还不太清楚,有待进一步考证。

    而在R12中,要找出他们之间的关系就需要通过一下sql来看了:

    SELECT lg.ledger_id,
           lg.NAME ledger_name,
           lg.short_name ledger_short_name,
           cfgdet.
    object_id legal_entity_id,
           le.NAME legal_entity_name,
           reg.location_id location_id,
           hrloctl.location_code location_code,
           hrloctl.description location_description,
           lg.ledger_category_code,
           lg.currency_code,
           lg.chart_of_accounts_id,
           lg.period_set_name,
           lg.accounted_period_type,
           lg.sla_accounting_method_code,
           lg.sla_accounting_method_type,
           lg.bal_seg_value_option_code,
           lg.bal_seg_column_name,
           lg.bal_seg_value_set_id,
           cfg.acctg_environment_code,
           cfg.configuration_id,
           rs.primary_ledger_id,
           rs.relationship_enabled_flag
      
    FROM gl_ledger_config_details primdet,
           gl_ledgers               lg,
           gl_ledger_relationships  rs,
           gl_ledger_configurations cfg,
           gl_ledger_config_details cfgdet,
           xle_entity_profiles      le,
           xle_registrations        reg,
           hr_locations_all_tl      hrloctl
     
    WHERE rs.application_id = 101
       
    AND ((rs.target_ledger_category_code = 'SECONDARY' AND
           rs.relationship_type_code 
    <> 'NONE'OR
           (rs.target_ledger_category_code 
    = 'PRIMARY' AND
           rs.relationship_type_code 
    = 'NONE'OR
           (rs.target_ledger_category_code 
    = 'ALC' AND
           rs.relationship_type_code 
    IN ('JOURNAL''SUBLEDGER')))
       
    AND lg.ledger_id = rs.target_ledger_id
       
    AND lg.ledger_category_code = rs.target_ledger_category_code
       
    AND nvl(lg.complete_flag, 'Y'= 'Y'
       
    AND primdet.object_id = rs.primary_ledger_id
       
    AND primdet.object_type_code = 'PRIMARY'
       
    AND primdet.setup_step_code = 'NONE'
       
    AND cfg.configuration_id = primdet.configuration_id
       
    AND cfgdet.configuration_id(+= cfg.configuration_id
       
    AND cfgdet.object_type_code(+= 'LEGAL_ENTITY'
       
    AND le.legal_entity_id(+= cfgdet.object_id
       
    AND reg.source_id(+= cfgdet.object_id
       
    AND reg.source_table(+= 'XLE_ENTITY_PROFILES'
       
    AND reg.identifying_flag(+= 'Y'
       
    AND hrloctl.location_id(+= reg.location_id
       
    AND hrloctl.LANGUAGE(+= userenv('LANG');

    从数据结果中可以看出,系统中有7个分类账(LEDGER)和5个法人实体(LEGAL_ENTITY),对于TCL_YSP这个法人实体来说,拥有两个分类账,其LEDGER_CATEGORY_CODE分别为PRIMARY和SECONDARY,说明了一个法人实体有一个主分类账,并且可以有辅助分类账,而2041这个分类账,则没有对应的法人实体,但是其LEDGER_CATEGORY_CODE依然为PRIMARY,这说明一个分类账的category_code有可能是事前定义好的,而不是在与法人实体关联的时候才决定的,所以不能确定分类账之间到底有层次关系……

    对以上的sql进行精简,也可以得出相应的关系来:

    select lg.ledger_id, --分类帐
           cfgdet.object_id legal_entity_id, --法人实体    
           lg.currency_code,
           lg.chart_of_accounts_id,
           rs.primary_ledger_id
      from gl_ledger_config_details primdet,
           gl_ledgers               lg,
           gl_ledger_relationships  rs,
           gl_ledger_configurations cfg,
           gl_ledger_config_details cfgdet
    where rs.application_id = 101  --101为总账GL应用
       and ((rs.target_ledger_category_code = 'SECONDARY' and
           rs.relationship_type_code <> 'NONE') or
           (rs.target_ledger_category_code = 'PRIMARY' and
           rs.relationship_type_code = 'NONE') or
           (rs.target_ledger_category_code = 'ALC' and
           rs.relationship_type_code in ('JOURNAL', 'SUBLEDGER')))
       and lg.ledger_id = rs.target_ledger_id
       and lg.ledger_category_code = rs.target_ledger_category_code
       and nvl(lg.complete_flag, 'Y') = 'Y'
       and primdet.object_id = rs.primary_ledger_id
       and primdet.object_type_code = 'PRIMARY'
       and primdet.setup_step_code = 'NONE'
       and cfg.configuration_id = primdet.configuration_id
       and cfgdet.configuration_id(+) = cfg.configuration_id
       and cfgdet.object_type_code(+) = 'LEGAL_ENTITY';

  • 相关阅读:
    Go 语言简介(下)— 特性
    Array.length vs Array.prototype.length
    【转】javascript Object使用Array的方法
    【转】大话程序猿眼里的高并发架构
    【转】The magic behind array length property
    【转】Build Your own Simplified AngularJS in 200 Lines of JavaScript
    【转】在 2016 年做 PHP 开发是一种什么样的体验?(一)
    【转】大话程序猿眼里的高并发
    php通过token验证表单重复提交
    windows 杀进程软件
  • 原文地址:https://www.cnblogs.com/keim/p/2212718.html
Copyright © 2011-2022 走看看