首页 > 其他分享 >使用纯 ABAP 开发 SAP UI5 应用(一):abap2UI5 开发环境搭建介绍

使用纯 ABAP 开发 SAP UI5 应用(一):abap2UI5 开发环境搭建介绍

时间:2023-07-01 15:14:29浏览次数:71  
标签:abap2UI5 ABAP 开发 UI5 应用 SAP

我从 SAP 社区博客上了解到一个开源项目,名叫 abap2UI5, 作者是 Oblomov Dev,这是 Github 项目地址:

https://github.com/abap2UI5/abap2UI5

这个项目最吸引 ABAP 开发人员之处在于:

  1. 传统的 ABAP 搞定一切:仅仅依靠最基础的传统 ABAP 编程语言,就可以开发并运行 SAP UI5 应用。不需要学习 JavaScript 和 CDS view 等开发技术。

  2. 通过 abap2UI5 生成的 SAP UI5 应用,运行时不需要 BSP,CDS,BOPF 或者 RAP 这些框架的支持。实际上,abap2UI5 只需要 ABAP 系统 SAP_BASIS 模块的 ICF(Internet Communication Framework) 框架即可运行。

  3. 支持 ABAP On-Premises 系统和云端的 SAP BTP ABAP 编程环境。

  4. 支持所有常见的 ABAP 系统版本,从 Netweaver 7.02 到 ABAP 2305.

  5. 安装方便:使用 abapGit 即可轻松搭建开发环境,将本地开发所需的所有 ABAP 资源,从 Github 同步到本地 ABAP 系统。

实际上,当我首次得知该项目时,脑子里全是问号:为什么?为什么要用 ABAP 开发 SAP UI5 这种 Web 应用?谈到 Web 应用,我们会条件反射地将其同 JavaScript 和 HTML 联系在一起。尽管 ABAP 结合 BSP/WebClient UI/ABAP Webdynpro 这些 SAP 自研的工具和框架,也能胜任 Web 应用开发任务,但是 ABAP 的强项不在于此,而在于后台业务逻辑和服务的开发。

为什么要执意于使用 ABAP 来开发 SAP UI5 呢?

带着这个疑问,我阅读了该项目的文档,了解到了一个 HTML Over the Wire 的概念。原来是我孤陋寡闻了。abap2UI5 只不过是项目作者,贯彻 HTML Over the Wire 理念,做出的一次成功的尝试罢了。

本公众号会按照下列思路,通过一系列文章介绍 abap2UI5:

  1. abap2UI5 开发环境的搭建
  2. abap2UI5 的设计动机和背后的理念:什么是 HTML Over the Wire?
  3. 用 abap2UI5 开发一个 Hello World 级别的 SAP UI5 应用
  4. abap2UI5 的工作原理
  5. 更多 abap2UI5 的高级技巧

本文介绍 abap2UI5 开发环境的搭建。其实说白了很简单——就是 abapGit 的简单使用而已。

按照 abapGit 官网的介绍,将 abapGit 的源代码拷贝下来,在本地 ABAP 系统新建一个 ABAP 报表,然后把代码粘贴进去,激活即可。

https://abapgit.org/

我下载的这个版本,总共十二万行左右的代码:

执行报表,点击 New Online 按钮,将下面这两个代码仓库的代码,同步到正在使用 abapGit 的系统里:

按钮点击之后,会弹出一个对话框,要求我们指定 ABAP 开发包,用于存储同步到 ABAP 系统的 abap2UI5 代码。这里我分别指定的开发包是 $ZABAP2UI5 和 $ZABAP2UI5_DEMO.

代码同步完成后的 abapGit 首页如下图所示:

到 SE80 事务码里能看到成功同步到本地的 ABAP 代码:

下一步我们需要通过 ABAP SICF 事务码,将这些 ABAP 资源提供的功能暴露出来,让它们可以通过 HTTP 协议被消费。

关于 ABAP SICF 事务码的更多介绍,请参阅我之前的文章:

从 ABAP Netweaver 的 SICF 到 SAP Kyma 的 Lambda Function

我们首先创建 SICF handler class,取名 ZCL_ABAP_2_UI5,实现接口 IF_HTTP_EXTENSION 的 HANDLE_REQUEST 方法:

这个 HANDLE_REQUEST 方法的作用是,生成 abap2UI5 的脚手架界面。

然后启动 SICF 事务码,找一个合适的节点,给其创建子节点,随便起个名字,比如命名为 abap_ui5:

将之前创建的 ABAP handler class ZCL_ABAP_2_UI5 维护到该节点的 Handler 字段内。

最后选择 Test Service 启动脚手架应用:

下图就是 abap2UI5 的脚手架应用的首页界面。点击 Demo Section 区域的 Continue 按钮,能看到来自 https://github.com/abap2UI5/abap2UI5-demos 代码仓库的所有例子应用:

玲琅满目的 demo 应用:

随便点开一个,你能相信眼前这个 SAP UI5 应用,真的是纯 ABAP 开发的产物吗?

点击右上角的 Source Code 按钮,就能看到对应的 ABAP 源代码:

如大家所见,这些确确实实是正宗的 ABAP 代码。

如果你想知道这些 ABAP 代码是如何神奇地生成了可以运行的 SAP UI5 应用,敬请关注本公众号后续的系列文章介绍。

后续系列内容安排

  1. abap2UI5 开发环境的搭建(本文)
  2. abap2UI5 的设计动机和背后的理念:什么是 HTML Over the Wire?
  3. 用 abap2UI5 开发一个 Hello World 级别的 SAP UI5 应用
  4. abap2UI5 的工作原理
  5. 更多 abap2UI5 的高级技巧

标签:abap2UI5,ABAP,开发,UI5,应用,SAP
From: https://www.cnblogs.com/sap-jerry/p/17519307.html

相关文章

  • 关于 SAP UI5 应用附件上传的病毒扫描功能 virus scan profile
    SAPUI5是基于HTML5和JavaScript的SAP的前端开发框架,用于构建企业级应用程序。它提供了丰富的用户界面控件,以及可重用、可扩展和可定制的组件。在企业应用场景中,附件上传和下载是非常常见的需求,SAPUI5提供了丰富的UI控件库以满足各种应用需求。在实现附件上传功能时,主......
  • 关于 SAP UI5 的 CrossApplicationNavigation 服务
    从SAPUI5应用启动时观察Chrome开发者工具console面板,看到如下提示的错误消息:sap.ui.comp.navpopover.SemanticObjectController:Service'CrossApplicationNavigation'couldnotbeobtained-SAPUI5CrossApplicationNavigation是一种用于在SAPFioriLaunchpad......
  • 使用 ABAP 正则表达式提高字符串解析的执行效率
    在ABAP(AdvancedBusinessApplicationProgramming)中,正则表达式(RegularExpressions)是一种强大的工具,可用于处理字符串和文本数据。正则表达式可以帮助您执行各种任务,如查找和替换文本、验证输入格式或拆分字符串。本文将介绍在ABAP中使用正则表达式的几种方法。使用CL_ABAP......
  • 什么是 SAP UI5 的 cldr json 文件
    SAPUI5是一个基于HTML5的UI开发框架,它允许开发人员构建功能丰富、易于维护和满足企业需求的应用程序。它是一个集成了各种UI控件、工具和库的强大框架,旨在简化企业级应用程序的开发过程。SAPUI5的一个重要特性是对国际化和本地化的支持,这意味着开发人员可以构建能够适应......
  • SAP UI5 manifest.json 文件的 config 区域
    SAPUI5是一种用于构建企业级Web应用的HTML5用户界面技术。它提供了一套丰富的控件库,并支持MVC(模型-视图-控制器)架构、双向数据绑定等特性。manifest.json是SAPUI5应用的元数据文件,包含了应用的配置信息、依赖项、模型、路由等内容。在manifest.json文件中,config区......
  • SAP ABAP 动态结构实现发送企业微信应用消息
    企业微信官方接口:应用支持推送文本、图片、视频、文件、图文等类型。请求方式:POST(HTTPS)请求地址: https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN 大概思路:1.封装调用企业微信函数SE37:ZWECHAT_SEND_MESSAGE_MSGTYPE 注:   a.  ......
  • SAP UI5 命名空间 com.sap.vocabularies.Common.v1 的作用
    SAPUI5是一种基于JavaScript的用户界面技术,用于构建企业级Web应用程序。它提供了一套丰富的控件库,可以帮助开发者轻松地创建响应式、跨平台的用户界面。命名空间是一种在编程中常见的概念,用于区分不同的代码库或功能模块,以避免命名冲突。com.sap.vocabularies.Common.v1是......
  • 什么是 SAP UI5 应用运行时加载的 messagebundle_en.properties 文件?
    在SAPUI5应用程序中,messagebundle_en.properties文件是一个资源文件,用于存储应用程序的多语言文本和消息。这些消息通常包括用户界面中显示的标签、按钮文字、提示信息、错误消息等。使用资源文件的优势在于它可以轻松地使应用程序支持多种语言,同时保持代码的整洁和可维护性。......
  • SAP UI5 应用里 /sap/ui/thirdparty/datajs.js 的作用
    SAPUI5是一个基于JavaScript的用户界面技术,用于构建企业级应用程序。它是一个成熟的开源框架,由SAP开发,致力于提供高质量、可扩展和易于维护的Web应用程序。SAPUI5应用程序使用一系列技术和库,其中之一就是/sap/ui/thirdparty/datajs.js。在本文中,我们将详细讨论datajs.......
  • SAP UI5 sap.ui.layout 命名空间的作用介绍
    SAPUI5是一种用于构建企业级Web应用程序的开发框架。它提供了丰富的UI控件和工具,使开发人员能够快速构建现代化、可扩展和可定制的应用程序。在SAPUI5中,sap.ui.layout是一个重要的命名空间,用于提供布局和容器相关的控件和功能。下面将详细介绍sap.ui.layout的作用和一些示例。......