写点什么

如何增强 ABAP 系统,允许开发人员给 ABAP 对象设置标签,方便快速检索

作者:Jerry Wang
  • 2022 年 9 月 01 日
    上海
  • 本文字数:2089 字

    阅读完需:约 7 分钟

如何增强 ABAP 系统,允许开发人员给 ABAP 对象设置标签,方便快速检索

标签(Tag)几乎是信息管理软件的一个必备功能,目的是帮助用户更迅速地检索出自己需要的数据,以及对海量数据进行更有效的管理。


如今在 ABAP Development Tool 里也支持标签功能了,可以像使用各种云笔记一样,给常用类型的 ABAP 对象添加自定义的标签。这个标签分配的功能并未给 ABAP 对象增添任何新的功能,而是帮助使用者能够按照自己的实际需求,迅速将需要的 ABAP 资源检索出来。


如果您熟悉 C++ 和 Java,您应该知道它们的程序存储在单独的外部文件中。 但在 ABAP 中,程序驻留在 SAP 数据库中。 它们在作为 SAP 内核一部分的运行时系统的控制下执行。 运行时系统处理所有 ABAP 语句,控制流逻辑并响应用户事件。


本文先展示给 ABAP 对象加标签的操作方式,再介绍如何给 ABAP Development Tool 添加标签功能。


SAP 系统以 3 层客户端-服务器架构描述。 三层分别是表示层、应用层和数据库层。 下图将帮助您了解 SAP 系统的简单结构。



表示层包含可用于控制 SAP 系统的任何输入设备。 简单地说,它可以是移动设备、台式计算机或网络浏览器。


应用层扮演中央处理服务器的角色。 表示层发起的所有用户操作都在此处理。 应用层不仅仅是一个系统本身,它也可以是处理系统的多个实例。 应用服务器进程通过工作进程(Work Process,简称 WP)执行。 WP 是能够执行应用程序的组件。 在 SAP 系统的整个运行时,每个 WP 都在数据库系统中注册为用户。


数据库层是存储所有数据的地方。 这里说的数据不光包含业务数据,也包括所有客户记录、程序和任何需要存储的东西,是广义上的数据概念。


简而言之,用户在表示层上执行的任何操作都将传递给应用程序层进行处理,该处理将从数据库层检索任何相关数据,应用程序层处理数据并通过表示层将其呈现给最终用户。


在数据库内部,ABAP 代码以两种形式存在。


  • 源代码 — 可以使用 ABAP 工作台工具查看和编辑。

  • 生成的代码 - 二进制表示。 (在 Java 中,这个生成的代码有点类似于 Java 字节码)


运行时系统可以被认为是一个虚拟机,就像 Java 虚拟机一样。


SAP 可以与各种各样的数据库一起工作,并且相同的 ABAP 程序可以在所有这些数据库上运行。


在 ABAP Development Tool 里添加标签的方式非常直接,右键菜单里选择 Assign Tags 即可。凡是使用过云笔记里标签添加和管理功能的朋友们,对此应该非常熟悉。



通过 Add Tag 和 Add User Tag 按钮管理标签结构,每个 ABAP 系统都有一个全局的标签系统(Global Tag), 这些标签在同一 ABAP 系统里所有登录用户均可见。也可以创建只有自己可见的 User Tag:



和云笔记的标签系统一样,ABAP Development Tool 里的标签管理也支持树状的层级结构。



在快捷键为 Ctrl+H 的全局搜索页面里,增添了一项根据标签搜索 ABAP 对象的选项:



ABAP Development Tool 的标签管理功能来自开源社区的贡献,因此需要使用者自行安装。


笔者之前的一篇博客曾经介绍了用户在 ABAP Development Tool 里操作时前后台交互的原理:An example to help you understand how does ADT work



为了探究我们在 Eclipse 中进行操作时前后台究竟发生了什么,我们需要打开 ABAP 通信日志。


单击 Windows-> 显示视图。 显示 ABAP 通信日志视图。



点击 Start Logging 按钮:



创建一个新的 report:



然后就可以看到一系列 log 被记录下来了:



现在我们可以知道用户在 Eclipse 中的操作,是通过 HTTP Get 和 HTTP Post 发送到 ABAP 后端系统的,并在 ABAP 后端进行处理。 双击每一行以获得详细视图。


在报告创建场景中,发送到 ABAP 后端的请求与您在 SAP GUI 中创建一份报告的正常操作相同:


因此这个标签管理功能我们需要分别安装 ABAP Development Tool 前后台对应的增强。


首先是前台增强,即 ABAP Development Tool 里的标签添加,标签树形结构管理和根据标签进行全局搜索的 UI 实现。


前台增强直接通过 Eclipse 的 Help 菜单里的 Install New Software 选项在线安装即可,安装网址为:https://stockbal.github.io/eclipse/rel/




后台增强的 ABAP 实现源代码,位于 Github 上:https://github.com/stockbal/abap-tags-backend


该仓库的源代码需要使用 abapGit 安装到 ABAP 后台系统上。


如果你的 ABAP 系统没有 abapGit 这个客户端,需要先进行安装,其实就是新建一个报表,再将下面这个 Github 仓库里的 abapGit 源代码拷贝到报表里,激活即可。


https://github.com/larshp/abapGit#abapgit


将下图高亮的 zabapgit.abap 包含的源代码下载到本地,用任意一个文本编辑器打开,Ctrl C 再 Ctrl V 到 ABAP 系统的报表里,激活:



激活之后运行报表,看到的首页如下。点击右上角的 New Online:



将 ADT 标签管理的后台实现使用 abapGit pull 到当前的 ABAP 系统,点击 Clone online repo:



然后在当前的 abapGit 客户端内,已经可以看到 abap-tags-backend 这个 Github 仓库了:



执行 pull 操作,在当前 ABAP 系统里自动生成 Github 仓库里包含的 ABAP 对象:



逐一激活自动生成的对象:



后台增强安装完毕。


总结

本文首先简要介绍了 ABAP Development Tool 工具里用户发起的操作,是如何映射到 ABAP 后台系统,接着介绍了如何通过前台更新和后台 ABAPGit 安装增强的方式,给 ABAP 系统增添标签管理的新功能。


希望本文介绍的这个技巧,能帮助大家更高效地管理自己 ABAP 系统里的开发对象,感谢阅读。

发布于: 刚刚阅读数: 5
用户头像

Jerry Wang

关注

🏆InfoQ写作平台-签约作者🏆 2017.12.03 加入

SAP成都研究院开发专家,SAP社区导师,SAP中国技术大使。2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。工作中使用 ABAP, Java, JavaScript 和 TypeScript 进行开发。

评论

发布
暂无评论
如何增强 ABAP 系统,允许开发人员给 ABAP 对象设置标签,方便快速检索_SAP_Jerry Wang_InfoQ写作社区