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

2年前 (2022) 程序员胖胖胖虎阿
241 0 0

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

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

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

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

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

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

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

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

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

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

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

  • 源代码 — 可以使用 ABAP 工作台工具查看和编辑。
  • 生成的代码 - 二进制表示。 (在 Java 中,这个生成的代码有点类似于 Java 字节码)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

点击 Start Logging 按钮:

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

创建一个新的 report:
如何增强 ABAP 系统,允许开发人员给 ABAP 对象设置标签,方便快速检索

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

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

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

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

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

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

前台增强直接通过Eclipse的Help菜单里的Install New Software选项在线安装即可,安装网址如下.

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

后台增强的ABAP实现源代码,位于 Github 这个仓库。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

后台增强安装完毕。

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

总结

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

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

相关文章

暂无评论

暂无评论...