ODATA Gateway Service增,删,改,查(CURD)测试

定义:

建一张用于测试的自检表< ZTEST_CURD_TABLE>,录入一些初始数据

参照这个表建立一个简单的Gateway Service用于测试

编码:

创建好后转到 ABAP Workbench,重定义CRUD,添加相关的代码

ADD:ETPERSONSET_CREATE_ENTITY

  DATA:ls_requst_input_data TYPE ZCL_ZTRAINING_DEMO_mpc=>TS_ETPERSON ,
        ls_table TYPE ZTEST_CURD_TABLE .
  io_data_provider->READ_ENTRY_DATA( importing ES_DATA = ls_requst_input_data ).

  ls_table-ID      = ls_requst_input_data-ID .
  ls_table-name    = ls_requst_input_data-NAME .
  ls_table-PHONE   = ls_requst_input_data-PHONE.
  ls_table-ADDRESS = ls_requst_input_data-ADDRESS .
  INSERT ZTEST_CURD_TABLE FROM ls_table .
  IF sy-SUBRC eq 0 .
     ER_ENTITY = ls_requst_input_data .
  ENDIF.

UPDATE: ETPERSONSET_UPDATE_ENTITY

  DATA: LS_KEY TYPE /IWBEP/S_MGW_NAME_VALUE_PAIR ,
        LV_ID TYPE /IWBEP/S_MGW_NAME_VALUE_PAIR-VALUE,
        ls_requst_input_data TYPE ZCL_ZTRAINING_DEMO_mpc=>TS_ETPERSON ,
        ls_table TYPE ZTEST_CURD_TABLE .

  CLEAR: LS_KEY , ls_table.
  READ TABLE IT_KEY_TAB INTO LS_KEY WITH KEY NAME = 'Id' .
  LV_ID = LS_KEY-VALUE.

  IF LV_ID is  NOT INITIAL.
    io_data_provider->READ_ENTRY_DATA( importing ES_DATA = ls_requst_input_data ).
    UPDATE ZTEST_CURD_TABLE SET ID = ls_requst_input_data-ID
                                NAME = ls_requst_input_data-NAME
                                PHONE = ls_requst_input_data-PHONE
                                ADDRESS = ls_requst_input_data-ADDRESS
                             WHERE ID = LV_ID .
    IF SY-SUBRC EQ 0 .
      ER_ENTITY = ls_requst_input_data .

    ENDIF.
  ENDIF.

READ:ETPERSONSET_GET_ENTITY 

  DATA: LS_KEY TYPE /IWBEP/S_MGW_NAME_VALUE_PAIR ,
        LV_VALUE TYPE /IWBEP/S_MGW_NAME_VALUE_PAIR-VALUE.

  CLEAR LS_KEY .
  READ TABLE IT_KEY_TAB INTO LS_KEY WITH KEY NAME = 'Id' .
  LV_VALUE = LS_KEY-VALUE.

  IF LV_VALUE is  NOT INITIAL.
    SELECT SINGLE * FROM ZTEST_CURD_TABLE
      INTO CORRESPONDING FIELDS OF er_entity
      WHERE ID = LV_VALUE.

  ENDIF.

SEARCH:ETPERSONSET_GET_ENTITYSET

    SELECT *
      INTO CORRESPONDING FIELDS OF TABLE ET_ENTITYSET
      FROM ZTEST_CURD_TABLE .

DELETE:ETPERSONSET_DELETE_ENTITY

  DATA: LS_KEY TYPE /IWBEP/S_MGW_NAME_VALUE_PAIR ,
        LV_ID  TYPE /IWBEP/S_MGW_NAME_VALUE_PAIR-VALUE.
  DATA LV_FLAG TYPE C .
  CLEAR LS_KEY .
  READ TABLE IT_KEY_TAB INTO LS_KEY WITH KEY NAME = 'Id' .
  LV_ID = LS_KEY-VALUE.
  CHECK  LV_ID IS NOT INITIAL .
  DELETE FROM ZTEST_CURD_TABLE WHERE ID = LV_ID .
  IF SY-SUBRC NE 0.
    LV_FLAG =  'X'.
  ENDIF.
  IF LV_FLAG EQ 'X'.
    ROLLBACK WORK .
    MESSAGE 'DELETE DATA FAILE' TYPE 'E' .
  ELSE.
    COMMIT WORK .
  ENDIF.

测试:

T-CODE: /IWFND/MAINT_SERVICE 打开SAP Gateway客户端,找到对应的服务

查询测试:HTTP Method :GET,点击EntitySets,选择创建好的EntitySets,点击执行

返回  status-code为200,测试成功,如果在Request URI后加上显示格式/?$format=json,数据会以JSON的格式显示

读取测试:HTTP Method :GET,更改Request URI ,点击执行

返回  status_code为200,测试成功 

 创建测试:先执行读取操作,然后点击 USE AS Request

复制了Requestrian后改掉生成的主键以及其他信息,修改Request URI ,HTTP Method 改成POST,点击Execute

进入调试的外部断点

返回status_code:201 ,~status_reason : Created

查看底表

更新测试:(005数据为例)更新与创建比较类似,HTTP Method 改成PUT,点击Execute

返回status_code:204 ,~status_reason    No Content

重新读取 ‘005’这条数据,地址已经更改成功,~status_code    200 ,~status_reason    OK

 删除测试: ‘005‘为例 ,HTTP Method 改成DELETE,点击Execute,~status_code    204 ,~status_reason    No Content,删除成功

重新读取 ‘005’这条数据,~status_code    404 ,~status_reason    Not Found,读取失败已删除

 都完成测试后,这个服务就没有问题了

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
SAP NetWeaver GatewaySAP Cloud Platform Backend service 上创建一个 OData 服务,并将其与 RFC destination 关联起来的步骤如下: 1. 创建 RFC destination:使用 SAP GUI 连接到 SAP 系统,并在事务码 SM59 中创建一个 RFC destination。在创建 RFC destination 时,需要指定连接的 SAP 系统、RFC 目标等信息。 2. 创建数据模型:在 SAP NetWeaver GatewaySAP Cloud Platform Backend service 中创建一个数据模型,用于描述你希望从 SAP RFC 中获取的数据。这可以通过使用 SEGW 工具在 SAP NetWeaver Gateway 中完成,或者在 SAP Cloud Platform Backend service 中使用 Web IDE 完成。 3. 添加 RFC 模型:在数据模型中添加一个 RFC 模型,并将其与刚才创建的 RFC destination 关联起来。在 SEGW 工具中,可以使用“添加模型”选项来添加 RFC 模型;在 Web IDE 中,可以通过在“Service Catalog”中搜索并添加“SAP RFC”服务来添加 RFC 模型。 4. 定义 RFC 函数:在 RFC 模型中定义一个 RFC 函数,用于从 SAP 系统中获取数据。在定义 RFC 函数时,需要指定函数名称、数据输入输出参数、返回值等信息。 5. 生成代码:在数据模型中生成 OData 服务的代码。在 SEGW 工具中,可以使用“生成运行时对象”选项来生成代码;在 Web IDE 中,可以使用“生成并部署”选项来生成代码。 6. 发布服务:在 SAP NetWeaver GatewaySAP Cloud Platform Backend service 中发布 OData 服务。在 SEGW 工具中,可以使用“发布服务”选项来发布服务;在 Web IDE 中,可以使用“部署和启动”选项来发布服务。 通过完成以上步骤,你就可以在 SAP NetWeaver GatewaySAP Cloud Platform Backend service 上创建一个 OData 服务,并将其与 RFC destination 关联起来,从而实现通过前端应用程序访问 SAP RFC 的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Gong JX

多谢鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值