ODATA Master-Detail GatewayService 创建与发布

本文介绍如何使用SAP Gateway Service Builder (SEGW)创建ODATA服务,并详细讲解了从Data Model导入、实体集创建到关联关系设定的全过程。此外,还提供了具体的ABAP代码示例用于实现数据读取及过滤。

开放数据协议(Open Data Protocol,简称OData)是一种描述如何创建和访问Restful服务的OASIS标准。

T-CODE: /IWFND/MAINT_SERVICE - 激活并维护服务
SEGW - SAP Gateway Service Builder 创建ODATA
首先创建GatewayService (SEGW)
在这里插入图片描述
Data Model 导入Entity Types 右击Data Model->import->DDIC structure
在这里插入图片描述
参照的表VBAK 选取了其中几个字段 其中 VBELN作为主键 finifsh
在这里插入图片描述
再根据以上方法创建一个Entity Set
在这里插入图片描述
在这里插入图片描述
为两个Entity Set建立Association 一对多的关系
在这里插入图片描述
两个EntitySet通过VBELN来关联
在这里插入图片描述
激活
在这里插入图片描述
方法实现,右键->重定义继承的方法
在这里插入图片描述
方法:SALESORDERSET_GET_ENTITY

    DATA: LS_KEY LIKE LINE OF IT_KEY_TAB ,
          LV_VALUE TYPE vbak-VBELN .

    CLEAR LS_KEY.
    READ TABLE IT_KEY_TAB INTO LS_KEY WITH KEY NAME = 'Vbeln'.

    LV_VALUE = |{ LS_KEY-VALUE ALPHA = IN WIDTH = 10 }|.

    SELECT SINGLE * INTO CORRESPONDING FIELDS OF ER_ENTITY
      FROM ZVBAK
      WHERE VBELN = LV_VALUE .

方法:SALESORDERSET_GET_ENTITYSET

  DATA: lw_entityset LIKE LINE OF it_filter_select_options,
        lr_netwr     LIKE lw_entityset-select_options,
        LR_SELECT    TYPE /IWBEP/S_COD_SELECT_OPTION.

  DATA: IS_ORDER TYPE /IWBEP/S_MGW_SORTING_ORDER,
        LT_SORTORDER TYPE ABAP_SORTORDER_TAB ,
        LS_SORTORDER TYPE ABAP_SORTORDER .

"过滤
 IF it_filter_select_options[] IS NOT INITIAL.
      CLEAR lw_entityset.
      CLEAR: lr_netwr[].
      LOOP AT it_filter_select_options INTO lw_entityset.
        CASE lw_entityset-property.
          WHEN 'Netwr'.
            lr_netwr = lw_entityset-select_options.
          WHEN 'Vbeln'.
            lr_netwr = lw_entityset-select_options.

        ENDCASE.
      ENDLOOP.
 "查询
   IF lw_entityset-property EQ 'Netwr'.
     SELECT * FROM Zvbak
       INTO CORRESPONDING FIELDS OF TABLE ET_ENTITYSET
       WHERE netwr IN lr_netwr.
    ELSE.
    SELECT * FROM Zvbak
       INTO CORRESPONDING FIELDS OF TABLE ET_ENTITYSET
       WHERE VBELN IN lr_netwr.
   ENDIF.

 ELSE.
     SELECT * FROM Zvbak
      INTO CORRESPONDING FIELDS OF TABLE ET_ENTITYSET
      UP TO 100 ROWS .
 ENDIF.
"排序
  IF IT_ORDER[] IS NOT INITIAL.
    LOOP AT IT_ORDER INTO IS_ORDER.
      LS_SORTORDER-NAME = IS_ORDER-PROPERTY.
      IF LS_SORTORDER-NAME = 'Vbeln'.
        LS_SORTORDER-NAME = 'VBELN'.
      ELSEIF LS_SORTORDER-NAME = 'Netwr'.
        LS_SORTORDER-NAME = 'NETWR'.
      ENDIF.
      IF IS_ORDER-ORDER = 'desc'.
         LS_SORTORDER-DESCENDING = 'X'.
      ELSE.
         LS_SORTORDER-DESCENDING = ''.

      ENDIF.
      APPEND LS_SORTORDER TO LT_SORTORDER .

    ENDLOOP.
    SORT ET_ENTITYSET BY (LT_SORTORDER).

  ENDIF.

方法:SALESORDERITEMSS_GET_ENTITYSET

  DATA: LS_KEY LIKE LINE OF IT_KEY_TAB ,
        LV_VALUE TYPE vbak-VBELN .

  CLEAR LS_KEY.
  READ TABLE IT_KEY_TAB INTO LS_KEY WITH KEY NAME = 'Vbeln'.

  LV_VALUE = |{ LS_KEY-VALUE ALPHA = IN WIDTH = 10 }|.
  SELECT * INTO CORRESPONDING FIELDS OF TABLE ET_ENTITYSET
    FROM ZVBAP
    WHERE VBELN = LV_VALUE .

这就是建好的Gateway Service的名字
在这里插入图片描述
/IWFND/MAINT_SERVICE - 激活并维护服务 ,添加服务找到建好的Gateway Service
在这里插入图片描述
点击添加所选服务到指定系统,就完成发布了
在这里插入图片描述
返回SAP Gateway客户端去测试,200说明发布成功
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gong JX

多谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值