PO发布RESTful接口

Posted 想发财的小夏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PO发布RESTful接口相关的知识,希望对你有一定的参考价值。


前言

本文主要介绍,通过PO发布的RESTful接口供其他系统调用


ESB端配置

1.SAP-外围系统

按照Data Types - Message Types - Service Interfaces的顺序进行配置sap端的字段,分别配置Request和Respond

Data Type(如下):


Message Type(如下):



Service Interfaces(如下):

2.外围系统-SAP

按照Data Types - Message Types - Service Interfaces的顺序进行配置sap端的字段,分别配置Request和Respond,最后需要建立mapping

Data Type(如下):


Message Types(如下):

Service Interfaces(如下):

Message Mapping(如下):
需要注意mapping的方向!!!




Operation Mapping(如下):

一定要注意mapping的方向,不然会导致IB的时候报错。
激活即可


Integration Builder 端配置

需要按照CC-IC-CS的顺序配置

1. CC配置(Communication Channel)



红框处用来配置json结构的[]

2. IC配置(Integrated Configuration)





3. CS配置(Configuration Scenario)


激活即可


SAP端配置

在PO端配置完成后,进入SAP GUI,使用tcode sproxy,找到对应生成的代理类,激活即可


生成的代理类里req和res即为接口的入参和出参,写入处理的函数即可

代码如下:

    CONSTANTS:lc_fm_name TYPE rs38l-name VALUE 'ZEWM01_006'.

    DATA:ls_data  TYPE zdt_reject_delivery_res_body,
         lv_docno TYPE vbeln_vl,
         ev_type  TYPE bapi_mtype,
         ev_msg   TYPE bapi_msg,
         lv_code.

    CALL FUNCTION 'FUNCTION_EXISTS'
      EXPORTING
        funcname           = lc_fm_name
      EXCEPTIONS
        function_not_exist = 1.

    IF sy-subrc = 0.

      CLEAR:ls_data,lv_docno,ev_type,ev_msg,lv_code.

      lv_docno = input-mt_reject_delivery_req-head-vbeln.

      CALL FUNCTION lc_fm_name
        EXPORTING
          lv_doc_no = lv_docno
        IMPORTING
          ev_type   = ev_type
          ev_msg    = ev_msg.

      CASE ev_type.
        WHEN 'S'.
          lv_code = '0'.
        WHEN OTHERS.
          lv_code = '1'.
      ENDCASE.

      output-mt_reject_delivery_res-returncode    = lv_code.
      output-mt_reject_delivery_res-returnmessage = ev_msg.

    ELSE.

      output-mt_reject_delivery_res-returncode    = '1'.
      output-mt_reject_delivery_res-returnmessage = '调用函数:' && 'ZEWM01_006' && '未找到'.

    ENDIF.

    output-mt_reject_delivery_res-agreement       = input-mt_reject_delivery_req-agreement.
    output-mt_reject_delivery_res-trainid         = input-mt_reject_delivery_req-trainid.
    output-mt_reject_delivery_res-time            = input-mt_reject_delivery_req-time.
    output-mt_reject_delivery_res-fromdsid        = input-mt_reject_delivery_req-fromdsid.
    output-mt_reject_delivery_res-dsid            = input-mt_reject_delivery_req-dsid.
    output-mt_reject_delivery_res-head-enter_user = input-mt_reject_delivery_req-head-enter_user.
    APPEND VALUE #( vbeln = lv_docno ) TO ls_data-h.
    APPEND ls_data TO output-mt_reject_delivery_res-body.

Postman测试

也可以使用其他接口测试工具

Postman配置如下:

body填入参数


    "agreement": "mes_sap",
    "tranid": "20210728111533416389000",
    "time": "20210728111533419718000",
    "dsid": "1015",
    "fromdsid": "1006",
    "head": 
        "vbeln": "123"
    ,
    "body": [
        
    ]


send即可看到返回参数,通过status可以判断接口状况


总结

以上就是PO发布RESTful接口的全部配置,如有问题请在评论区指出,谢谢。

以上是关于PO发布RESTful接口的主要内容,如果未能解决你的问题,请参考以下文章

PO发布RESTful接口

java后台接口怎么方便返回restful数据

接口测试工具Postman入门

现在有一个SSO的Restful 的接口,用java代码具体怎么调用这个接口啊,需要传参啊?

从父片段到选项卡片段的接口侦听器不起作用

sap restful json接口动态调用RFC,生成动态结构