日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SAP Cloud Application Programming 介绍(2021 更新版)

發(fā)布時間:2023/12/19 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP Cloud Application Programming 介绍(2021 更新版) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這是Jerry 2021年的第 25 篇文章,也是汪子熙公眾號總共第 296 篇原創(chuàng)文章。

最近有朋友給我留言,詢問關(guān)于 SAP Cloud Application Programming(簡稱CAP) 的相關(guān)開發(fā)流程。

早在 SAP 2019 TechEd 上,SAP CTO Juergen Mueller 向 SAP 生態(tài)圈傳遞了一條重要信息:身處云時代大環(huán)境下的 SAP 從業(yè)者,如何選擇最適合自己的 SAP 開發(fā)方式?

Juergen Mueller 給出了下圖所示的決策樹,幫助大家進行技術(shù)選型:

決策樹中展示的主要分支解釋如下:

  • 如果待實現(xiàn)的需求,能夠通過非代碼方式來完成,可以嘗試工作流(Workflow) 或者低代碼解決方案(Low-Code),比如 SAP RAD by Mendix,細(xì)節(jié)可以參考 Jerry 這篇文章:SAP云平臺上的Low Code Development(低代碼開發(fā))解決方案。

  • 如果只能通過編碼實現(xiàn)需求,則可以選擇基于 ABAP 技術(shù)棧的 RAP(Restful ABAP Programming) 編程模型,或者非 ABAP 技術(shù)棧的 Cloud Application Programming 模型。

SAP Cloud Application Programming 模型的準(zhǔn)確定義是什么?

SAP 官網(wǎng)的定義是:SAP Cloud Application Programming 是一套由開發(fā)語言,開發(fā)工具和庫有機集成的框架,提供了一種高效,快捷,全棧式的企業(yè)級服務(wù)和應(yīng)用開發(fā)手段。CAP 包含一套開發(fā)最佳實踐,讓開發(fā)者能夠?qū)W⒂趹?yīng)用內(nèi)具體業(yè)務(wù)邏輯的開發(fā),而無需分心將精力花在重復(fù)的底層基礎(chǔ)設(shè)施功能的實現(xiàn)上去。

Jerry 在 2019 年 SAP TechEd 結(jié)束后,曾經(jīng)寫過一篇文章,通過一個在線書店的例子,介紹了 SAP Cloud Application Programming 編程模型的使用方式:

使用Cloud Application Programming模型開發(fā)OData的一個實際例子

如果大家照著文章里介紹的步驟,自己動手實踐一遍,不難發(fā)現(xiàn),我們絕大部分工作量都花在了思考并設(shè)計在線書店里涉及到的業(yè)務(wù)領(lǐng)域模型(Domain Model),比如書籍,書籍類別,作者,訂單及模型間的相互關(guān)聯(lián)關(guān)系。而這些模型本身的增刪改查和持久化邏輯等更底層的技術(shù)實現(xiàn),全部由 SAP CAP 本身完成,無需應(yīng)用開發(fā)人員操心。SAP CAP 期望通過這種設(shè)計,來提高企業(yè)級應(yīng)用的開發(fā)效率和健壯性。

距離 Jerry 前一篇文章已經(jīng)過去兩年了,最近我抽時間查詢了 SAP 官網(wǎng)關(guān)于 SAP CAP 開發(fā)流程的介紹,發(fā)現(xiàn)其在 2019 年的基礎(chǔ)上,從CAP 提供的開發(fā)工具的使用角度上說,沒有太大的變化,但不少細(xì)節(jié)之處進行了優(yōu)化,使用起來感覺更加順暢。

本文介紹的使用 SAP Cloud Application Programming 模型開發(fā)在線書店的過程,分為下列四個步驟:

  • 創(chuàng)建業(yè)務(wù)模型
  • 將業(yè)務(wù)數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫表
  • 開發(fā) OData 服務(wù),將業(yè)務(wù)數(shù)據(jù)暴露給消費者
  • 開發(fā)前端 UI 頁面,通過 OData 服務(wù),將步驟 2 準(zhǔn)備的業(yè)務(wù)數(shù)據(jù)展示出來
  • 本文使用到的源代碼,在 SAP 官網(wǎng)上能夠下載。

    本文使用基于 nodejs 的 SAP Cloud Application Programming 完成在線書店應(yīng)用的開發(fā),因此需要安裝并配置 nodejs 開發(fā)環(huán)境。

  • 創(chuàng)建業(yè)務(wù)模型
  • 首先使用命令行,安裝 CAP 的 SDK 工具:

    npm i -g @sap/cds-dk

    完成之后敲 cds 命令,確保能看到下列輸出:

    然后創(chuàng)建一個空的 CAP 項目:

    cds init bookshop

    cds init 命令行創(chuàng)建出來的項目,本質(zhì)上還是一個 nodejs 應(yīng)用,包含了 CAP 應(yīng)用的骨架。我們接下來需要進入上圖標(biāo)注了三個序號的文件夾里,進行相應(yīng)的業(yè)務(wù)邏輯開發(fā)。

    • app 文件夾里存放的是 CAP 應(yīng)用的前端 UI 頁面,這些頁面消費該 CAP 應(yīng)用提供的 OData 服務(wù),將業(yè)務(wù)數(shù)據(jù)以 UI 方式展示出來。可以基于任何前端框架實現(xiàn)。

    • db 文件夾里存放的是 CAP 的業(yè)務(wù)模型定義,以及持久化數(shù)據(jù)庫相關(guān)的資源。

    • srv 文件夾里存放的是 OData 服務(wù)定義。這些 OData 服務(wù)負(fù)責(zé)將 db 里定義的業(yè)務(wù)模型承載的業(yè)務(wù)數(shù)據(jù)暴露給消費者,比如被 app 文件夾里開發(fā)的前端應(yīng)用所消費。

    用 Visual Studio Code 打開新建好的 CAP 項目,首先在 db 文件夾的 schema.cds 文件里,創(chuàng)建在線書店業(yè)務(wù)模型。使用關(guān)鍵字 entity 定義一個名為 Books 的模型。

    冒號后面的 managed,包含了幾乎所有業(yè)務(wù)模型都需要定義的 Administrative 信息,即創(chuàng)建時間,創(chuàng)建者,修改時間,修改者。因此 SAP CAP 出于重用目的,將這四個字段包裹在名為 managed 的 aspect 中。應(yīng)用人員定義的業(yè)務(wù)模型,通過 : managed 的語法將其包含入內(nèi)。

    ABAP 開發(fā)人員可以將這種機制,類比成 ABAP DDIC 的 Include Structure.

    采用同樣的語法,定義書籍作者(Authors) 和書籍類別(Genres)模型后,我們下一個需要考慮的問題就是,如何插入業(yè)務(wù)數(shù)據(jù)到這些模型對應(yīng)的數(shù)據(jù)庫表里。

  • 將業(yè)務(wù)數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫表
  • SAP CAP 提供了一種比較簡單的數(shù)據(jù)導(dǎo)入方式,即本地維護一些包含業(yè)務(wù)數(shù)據(jù)的 csv 文件,將這些 csv 文件導(dǎo)入到模型對應(yīng)的數(shù)據(jù)庫表里。無獨有偶,SAP Commerce Cloud (電商云)也支持這種 csv 文件導(dǎo)入的方式,實現(xiàn)數(shù)據(jù)導(dǎo)入功能。這種數(shù)據(jù)導(dǎo)入方式,在 SAP Commerce Cloud 里稱為 ImpEx (Import & Export 的簡寫).

    我在 db 文件夾下 schema.cds 里定義的命名空間為 sap.capire.bookshop, 因此為了使用 csv 文件向這個命名空間里的數(shù)據(jù)庫表導(dǎo)入數(shù)據(jù),需要按照下列命名規(guī)范創(chuàng)建 csv 文件:

    <命名空間>-<模型名稱>.csv

    比如我導(dǎo)入數(shù)據(jù)庫的作者數(shù)據(jù),創(chuàng)建的 csv 文件名為:sap.capire.bookshop-Authors.csv

    書籍?dāng)?shù)據(jù):sap.capire.bookshop-Books.csv

    書籍類別數(shù)據(jù):sap.capire.bookshop-Genres.csv

    csv 文件維護完畢之后,執(zhí)行 cds deploy 命令,將 csv 文件導(dǎo)入到數(shù)據(jù)庫里。命令中 sqlite 冒號后面是我指定的數(shù)據(jù)庫名稱:my.db

    cds deploy --to sqlite:my.db

    數(shù)據(jù)導(dǎo)入成功后,在Visual Studio Code SQLite Explorer里能瀏覽數(shù)據(jù)庫表及其內(nèi)容:

  • 開發(fā) OData 服務(wù),將業(yè)務(wù)數(shù)據(jù)暴露給消費者
  • 接下來,需要將上圖所示的 my.db 數(shù)據(jù)庫中的業(yè)務(wù)數(shù)據(jù),通過 OData 服務(wù),暴露給消費者。

    SAP CAP 采用聲明式(Declarative)的服務(wù)定義方式,將業(yè)務(wù)數(shù)據(jù)通過 OData 暴露出來。

    在 srv 文件夾下新建一個 cat-service.cds 文件,實現(xiàn)一個圖書的目錄瀏覽服務(wù)(Catalog Service).

    上圖 OData 服務(wù)源代碼一些關(guān)鍵點說明:

    • 使用 using 關(guān)鍵字,導(dǎo)入 db 文件夾下 schema.cds 文件中定義的命名空間 sap.capire.bookshop 下包含的業(yè)務(wù)模型。

    • @path 注解,定義了該目錄服務(wù)的 endpoint 為 /browse.

    • @readonly 注解,表明該 OData 服務(wù)只能以只讀的方式,暴露 Books 和 ListOfBooks 數(shù)據(jù)給消費者。

    因為 Books 模型的定義里,沒有直接包含書籍的作者名,而是通過一個名為 author 的 Association,指向?qū)?yīng)的 Authors 模型。因此,上圖第五行,通過auth.name 后面的 as 關(guān)鍵字,將 Association 指向的作者模型的 name 字段,內(nèi)聯(lián)到 OData Books 模型中來。

    執(zhí)行 cds run 命令,啟動開發(fā)好的 CAP 應(yīng)用:

    http://localhost:4004 訪問,就可以測試我們通過以上三個步驟,開發(fā)完成的 OData 服務(wù)了。

    這個由 cds SDK 自動生成的默認(rèn)界面,提供了很多 OData 服務(wù)測試功能。

    比如點擊 Books 超鏈接,能通過下面 url 代表的 OData 服務(wù)調(diào)用,查看到服務(wù)器數(shù)據(jù)庫上所有的書籍?dāng)?shù)據(jù):

    http://localhost:4004/browse/Books

    點擊 Fiori Preview 超鏈接,能夠在一個自動生成的 SAP Fiori Elements 應(yīng)用里,調(diào)用上述 url,將書籍?dāng)?shù)據(jù)展示在 Fiori UI 上。

    Jerry 后續(xù)的文章,會根據(jù)該在線書店的例子,介紹更多 SAP Cloud Application Programming 開發(fā)相關(guān)的內(nèi)容,敬請期待。

    更多閱讀

    • 使用SAP Cloud Application Programming模型開發(fā)OData的一個實際例子

    • 30分鐘用Restful ABAP Programming模型開發(fā)一個支持增刪改查的Fiori應(yīng)用

    • Jerry帶您了解Restful ABAP Programming模型系列之二:Action和Validation的實現(xiàn)

    • Jerry帶您了解Restful ABAP Programming模型系列之三:云端ABAP應(yīng)用調(diào)試

    • SAP云平臺上的Low Code Development(低代碼開發(fā))解決方案

    更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:

    總結(jié)

    以上是生活随笔為你收集整理的SAP Cloud Application Programming 介绍(2021 更新版)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。