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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SAP Fiori Elements 公开课第三单元学习笔记 - OData 和注解深入讲解

發布時間:2023/12/19 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP Fiori Elements 公开课第三单元学习笔记 - OData 和注解深入讲解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

課程地址

很多 SAP 從業者反映,open SAP 上的視頻,因為網絡原因無法訪問,所以我會陸續在我的個人微 信 號“汪子熙”上面,把這些視頻配上中文字幕并發布出來,敬請關注。

本單元的話題是 SAP OData 和注解的深入講解。

下面是本單元視頻講解的中文字幕,均由 Jerry 人工翻譯而成。

====

歡迎大家來到 Open SAP Fiori Elements 公開課第三單元。本單元介紹 OData 和注解

我是 Stefan Engelhardt, 是 SAP Fiori Elements 的開發架構師

在第二單元,Marcel 已經簡單介紹了 OData. 每個 Fiori Elements 應用都需要一個 OData 服務

Fiori Elements 對 OData 服務的后臺技術棧沒有特殊要求,因為 OData 協議本身就是對后臺實現細節的抽象

現在我們將深入介紹 OData 服務的核心概念。從數據模型的元描述開始

每個 OData 服務都有其數據模型的元描述信息。屏幕右邊是一個例子

我們通常簡稱為 OData 元數據。在 OData url 后面加上 $metadata 即可查看其元數據

屏幕左邊底部的超鏈接是 該 OData 元數據的完整 url

元數據定義了業務模型及其屬性

下圖右邊是一個 OData V4 的例子,定義了一個 Person 模型

包含用戶名,FirstName 等字段

元數據中屬性也具有進一步的定義

這些進一步的定義包含屬性的數據類型,比如 Edm.String, 是否允許存儲 null 值,字段最大長度等

描述實體與其他實體關系的字段被稱為導航字段

模型的導航字段指明了模型和其導航目標模型的基數關系,即"一對一"還是"一對多"

例如屏幕中名為 Trips 的導航屬性,指向的目標模型 Trip,類型是 Collection, 說明 Person 和 Trip 兩個模型是一對多的關系

此外,元數據還可以包含復雜類型,actions 和 singleton 等等的定義

Marcel 在上一個單元中已經介紹過,OData 支持增刪改查操作

讓我們來看一些例子

這里我們能看到對一個 OData 服務發起的 HTTP 請求和響應

第一個場景是讀取所有的 People. People 的類型是 Person, 定義在元數據里

HTTP 響應包含對應的數據集。結果列表里的第一條記錄是 Russell Whyte

我們還可以通過指定 key, 來查詢某條特定的 Person 記錄

把鍵值 russellwhyte 添加到花括號里,在響應中您可以看到, 該請求只返回了一條對應的數據

讓我們再來看看一些更復雜的查詢

使用 $top,只返回前兩條記錄。使用 $select, 只讀取 FirstName 和 LastName 字段

對結果集再次過濾,條件為至少擁有一條 Trip 記錄,且費用超過3000

如大家看到的, 我們可以非常靈活地構造復雜查詢語句

現在展示如何創建一條 Person 記錄

使用 HTTP POST 請求,在請求正文中維護 Person 數據

響應返回 HTTP 201 狀態碼,表明數據創建成功

為提高 Fiori 用戶體驗,SAP 定義了一種標準化的支持文檔 Draft 版本的處理機制

有了 Draft 機制,用戶對文檔的編輯可以隨時中斷并隨時繼續

只有當用戶完成編輯之后,文檔數據才會存儲到對應的數據庫表里

在 SAP Fiori Elements 應用里,每當用戶在編輯模式下添加或者更改信息時,Draft 版本的數據都會自動被保存

這種自動保存的請求響應,可能會包含一些提示消息,比如 SalesArea 的 sold-to party 沒有維護

當 sold-to party 數據發生變化時,HTTP 響應包含了該 party 所有數據,以便顯示在 UI 上

比如地址和聯系人信息。Draft 機制使應用具備動態交互的特性

注意,Draft 機制應該通過框架提供開箱即用的支持

如果在應用程序層面重新實現整套 Draft 處理機制,工作量相當巨大

上一單元 Marcel 也介紹過 OData 注解。這些注解從行為和消費方式兩方面,對模型提供更多描述信息

現在我將解釋 OData 注解的工作原理,并舉例說明

注解是 OData 額外的元數據,格式為 XML

注解定義于 OData 和 SAP 維護的詞匯表中

注解都是一些抽象的定義,因此較穩定,不會頻繁變動,能夠被包括 SAP UI5 在內的消費端解析

SAP Fiori Elements 解析注解并生成對應的 UI 頁面

看一個具體的例子:Travel App 里的 Total Price 字段

在 OData Measures 詞匯表里,存在一個 ISOCurrency 注解

OData 元數據里的 TotalPrice 類型被其注解,指向目標字段 CurrencyCode

因而框架代碼能夠理解,TotalPrice 是一個貨幣金額,而 CurrencyCode 字段包含了貨幣單位

于是 Fiori Elements 在金額字段的右邊顯示貨幣單位

該注解還用于根據貨幣單位顯示對應的小數,并保證在表格中讓金額的顯示也能正確對齊

注解當然還能夠定義更復雜的 UI 元素

例如,這些 UI 可以是通過 UI.LineItem 定義的表格

通過 UI.FieldGroup 定義的 form, 通過 UI.Chart 定義的圖表等等

此外,注解還可以從行為方面來對應用程序進行描述

一個例子是在應用程序中提供增刪改查等功能

比如通過注解,可以指定 Travel 模型可以被編輯,于是 Fiori Elements 在 UI 上繪制 Edit 按鈕

工具欄其他按鈕的顯示或隱藏邏輯也以此類推

另一個場景是所謂 Side Effect 的定義

例如,當表格行項目級別的產品單價發生變化時,UI 需要重新從后臺讀取最新的訂單抬頭級別的總價信息

SAP 系統后臺可以提供基于 ABAP CDS 或者 CAP CDS 的注解

或者也可以使用本地文件定義的注解。對于 UI 來說,它不關心注解來自后臺服務器或是本地文件

CDS View 中的注解被后臺服務器翻譯成 XML 格式的注解

后者被 Fiori Elements 框架解析

XML 格式的注解可以被任何類型的后臺服務器使用

這些后臺服務器可以是 SAP 傳統的 ABAP 編程模型,SAP BW 和非 SAP 服務器。下圖右邊是 ABAP CDS 注解的一個例子

您平時對于開發工具的偏好,可能會影響您對注解類型的選擇

在 SAP Fiori Tools 中,其提供的向導式創建步驟,能幫助我們創建正確的注解

XML 和 CAP CDS 注解都能被 SAP Fiori Tools 支持

如果您使用 ABAP Development Tool, 可以直接在 ABAP CDS 中維護注解

生命周期管理和功能可用性同樣會影響注解類型的選取

UI 項目本地文件提供的注解,其生命周期同應用程序一致。CDS 注解的生命周期同 OData 服務實現一致

如果我們是在一個比較低版本的 ABAP 服務器上開發,某些注解可能無法被支持。如果有疑問,請查詢文檔

讓我們總結一下本單元的內容

我們介紹了 OData 概念的核心部分,OData 元數據,OData 請求,以及 Draft 機制

我們也學習了什么是 OData 注解,以及它是如何影響 Fiori Elements 應用的

現在大家可以期待下一單元的內容了。屆時我們將介紹如何搭建 Fiori Elements 應用的開發環境。感謝收看本視頻,下期再見

更多Jerry的原創文章,盡在:“汪子熙”:

總結

以上是生活随笔為你收集整理的SAP Fiori Elements 公开课第三单元学习笔记 - OData 和注解深入讲解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。