首页 > 其他分享 >SAP 发布HTTP接口(RESTful方式)

SAP 发布HTTP接口(RESTful方式)

时间:2023-11-16 16:12:18浏览次数:40  
标签:set return type server json fybx HTTP SAP RESTful

发布 http 接口,以供第三方系统调用

 

1.se24 创建一个类,并继承接口IF_HTTP_EXTENSION,

 

 2.回车后重写方法HANDLE_REQUEST,并添加GET,POST方法(根据自己的需求来)

 

 3.根据实际业务对POST方法进行代码写入

  method post.


***json以及内表参数
    data:it_fybx     type table of zsfbt002_type01 ,
         gt_return   type table of zsfbt002_type02,
         gv_message  type          char1,
         json_fybx   type          string,
         gv_return   type          string,
         json_return type          string.
    data: lv_content_type type string.
    data:all_num  type p, "传入json参数的字符个数
         json_num type p. "实际需要的参数个数

    " Delivers the HTTP body of this entity as character data
    json_fybx  = server->request->get_cdata( ).   "获取入参json数据
    if json_fybx is initial.
      server->response->set_status( code = 404 reason = '未解析到Body参数,请检查' ).
      return.
    endif.

    all_num = strlen( json_fybx ).
    json_num = all_num - 12.

    json_fybx = json_fybx+11(json_num).
    zcl_json=>deserialize( exporting json = json_fybx changing data = it_fybx ).    "将Json转换成内表

    if it_fybx is not initial.
      call function 'ZF_FBT_002'
        importing
          message   = gv_message
        tables
          it_fybx   = it_fybx
          it_return = gt_return.
      call method zcl_json=>serialize   "返回参数  内表转JSON
        exporting
          data        = gt_return
          pretty_name = 'U'
        receiving
          r_json      = gv_return.
      concatenate '{"IT_RETURN":' gv_return '}' into json_return.
      if gv_message = 'S'.
        server->response->set_cdata( json_return ).
        server->response->set_status( code = 200 reason = 'OK' ).   "Sets current HTTP status code
        lv_content_type = 'application/json'.
        server->response->set_content_type( lv_content_type ).
      else.

        server->response->set_cdata( json_return ).
*        server->response->set_status( code = 500  reason = 'ERROR' ).
        server->response->set_status( code = 200  reason = 'ERROR' ).
      endif.
      ELSE.
        server->response->set_status( code = 200 reason = 'Input Json Data Error' ).
    endif.

  endmethod.

 

4.GUI端配置

Tcode: SICF  配置服务

 在登录数据中没有设置账号密码的话 ,链接后面可以直接添加,比如:

http://sapqas.xxxxx.com:8001/zfbt/zfbt001?sap-client=800&sap-user=账号&sap-password=密码

对应的端口号查看或者更改Tcode:SMICM

 

使用soapui或者postman工具就可以直接测试了。

 

如果需要发布含Token 验证的接口,可以参考链接:【SAP】SAP 发布HTTP接口之完整的Restful 含( 含Token 验证)_sap 获取token-CSDN博客

标签:set,return,type,server,json,fybx,HTTP,SAP,RESTful
From: https://www.cnblogs.com/freeandeasy/p/17836496.html

相关文章

  • SAP ABAP调用REST服务
    就是调用为外部HTTP接口 zcl_json=>deserialize因为版本问题 自定义的json转换函数 根据自己的版本使用对应函数就好reportztest25.data:urltypestring,"接口地址gv_json_intypestring,"输入参数(账号密码啥的)jso......
  • SAP调用外部的REST服务 http_communication_failure Connection to partner timed
    SAP中主动调用外部的REST服务时候, 因为传输的数据量比较大, 所以报Connectiontopartnertimedoutafter60 这一错误,原因之一可能是Tcode-SMICM ->转到->服务设置保活和处理超时时间,秒为单位,可以更具自己的需求进行设置。......
  • Chrome浏览器导出HTTPS证书
    点证书小锁无效证书也可以导出进入证书界面到详情中,导出证书......
  • blob:http Status Code: 206 Partial Content 视频去水印
       从视频中删除水印-免费擦除徽标和日期https://online-video-cutter.com/cn/remove-logo#google_vignetteStatusCode:206PartialContentblob:https://online-video-cutter.com/461afc6a-9e64-45ca-9276-4f9489bde7f7  视频去水印先上传再选区域  ......
  • HTTP和HTTPS区别
    1、HTTP是明文传输,不安全。HTTPS是加密传输,更安全,有效防止数据被第三方篡改,但是双方加解密也带来了更多的资源消耗。2、HTTP标准端口是80,HTTPS标准端口是443.3、HTTP不用认证证书,HTTPS需要认证证书(要钱)4、连接方式不同,HTTP三次握手,HTTPSLTS1.2版本7次,HTTPSLTS1.3版本6次。......
  • ABAP 内表转CSV文件推送SAP服务器和SFTP到对方服务器
    1、内表转CSV文件,老ECC个别版本该函数有BUG,I类型字段会dumpDATA:lt_csv_vbak TYPE ztruxs_t_text_data,"ztruxs_t_text_data长度为8192CALLFUNCTION'ZSAP_CONVERT_TO_CSV_FORMAT'TABLESi_tab_sap_data=lt_vbakCHANGINGi_tab_conve......
  • C# httpClient.PostAsync时出现问题Result =“ {尚未计算}”
    返回错误1:Id=3129,Status=WaitingForActivation,Method="{null}",Result="{Notyetcomputed}"返回错误2:发生了一个或多个错误Oneormoreerrorsoccurred.atSystem.Threading.Tasks.Task.ThrowIfExceptional(BooleanincludeTaskCanceledExceptions)......
  • 如何用SaleSmartly集成WhatsApp账号(内含WhatsApp个人号、商业号、API号对比图)
    用SaleSmartly集成WhatsApp账号如果企业有多个WhatsApp账号,无论是个人账号还是工作账号,员工操作起来可能会觉得难以管理和切换。SaleSmartly就可以解决这个问题,让员工在一个平台上同时使用多个WhatsApp账号,不需要频繁地登录和退出,方便客服查看和回复所有的消息和通话。在SaleSmartl......
  • WhatsApp个人号、Business号、API号到底有什么区别
    WhatsApp作为全球苹果应用商店中用户下载量最多的社交网络应用,在全球有25亿的用户,每日活跃人数超过5亿人。很多人都以为WhatsApp就是一个软件,但是其实它是个家族,里面共有三个成员,分别是WhatsApp Messenger,WhatsApp Business和WhatsApp Business API。按照它们推出市场的时间来......
  • 关于SAP ABAP ALV开发的吐槽
    我认为ALV开发时ABAPer第二无聊的工作,非必要千万别做,浪费青春;实在要做也要提高效率少花时间在ALV展示上,集中精力处理后台逻辑。常见的callFM或者OO+Dialog的实现方式,都要手动设置fieldcat、layout,挺烦人的。我比较喜欢用SAP标准的SALV类来做,或者使用国外大神封装的FastAL......