SAP--供应商接口信息查询

供应商接口函数

FUNCTION z_mm_vendor_list.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(I_REQUEST) TYPE  STRING OPTIONAL
*"  EXPORTING
*"     VALUE(E_RESPONSE) TYPE  STRING
*"----------------------------------------------------------------------

  DATA: ls_request TYPE zstru_vendor_list.
  DATA: lt_data TYPE TABLE OF zstru_vendor_list.

  DATA: lv_code_like TYPE char12,
        lv_name_like TYPE char40.

  DATA: BEGIN OF ls_response,
          type    TYPE bapi_mtype,
          message TYPE bapi_msg,
          item    TYPE TABLE OF zstru_vendor_list,
        END OF ls_response.

  DATA: lt_response LIKE TABLE OF ls_response.

  CLEAR ls_request.
  /ui2/cl_json=>deserialize(
  EXPORTING json = i_request
            pretty_name = /ui2/cl_json=>pretty_mode-camel_case
            CHANGING data =  ls_request ).



  CLEAR: lv_code_like, lv_name_like.

  CONDENSE: ls_request-vendorno NO-GAPS, ls_request-vendorname NO-GAPS.

  IF ls_request-vendorno IS NOT INITIAL.
    lv_code_like = '%' && ls_request-vendorno && '%'.
  ELSE.
    lv_code_like = '%'.
  ENDIF.


  IF ls_request-vendorname IS NOT INITIAL.
    lv_name_like = '%' && ls_request-vendorname && '%'.
  ELSE.
    lv_name_like = '%'.
  ENDIF.

  REFRESH: lt_data.

  SELECT a~lifnr AS vendorno
         a~name1 AS vendorname
         b~bankaccountname
         b~bankaccountnumber
         b~banknumber
         b~depositbank
         b~branchinfo
         INTO CORRESPONDING FIELDS OF TABLE lt_data
    FROM lfa1 AS a
    INNER JOIN zpayment_info AS b ON a~lifnr EQ b~lifnr
    WHERE a~lifnr LIKE lv_code_like
      AND a~name1 LIKE lv_name_like AND  b~bankaccountnumber  NE space .



*******************根据查询结果返回语句*******************************
  REFRESH lt_response.
  IF lt_data[] IS NOT INITIAL.


    LOOP AT lt_data ASSIGNING FIELD-SYMBOL(<fs_vendor>).
      <fs_vendor>-vendorno = |{ <fs_vendor>-vendorno ALPHA = OUT }|.
      <fs_vendor>-bankaccountnumber  = <fs_vendor>-bankaccountnumber .


      DATA(lv_banknum)  = <fs_vendor>-banknumber .
      <fs_vendor>-banknumber = lv_banknum .


    ENDLOOP.


    CLEAR ls_response.
    ls_response-type = 'S'.
    ls_response-message = '查询成功'.
    ls_response-item = lt_data.
    APPEND ls_response TO lt_response.

**转换返回语句
    e_response = /ui2/cl_json=>serialize( data = lt_response compress = abap_false pretty_name = abap_false ).

  ELSE.

    CLEAR ls_response.
    ls_response-type = 'E'.
    ls_response-message = '没有对应的查询数据'.
    APPEND ls_response TO lt_response.
**转换返回语句
    e_response = /ui2/cl_json=>serialize( data = lt_response compress = abap_false pretty_name = abap_false ).

  ENDIF.
ENDFUNCTION.
测试环境查询结果如下

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值