获取其他SAP表数据

记录一下RFC_READ_TABLE函数的跨客户端使用,EWM catch ERP的数据,同时也可应用于其它系统直接通过RFC方式catch SAP的数据


FUNCTION zbc_fm_read_afpo.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(IV_WERKS) TYPE  WERKS_D
*"     VALUE(IV_MATNR) TYPE  MATNR
*"     VALUE(IV_DATUM) TYPE  DATUM
*"  EXPORTING
*"     VALUE(EV_STATUS) TYPE  BAPI_MTYPE
*"     VALUE(EV_MESSAGE) TYPE  BAPI_MSG
*"  TABLES
*"      ET_DATA STRUCTURE  AFPO
*"--------------------------------------------------------------------

 DATA:lv_query_table TYPE dd02l-tabname,
       lv_delimiter   TYPE sonv-flag,
       lt_options     TYPE STANDARD TABLE OF rfc_db_opt,
       lt_fields      TYPE STANDARD TABLE OF rfc_db_fld,
       lt_data        TYPE STANDARD TABLE OF tab512.


  DATA:l_begda TYPE sy-datum,
       l_endda TYPE sy-datum.

  DATA:BEGIN OF ls_afpo,
         aufnr TYPE aufnr,
         posnr TYPE co_posnr,
       END OF ls_afpo,
       lt_afpo LIKE TABLE OF ls_afpo.

  zcl_pc_methods=>get_logsys_and_rfcdest( IMPORTING es_tblsysdest = DATA(ls_system) )."获取逻辑系统

* 获取当月日期
  l_begda = iv_datum+0(6) && '01'.
  CALL FUNCTION 'LAST_DAY_OF_MONTHS'
    EXPORTING
      day_in            = iv_datum
    IMPORTING
      last_day_of_month = l_endda
    EXCEPTIONS
      day_in_no_date    = 1
      OTHERS            = 2.

  CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
    EXPORTING
      input        = iv_matnr
    IMPORTING
      output       = iv_matnr
    EXCEPTIONS
      length_error = 1
      OTHERS       = 2.

  CLEAR: lv_query_table,lv_delimiter,lt_options,lt_fields,lt_data.

  lv_query_table = 'AFPO'.

  lt_options = VALUE #( ( |DWERK = '{ iv_werks }'| )
                        ( |AND MATNR = '{ iv_matnr }'| )
                        ( |AND DGLTS BETWEEN '{ l_begda }' AND '{ l_endda }'| ) ).
*                        ( |AND XLOEK = ''| ) ).

  lt_fields = VALUE #( (  fieldname = 'AUFNR' offset = '000000' length = '000012' )
                       (  fieldname = 'POSNR' offset = '000010' length = '000004' ) ).

  CALL FUNCTION 'RFC_READ_TABLE' DESTINATION ls_system-rfcdest
    EXPORTING
      query_table           = lv_query_table
      delimiter             = lv_delimiter
    TABLES
      options               = lt_options
      fields                = lt_fields
      data                  = lt_data
    EXCEPTIONS
      system_failure        = 1
      communication_failure = 2
      OTHERS                = 3.

  lt_afpo = lt_data.
  et_data[] = CORRESPONDING #( lt_afpo ).

ENDFUNCTION.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值