这是Jerry 2020年的第29篇文章,也是汪子熙公众号总共第212篇原创文章。
作为SAP从业者,我们能够清楚地感受到这些年SAP技术进化的趋势。
SAP前端开发技术的进化方向,从SAP GUI,到能在浏览器里运行的ABAP Webdynpro / WebClient UI,再到现在仍然没有停止进化的Fiori UX. 而Fiori也从诞生之初只支持SAP UI5,进化到现在能够同时支持Angular, React和Vue等多种前端框架。
关于SAP前端技术的演进,可以参考Jerry这些文章:
- SAP UI和Salesforce UI开发漫谈
- SAP Fiori + Vue = ?
- Fiori Fundamentals和SAP UI5 Web Components
- 用React开发SAP Fiori应用
而SAP后端开发技术,自从SAP云平台问世以后,SAP开发人员发现,自己手头可选的技术,除了ABAP以外,一下子增加了很多:比如开源社区非常活跃的Java和nodejs,终于也能够应用到SAP后台开发中来了。而SAP云平台本身,也从诞生之初纯粹由SAP自己架设数据中心的单一云架构,演进到如今能支持GCP, Azure, AWS和阿里云等作为基础设施层的Multiple Clou架构。
本文咱们不聊具体的技术,而是谈谈开发工具。
Jerry之前的文章 那些年我用过的SAP IDE,介绍过我曾经用过的SAP开发工具。如今,这个列表里又多了一个新的成员。
2019年TechEd上,SAP向外界宣布了一款在原有SAP WebIDE基础上进化而成的新一代全栈开发工具:SAP Business Application Studio.
SAP开发人员能够用这个新工具做什么?
SAP Business Application Studio针对不同的SAP解决方案提供了良好的支持,能够进行S/4HANA扩展开发,以及基于SAP CAP模型(Cloud Application Programming)的全栈式开发(技术栈是Java和nodejs), 以及各种类型的Fiori应用开发。
SAP Business Application Studio同SAP WebIDE有何不同?
SAP官方将Business Application Studio称之为WebIDE进化后的产物,该工具吸取了当今业界领先IDE的设计理念,专门为SAP云平台上的全栈应用开发进行过优化;工具提供的强大命令行工具,使得开发人员不会被GUI界面所束缚。
最后,Business Application Studio基于Eclipse Theia这款开源的IDE,这使得它从架构上来说,可以从容应对任何在云端开发领域涌现出的新需求。
举个例子,我们在Business Application Studio(下文简称为BAS)的插件列表里,能看到许多插件,有的是开源社区贡献的插件,比如vscode-eslint, 有的则来自SAP自研,比如vscode-mta-tools, 能够让开发人员利用BAS的命令行,无需登录SAP云平台控制台,就可进行SAP MTA应用的开发和部署。
在使用BAS之前,我们先来了解一个概念:Dev Space(开发空间).
一个开发空间是一个预先配置好的环境,背后实际对应了SAP云平台上的虚拟机。创建开发空间时,可以选择不同的类型,每个类型对应一种特定的开发场景。
每个特定类型的开发空间,都事先激活了完成该类开发任务所必须的Studio扩展(SAP Predefined Extensions),在创建开发空间时可以看到这些扩展列表。
我选择的是SAP Fiori类型的空间,创建成功后,点击超链接进入:
如果是在WebIDE里,开发界面打开后,我们就可以用Create from Template菜单,通过向导来完成Fiori应用的创建。
在BAS里,我们可以换一种方式,通过命令行来创建Fiori应用的骨架。
命令行里键入yo,启动SAP Fiori Project Generator, 选择Fiori Project:
接下来是选择该Fiori应用的运行环境,有CloudFoundry和ABAP两种选择,我们选择前者:
然后是一些常规信息的维护。
命令行向导执行完毕后,就生成了Fiori应用必须的资源文件。做过nodejs开发的朋友,会发现这个步骤和用npm init生成manifest.json文件很像。
我们要指定这个Fiori应用应该消费哪个OData服务。
在Studio上方的命令工具栏里,敲consume,选择Consume SAP Services:
会显示很多Destination列表,每个Destination都是我在CloudFoundry环境的Connectivity菜单里维护的,指向某一个ABAP系统。
我选择ES5系统里暴露出来的GWSAMPLE_BASIC这个OData服务。
改OData同Fiori项目绑定之后,收到成功的提示:
后续的操作,就和我们之前在SAP WebIDE里的开发没有太大差别了。
用Layout Editor打开XML视图,从控件库里找到List控件,拖拽到视图区域上:
点击List控件Entity Set字段旁的绑定图标,给它绑上一个OData模型中的Data Collection:
让这个List显示Business Partners数据:
同理,把List Item的title字段绑定到BusinessPartnerSet节点上的CompanyName字段,Description绑定到BusinessPartnerID字段。
这个Fiori应用功能非常简单,以列表的形式显示Business Partners所在的公司名和ID.
点击Run Configuration, 可以在不部署到SAP云平台CloudFoundry环境的情况下,进行本地测试:
SAP云平台上的Fiori应用,实际上是SAP MTA应用包含的一个HTML5 module,该MTA应用的mta.yaml里定义了Destination服务和Authorization & Trust Management服务的依赖。因此本地运行时,我们也要给该Fiori应用提供这两个服务实例才行。
关于什么是SAP MTA应用,可以参考Jerry之前的文章:SAP云平台里的三叉戟应用。
到CloudFoundry环境新建一个Authorization & Trust Management服务实例,取名app_uaa:
回到BAS,选中项目里的uaa本地资源,会看到右边有个小的绿色插头图标。点击之后,BAS会自动把刚才创建的app_uaa实例取出来。选择后,就可以和项目本地uaa_JerryFioriDemo这个资源进行绑定。
稍后我们将该应用正式部署到SAP云平台CloudFoundry环境时,不需要做这一步,因为部署工具会解析mta.yaml, 自动创建里面定义的依赖服务实例。
成功绑定后,在BAS里收到提示:
同时左边出现一个新的绿色插头图标,代表成功绑定的状态。
同理将项目的Destination服务依赖也绑定到CloudFoundry环境创建的服务实例后,点击Run Module, 就能看到这个Fiori应用的界面了:
正式部署到CloudFoundry的步骤也很简单,执行命令行:
mbt build -p=cf
mbt工具会将该项目打包成.mtar文件:
使用cf deploy命令把这个.mtar文件部署到CloudFoundry去:
从命令行输出中可以发现,cf deploy在部署过程中会自动创建mta.yaml里require区域声明的服务实例。
部署成功后,这些自动创建的服务实例都能在Service Binding区域看到:
点击部署后生成的AppRouter实例,就能获得这个运行在CloudFoundry环境上的Fiori应用的访问链接了。
整个流程跑下来,个人感觉体验和Google的Cloud Shell一样优秀。关于Google的这个云端开发工具介绍,请参考Jerry的文章:介绍一个免费的云开发工具:Cloud Shell.
希望本文能够让大家对SAP Business Application Studio的概貌有个最基本的了解,感谢阅读。
更多阅读
相关推荐
总的来说,SAP Business Application Studio是一个全面的开发工具,为SAP商务应用的开发提供了高效、灵活且高度可定制的环境。通过它的各种特性和集成,开发者能够无缝地创建、测试和部署复杂的业务应用程序,以实现...
2. **应用程序开发**:通过HANA Studio,开发者可以编写用Java或SAP HANA XS(现在称为SAP HANA Extended Application Services, Advanced Model,即XS Advanced)开发的应用程序。这些应用程序可以直接运行在HANA...
SAP自开发涉及在SAP系统内部或外部环境中,利用SAP提供的开发工具和编程语言,如ABAP(Advanced Business Application Programming)等,进行定制化开发。这些开发活动可能包括创建新的功能模块、修改现有功能、集成...
2. **应用程序开发**:通过HANA Studio,开发人员可以构建基于SAP HANA的应用程序,使用ABAP(Advanced Business Application Programming)或Java语言。这包括Web应用程序、XS Engine应用以及利用HANA XS Advanced...
SAP Process Orchestration The Comprehensive Guide, 2nd Edition SAP流程编制综合指南 1 Introduction to SAP Process Orchestration 1.1 Historical Overview and Evolution 1.1.1 SAP Process Integration ...
标题中的“HANA STUDIO ABAP DEVELOPMENT TOOL”是指SAP HANA Studio中的一个特定模块,专门用于ABAP(Advanced Business Application Programming)开发。SAP HANA Studio是SAP HANA平台的一个集成开发环境(IDE)...
3. **SAP批处理技术**:主要用于数据导入、批量操作、接口程序和测试工具,如CATT/eCATT、LSMW(Legacy System Migration Workbench)和BDC(Batch Data Communication)、BAPI(Business Application Programming ...
开发工具如SAP NetWeaver Developer Studio和Eclipse插件提供Java应用的创建和管理。关键组件有: - **Java Application Server**:基于Java EE标准,运行Java应用程序。 - **Web Dynpro**:SAP的富客户端开发框架...
本文将详细介绍如何在Microsoft Visual Studio 2005中使用SAP Connector for Microsoft .NET (NCO),并提供一个有效的解决方案来克服当前版本不支持该工具的问题。通过创建.NET Connector代理并在Visual Studio 2003...
要求获取免费的SAP Business Technology平台试用帐户(如果您还没有):设置SAP Business Application Studio进行开发(如果您从未使用过Business Application Studio):在试用帐户中创建SAP HANA Cloud的实例...
1. **数据访问**:允许.NET应用程序直接读取和写入SAP R/3或ABAP系统中的表、BAPI(Business Application Programming Interface)和其他数据源。 2. **业务逻辑调用**:通过BAPI或RFC(Remote Function Call)调用...
1. **通信协议**:SAP .NET Connector通过RFC(Remote Function Call)协议和BAPI(Business Application Programming Interface)实现.NET应用程序与SAP系统的通信。 2. **对象模型**:NCO提供了一套.NET类库,模拟...
- 这包括但不限于SAP HANA Studio、SAPUI5开发工具、SAP HANA云平台开发工具和SAP Gateway开发工具。 4. **Eclipse中的ABAP开发工具功能:** - **ABAP调试器:** 整合在Eclipse调试框架中,提供ABAP应用的调试...
标题中的"Sap系统开发 NW RFC SDK"指的是SAP NetWeaver Remote Function Call (RFC) Software Development Kit,这是一个用于开发与SAP系统交互的应用程序的重要工具。NW RFC SDK提供了必要的库和接口,允许开发者在...
这个dll文件通常包括一系列的类和方法,如RFC(远程功能调用)客户端,用于执行SAP RFC、BAPI(Business Application Programming Interface)以及SAP的其他服务。 【描述】:“.net链接SAP的dll” .NET链接SAP的...
在SAP GUI中,用户可以编写和运行ABAP(Advanced Business Application Programming)代码,这是一种专为SAP系统设计的编程语言。ABAP是SAP系统的核心,用于构建企业级应用,如报表、业务流程和接口。SAP GUI 770-9...
功能切换节点一个Node.js模块,用于启用或禁用基于Node.js的SAP Business Application Studio功能。描述该模块用于查询是否启用或禁用了SAP Business Application Studio功能切换。 如果您的SAP Business ...
在实际开发中,开发者可以使用Visual Studio或其他.NET IDE,创建一个新项目,引用SAP NCO的DLL,然后编写代码来建立SAP连接,调用RFC、BAPI或处理IDocs。例如,创建一个RFC连接的简单步骤如下: 1. 引入SAP NCO...
3. **rscp4n.dll**:这是R/SCN(Remote Services Call for .NET)的实现,用于.NET应用程序访问SAP系统的BAPI(Business Application Programming Interface)和Web服务。BAPI是SAP系统中预定义的业务函数模块,提供...
5. **开发工具**:SAP提供了一系列开发工具,如SAP Web IDE、Eclipse插件(SAP Development Tools for Eclipse),这些工具集成了Java开发所需的全部功能,包括版本控制、调试、测试等。 6. **学习资源**:...