标签: sap-gateway

SOAP Web 服务和 OData 服务有什么区别?

我已经在 java 中构建了不同的 SOAP Web 服务(几年前......),并使用 abap 中的 SAP Gateway 构建了不同的 OData 服务。主要区别(编程语言除外)是我通过 SOAP-webservice 收到 WSDL(可能是 XML),通过 OData,我可以在 xml 或 json 输出之间进行选择。

两者都实现/实现了 REST 范式,但最常见的是实现 OData 服务。我知道任何不同的软件都可以轻松使用 OData,但这两种服务之间的优缺点在哪里?我实在不明白。

rest soap web-services odata sap-gateway

6
推荐指数
1
解决办法
8738
查看次数

$expand 实体上的 SAP 网关 $filter

我看过两篇关于 URL 约定的帖子,但我的问题是针对 OData Web 服务假设的 SAP 网关实现的。尝试$filter与 with 结合使用时,$expand我们收到错误消息:

Left hand expression of memberaccess operation has wrong cardinality
Run Code Online (Sandbox Code Playgroud)

假设我有两个简单的实体:

Foo
 * Key
 - Value

Bar
 * Key
 * Id
 - Value
Run Code Online (Sandbox Code Playgroud)

Foo 与 1:n 关联Bar。以下 URL 按预期工作。

/sap/opu/odata/sap/ZTEST_SRV/Foo?$expand=Bar
Run Code Online (Sandbox Code Playgroud)

就像

/sap/opu/odata/sap/ZTEST_SRV/Foo?$filter=Key gt 10&$expand=Bar
Run Code Online (Sandbox Code Playgroud)

尝试$filter在实体Bar属性上使用时,Id我们收到错误消息。

/sap/opu/odata/sap/ZTEST_SRV/Foo?$filter=Key gt 10 and Bar/Id gt 2&$expand=Bar
Run Code Online (Sandbox Code Playgroud)

是否可以$filter在 SAP 中以这种方式使用 a ?相关文章如下。

ODATA / SAP Gateway:关于同时使用 $filter 和 $expand 进行查询

筛选 OData …

odata sap-gateway

6
推荐指数
1
解决办法
5980
查看次数

sapui5表只显示相同的记录

我创建了一个 Web 服务并尝试使用 SAPUI5 中的 oData 协议绑定数据。

我创建了一个表:

createContent : function(oController) {

      jQuery.sap.require("sap.ui.table.Table");

      //Create table control with properties

      var oTable = new sap.ui.table.Table({
          width : "100%",
          rowHeight : 50,
          title : "Lst of Items",
          selectionMode : sap.ui.table.SelectionMode.None
      });



      oTable.addColumn(new sap.ui.table.Column({
          label : new sap.ui.commons.Label({
          text : "PO Number"
          }),
          template : new sap.ui.commons.TextView({
          text : "{PoNumber}"
          }),
          }
      ));

      oTable.addColumn(new sap.ui.table.Column({
          label : new sap.ui.commons.Label({
          text : "Item"
          }),
          template : new sap.ui.commons.TextView({
          text : "{PoItem}"
          }),
          }
      ));

      //Filter …
Run Code Online (Sandbox Code Playgroud)

odata sapui5 sap-gateway

5
推荐指数
1
解决办法
7710
查看次数

将空值传递给 OData V2 Edm.Time 属性

我有一个变量类型time但有时这个变量没有任何内容。

当它是初始的时,它不应该是"000000",我想要一个没有任何内容的空值(没有零)。让我用代码解释一下我的问题:

IF lwa_hora IS INITIAL.
   CLEAR lwa_hora.
   ls_entity-hora = lwa_hora. " Result: 000000 but I don't want any zero
ELSE.
   ls_entity-hora = lwa_hora. " Result: 000000
ENDIF.
Run Code Online (Sandbox Code Playgroud)

我尝试过CLEAR但没有任何反应。

我需要这个是因为在 JavaScript 前端客户端逻辑中,我需要 OData 属性包含一个假值(例如null或一个空字符串"")。

"000000"但它始终具有不是空字符串的。是否可以在后端做一些事情来“清除”变量?

abap odata sap-gateway

2
推荐指数
1
解决办法
3030
查看次数

SAP Odata服务元数据未在浏览器中完全输出

调用时,我的MPC提供商未完全向浏览器提供元数据。

我正在按以下方式致电服务:

http://SERVER/sap/opu/odata/sap/SERVICE/?$metadata
Run Code Online (Sandbox Code Playgroud)

返回:

    <app:service xmlns:app="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:sap="http://www.sap.com/Protocols/SAPData" xml:lang="en" xml:base="http://SERVER:8000/sap/opu/odata/sap/SERVICE/">
<app:workspace>
<atom:title type="text">Data</atom:title>
<app:collection sap:creatable="false" sap:updatable="false" sap:deletable="false" sap:pageable="false" sap:content-version="1" href="hu_headerSet">
<atom:title type="text">hu_headerSet</atom:title>
<sap:member-title>hu_header</sap:member-title>
</app:collection>
<app:collection sap:creatable="false" sap:updatable="false" sap:deletable="false" sap:pageable="false" sap:content-version="1" href="hu_itemSet">
<atom:title type="text">hu_itemSet</atom:title>
<sap:member-title>hu_item</sap:member-title>
</app:collection>
</app:workspace>
<atom:link rel="self" href="http://SERVER:8000/sap/opu/odata/sap/SERVICE/"/>
<atom:link rel="latest-version" href="http://SERVER:8000/sap/opu/odata/sap/SERVICE/"/>
</app:service>
Run Code Online (Sandbox Code Playgroud)

我期望它返回两个实体集的详细信息,包括实体和关联的属性,这是它应该做的。

我已经调试了MPC,它获取了所有属性,关联和实体,但是在调用它们时不会输出这些属性。我正在尝试生成EDMX来创建新的应用程序,之前已经手动完成过此操作,但是这两个实体集都有40/50字段。

我检查了SU53,并且没有失败的Authorzations,每次调试时都清除了缓存,以确保不是这样,并且已将MPC中的get_entity调用设置为受保护作为测试。

有人有什么想法吗?对于那些更成功的人,这里有一些我已经尝试过的建议的资源:https : //blogs.sap.com/2016/06/15/entityset-of-an-odata-not-appearing-in -元数据/

sap metadata odata sap-gateway

1
推荐指数
1
解决办法
839
查看次数

为什么OData而不是SAP中的BAPI?

无论我们用OData做什么,我们都可以使用BAPI吗?

那么,与BAPI相比,OData的主要内容是什么?

请让我知道你的看法

sap abap bapi odata sap-gateway

0
推荐指数
1
解决办法
1548
查看次数

标签 统计

odata ×6

sap-gateway ×6

abap ×2

sap ×2

bapi ×1

metadata ×1

rest ×1

sapui5 ×1

soap ×1

web-services ×1