使用Visual Studio Code编写和激活ABAP代码 (上)

简介: 使用Visual Studio Code编写和激活ABAP代码 (上)

猪年春节后的第一篇,Jerry祝各位猪年大吉!


2019年的六分之一马上就快过完了,不知道大家在新的一年是否给自己定了新的小目标呢?这里Jerry先预祝大家到2019年年底的时候,在年初制定的小目标都能实现。


2018年4月之前,Jerry一半时间为SAP S4CRM团队工作,剩下的一半时间为SAP C4C团队工作,所以那段时间大家能发现,Jerry公众号的文章主要是围绕着这两个SAP产品来写的。


4月之后,Jerry换组,到了新的部门,工作内容也发生了变化,不再专注于某个特定的SAP产品,而是项目需要我熟悉什么产品,我就得熟悉什么产品,所以之后我的公众号文章,主题也逐渐多种多样起来。


言归正传,Jerry之前的文章 那些年我用过的SAP IDE 曾经介绍过除了SAPGUI之外的其他ABAP开发工具和ABAP代码浏览工具。


得益于Netweaver职责清晰的三层架构,提供了ABAP开发环境和运行环境的应用服务器层(下图中间的Application server layer)作为ABAP应用的核心, 其上可以灵活适配不同的展现层(Presentation layer), 比如WebIDE, Eclipse,和今天要介绍的Visual Studio Code。


image.png


上图中应用服务器层的底层是数据库服务器层,Netweaver也支持多种主流数据库提供商的服务。例如下图是Jerry使用的一个Netweaver系统,支持包括SAP HANA在内的十种数据库管理系统(DBMS)。


image.png


我们简单回顾下之前Jerry介绍过的不同的ABAP开发工具。


首先是ABAP Development Tool(简称ADT), 对ABAP程序提供增删查改和激活操作的函数,通过位于路径sap/bc/下面的SICF服务节点adt暴露给外部消费者。


ABAP Development Tool的Java端实现就是Eclipse的一个扩展,使用JCO(Java Connector)连接ABAP后台的adt服务,实现对ABAP程序的操作。

image.png



关于ABAP Development Tool的细节,Jerry以前已经做过详细介绍,这里不再赘述,可以参考我这些文章:


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


Jerry在SAP Community上写给老外看的文章:https://blogs.sap.com/2014/08/12/an-example-to-help-you-understand-how-does-adt-work/


image.png


而在浏览器里编写ABAP,即通常意义上的ABAP WebIDE,实现方式有两种。一种是通过传统的ITS****(Internet Trasaction Server),通过这种方式在浏览器里显示的ABAP代码缺乏语法高亮:


image.png


Jerry写过的相关博客:


Open your SAP GUI transaction in Fiori launchpad


https://blogs.sap.com/2016/12/21/open-your-sap-gui-transaction-in-fiori-launchpad/


How is old SAP GUI transaction embedded into Fiori launchpad


https://blogs.sap.com/2016/12/21/how-is-old-sap-gui-transaction-embedded-into-fiori-launchpad/


另一种技术就是S/4HANA某些应用,比如Custom Logic采用的,支持语法高亮。



image.png

当然这个语法高亮的支持不是天上掉下来的,详细实现参考我的博客:


How ABAP syntax highlight is implemented in WebIDE launched via browser


https://blogs.sap.com/2018/03/09/how-abap-syntax-highlight-is-implemented-in-webide-launched-via-browser/


再回到今天聊的Visual Studio Code。SAP成都研究院很多前端开发的同事都向我推荐过这个IDE。Jerry试用过之后,印象最深的就是它那超快的启动速度,一流的扩展性和繁荣的生态圈。其扩展应用的丰富程度不亚于Sublime Text和Eclipse这些老牌开发工具。


和SAP自研的ABAP Development Tool思路一样,本文介绍的Visual Studio Code扩展应用,ABAP Remote File System,也是通过另一种编程语言TypeScript去远程消费ABAP后台程序的增删查改服务。


该扩展应用的作者叫Marcello,一位居住在伦敦的程序猿(Jerry想起了西甲皇家马德里足球队昔日的队宠)。


image.png


这个Visual Studio Code的扩展是开源的,github仓库地址:


https://github.com/marcellourbani/vscode_abap_remote_fs


安装和配置的步骤在仓库的readme里有详细说明,最简单的方式就是在Visual Studio Code里直接用abap作为关键字搜索Market place,然后点Install安装。



image.png

这个扩展的配置文件settings.json的内容可以参考下图:


image.png


配置完成后,在Visual Studio Code的命令栏里能看到连接ABAP系统的指令和settings.json里配置的两条记录,任选一个后登入系统,显示该系统下的ABAP程序资源。操作它们的方式和基于Eclipse的ABAP Development Tool大同小异。


image.png

当然也有一些Visual Studio Code提供的特色功能,比如下图这种类Google的即时搜索。



image.png

这个扩展本身是不提供ABAP代码语法高亮的,需要安装另一个来自Lars Hvam贡献的语法高亮扩展。


image.png

安装完毕后,ABAP的语法高亮也能顺利在Visual Studio Code里工作了。

image.png


下面这张动图来自Marcello,演示了通过Visual Studio Code的这个扩展实现ABAP代码的基本编辑。

image.png


作者在他的readme也明确注明,这个扩展还处于Beta测试阶段,使用者需自己承担风险。


image.png

在Jerry看来,Visual Studio Code的这个扩展,如果用来做ABAP开发的话,功能还相对局限,但是如果对SAPGUI或者ABAP Development Tool产生了审美疲劳,想换一种工具来阅读ABAP源代码,那么它和下图的Sublime Text一样,都是不错的选择。



image.png

将来如果Jerry有空,会在这篇文章的下半部分简单介绍下这个扩展的TypeScript实现细节。


另外,今年Jerry也会争取能分享一些SAP云平台上ABAP编程环境的相关内容,敬请期待。

image.png



感谢阅读。



相关文章
|
1月前
|
存储 数据处理 开发者
ABAP 如何把 unicode 代码点转换成字符
ABAP 如何把 unicode 代码点转换成字符
19 0
|
19天前
|
存储
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
19 0
|
2月前
|
SQL 数据库
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
25 0
|
1月前
|
BI
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示试读版
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示试读版
15 0
|
1月前
|
存储
ABAP 代码从十进制转二进制的方法
ABAP 代码从十进制转二进制的方法
21 0
|
2月前
|
XML 持续交付 开发工具
SAPGUI 里 ABAP 代码导出成 PDF 格式的隐藏小技巧
SAPGUI 里 ABAP 代码导出成 PDF 格式的隐藏小技巧
27 0
|
2月前
|
XML 数据格式
使用 ABAP 代码将 Word 文档设置成只读
使用 ABAP 代码将 Word 文档设置成只读
22 0
|
6月前
|
存储 语音技术 UED
如何用 ABAP 代码进行文本转语音的输出工作
如何用 ABAP 代码进行文本转语音的输出工作
36 0
|
3月前
小技巧分享:如何使用动态断点快速找到成对的 ABAP 内存 IMPORT 和 EXPORT 的代码位置
小技巧分享:如何使用动态断点快速找到成对的 ABAP 内存 IMPORT 和 EXPORT 的代码位置
24 0
|
3月前
答知识星球朋友疑问:执行 ABAP 代码出现超时的原因,背后的理论和解决方案试读版
答知识星球朋友疑问:执行 ABAP 代码出现超时的原因,背后的理论和解决方案试读版
17 0