Eclipse 不为人所知的另一面 – 企业管理软件领域 ABAP 编程语言开发利器

对于 Java 从业人员来说,无论是刚入门的新手还是专家,肯定都正在或者曾经使用过 Eclipse,这是一款优秀的编写 Java 程序的 IDE.

然而可能大多数 Java 开发人员都没有意识到,Eclipse 同时也能用来进行另一款在企业管理软件开发领域大名鼎鼎的编程语言的开发工作,这门语言就是 ABAP.

在 2022 年 3 月最新的 TIOBE 编程语言排行榜上,Python, C 和 Java 分列前三甲,而 ABAP 位列第 42 名。

而 ABAP 这门编程语言,是企业管理软件巨头,德国最大的软件公司 SAP 使用的开发语言,其旗舰级产品 S/4HANA 和曾经成为 ERP 软件领域代名词的 R/3,都基于 ABAP 开发而成。

在 SAP 公司创始之初,ABAP 程序的编写工具是 SAP GUI,一个界面古朴的 IDE,如下图所示:

1. ADT的工作原理

很多从 Eclipse 做 Java 开发的朋友转到 ADT 后,最大的不习惯就是 ADT 没办法离线使用。即使是用 SAP 云平台 Neo 编程环境里的 SDK,开发人员也可以在本地完成开发后,使用命令行或者 Eclipse Run As 菜单将其发布到 SAP 云平台上。然而这种用法对于 ADT 来说行不通,因为后者仍然是一个 Client / Server模式中的 Client 端。从本质上讲,在开发 ABAP 时,Eclipse 和 SAP GUI 的区别,仅仅体现在对 Netweaver 服务器上开发资源的展示和操作方式有所差异罢了。

这种 Restful API 的消费行为可以通过打开 ADT 里的 ABAP Communication Log 视图来观察。点击 Start logging 按钮:

如果想自己调试这些后台操作的具体实现,用 SAP GUI 登录 ABAP 后台,使用事务码SICF找到节点/sap/bc/adt:

HTTP 请求发送到后台之后,上述方法会调用一个统一的入口函数 SADT_REST_RFC_ENDPOINT, 该函数和 ADT 后台框架其他处理逻辑的交互如下图所示:

相应的,如果对ADT的前台 Java 代码感兴趣,请移步 ADT 安装目录下的 plugins 文件夹,把里面的 jar 包反编译出来阅读源代码即可。

而 AMDP,就是一个特殊的 ABAP 类,能够在 ABAP 方法里执行 HANA 的SQLScript 或者存储过程。

使用 SAP GUI 做开发的 ABAP 顾问,应该明白这三个 session 的区别:

  • User Session
  • ABAP Session
  • Internal Session

那么 ADT 里打开的嵌有 SAP GUI 窗口的标签页,背后启动的 Session 类型是什么是 User Session.

下图是 ADT 里打开的两个标签和其对应的两个 User Session,用不同颜色来区分。

又比如所有添加了关注的系统的 ST22 信息能在一个地方统一监控了:

一些常用的代码重构功能如下:

  • Delete unused variables:
    快速删除一个方法里所有定义了但未使用的局部变量,这个功能很实用,SAP GUI 不支持。

740 之前的版本,重构向导的打开方式大同小异:

SAP GUI 里的单元测试和分支/语句执行覆盖率:

ADT 里也提供了单元测试和各种覆盖率审查的原生支持:

使用方式和 SAP GUI 里的没有差别。

如今在 ADT 里,ABAP 开发人员终于可以像 Java 程序员一样,享受 Eclipse 提供的便利的代码版本比较功能了:

这种Link格式如下:
adt://AG3/sap/bc/adt/vit/wb/object_type/tabldt/object_name/ZORDER
通过 Open ADT Link 菜单,输入上述 ADT Link,能直接打开对应的资源,而不需要像 SAP GUI 那样,需要先运行正确的事务码,进入事务码之后再打开资源。

SAP GUI 的颜色个性化设置稍显麻烦,需要一项项手动设置。而 ADT 因为是基于 Eclipse,所以主题的个性化就容易多了。如果觉得下面的 dark 主题还不够酷,

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年3月8日
下一篇 2022年3月8日

相关推荐