SAP--客户信息接口函数

SAP客户基础信息接口

FUNCTION z_mm_custom_list.
  TYPES: BEGIN OF ty_custom_in,
           kunnr TYPE kunnr,  "客户编号
           name1 TYPE name1,  "客户名称
         END OF ty_custom_in.

  "出参
  TYPES: BEGIN OF ty_custom_list,
           kunnr             TYPE kunnr,  "客户编号
           name1             TYPE name1,  "客户名称
           bankaccountname   TYPE char50, "银行账户名称
           bankaccountnumber TYPE char50, "银行银联号
           banknumber        TYPE char50, "银行卡号
           depositbank       TYPE char50, "开户银行
           branchinfo        TYPE char50, "支付信息
         END OF ty_custom_list.

  DATA: ls_request TYPE ty_custom_list.
  DATA: lt_data TYPE TABLE OF ty_custom_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 ty_custom_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-kunnr NO-GAPS, ls_request-name1 NO-GAPS.

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


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

  REFRESH: lt_data.

  SELECT kunnr
         name1
         INTO CORRESPONDING FIELDS OF TABLE lt_data
    FROM kna1
    WHERE lifnr LIKE lv_code_like
      AND name1 LIKE lv_name_like.

  IF lt_data IS NOT INITIAL.
    SELECT partner,bankl,bankn,accname,koinh
      INTO TABLE @DATA(lt_but0bk)
      FROM but0bk
      FOR ALL ENTRIES IN @lt_data
      WHERE partner EQ @lt_data-kunnr.
  ENDIF.

  LOOP AT lt_data ASSIGNING FIELD-SYMBOL(<fs>).
    READ TABLE lt_but0bk INTO DATA(ls_but0bk) WITH KEY partner = <fs>-kunnr.
    IF sy-subrc EQ 0.
      <fs>-bankaccountname = ls_but0bk-koinh. "银行账户名称
      <fs>-bankaccountnumber = ls_but0bk-bankn. "银行银联号
      <fs>-banknumber = ''. "银行卡号
      <fs>-depositbank = ls_but0bk-accname. "开户银行
      <fs>-branchinfo  = ''. "支付信息
    ENDIF.
  ENDLOOP.

*******************根据查询结果返回语句*******************************
  REFRESH lt_response.
  IF lt_data[] IS NOT INITIAL.
    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.
测试环境调试,返回JSON信息。

在这里插入图片描述

世界地图矢量数据可以通过多种网站进行下载。以下是一些提供免费下载世界地图矢量数据的网站: 1. Open Street Map (https://www.openstreetmap.org/): 这个网站可以根据输入的经纬度或手动选定范围来导出目标区域的矢量图。导出的数据格式为osm格式,但只支持矩形范围的地图下载。 2. Geofabrik (http://download.geofabrik.de/): Geofabrik提供按洲际和国家快速下载全国范围的地图数据数据格式支持shape文件格式,包含多个独立图层,如道路、建筑、水域、交通、土地利用分类、自然景观等。数据每天更新一次。 3. bbbike (https://download.bbbike.org/osm/): bbbike提供全球主要的200多个城市的地图数据下载,也可以按照bbox进行下载。该网站还提供全球数据数据格式种类齐全,包括geojson、shp等。 4. GADM (https://gadm.org/index.html): GADM提供按国家或全球下载地图数据的服务。该网站提供多种格式的数据下载。 5. L7 AntV (https://l7.antv.antgroup.com/custom/tools/worldmap): L7 AntV是一个提供标准世界地图矢量数据免费下载的网站。支持多种数据格式下载,包括GeoJSON、KML、JSON、TopJSON、CSV和高清SVG格式等。可以下载中国省、市、县的矢量边界和世界各个国家的矢量边界数据。 以上这些网站都提供了世界地图矢量数据免费下载服务,你可以根据自己的需求选择合适的网站进行下载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值