zoukankan      html  css  js  c++  java
  • abap全局类信息读取的过程分析

    一、读取该类的所有信息
       call function 'SEO_CLASS_TYPEINFO_GET'
          * - get attributes
              call function 'SEO_ATTRIBUTE_READ_ALL'
                 * get all attribute originals from db(seocompo/seoo_cmptype_attribute)
                 * fetch attribute definitions(seocompodf)
                 * fetch texts(seocompotx)
                    * care of attributes without description in modification language
                    * if not found logon language,return DE language
              *extract aliases from attributes
          *-Get  Method
              call function 'SEO_METHOD_READ_ALL'
                 * get all method originals from db(seocompo/seoo_cmptype_method)
                 * fetch method definitions(seocompodf)
                 * fetch texts(seocompotx)
                    * care of method without description in modification language
                    * if not found logon language,return DE language
              *extract aliases from methods
          *- Get Events
              call function 'SEO_EVENT_READ_ALL'
                 * get all attribute originals from db(seocompo/seoo_cmptype_event)
                 * fetch event definitions(seocompodf)
                 * fetch texts(seocompotx)
                    * care of event without description in modification language
                    * if not found logon language,return DE language
              *extract aliases from event
          *- Get Events
              call function 'SEO_EVENT_READ_ALL'
                 * get all attribute originals from db(seocompo/seoo_cmptype_event)
                 * fetch event definitions(seocompodf)
                 * fetch texts(seocompotx)
                    * care of event without description in modification language
                    * if not found logon language,return DE language
              *extract aliases from event
    =================================================
          *- Get event and method's subcomponents
    =================================================
          *- Get Types
              call function 'SEO_TYPE_READ_ALL'
                 * get all type originals from db(seocompo/seoo_cmptype_type)
                 * fetch type definitions(seocompodf)
                 * fetch texts(seocompotx)
                    * care of event without description in modification language
                    * if not found logon language,return DE language
          *- Get parent class
              call function 'SEO_INHERITANC_READ'
                 * get inheritance(iseometarel/seor_reltype_inheritance)
                 * fetch redefinitions(seoredef)
          *- Get interface implementations
              call function 'SEO_IMPLEMENTG_READ_ALL'
                 * get implementings(iseometarel/seor_reltype_implementing)
                 * fetch implementing detail(seoredef)
          *- Get typegroup usages
              call function 'SEO_TYPEPUSAGE_READ_ALL'
                 * get typegroup usages(seotypepls/seot_tputype_typepusage 0)
          *- Get class deferreds
              call function 'SEO_CLSDEFERRD_READ_ALL'
                 * get implementings(seotypepls/seot_tputype_classdeferred 1)
          *- Get interface deferreds
              call function 'SEO_INTDEFERRD_READ_ALL'
                 * get implementings(seotypepls/seot_tputype_interfacedeferred 2)
    =================================================
          * explore inheritance if requested
                  'SEO_CLASS_TYPEINFO_GET'
          * explore interfaces if requested
                 call function 'SEO_INTERFACE_TYPEINFO_GET'
    =================================================

    二、读取该类的所有父类(abap是单类继承)的信息,并添加到相关数据内表
       call method explore_relations
       *Get Superclass and all implement interfaces's attribute(attribute,Method,event,types,implement.alias....)
            * inherited components
             call function 'SEO_CLASS_RESOLVE_INHERITANCE'
                  call function 'SEO_CLASS_INHERITANCE_PATH_GET'
                  loop
    ×取父类的所有信息
                      call function 'SEO_CLASS_TYPEINFO_GET'
    ×删除私有不可见的属性
                     delete atts where exposure = seoc_exposure_private.
                     delete mets where exposure = seoc_exposure_private.
                     delete mets where cmpname = seok_mtdname_constructor.
                     delete mets where cmpname = seok_mtdname_class_constructor.
                     delete mets where cmpname = seok_mtdname_destructor.
                     delete eves where exposure = seoc_exposure_private.
                     delete typs where exposure = seoc_exposure_private.
                     delete alis where exposure = seoc_exposure_private.
    ×将可见的属性添加合并到类信息内表
                     insert lines of:
                             atts into attributes    index 1,
                             mets into methods       index 1,
                             eves into events        index 1,
                             typs into types         index 1,
                             imps into implementings index 1,
                             alis into aliases       index 1.
                  endloop.

    三、读取该类所有实现类的信息,并添加到相关数据内表
            * implemented interfaces
             call function 'SEO_CLASS_RESOLVE_IMPLEMENTGS'
    ×取所有的实现接口
                 call function 'SEO_CLASS_TYPEINFO_GET'
                      exporting
                         clskey        = clskey
                         version       = version
                         state         = state
                      importing
                         implementings = implems.
    ×循环提取所有的实现接口的信息
                  loop implems.
                     call function 'SEO_INTERFACE_TYPEINFO_GET'
    ×将可见的属性添加合并到类信息内表
                     insert lines of:
                            atts into attributes index 1,
                            mets into methods    index 1,
                            eves into events     index 1,
                            alis into aliases    index 1,
                            pars into parameters index 1,
                            excs into exceps index 1.
                  endloop. 

    相关函数和数据表信息参见:http://blog.csdn.net/CompassButton/archive/2007/12/07/1922844.aspx

  • 相关阅读:
    mvc4 to mvc5 orEF5 to EF6 ,(升级EF6)
    mongodb 增删改查
    切换frame
    selenium使用,xpath解析模块,笔记整理在最后# 四套解析数据的方式 # 1.bs4 2.css_selector 3.xpath 4.re,
    爬虫,request,response 属性,方法,2.beautifulsoup解析模块
    爬虫基础知识简单案例
    vue跳转,v-model 双向绑定,-vuex的使用cookie:,视频第三方播放
    分页器,解析器,url控制器,响应器
    正向代理与反向代理
    认证权限频率自定义
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157130.html
Copyright © 2011-2022 走看看