SAP ODATA->POSTMAN test

本文介绍了如何使用SAPUI5的ODataModel连接到后端SAP系统,执行数据查询、创建、更新和删除操作。通过浏览器或GATEWAY测试ODataService,以及利用POSTMAN工具进行API测试,包括设置权限、HTTP方法和CSRF令牌。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.准备数据

遇到的问题1:无服务注册
在这里插入图片描述
解决方法:SAPUI5 (34) - OData Model 连接后端 SAP 系统 (上)

2.测试OData Service

在这里插入图片描述
用游览器或者GATEWAY运行。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3,增删改查实现

在这里插入图片描述
1.Query重定义

在这里插入图片描述
在这里插入图片描述

TYPES: BEGIN OF t_vbeln,
             sign   TYPE char1,
             option TYPE char2,
             low    TYPE char10,
             high   TYPE char10,
           END OF t_vbeln.
    DATA:
      ls_filter         TYPE /iwbep/s_mgw_select_option,
      ls_select_options TYPE /iwbep/s_cod_select_option.
    DATA:
      lt_range_vbeln   TYPE TABLE OF t_vbeln.
    FIELD-SYMBOLS:
      <fs_range_vbeln>  TYPE t_vbeln.

    READ TABLE it_filter_select_options
    INTO ls_filter
    WITH KEY property = 'Vbeln'.
    IF sy-subrc = 0.
      LOOP AT ls_filter-select_options INTO ls_select_options.
        APPEND INITIAL LINE TO lt_range_vbeln ASSIGNING <fs_range_vbeln>.
        MOVE-CORRESPONDING ls_select_options TO <fs_range_vbeln>.
        UNASSIGN <fs_range_vbeln>.
      ENDLOOP.
    ENDIF.

    SELECT * FROM zht_sales
    INTO CORRESPONDING FIELDS OF TABLE @et_entityset
    WHERE vbeln IN @lt_range_vbeln.


Gateway测试:

在这里插入图片描述
Postman测试:

在这里插入图片描述

Authorization选择basic权限,填入你的SAP账号密码就可以了
在这里插入图片描述

2.Read重定义

在这里插入图片描述
代码:

 DATA:
      lv_vbeln   TYPE vbeln.
    DATA:
      ls_key_tab TYPE /iwbep/s_mgw_name_value_pair,
      ls_vbeln    TYPE zht_sales.


    READ TABLE it_key_tab
    INTO ls_key_tab
    WITH KEY name = 'Vbeln'.
    IF sy-subrc = 0.
      lv_vbeln = ls_key_tab-value.
    ENDIF.

    lv_vbeln = |{ lv_vbeln ALPHA = IN }|.

    SELECT SINGLE * FROM zht_sales
    INTO er_entity
    WHERE vbeln = lv_vbeln.

Gateway测试

在这里插入图片描述
Postman测试

在这里插入图片描述

Create

   DATA: ls_vbeln TYPE zht_sales.
    io_data_provider->read_entry_data( IMPORTING es_data = er_entity ).

    MOVE-CORRESPONDING er_entity TO ls_vbeln.

    INSERT zht_sales FROM ls_vbeln.t.

Create服务测试过程:

<1>执行GET读取单个实体/sap/opu/odata/sap/ZHT_STRU_SALES_SRV_01/ZsalesSet(Mandt=‘100’,Vbeln=‘4’)
 <2>单击“用作请求”按钮
 <3>更新您的请求属性。
 <4>选择HTTP方法作为POST
 <5>执行/sap/opu/odata/sap/ZHT_STRU_SALES_SRV_01/ZsalesSet

Postman测试过程:

<1>执行GET读取单个实体/sap/opu/odata/sap/ZHT_STRU_SALES_SRV_01/ZsalesSet(Mandt=‘100’,Vbeln=‘4’)

设置权限:SAP前端系统登录账号/密码

设置Headers参数 KEY:X-CSRF-Token VALUE: Fetch
   
之后可以得到Token值:jZgJTrW8FACdCrPRvlMpyg==

在这里插入图片描述

  1. Copy全部的XML Body内容
    在这里插入图片描述
    用Post方式创建数据:

在这里插入图片描述

此步骤可能会遇到问题:CSRF Token Validation Failed

解决方案

结果是成功的:

在这里插入图片描述
我们再用GET方法去获取数据,就可以看到我们刚才创建的这一条数据了

在这里插入图片描述

update

DATA: ls_vbeln TYPE zht_sales.

    io_data_provider->read_entry_data( IMPORTING es_data = er_entity ).
    MOVE-CORRESPONDING er_entity TO ls_vbeln.
    MODIFY zht_sales FROM ls_vbeln.

和Update一样我们需要获取token和XML的BODY

在这里插入图片描述
更高XML中你想要更改的数据,只更新你想要更新的那一条数据,例如:
在这里插入图片描述
运行不会有提示,是空白的返回。

然后我们再去运行GET看有没有更新成功。可以看到该值已经更新成功

在这里插入图片描述

delete

     DATA:lv_vbeln  TYPE vbeln,
         ls_key_tab TYPE LINE OF /iwbep/t_mgw_name_value_pair,
         ls_vbeln TYPE zht_sales.

     READ TABLE it_key_tab with key name = 'Vbeln' INTO ls_key_tab.
     if sy-subrc = 0.
       lv_vbeln = ls_key_tab-value.
     ENDIF.
     lv_vbeln = |{ lv_vbeln ALPHA = IN }|.
     DELETE FROM zht_sales WHERE vbeln = lv_vbeln.

删除我们想要删除一条数据,不需要BODY,只需要token:
在这里插入图片描述
删除成功后我们再去GET查找这条数据:
可以看到无法发现此条数据了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值