S4不通过PO直接调用外围系统

需要有访问权限(可咨询BASIS)

适用前提:第三方提供的接口形式在PO中配置困难,正常通过PO调用

实例:SAP集成 x-www-form-urlencoded格式的HTTP接口:

DATA: lo_client TYPE REF TO if_http_client.
DATA: lv_url TYPE string VALUE 'https://external.api/service'.
DATA: lv_body TYPE string VALUE 'key1=value1&key2=value2'.

* Create HTTP client
CALL METHOD cl_http_client=>create_by_url
  EXPORTING
    url                = lv_url
  IMPORTING
    client             = lo_client
  EXCEPTIONS
    argument_not_found = 1
    plugin_not_active  = 2
    internal_error     = 3
    OTHERS             = 4.

IF sy-subrc <> 0.
  " Handle Exception
ENDIF.

* Set Request Method
lo_client->request->set_method( 'POST' ).

* Set Header Fields
lo_client->request->set_header_field( name = 'Content-Type' value = 'application/x-www-form-urlencoded').

* 获取鉴权

lo_client->request->set_header_field(
  EXPORTING
    name  =  'Authorization'                " Name of the header field
    value  =  lv_token                           " HTTP header field value
). 

* Set Request Body
lo_client->request->set_cdata( lv_body ).

* Send Request
lo_client->send( ).

* Receive Response
lo_client->receive( ).


DATA(lv_str) = lo_client->response->get_cdata( ).  "返回信息

* Free resources
lo_client->close( ).

Json解析时的变量格式(ABAP默认为大写)

例:保留驼峰格式
      CALL METHOD /ui2/cl_json=>serialize
        EXPORTING
          data                   = lt_datajson
          pretty_name            = /ui2/cl_json=>pretty_mode-camel_case  " 保留驼峰命名
        RECEIVING
          r_json                 = lv_datajson. 



格式参数(pretty_mode):
                  none            TYPE char1  VALUE ``,
                  low_case        TYPE char1  VALUE `L`,
                  camel_case      TYPE char1  VALUE `X`,
                  extended        TYPE char1  VALUE `Y`,
                  user            TYPE char1  VALUE `U`,
                  user_low_case   TYPE char1  VALUE `C`, 

参数转换规则示例输入JSON输出适用场景
NONE保留原ABAP字段名(全大写)FIRST_NAME"FIRST_NAME"严格匹配后端字段名
LOW_CASE全小写 + 保留下划线FIRST_NAME"first_name"蛇形小写(如Python API)
CAMEL_CASE驼峰式(首字母小写)FIRST_NAME"firstName"前端开发(JavaScript/TypeScript)
EXTENDED智能驼峰式(兼容特殊字符)IS_ACTIVE"isActive"复杂字段名转换
USER保留用户定义的大小写和下划线"firstName""firstName"完全自定义字段名
USER_LOW_CASE用户定义字段名转为全小写"FirstName""firstname"统一小写格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值