且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧

更新时间:2022-08-17 13:17:22

Jerry和SAP成都研究院一些新同事聊天时,谈到ABAP和SAP GUI这个话题。很多新同事在加入SAP成都之前,是做Java和C++开发的,习惯了Eclipse/IntelliJ IDEA/Visual Studio这些现代IDE,对于SAP GUI这个比较”复古“的IDE不太适应。


其实还有一个选择:ABAP Development Tools,最初在SAP内部称为ABAP in Eclipse。这个工具SAP在很多场合简称为ADT,本文后续部分也使用这个简称。


简单地说,SAP对Eclipse做了扩展,开发了一些插件,使得开发人员能使用Eclipse完成部分以前在SAP GUI里进行的ABAP开发工作

不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧本文不去重复网上和SAP帮助文档里对ADT的介绍,而是介绍一些Jerry的原创内容。


Jerry曾经写过一篇文章 那些年我用过的SAP IDE, 里面也提到了ADT。本文对其做详细介绍。


文章目录


1. ADT的工作原理


2. SAP GUI和ADT的关系


3. ADT相比SAP GUI具有的一些独到之处


4. ADT其他一些值得一提的小功能


下面是正文。


1. ADT的工作原理


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


正因为这种CS架构,每次我们在ADT里操作Netweaver上的ABAP资源时,比如编辑一个ABAP类并保存,实际上都是通过消费ABAP后台暴露出的Restful API来完成的。


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

不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧

不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧关于这些HTTP的请求和响应明细,请参考Jerry的博客:


An example to help you understand how does ADT work


https://blogs.sap.com/2014/08/12/an-example-to-help-you-understand-how-does-adt-work/


比如在ADT里对ABAP源代码做语法检查,实际上就是把整段代码做一个Base64编码,然后通过HTTP Post发送到后台,由后台执行对应的检查函数,结果通过HTTP响应返回给ADT前端。

不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧2. SAP GUI和ADT的关系


Jerry的个人观点是:二者互为补充。


一方面,对于S/4HANA很多新功能的开发,比如CDS view和AMDP(ABAP Managed Database Procedure), 开发人员没有选择的余地,必须使用ADT,因为SAP GUI不支持这些新功能的开发。


比如在SAP GUI里即使想浏览CDS view的内容也不行,会收到提示:


Please use the ADT Tools in Eclipse to process DDL sources.

不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧

SAP GUI里可以查看AMDP的源代码,但是没法做开发。试图在SAP GUI里进行编辑时,会遇到上面的提示信息:


Class XX contains stored procedures which cannot be changed in SAP GUI


反之,SAP GUI里一些比较传统的开发,ADT也是不支持的。举一些例子。


传统Dynpro程序的Screen开发,双击Screen number,就可以通过点击Layout按钮打开Screen Painter,然后进行所见即所得的Screen布局开发:

不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧

不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧

不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧

  • User Session
  • ABAP Session
  • Internal Session
  • 不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧
  • 不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧
  • 不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧