OData 使用方法简介四 POST 方法使用

作者:ABAP三叔 约 4 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, 开发, 数据工程
OData 使用方法简介四 POST 方法使用 - 封面图
OData 使用方法简介四 POST 方法使用 - 封面图

前言

在前面文章中介绍的OData服务都是使用GET方法来从SAP获取数据,本文将介绍使用POST方法来调用SAP的OData服务,来创建一个用户。

OData创建

一、创建OData模型

1. 创建一个透明表ZTEST_ODATA,用来存储用户

OData 使用方法简介四 POST 方法使用 - 封面图
OData 使用方法简介四 POST 方法使用 - 封面图

2.创建结构ZSTEST_ODATA用来在OData服务中传输数据及获取返回消息

OData 使用方法简介四 POST 方法使用 - 封面图
OData 使用方法简介四 POST 方法使用 - 封面图

3\. 进入SEGW选中ZTEST_ODATA服务,创建一个新的模型User, 导入属性 ,选择DDIC ,使用前面创建的结构

ZSTEST_ODATA,选择全部字段,并将Name和Phone设置为主键。

OData 使用方法简介四 POST 方法使用 - 封面图
OData 使用方法简介四 POST 方法使用 - 封面图
OData 使用方法简介四 POST 方法使用 - 封面图
OData 使用方法简介四 POST 方法使用 - 封面图

4 . 点击生成按钮,重新生成OData服务

二、业务逻辑代码编写

1.进入OData业务类

OData 使用方法简介四 POST 方法使用 - 封面图
OData 使用方法简介四 POST 方法使用 - 封面图

2.重新定义USERSET_CREATE_ENTITY方法,代码如下。

METHOD userset_create_entity.   DATA ls_data TYPE zcl_ztest_odata_02_mpc=>ts_user. DATA ls_user TYPE ztest_odata. er_entity-msgty = 'E'. io_data_provider->read_entry_data( IMPORTING es_data = ls_data ). SELECT SINGLE * INTO ls_user FROM ztest_odata WHERE name = ls_data-name AND phone = ls_data-phone. IF sy-subrc <> 0. ls_user = CORRESPONDING #( ls_data ). ls_user-ernam = sy-uname. ls_user-erdat = sy-datum. ls_user-erzet = sy-uzeit. INSERT ztest_odata FROM ls_user. IF sy-subrc = 0. er_entity = CORRESPONDING #( ls_user ). er_entity-msgty = 'S'. er_entity-msgtx = '用户创建成功'. ENDIF. ELSE. er_entity-msgtx = '用户已存在'. ENDIF. ENDMETHOD.

OData测试

1.从SEGW点击SAP Gateway Client,进入OData测试网管关

OData 使用方法简介四 POST 方法使用 - 封面图
OData 使用方法简介四 POST 方法使用 - 封面图

2.选择实例集UserSet,选择POST方法,左下角填入请求JSON参数,点击测试后,返回http code 201,数据如右下角

OData 使用方法简介四 POST 方法使用 - 封面图
OData 使用方法简介四 POST 方法使用 - 封面图

SAP透明表中插入一条新的数据

OData 使用方法简介四 POST 方法使用 - 封面图
OData 使用方法简介四 POST 方法使用 - 封面图

3.让返回的数据为JSON格式

添加Http Header参数Accept,值为Application/json

OData 使用方法简介四 POST 方法使用 - 封面图
OData 使用方法简介四 POST 方法使用 - 封面图

4.关于在Postman中测试报错" CSRF token validation failed ".

先使用GET请求,在Header中添加参数" X-CSRF-Token " 值为" Fetch ",在返回的header中,将获得的 "

X-CSRF-Token " 值,替换"Fetch",用来下次做Post请求

OData 使用方法简介四 POST 方法使用 - 封面图
OData 使用方法简介四 POST 方法使用 - 封面图
OData 使用方法简介四 POST 方法使用 - 封面图
OData 使用方法简介四 POST 方法使用 - 封面图
ABAP三叔

关于作者:ABAP三叔

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「OData使用方法简介四POST方法使用.md」整理生成,仅用于内部技术分享与学习交流。