`
guanhuaing
  • 浏览: 1239573 次
文章分类
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

    SAP中文教材全系列之ABAP-BC400_ZH

    此外,模块化的概念被引入,涵盖了子例程、函数模块、全局类方法和局部类方法,用于指导开发者如何将复杂的程序逻辑拆分为更易于管理和维护的小块代码。 复杂数据对象的使用也是文档的重要部分,详细介绍了结构和...

    ABAP面试-超级经典

    2. 变量声明:在ABAP中,变量需要先声明后使用,可以声明为局部变量、全局变量或类属性。 3. 语句结构:包括IF...ENDIF、CASE...ENDCASE、LOOP...ENDLOOP等控制流程语句。 二、ABAP程序结构 1. 源代码对象:如...

    ABAP调优-代码优化.docx

    17. **类方法与函数模块**:调用全局类的方法通常比调用函数模块更快。 18. **代码静态检查**:使用SLIN或其他工具进行代码静态分析,获取性能优化建议。 19. **旧式内表定义**:定义内表时,若不确定最大记录数,...

    abap自学的好教材:SmartForms 之一--设计

    在自学ABAP SmartForms的过程中,了解以下几个关键知识点至关重要: 1. **创建样式**:在设计SmartForms前,首先要创建样式文件,这涉及到段落格式和字体设置。例如,创建RH(Report Header)、PD(Page Header)、...

    sap abap 经典开发入门文档

    7. **类和对象**:随着ABAP的对象化发展,理解和使用面向对象编程概念,如类、对象、继承、封装和多态,变得至关重要。 8. **增强与接口**:学习如何使用增强(Enhancement)和接口(Interface)来扩展标准SAP功能...

    ABAP最详细的开发规范

    ### ABAP最详细的开发规范 #### ABAP对象命名规范 **1.1 开发类** - **命名格式**: `Z<XX>_<Shorttext>` - `<XX>` 表示业务模块,具体业务模块的定义可以参考附录中的业务模块命名表。 - `<Shorttext>` 是一个...

    ABAP in BW

    数据提取涉及从SAP系统后端获取数据的多种技术,而数据阶段处理则涵盖数据准备和适配的过程,以便加载到BW系统中进行分析。 SAP BW后端功能增强的五种方式包括使用ABAP进行数据提取、数据阶段处理、BEx变量的使用、...

    ABAP语法详解教材

    ABAP(Advanced Business Application Programming)是SAP公司开发的一种编程语言,主要用于开发和维护SAP系统中的业务应用程序。本教材“ABAP语法详解”旨在帮助读者深入理解和掌握ABAP的基本语法结构以及高级特性...

    abap试题

    根据给定的ABAP试题,我们可以深入探讨ABAP语言中的一些关键知识点,这些知识点涵盖了ABAP的基本概念、数据处理、程序控制以及系统交互等方面。下面是对试题中提及的知识点的详细解析: ### 开发对象的传输请求触发...

    abap编程中的事务代码和系统变量

    事务代码是SAP系统中用于执行特定任务的快捷方式,而系统变量则是ABAP程序运行过程中预定义的、全局可访问的数据对象,用于存储和传递信息。 首先,我们来看一下几个常见的事务代码: 1. SE38:这是一个用于编写和...

    [SAP]ABAP程序介绍

    程序结构包括全局声明、过程块和子程序。事件处理是ABAP程序优化的关键,通过合理组织事件块,可以提高程序的可读性和效率。 在实际开发中,ABAP程序员会使用SAP提供的ABAP Workbench工具集,包括Function Builder...

    SAP BC402 课程中文自学笔记

    - 过程块: 包含ABAP语句。 - 属性: 包含技术性的设置。 - 屏幕: 包括屏幕布局和逻辑流。 - 接口: 包括菜单、工具栏等元素。 - 文本: 语言相关,包括短文本和长文本。 - 文档: 从用户的角度编写的文档。 - ...

    abap语言开发之报表的事件

    ### ABAP语言开发之报表的事件 在ABAP (Advanced Business Application Programming) 开发中,了解不同类型的程序及其对应的事件是非常重要的。根据给定的信息,本文将详细介绍与**报表**(REPORT)相关的事件。 ###...

    ABAP开发实例

    - **TRACE**:可以开启跟踪,收集程序运行信息,帮助分析性能问题。 7. **函数模块和库** - **函数模块**:预定义的功能块,可跨程序调用。 - **SAP标准库**:SAP提供大量预定义的函数模块和类,用于常见的业务...

    ABAP PA Topic

    函数模块(Function Modules)是全局可见的特殊过程,通常在功能组(Function Groups)中定义,用于封装复杂逻辑并实现远程启用和更新模块。 ### Function Group Structure 功能组的结构包括顶级包含(Top Include)、...

    ABAP 函数总结 常用函数解释.doc

    21. cl_gui_frontend_services=>gui_upload / gui_download:这两个全局类的方法分别用于文件上传到服务器和从服务器下载到本地。 22. ARFC_GET_TID:获取终端的IP地址,以十六进制形式表示。 23. BAL_*:一组与...

    sap权限对象的创建和使用

    本文将深入探讨如何创建和使用权限对象,并通过ABAP编程举例来展示其实现过程。 首先,创建一个权限对象需要在SAP的后台系统中进行。在交易代码SEAC(Authorization Objects Maintenance)中,你可以新建一个对象,...

    FTP通用操作.docx

    【FTP通用操作】文档主要介绍了在SAP ABAP环境下如何使用FTP进行文件传输以及FTP的基本命令用法。FTP(File Transfer Protocol)是一种用于在互联网上进行文件传输的标准协议,广泛应用于上传、下载软件和其他数据。...

Global site tag (gtag.js) - Google Analytics