通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧 Development Coordination ABAP Dictionary Program Library Class Library Enhancements Message numbers

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

本文通过一些实际的例子,介绍 ABAP Repository Information System 的使用技巧。

顾名思义,ABAP Repository Information System,是一个巨大的仓库信息系统,存放了各种类型的 ABAP 开发对象。

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

使用事物码 SE80 打开这个仓库信息系统。进入之后,看到的页面如下:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

当然,大家 SE80 后看到的页面,不一定和我完全一致。我们可以在 SE80 的 Utilities 菜单里,选择应该显示哪些标签出来:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

比如我点击 Select All,把 SE80 支持的所有标签页全部放出来:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

最后的界面如下:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

本文着重介绍 Repository Information System 的用法。

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

可以根据各种输入条件查询 ABAP 开发包。可以把 ABAP 开发包理解成一个容器,里面能存放各种类型的 ABAP 开发对象,好比一个抽屉,里面能装各种杂物一样。任何 ABAP 开发对象,新建之后保存之前,系统都会弹出提示框,让开发人员选择,将这个开发对象存储在哪一个 ABAP 开发包里。

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

搜索结果:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

上图演示了根据 Package 的名称来搜索的功能,意思是:搜索系统所有以 $ZJE 开头的 ABAP 开发包。ABAP 开发包也能看作是一种广义上的 ABAP 对象,$ 和 Z 都是 ABAP 对象的命名规范,意思是该对象是本地存储,不能通过传输请求(Transport Request) 导入到其他系统。传输请求(Transport Request) 是 ABAP 一个特色概念,若干个 ABAP 开发对象可以依附于同一个传输请求,通过该请求,这些 ABAP 开发对象可以导入到其他系统。可以把传输请求想象成卡车,把分配给传输请求的 ABAP 开发对象,想象成卡车上运输的货物。
例如搜索所有描述字段包含了字符串 Product 的传输请求:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

点击时钟图标或者按键盘 F8 之后,执行搜索,得到结果:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

随便双击搜索结果里某一个传输请求,即可看到该请求内包含的 ABAP 对象:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

ABAP Dictionary

ABAP 字典,能查询到事物码 SE11 里创建的 ABAP 数据对象。
通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

下图是事物码 SE11 的界面,我们通常使用 SE11,进行 ABAP 数据结构,比如数据库表,数据类型的增删改和浏览操作。

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

但是对于一些查找需求,比如查询所有“包含了字段名称 PRODUCT_GUID”的数据库表,用 SE11 就无法完成这个需求。

但是使用 Repository Information System 可以轻易实现:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

下图右边这些橙色的高亮区域,即代表包含了字段 PRODUCT_GUID 的所有数据库表名称。

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

Program Library

下图例子为查找所有名称包含了 CRM_PRODUCT_GET 的 function module:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

Class Library

这也是 ABAP Repository Information System 极为有用的查询功能之一。
通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

列出所有包含了方法 GET_FOCUS 的 ABAP 类:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

结果:
通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

查找所有包含了 private 属性,且名称为 CONTEXT 的 ABAP 类:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

搜索结果:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

可以随便双击一个结果确认:
通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

基于 Events 和 Types 作为搜索条件的查询方式,和上述已经介绍的方式完全一致,这里不再赘述。

Enhancements

查询系统里最后被用户名 WANGJER 修改的 ABAP 增强:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

搜索结果:
通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

Message numbers

这也是一个极其有用的功能。比如我在事物码 COMMPR01 里,试图打开一个实际并不存在的产品,会遇到错误消息:No products found.

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

只需要根据 No products found 进行查询:
通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

即可得到搜索结果:这条错误消息的 message class 为 COM_PRODUCT_WB_UI, id 为 101.

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

双击即可看到明细:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

通过 Repository Information System 查询出来的 Message Class 和 ID,同该消息弹出框里点击这个黄色问号图标看到的信息是一致的:

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers

更多Jerry的原创文章,尽在:"汪子熙":
通过实际的例子,介绍 SAP ABAP 里的 Repository Information System 的使用技巧
Development Coordination
ABAP Dictionary
Program Library
Class Library
Enhancements
Message numbers