SAP CAP(Cloud Application Programming)知识介绍和学习路径

2024-09-02 18:20

本文主要是介绍SAP CAP(Cloud Application Programming)知识介绍和学习路径,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 框架简介

1.1 什么是CAP?

CAP(Cloud Application Programming)是SAP推出的一种现代化开发框架,旨在简化和加速云原生应用程序的开发

CAP框架基于开放标准和技术,如Node.js、Java、OData和SQL,提供了一套工具和库,帮助开发人员快速构建、扩展和运行企业级应用。

1.2 CAP的基础技术框架

CAP框架主要由以下几个部分组成:

  • CDS(Core Data Services):用于定义数据模型和服务的领域特定语言(DSL)。
  • Node.js/Java:CAP支持两种编程语言,开发人员可以选择使用Node.js或Java来编写业务逻辑。
  • OData:在CAP框架下,可以通过CDS语言自动生成OData服务。
  • SQL:CAP支持多种数据库,包括SAPHANA、SQLite等。
    在这里插入图片描述

1.3 CAP的开发模式

CAP的开发模式主要包括以下几个步骤:

  • 定义数据模型:使用CDS语言定义数据模型。
  • 定义服务:使用CDS语言定义服务接口。
  • 实现业务逻辑:使用Node.js或Java实现业务逻辑。
  • 部署和运行:将应用部署到SAP BTP(Business Technology Platform)或其他支持的环境中。

2. 学习资料与学习路径

2.1 官方文档

通过SAP CAP的官方文档 https://cap.cloud.sap/docs/,可以快速学习和了解CAP的开发知识。在官方文档中,提供了从入门到高级的各种教程,涵盖了 CAP 框架的各个方面,如数据建模、服务定义、业务逻辑实现、测试和部署等。
在这里插入图片描述

一个无用的知识:在CAP的官方文档上,我们可以看到cap>ire这样一个log,CAPIRE 这个名字其实来源于意大利语,意思是“理解”。

2.2 学习路径

学习 SAP CAP(Cloud Application Programming)框架可以分为几个阶段,从基础知识到高级应用。

  1. 对于从ABAP开发转为CAP开发的小伙伴,在正式开启CAP领域前,最好先了解SAP BTP的基本概念和服务,同时补齐JAVANode.js的一些基础语法知识。
  2. 在此基础上,学习CDS(Core Data Services)语言的语法和用法,了解如何定义数据模型和服务。
  3. 了解了CDS语言后,可以参照官方文档中的示例,创建一个简单的CAP项目,从而了解CAP项目的基本结构,以及各个文件的作用,同时学习使用CAP的命令行工具CLI来创建和管理项目。
  4. 完成上述学习后,基本上算是CAP入门了。在此基础上,可以进一步探索CAP的高阶功能,例如身份验证、授权、应用的部署等等。

同时, 学习SAPUI5 和 Fiori Elements技术对于 SAP CAP 中的应用程序开发也是非常有帮助。

因为:CAP 框架主要负责后端服务和业务逻辑,而 SAPUI5 和 Fiori Elements 则用于构建前端用户界面。

  1. 使用 CAP 框架定义数据模型和服务,处理业务逻辑和数据持久化。
  2. 使用 SAPUI5 或 Fiori Elements 构建用户界面,消费 CAP 提供的 OData 服务。

2.3 RAP vs. CAP

如果传统的ABAP开发接触过RAP框架的话,其实学习CAP框架还是相对容易的。虽然它们面向的技术栈和应用场景有所不同,但在设计理念和某些技术上有相似之处。

RAP与CAP有以下的相似点:

  • 面向服务的架构:两者都采用面向服务的架构,强调通过服务接口(如 OData)来访问和操作数据。
  • 数据建模:两者都使用领域特定语言(DSL)来定义数据模型和服务接口。CAP 使用 CDS(Core Data Services),而 RAP 使用 ABAP CDS
  • 业务逻辑分层:两者都强调业务逻辑的分层和模块化,支持在不同层次上实现业务逻辑。
  • 开放标准:两者都基于开放标准和协议,如 ODataRESTful API,便于集成和扩展。

若比较一下RAP与CAP的技术栈,可以发现如下的相似点:

  • 开发语言:
    • CAP:主要使用 JavaScript(Node.js)或 Java 来实现业务逻辑。
    • RAP:使用 ABAP 语言来实现业务逻辑。
  • 开发工具:
    • CAP:使用 Visual Studio CodeSAP BAS等发工具,结合 CAP CLI 进行项目管理。
    • RAP:使用 ABAP Development Tools(ADT)SAP BAS 进行开发。
  • 部署环境:
    • CAP:主要部署在 SAP BTP(Business Technology Platform)上,支持多种云环境。
    • RAP:主要部署在 SAP S/4HANA 系统中,适用于内部部署和云部署。

下面用一个小例子对比了RAP 和 CAP的相似性和不同点:

2.3.1 RAP

ABAP CDS 数据模型:

@EndUserText.label: 'Books'
@AbapCatalog.enhancementCategory: #NOT_EXTENSIBLE
@AccessControl.authorizationCheck: #NOT_REQUIRED
@Metadata.allowExtensions: true
define root view entity ZI_Books
{key ID      : abap.int4;title       : abap.string(100);author      : abap.string(100);stock       : abap.int4;
}

服务定义:

@EndUserText.label: 'Catalog Service'
define service ZC_CatalogService
{expose ZI_Books as Books;
}

业务逻辑(ABAP 类):

CLASS zcl_catalog_service DEFINITIONPUBLICFINALCREATE PUBLIC.PUBLIC SECTION.INTERFACES: if_rap_query_provider,if_rap_modify_provider.PROTECTED SECTION.PRIVATE SECTION.
ENDCLASS.CLASS zcl_catalog_service IMPLEMENTATION.METHOD if_rap_query_provider~select." Implement query logic hereENDMETHOD.METHOD if_rap_modify_provider~create." Implement create logic hereENDMETHOD.ENDCLASS.

2.3.2 CAP

CDS 数据模型(schema.cds):

namespace my.bookshop;entity Books {key ID : Integer;title  : String;author : String;stock  : Integer;
}

服务定义(service.cds):

using { my.bookshop as my } from './schema';service CatalogService {entity Books as projection on my.Books;
}

业务逻辑(catalog-service.js):

const cds = require('@sap/cds');module.exports = cds.service.impl(async function() {const { Books } = this.entities;this.after('READ', 'Books', each => {if (each.stock > 111) {each.title += ' -- 11% discount!';}});this.on('CREATE', 'Books', async req => {const { ID, title, author, stock } = req.data;if (stock < 0) {req.reject(400, 'Stock cannot be negative');}await INSERT.into(Books).entries({ ID, title, author, stock });});
});

3. 小结

本文介绍了SAP CAP框架的基础知识,并结合ABAP技术栈的特点,给出了CAP建议的学习路径。

这篇关于SAP CAP(Cloud Application Programming)知识介绍和学习路径的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130715

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

hdu2544(单源最短路径)

模板题: //题意:求1到n的最短路径,模板题#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#i

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始