问题标签 [sap-gateway]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1920 浏览

android - 从 Android 应用程序使用 SAP NetWeaver 网关服务

我正在 Android 中开发一个使用 SAP NetWeaver 网关提供的 OData 服务的应用程序,我正在使用 Odata4J 库来使用服务。

当我从 Web 浏览器点击此 URL时,它会提示“需要身份验证”对话框,我必须在其中输入我的用户名和密码,然后我可以看到服务文档、架构文档等。

我的问题是:如何使用 Odata4J 通过我的请求传递凭据?成功验证后,我是否会收到任何类型的令牌以验证进一步的请求?

0 投票
2 回答
1024 浏览

angularjs - 从 Breeze 到 SAP Gateway 的元数据查询始终返回 406 Not Acceptable

我在 Angular 1.3 项目中使用 BreezeJS 1.5.1 来尝试查询 SAP 网关服务器,我确信它实现了 OData。正如标题所说,对 $metadata 服务的每个请求都会从服务器返回406 Not Acceptable响应。

我尝试使用几种不同的适配器配置('OData'、'odata'、'WebApiOData')来初始化 Breeze;这可确保 Breeze/$metadata在启动时调用而不是/Metadata,但不能解决问题。

网关服务器必须始终为其元数据调用返回 XML(JSON 元数据在 SAP 上不可用),并且请求的 Accept 标头有问题 ( Accept:application/json;odata.metadata=full)。Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8除了直接从有效的 Chrome ( )调用元数据服务的那些之外,我找不到它将在 Postman 中接受的正确标题组合。

我已经将应用程序指向不同的服务甚至不同的网关实例,所有这些都具有相同的结果。我错过了一个基本的配置吗?

2014 年 10 月 31 日编辑

根据 Ward 在下面的回答,我截获了 dataJS 请求(如http://www.getbreezenow.com/documentation/controlling-ajax的OData Ajax部分中所建议的那样)并替换了 $metadata 调用的 Accept 标头。

当然现在有一个不同的问题,但至少这个问题已经解决了。

0 投票
3 回答
1241 浏览

javascript - SAPUI5 和 OData 服务的动态 URL

我正在使用 sapui5 做示例。我想动态传递 URL 服务并加载 ODATA 服务,但我对 sapui5 真的很陌生,我不知道该怎么做。下面的代码是我试图做的,但它不起作用。非常感谢你的帮助。

// 控制器

// index.html

0 投票
1 回答
181 浏览

angularjs - 在 Breeze 自定义元数据中包含 SAP Gateway 标签

我正在使用 Breeze 1.5.1 构建一个 Angular 1.3.5 应用程序来与 SAP 网关服务器交互。一项要求是通过重用服务器提供的人类可读元数据标签来最大限度地减少重复的 UI 翻译。据我所知,Breeze 对自定义元数据属性的支持应该允许我将这些标签与所有标准实体元数据一起加载,但我正在努力弄清楚如何解决这个问题。

元数据服务提供以下格式的数据:

其中sap:label属性是我要添加到 Breeze 实体类型的文本。这可行吗?Breeze 文档似乎主要集中在从本地文件或已加载的数据加载自定义元数据,而不是在数据加载时包含额外的属性,所以这种方法可能是幼稚的。

解决此问题后,我将研究如何将文本放到页面上,但这是以后的事情。

更新:解决方案

根据下面 Jeremy 的回答,我能够通过初始化函数运行元数据响应,并通过 metadataProperty 的extension属性捕获标签字段。示例(重构前)代码如下:

此实例中的 extension.name 是“label”,它是数组中唯一出现的扩展名。现在剩下的就是将数据放到 UI 上,但我相信这将是微不足道的 :)

0 投票
1 回答
2764 浏览

https - SAP 网关 CSRF 保护仅适用于 HTTPS,而不适用于 HTTP

今天我遇到了(突然)SAP网关停止接受他自己发行的CSRF令牌的问题。

检查网络跟踪,一切正常。客户端使用 GET 方法和 HTTP 标头获取令牌

接收一个,然后使用收到的令牌立即发出 POST 请求,并获得 403 禁止状态,响应正文为“CSRF 令牌无法验证”(或类似)

0 投票
2 回答
9803 浏览

odata - 同时使用 $filter 和 $expand 调用 OData

我一直在尝试调用一个实体,但我应该调用其关联实体的结果。我尝试使用以下 URL 进行操作:

我必须使用过滤器,因为被调用的函数具有这些强制参数。

我是否在 URL 上犯了任何错误或错误不存在?

0 投票
2 回答
1544 浏览

android - SAP Netweaver 网关缺少 CSRF 令牌 Android 应用程序

我正在做一个 Android 应用程序,它在 Java 中使用来自 SAP Gateway 的 OData。此时,我可以从网关检索数据,但是当我想更新或创建某些内容时,会出现“预期状态正常或无内容”的错误......我正在互联网上阅读,我需要在 GET 中检索 CSRF 令牌并将其设置为 post 和 put 操作.... 如何在使用 SAP Gateway 中的 OData 并使用 OData4j 的 android 应用程序中执行此操作?我创建消费者的代码是这样的:

正如你所看到的,我有基本的身份验证,但它错过了 csrf 令牌......

我希望你能帮助我。

非常感谢,

博尔哈。

0 投票
1 回答
1317 浏览

odata - 将 SMP 服务器(在 SAP HANA 云平台移动服务上)与 Netweaver 端点连接

我是移动 iOS 开发人员,在制作概念验证应用程序时需要一个演示环境,该应用程序将使用 OData 服务针对 SAP Mobile Platform 3.0 (SMP) 和 Netweaver Endpoint 运行。我需要针对 SMP Server 3.0 SP05 或 SP06 进行测试,因为我还需要使用离线模式。

我已经在 CAL ( https://cal.sap.com ) 上设置了 SAP HANA 云平台移动服务,配置了我的应用程序,并且可以成功地执行用户注册和对 SMP 的登录。我正在使用 SAP 提供的 Netweaver 演示端点之一,但是当进一步从 SMP 向 Netweaver 端点发出 HTTP 请求时,我遇到了 http 错误。

SMP 使用 HTTPS 协议。

Netweaver 演示端点位于https://sapes1.sapdevcenter.com/sap/opu/odata/IWFND/RMTSAMPLEFLIGHT/

它给了我这样的错误:

Unable to extract request URI: URI must contain a port: https://hcpms-p1941221453trial.hanatrial.ondemand.com/com.sap.flight/

或者

Cannot open tunnel with id account:///p1941221453trial

或者

HTTPS proxying is not supported. Use HTTP instead. HTTPS is not needed because communication is already secured by the tunnel.

有人可以建议端点的正确配置 - 身份验证类型、重写模式、代理类型 - 以使 SMP 与演示端点一起工作吗?

如果无法从 HANA Cloud SMP 连接到此 NW 端点,您能否提出另一种方法来获取带有 SAP 示例 OData 应用程序的演示 NW 端点?非常感谢。

0 投票
1 回答
1740 浏览

rest - 如何使用 REST 服务在 oData 中公开它

我有一个从客户端应用程序调用的 REST 服务。该服务使用 JSON 来管理数据。

我想在客户端和 REST 服务器之间插入 SAP NetWeaver Gateway 以将REST数据公开为oData

REST 服务具有 get 和 put 方法来从/向 db 读取和写入数据。

现在我必须决定开始的方式:

  1. 使用ABAP 代码从/到 REST 服务器转换数据,以两种方式序列化数据(获取 REST 数据并创建 oData 以响应 url 获取 oData 调用 创建 REST 调用以响应 url post oData 调用)
  2. 使用 SMP - SAP 移动平台(Eclipse 插件)编写集成代码(在 javascript 中)以使用 REST 服务读取和写入公开此服务和 oData。http://scn.sap.com/community/developer-center/mobility-platform/blog/2015/04/08/integration-gateway-rest-data-source-overview-of-blogs

第二种解决方案似乎是最好的方法(不需要 ABAP 编程,使用 js 高级语言,parse-libs 来管理 oData 和 json ......)但我不知道是否创建了 SMP 来完成这项工作。

第二种方法的结果是什么?它似乎是一个 zip 文件(类似于战争),我可以将其推送到 SAP 网关以部署集成逻辑。正确的?如何在不每次在 SAP Gateway 上部署 zip 的情况下测试我的代码?

0 投票
1 回答
5697 浏览

data-structures - ABAP oDATA 服务:如何一次调用提供嵌套数据?

我想编写一个自定义的 Fiori,使用 oData 服务从我的 SAP 系统中调用数据。

使用 SEGW 事务,我已经设置了一个服务来返回基于 VBAK 表的平面结构。使用这些知识,我可以为每种对象类型开发一个 EntitySet 并在需要时调用它们。但是,我想将我的数据库调用减少到一个语句。应立即提供所有相关数据。

现在,我问自己:如何在一次调用中提供嵌套数据?可以说,对于 VBAK 中的每个条目,我想要一个嵌套的相关 VBAP 条目数组。

我的问题是:

  • 如何在 DDIC 中定义描述的数据模型?
  • 如何在 SEGW 中设置描述的数据模型?
  • 如何在我的服务实现类中重新实现该方法?

如果我在 ABAP 中对结构进行了编码,它可能看起来像这样:

我只对 ABAP 有一点了解,对 SEGW 的了解就更少了,所以欢迎每一个提示。