如何在 SAP BTP 上创建 Module 之间具有依赖关系的 SAP MTA 应用

简介: 如何在 SAP BTP 上创建 Module 之间具有依赖关系的 SAP MTA 应用

写作背景

本人的知识星球有个朋友提问:


我的 sapui5 项目是一个 MTA 工程,MTA 工程中包含了一个前端的 sap ui5 的 freestyle 工程和一个后端的Spring Java工程。画面输入的数据,首先传递给后端的SpringJava工程,然后经由SpringJava工程再传递给S/4Hana的odata。请问我该怎么创建这个工程,和做哪些配置能实现这样的数据传递。


实现思路

(1) 通过 Java Spring 实现一个 Restful API

(2) SAP UI5 Module 通过 AJAX 调用 Restful API,将界面上维护的数据传递给 Java 层

(3) Java 层再调用 S/4HANA 的 OData API,将数据写到 S/4HANA 系统中


关于步骤 (3),笔者很多文章都做过介绍,这些文章罗列在本文尾部。本文余下部分重点讲解 (1) 和 (2).


当在 MTA 中组合 Java 和 SAP UI5 时,您需要确保 Java RESTful API 与 SAP UI5 之间的通信是可行的。下面是一些步骤来实现 Java RESTful API 和 SAP UI5 之间的通信:


步骤1:编写 Java RESTful API

在 Java 模块中,可以使用 Spring 框架编写 RESTful API。可以使用 Spring Boot 来快速创建 RESTful API。在 Java 模块中,需要编写代码来响应 HTTP 请求,并返回 JSON 数据。


例如,以下是一个简单的示例代码,可以在 Spring Boot 中创建 RESTful API:


@RestController
public class MyRestController {
    @RequestMapping("/api/data")
    public String getData() {
        return "{\"data\":\"Hello World!\"}";
    }
}



步骤2:在 SAP UI5 中消费 Java RESTful API

在 SAP UI5 模块中,可以使用 AJAX 技术从 Java RESTful API 中获取数据。可以使用 jQuery AJAX 或 SAP UI5 自己的 AJAX 库。


例如,以下是一个使用 jQuery AJAX 从 Java RESTful API 中获取数据的示例代码:


$.ajax({
    url: "/api/data",
    type: "GET",
    success: function(data) {
        console.log(data);
    },
    error: function(xhr, status, error) {
        console.error(error);
    }
});



在上面的代码中,我们使用 jQuery 的 $.ajax() 方法从 “/api/data” URL 中获取数据,并在成功时将数据打印到控制台上。


详细步骤可以参考笔者这篇教程:


SAP UI5 应用开发教程之四十五 - 如何在 SAP UI5 应用里使用 jQuery 和原生的 DOM API

步骤3:运行 MTA 应用程序

在 MTA.yaml 文件中,需要定义应用程序的拓扑结构和每个模块的属性和依赖关系。例如:

ID: my-mta
_schema-version: '3.1'
version: 1.0.0
modules:
  - name: my-java-module
    type: java
    path: java-module
    requires:
      - name: my-db-module
  - name: my-ui5-module
    type: html5
    path: ui5-module
    parameters:
      disk-quota: 256M
      memory: 512M
    requires:
      - name: my-java-module
resources:
  - name: my-db-module
    type: hdb
    path: db-module


在上面的 MTA.yaml 文件中,我们定义了两个模块,一个是名为 my-java-module 的 Java 模块,另一个是名为 my-ui5-module 的 SAP UI5 模块。SAP UI5 模块需要 my-java-module 作为依赖项,这样运行时 SAP UI5 模块就能消费同一个 MTA 应用里 Java module 的服务了。


步骤4:部署和运行 MTA 应用程序

在 SAP BTP 上,可以使用 Cloud Foundry CLI 来部署和运行 MTA 应用程序。例如,以下命令可以用于部署 MTA 应用程序:


cf deploy mta_archive_file -f mta_development.yaml


其中,“mta_archive_file” 是 MTA 应用程序的归档。



相关文章
|
21小时前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
25 0
|
21小时前
|
XML 存储 数据格式
SAP UI5 控件 customData 属性的应用介绍
SAP UI5 控件 customData 属性的应用介绍
36 0
|
21小时前
|
Web App开发 前端开发 JavaScript
乱花渐欲迷人眼 - 让 SAP UI5 应用的日志输出不再素面朝天
乱花渐欲迷人眼 - 让 SAP UI5 应用的日志输出不再素面朝天
51 0
|
21小时前
SAP UI5 应用如何实现类似百度首页一样的访问方式试读版
SAP UI5 应用如何实现类似百度首页一样的访问方式试读版
37 0
|
21小时前
让 SAP UI5 应用的日志打印变得五彩缤纷试读版
让 SAP UI5 应用的日志打印变得五彩缤纷试读版
99 2
|
21小时前
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
关于 SAP ABAP OData 服务如何实现 Deep Insert 场景 - SAP 应用的标准行为试读版
17 1
|
21小时前
SAP Fiori Elements 应用里图片字段(Image)的显示原理介绍试读版
SAP Fiori Elements 应用里图片字段(Image)的显示原理介绍试读版
19 0
|
21小时前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
33 0
|
21小时前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
18 0
|
21小时前
|
前端开发 JavaScript API
SAP UI5 sap.ui.require.toUrl 的作用介绍
SAP UI5 sap.ui.require.toUrl 的作用介绍
35 0