SAP Fiori 的附件处理(Attachment handling)
以 SAP CRM Fiori 應用為例。附件處理有兩個層面,即在 Fiori UI 上顯示附件(讀取操作),以及通過 Fiori UI 創建附件(寫入操作)。
Attachment 的讀取
如下圖所示,點擊任意 Attachment 超鏈接,
即自動打開瀏覽器下載窗口。
到該 OData 對應的實現系統,比如 AG3 后臺,事物碼 SEGW,打開 CRM_OPPORTUNITY OData 項目,創建一個名為 Opportunity_Attachments 的 association,指向一個名叫 OpportunityAttachment 的 Dependent Entity.
Opportunity 和 OpportunityAttachment 模型的關系是 0:n, 即一個 Opportunity 允許沒有 attachment,也可以允許有多個 attachment.
Attachment 的模型字段:
我們可以在 AG3 設置斷點,調試 attachment 的讀取請求:
Fiori UI 把要讀取的 attachment 實例信息通過 SAP UI5 代碼傳遞給后臺 ABAP:
最后調用 CL_CRM_OPPORTUNITY_DPC_EXT~GET_STREAM 方法從 AG3/001 系統上讀取附件數據:
Fiori 前臺即 S3.view.xml 使用的是 UploadCollection 控件來顯示附件。
當 Attachment 標簽頁被點擊時,觸發 attachmentsTabSelected 方法:
在該方法里,手動調用 OData API 發起向后臺讀取數據的 OData 請求:
var info = this.getView().byId('info');var headerGuid = info.getModel('json').getData().Guid;var oModel = this.oModel;var sPath = this.sPath;// get the list to set the post url paramvar that = this.getView();oModel.read(sPath, null, ["$expand=Attachments"], true, jQuery.proxy(function(odata, response) {var data = {OpportunityAttachments: []};var length = response.data.Attachments.results.length;Attachment 的創建
點擊 + 圖標,從本地選擇一個文件上傳:
SAP UI5 控件能顯示上傳的進度條:
觸發后臺的 CL_CRM_OPPORTUNITY_DPC_EXT~CREATE_STREAM 方法:
CREATE_STREAM 方法創建流(媒體資源)和相應的實體(媒體鏈接條目)。附加信息可以在Slug頭中提供。創建媒體鏈接條目的編排是首先執行HTTP Post,其中只包含二進制數據。注意,不允許先發布條目本身,然后再發布相關的媒體資源。基于Slug頭,開發人員可以向服務器傳遞額外的信息,例如,服務器可用于存儲二進制文件(媒體資源)和創建實體(媒體鏈接條目)創建的框架。新創建的實體(媒體鏈接條目)在HTTP響應中發送回使用者,可以使用適當的數據更新該響應。更新后的條目將在HTTP Put中發送到SAP NetWeaver Gateway系統,以完成創建媒體資源/媒體鏈接條目的過程。
總結
以上是生活随笔為你收集整理的SAP Fiori 的附件处理(Attachment handling)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转载CSDN博客时的错误
- 下一篇: BP误差反传神经网络