从MyInbox Workflow应用程序上传上载集合中的文档时遇到问题

2020-09-09 11:50发布

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

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


您好,

我的Fiori收件箱与OData和Workflow有关,还有另一个问题。 我开发了一个OData服务,该服务可以将文档上传到Archivelink存储库。 当我将UserTask用作UI5应用程序时,它的工作原理非常好,甚至可以上传文档。 但是,当我尝试将它们上传到我的Fiori收件箱(作为UI5-Application User Task)时,它不起作用。

当然,我阅读了这篇文章 https://blogs.sap.com/2016/03/29/using-the-up-uploadcollection-to-uploaddownload-archivelink-files-via-gateway/和用于上传的SDK工具包 收集有关我的实施的帮助。

我收到HTTP错误403,这可能导致X-CSRF-Token出现问题。 我不明白为什么会出现问题,因为在UI5 App中它运行完美,快速。

这是我的上传收藏夹视图中的代码:

 uploadUrl ="/img/html5apps/decideorder/sap/opu/odata/sap/ZSKOE_PO_WF_ODATA_SRV/PurchaseOrderSet('4500000157')/ToDokument"
 beforeUploadStarts =" onBeforeUploadStarts" change =" onChange" uploadComplete =" onUploadComplete">
 

出于测试原因,我为标识符设置了一个固定值。

这是我在App.controller.js中的事件:

 onBeforeUploadStarts:函数(oEvent){
 var oCustomerHeaderSlug = new sap.m.UploadCollectionParameter({
 名称:"子弹",
 值:oEvent.getParameter(" fileName")
 });
 oEvent.getParameters()。addHeaderParameter(oCustomerHeaderSlug);
 },
 
 onUploadComplete:函数(oEvent){
 var sUploadedFile = oEvent.getParameter(" files")[0] .fileName;
 var location = oEvent.getParameter(" files")[0] .headers.location;
 var oCollection = oEvent.getSource();
 var collectionPath ="/img/PurchaseOrderSet('4500000157')/ToDokument";
 var oTemplate = this.byId(" item0")。clone();
 oCollection.bindAggregation(" items",{
 路径:collectionPath,
 模板:oTemplate
 });
 },
 onChange:函数(oEvent){
           var oFileUploader = oEvent.getSource();
 oFileUploader.removeAllHeaderParameters();
           var oModel = this.getView()。getModel();
 var oToken = oModel.getSecurityToken();
//x-csrf-token:
 oFileUploader.addHeaderParameter(new sap.m.UploadCollectionParameter({
 名称:" x-csrf-token",
 值:oToken
 }));
 

正如我之前提到的,当通过将UI作为Web应用程序执行在UI中上载文件时,它工作得很好(当然,我必须通过删除"/img/html5apps/decideorder"部分来更改集合中的上载URL以进行测试。

在我的工作流收件箱中,我收到403作为错误消息,并且S4 Hana中的Gateway Error Log(网关错误日志)为空。

您有什么想法吗? 我是错误地传递了令牌还是必须将其放在另一个地方?

先谢谢您

此致

斯蒂芬

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

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


您好,

我的Fiori收件箱与OData和Workflow有关,还有另一个问题。 我开发了一个OData服务,该服务可以将文档上传到Archivelink存储库。 当我将UserTask用作UI5应用程序时,它的工作原理非常好,甚至可以上传文档。 但是,当我尝试将它们上传到我的Fiori收件箱(作为UI5-Application User Task)时,它不起作用。

当然,我阅读了这篇文章 https://blogs.sap.com/2016/03/29/using-the-up-uploadcollection-to-uploaddownload-archivelink-files-via-gateway/和用于上传的SDK工具包 收集有关我的实施的帮助。

我收到HTTP错误403,这可能导致X-CSRF-Token出现问题。 我不明白为什么会出现问题,因为在UI5 App中它运行完美,快速。

这是我的上传收藏夹视图中的代码:

 uploadUrl ="/img/html5apps/decideorder/sap/opu/odata/sap/ZSKOE_PO_WF_ODATA_SRV/PurchaseOrderSet('4500000157')/ToDokument"
 beforeUploadStarts =" onBeforeUploadStarts" change =" onChange" uploadComplete =" onUploadComplete">
 

出于测试原因,我为标识符设置了一个固定值。

这是我在App.controller.js中的事件:

 onBeforeUploadStarts:函数(oEvent){
 var oCustomerHeaderSlug = new sap.m.UploadCollectionParameter({
 名称:"子弹",
 值:oEvent.getParameter(" fileName")
 });
 oEvent.getParameters()。addHeaderParameter(oCustomerHeaderSlug);
 },
 
 onUploadComplete:函数(oEvent){
 var sUploadedFile = oEvent.getParameter(" files")[0] .fileName;
 var location = oEvent.getParameter(" files")[0] .headers.location;
 var oCollection = oEvent.getSource();
 var collectionPath ="/img/PurchaseOrderSet('4500000157')/ToDokument";
 var oTemplate = this.byId(" item0")。clone();
 oCollection.bindAggregation(" items",{
 路径:collectionPath,
 模板:oTemplate
 });
 },
 onChange:函数(oEvent){
           var oFileUploader = oEvent.getSource();
 oFileUploader.removeAllHeaderParameters();
           var oModel = this.getView()。getModel();
 var oToken = oModel.getSecurityToken();
//x-csrf-token:
 oFileUploader.addHeaderParameter(new sap.m.UploadCollectionParameter({
 名称:" x-csrf-token",
 值:oToken
 }));
 

正如我之前提到的,当通过将UI作为Web应用程序执行在UI中上载文件时,它工作得很好(当然,我必须通过删除"/img/html5apps/decideorder"部分来更改集合中的上载URL以进行测试。

在我的工作流收件箱中,我收到403作为错误消息,并且S4 Hana中的Gateway Error Log(网关错误日志)为空。

您有什么想法吗? 我是错误地传递了令牌还是必须将其放在另一个地方?

先谢谢您

此致

斯蒂芬

付费偷看设置
发送
3条回答
SAP小菜
1楼 · 2020-09-09 12:47.采纳回答

您好,Stephan,

Http 403被禁止,这意味着尝试访问OData API的用户不是正确的用户。 在UserTask UI5应用程序中,您是否提及过取决于用户OData API的标头参数,用户名,密码或OAuth 2.0 0r基本身份验证?

如果您说它适用于普通的UI5应用程序,那么您使用哪个用户登录该应用程序? 我的"收件箱"中是否也登录了同一用户?

大简至美
2楼-- · 2020-09-09 12:50

你好Archana,

感谢您的答复。 是的,我对SAP UI5普通应用程序和"我的收件箱"使用相同的S用户。 OData API通过Cloud Connector通过基本身份验证连接到我们的Prem-S4-HANA系统。 这种连接也永远不会有问题。

此致

Stephan

Hello Archana,

问题已解决。 我在manifest.json中激活了Batch(真的不知道为什么停用了它:)),现在可以正常工作了。

问题是,它从Inbox应用程序中的错误模型调用了令牌。

无论如何,谢谢您的帮助!

Stephan

一周热门 更多>