SAP Cloud Platform文档服务–从Fiori应用程序上传文件

2020-09-03 09:59发布

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

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


嗨,

我已关注此博客 SAP Cloud Platform文档服务–从Fiori应用程序上传文件 并开发了Java Web服务和SAP UI5应用程序。

该Web服务已成功部署到我的试用帐户中。 邮递员的测试也已完成,我得到的输出是文件已成功上传。

如博客中所述,目的地也已按以下方式配置。

但是,当我尝试从UI5应用程序调用Web服务时,出现了错误。

这就是我开发应用程序的方式。

controller.js文件:

 sap.ui.define([
 " sap/ui/core/mvc/Controller"
 ],函数(控制器){
 "使用严格";
 return Controller.extend(" bri.SampleUploader.controller.View1",{
 onInit:函数(){
 },
 sendFiletoCloud:函数(文件夹名,文件名,文件){
 jQuery.ajax({
 网址:"/img/webservice/docupld",
 输入:" POST",
 数据:JSON.stringify({
 folderName:folderName,
 fileName:fileName,
 文件:文件
 }),
 dataType:" json",
 contentType:" application/json",
 成功:功能(数据){
 console.log(data);
 console.log("文件成功上传");
 },
 错误:功能(e){
 console.log(e);
 console.log("上传文件时出错");
 }
 });
 },
 onHandleUploadPress:函数(oEvent){
 var oFileUpload = this.getView()。byId(" fileUploader");
 var domRef = oFileUpload.getFocusDomRef();
 var file = domRef.files [0];
 var that = this;
//获取文件名并输入
 this.fileName = file.name;
 this.fileType = file.type;
 this.folderName =" NNDO";
 var reader = new FileReader();
 reader.onload =函数(e){
 var content = e.currentTarget.result.replace(" data:" + file.type +"; base64,","");
//调用方法以对Web服务进行ajax调用,
 that.sendFiletoCloud(that.folderName,that.fileName,content);
 };
 reader.readAsDataURL(file);
 },
 });
 });
 

neo-app.json文件的配置如下所示:

 {
 " welcomeFile":"/webapp/index.html",
   "路线":[
 ........
       {
 " path":"/img/documentservice",
 "目标":{
 " name":" documentservice",
 " type":"目的地",
 " entryPath":"/img/documentservice"
 },
 " description":"调用后端Java服务"
 }],
 " sendWelcomeFileRedirect":是
 }
 

控制台输出为

  1. 您究竟如何从UI5应用程序中使用Java Web服务?
  2. 我们是否必须在manifest或component.js文件中指定目标路径?
  3. 我们如何查看已在存储库中上传的文件?

预先感谢

尼基拉·乔治·莫雷拉(Nikhila George Moreira)

(37.9 kB)

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

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


嗨,

我已关注此博客 SAP Cloud Platform文档服务–从Fiori应用程序上传文件 并开发了Java Web服务和SAP UI5应用程序。

该Web服务已成功部署到我的试用帐户中。 邮递员的测试也已完成,我得到的输出是文件已成功上传。

如博客中所述,目的地也已按以下方式配置。

但是,当我尝试从UI5应用程序调用Web服务时,出现了错误。

这就是我开发应用程序的方式。

controller.js文件:

 sap.ui.define([
 " sap/ui/core/mvc/Controller"
 ],函数(控制器){
 "使用严格";
 return Controller.extend(" bri.SampleUploader.controller.View1",{
 onInit:函数(){
 },
 sendFiletoCloud:函数(文件夹名,文件名,文件){
 jQuery.ajax({
 网址:"/img/webservice/docupld",
 输入:" POST",
 数据:JSON.stringify({
 folderName:folderName,
 fileName:fileName,
 文件:文件
 }),
 dataType:" json",
 contentType:" application/json",
 成功:功能(数据){
 console.log(data);
 console.log("文件成功上传");
 },
 错误:功能(e){
 console.log(e);
 console.log("上传文件时出错");
 }
 });
 },
 onHandleUploadPress:函数(oEvent){
 var oFileUpload = this.getView()。byId(" fileUploader");
 var domRef = oFileUpload.getFocusDomRef();
 var file = domRef.files [0];
 var that = this;
//获取文件名并输入
 this.fileName = file.name;
 this.fileType = file.type;
 this.folderName =" NNDO";
 var reader = new FileReader();
 reader.onload =函数(e){
 var content = e.currentTarget.result.replace(" data:" + file.type +"; base64,","");
//调用方法以对Web服务进行ajax调用,
 that.sendFiletoCloud(that.folderName,that.fileName,content);
 };
 reader.readAsDataURL(file);
 },
 });
 });
 

neo-app.json文件的配置如下所示:

 {
 " welcomeFile":"/webapp/index.html",
   "路线":[
 ........
       {
 " path":"/img/documentservice",
 "目标":{
 " name":" documentservice",
 " type":"目的地",
 " entryPath":"/img/documentservice"
 },
 " description":"调用后端Java服务"
 }],
 " sendWelcomeFileRedirect":是
 }
 

控制台输出为

  1. 您究竟如何从UI5应用程序中使用Java Web服务?
  2. 我们是否必须在manifest或component.js文件中指定目标路径?
  3. 我们如何查看已在存储库中上传的文件?

预先感谢

尼基拉·乔治·莫雷拉(Nikhila George Moreira)

(37.9 kB)
付费偷看设置
发送
1条回答
打个大熊猫
1楼 · 2020-09-03 10:28.采纳回答

嗨尼基拉,
我推荐给

1。 从您提供的代码段中检查您正在调用的服务的路径,对我来说似乎是不正确的。

概念是,让我们想象一下您的上传服务可从以下URL获得: nofollow" hraf=" http://my-server.com/aaa/bbb/upload" target =" _blank"> http://my-server.com/aaa/bbb/upload
< br>要调用此服务,您必须包含以下neo-app.json定义:

"路径":"/img/myservices",->您定义并用于调用服务的前缀
 "目标":{
   " name":" myservices",->目标名称
   " type":"目的地",
   " entryPath":"/img/aaa/bbb"->实际服务位置的前缀
 } 

在此示例中,在目标定义中,仅基本路径 http://my-server。 com 已定义。

如果您想向用户隐藏服务的相对路径,也可以在neo-app.json中定义:

"路径":"/img/myservices",
 "目标":{
   " name":" myservices",
   " type":"目的地",
   " entryPath":"/"
 } 

在目标定义中,URL为 http://my-server .com/aaa/bbb

然后在您的控制器中,无论您选择哪个选项,都可以通过以下方式调用上传服务

 jQuery.ajax({
   网址:"/img/myservices/upload",
   输入:" POST",
   ... 


基于此,如果您的服务位于
https://webservice-youraccount.hanatrial.ondemand.com/webservice/docupld

然后您需要在neo中定义 -app.json:

"路径":"/img/documentservices",
 "目标":{
   " name":" documentservices",
   " type":"目的地",
   " entryPath":"/"
 } 

目标定义与您已经完成的目标类似。

然后在您的控制器中:

 jQuery.ajax({
   网址:"/img/documentservices/docupld",
   输入:" POST",
   ... 


这些仅是示例,您可以适应所需的值/服务的正确路径。

2。 尝试将应用程序至少一次部署到SAP Cloud Platform。 然后检查您创建的目的地是否已映射到驾驶舱中的应用程序(通常应该自动完成此操作,因为您在neo-app.json中输入了相同的名称)。

一周热门 更多>