前言
在前面文章中介绍的OData服务都是使用GET方法来从SAP获取数据,本文将介绍使用POST方法来调用SAP的OData服务,来创建一个用户。
OData创建
3\. 进入SEGW选中ZTEST_ODATA服务,创建一个新的模型User, 导入属性 ,选择DDIC ,使用前面创建的结构
ZSTEST_ODATA,选择全部字段,并将Name和Phone设置为主键。
4 . 点击生成按钮,重新生成OData服务
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测试
2.选择实例集UserSet,选择POST方法,左下角填入请求JSON参数,点击测试后,返回http code 201,数据如右下角
SAP透明表中插入一条新的数据
添加Http Header参数Accept,值为Application/json
4.关于在Postman中测试报错" CSRF token validation failed ".
先使用GET请求,在Header中添加参数" X-CSRF-Token " 值为" Fetch ",在返回的header中,将获得的 "
X-CSRF-Token " 值,替换"Fetch",用来下次做Post请求