乐趣区

关于javascript: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 param
        var 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 零碎,以实现创立媒体资源 / 媒体链接条目标过程。

退出移动版