SAPUI5:从SAP网关检索文档时出现问题

2020-09-18 23:12发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我在sap网关中实现了GET_STREAM方法。

运行sap网关客户端时,我成功下载了文件。

但是当我尝试从sapui5中执行此操作时,我只会收到一个错误:

发生以下问题:没有数据处理程序

无法读取未定义的属性" body"

这是sapui5中的代码:

 var sServiceUrl11 ="代理/http/服务器:端口/sap/opu/odata/SAP/ZFILEUPLOADDOWNLOAD_SRV/";
 var oModel11 = new sap.ui.model.odata.v2.ODataModel(sServiceUrl11,true);
 var fileName =" Questions.docx";
 var sRead ="/img/FileSet('" + fileName +"')/$ value";

 oModel11.read(sRead,
 {
     成功:函数(数据,结果){
 console.log("成功");
     },
     错误:function(err){
 console.log("错误");
     }
 });
 

有人可以帮忙吗?

谢谢。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我在sap网关中实现了GET_STREAM方法。

运行sap网关客户端时,我成功下载了文件。

但是当我尝试从sapui5中执行此操作时,我只会收到一个错误:

发生以下问题:没有数据处理程序

无法读取未定义的属性" body"

这是sapui5中的代码:

 var sServiceUrl11 ="代理/http/服务器:端口/sap/opu/odata/SAP/ZFILEUPLOADDOWNLOAD_SRV/";
 var oModel11 = new sap.ui.model.odata.v2.ODataModel(sServiceUrl11,true);
 var fileName =" Questions.docx";
 var sRead ="/img/FileSet('" + fileName +"')/$ value";

 oModel11.read(sRead,
 {
     成功:函数(数据,结果){
 console.log("成功");
     },
     错误:function(err){
 console.log("错误");
     }
 });
 

有人可以帮忙吗?

谢谢。

付费偷看设置
发送
6条回答
SAP浪
1楼 · 2020-09-18 23:44.采纳回答

嗨,从网关下载文件的方法不是执行读取操作。

您只需访问URL,就必须在get_stream上设置要下载的文件。

(此外,请检查是否正确构建了模型,可以通过普通的GET请求尝试该模型,以查看其是否有效)

 var w = window.open(isProxy +"/img/sap/opu/odata/sap/Z ....._ SRV/TestSet(" + sTest +")/$ value",'_blank');
 如果(w == null){
 MessageBox.warning(oBundle.getText(" Error.BlockedPopUp")));
 }
 

在get_strem中,您必须放置内容处置文件才能下载文件(据我所记得):

         ls_stream-value = lv_pdf。
         ls_stream-mime_type ='应用程序/pdf'。

         lv_filename = | {sy-datum}-{sy-uzeit} .pdf |。
         lv_filename =转义(val = lv_filename格式= cl_abap_format => e_url)。

         ls_lheader-name ='内容处置'。
         ls_lheader-value = |大纲;  filename =" {lv_filename}" |。
         set_header(is_header = ls_lheader)。

         copy_data_to_ref(导出is_data = ls_stream
                           更改cr_data = er_stream)。
 

希望这会有所帮助,

关于。

木偶小白
2楼-- · 2020-09-18 23:46

是的,它可以在移动设备上运行,可以,我可以下载文件。

槿木_熙
3楼-- · 2020-09-18 23:49

嗨,

首先谢谢你。

您要下载示例中的URL或二进制内容吗?

第二,ui5应用程序必须在移动设备上运行。 window.open是否可以正常工作?

谢谢。

蓋茨
4楼-- · 2020-09-18 23:47

嗨,

我认为贝贝先生的答案是最好的。

还是谢谢你。

Climb_Ma
5楼-- · 2020-09-18 23:37

嗨,

在调用odata之后,您可能将二进制数据(内容文件)保存在变量" data"中:

 oModel11.read(sRead,
 {
     成功:函数(数据,结果){
 console.log("成功");
     },
     错误:function(err){
 console.log("错误");
     }
 }); 

但是,如果需要下载文件,只需调用不带oModel的URL" oModel11.read"即可。 只需调用window.open("代理/http/服务器:端口/sap/opu/odata/SAP/ZFILEUPLOADDOWNLOAD_SRV/FileSet('" + fileName +"')/$ value"," _ blank");


最好的问候


恩里克·卡斯特拉

风早神人
6楼-- · 2020-09-18 23:54

非常感谢!

我在台式机上对其进行了测试,并且可以正常工作。 我也将在移动设备上对其进行测试。

最好的问候。

一周热门 更多>