获取采购信息记录函数BAPI_INFORECORD_GETLIST

  DATA:lt_purch TYPE TABLE OF bapieine,
        lt_return TYPE TABLE OF bapireturn.
  FIELD-SYMBOLS:<fs_return> TYPE bapireturn,
                 <fs_purch> TYPE bapieine.



  CALL FUNCTION 'BAPI_INFORECORD_GETLIST'
    EXPORTING
      vendor              = c_upload-lifnr
      material            = c_upload-matnr
*     MAT_GRP             =
*     VEND_MAT            =
*     VEND_PART           =
*     VEND_MATG           =
      purch_org           = c_upload-ekorg
      info_type           = '0'
      plant               = c_upload-werks
      pur_group           = c_upload-ekgrp
*     PURCHASINGINFOREC   =
      deleted_inforecords = ''
      purchorg_data       = 'X'
*     GENERAL_DATA        = 'X'
*     MATERIAL_EVG        =
*     PURCHORG_VEND       = ' '
    TABLES
*     INFORECORD_GENERAL  =
      inforecord_purchorg = lt_purch
      return              = lt_return.
  READ TABLE lt_return ASSIGNING <fs_return> WITH KEY type = 'E'.
  IF sy-subrc NE 0.
    READ TABLE lt_purch ASSIGNING <fs_purch> WITH KEY info_type = '0' plant = c_upload-werks.
    IF sy-subrc = 0.

      IF <fs_purch>-price_unit <> 0.
*ALV价格等于采购信息记录单价 * 数量 /价格单位
*      c_upload-netpr =  <fs_purch>-net_price  * c_upload-menge   / <fs_purch>-price_unit.
        c_upload-netpr =  <fs_purch>-net_price   / <fs_purch>-price_unit.
        c_upload-netpr_n =  <fs_purch>-net_price.
        c_upload-peinh =  <fs_purch>-price_unit.
        c_upload-waers =  <fs_purch>-currency.
      ENDIF.


      IF <fs_purch>-net_price = 0.
        MOVE-CORRESPONDING c_upload TO gs_error.
        gs_error-msg = gs_error-msg && '/' &&   '没有获取到采购信息记录价格'.
      ENDIF.

      IF gs_error-msg IS NOT INITIAL.
        APPEND gs_error TO gt_error.
        CLEAR:gs_error.
        gv_flag = 'X'.
      ENDIF.

    ELSE."取不到采购信息记录价格的也放在报错数据
      MOVE-CORRESPONDING c_upload TO gs_error.
      gs_error-msg = gs_error-msg && '/' &&   '没有获取到采购信息记录价格'.


      IF gs_error-msg IS NOT INITIAL.
        APPEND gs_error TO gt_error.
        CLEAR:gs_error.
        gv_flag = 'X'.
      ENDIF.



    ENDIF.

  ELSE.
    MOVE-CORRESPONDING c_upload TO gs_error.
    gs_error-msg = gs_error-msg && '/' &&   '没有获取到采购信息记录价格'.

    IF gs_error-msg IS NOT INITIAL.
      APPEND gs_error TO gt_error.
      CLEAR:gs_error.
      gv_flag = 'X'.
    ENDIF.



  ENDIF.

 

posted @ 2023-05-10 18:00  YangMeiko  阅读(479)  评论(0)    收藏  举报