ABAP 开发物料接口

来源:互联网 发布:淘宝主图要求规范2017 编辑:程序博客网 时间:2024/05/16 15:32

 

 开发一个可以供外面程序调用的物料接口

 

FUNCTION ZRFC_KTK_PP_0001.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  TABLES
*"      OUTPUT STRUCTURE  ZPP_MAT_RETURN
*"      INPUT STRUCTURE  ZPP_MAT_IN
*"----------------------------------------------------------------------
  DATA: it_headdata LIKE bapimathead,
        it_clientdata LIKE bapi_mara,
        it_clientdatax LIKE bapi_marax,
        it_return LIKE bapiret2,
        it_materialdescription LIKE TABLE OF bapi_makt WITH HEADER LINE,
        it_returnmessages LIKE TABLE OF bapi_matreturn2 WITH HEADER LINE.

  tables:t023t.

  REFRESH output[].
  CLEAR output.

  LOOP AT input.

    CLEAR it_headdata.
    it_headdata-material = input-material.
    it_headdata-ind_sector = 'Z'.   "维护Z为基伍
    it_headdata-matl_type = input-matl_type.    "等待物料类型确定对应关系????????
    it_headdata-basic_view = 'X'.   "基本数据视图

    CLEAR it_clientdata.
    select single MATKL into t023t-matkl from t023t
     where spras = '1'
       and WGBEZ = input-matl_class.
    if sy-subrc = 0.
*    it_clientdata-matl_group = input-matl_group.    "物料组
      concatenate t023t-matkl input-matl_group into it_clientdata-matl_group.
    endif.
    it_clientdata-old_mat_no = input-old_mat_no.    "旧物料号
    it_clientdata-base_uom = input-base_uom.        "基本计量单位

    CLEAR it_clientdatax.
    it_clientdatax-matl_group = 'X'.
    it_clientdatax-old_mat_no = 'X'.
    it_clientdatax-base_uom = 'X'.

    REFRESH it_materialdescription[].
    CLEAR it_materialdescription.
    it_materialdescription-langu = '1'.
    it_materialdescription-matl_desc = input-matl_desc.
    APPEND it_materialdescription.

    CLEAR it_return.
    CLEAR it_returnmessages.
    REFRESH it_returnmessages[].

    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        headdata             = it_headdata
        clientdata           = it_clientdata
        clientdatax          = it_clientdatax
*       PLANTDATA            =
*       PLANTDATAX           =
*       FORECASTPARAMETERS   =
*       FORECASTPARAMETERSX  =
*       PLANNINGDATA         =
*       PLANNINGDATAX        =
*       STORAGELOCATIONDATA  =
*       STORAGELOCATIONDATAX =
*       VALUATIONDATA        =
*       VALUATIONDATAX       =
*       WAREHOUSENUMBERDATA  =
*       WAREHOUSENUMBERDATAX =
*       SALESDATA            =
*       SALESDATAX           =
*       STORAGETYPEDATA      =
*       STORAGETYPEDATAX     =
*       FLAG_ONLINE          = ' '
*       FLAG_CAD_CALL        = ' '
*       NO_DEQUEUE           = ' '
*       NO_ROLLBACK_WORK     = ' '
      IMPORTING
        return               = it_return
      TABLES
        materialdescription  = it_materialdescription
*       UNITSOFMEASURE       =
*       UNITSOFMEASUREX      =
*       INTERNATIONALARTNOS  =
*       MATERIALLONGTEXT     =
*       TAXCLASSIFICATIONS   =
        returnmessages       = it_returnmessages
*       PRTDATA              =
*       PRTDATAX             =
*       EXTENSIONIN          =
*       EXTENSIONINX         =
      .

    CLEAR output.
    MOVE input-material TO output-material.
    MOVE-CORRESPONDING it_return TO output.
    APPEND output.

    IF it_return <> 'E'.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
*       EXPORTING
*         WAIT          =
*       IMPORTING
*         RETURN        =
                .

    ENDIF.

  ENDLOOP.

ENDFUNCTION.

 

其中 Tables 参数里:

OUTPUT     like      ZPP_MAT_RETURN      PDM物料生成接口 返回值

INPUT         like      ZPP_MAT_IN                   PDM物料生成接口 传入值