Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Creating Material using BAPI ( Some Problem)

Former Member
0 Kudos

Hi Frendz, i am not able to create material using BAPI, can u give any idea where is the problem in code?

I am uploading 5 fields Matno Mattype Indsec matdesc and meins

Thanks in Advance.

Points for sure

Vijaya

REPORT ZYC_BAPI_MATERIAL_CREATE

TABLES: mara, "General Material Data

makt. "Material Descriptions

DATA: bapi_head LIKE bapimathead,

bapi_makt LIKE bapi_makt, "Material Description

bapi_mara1 LIKE bapi_mara, "Client Data

bapi_marax LIKE bapi_marax,

bapi_return LIKE bapiret2.

DATA: BEGIN OF int_makt OCCURS 100.

INCLUDE STRUCTURE bapi_makt.

DATA: END OF int_makt.

DATA: BEGIN OF int_mat OCCURS 100,

matnr(18), "Material number

mtart(4), "Material type

mbrsh(1), "Industry sector

maktx(40), "Material description

meins(3), "Base unit of measure

END OF int_mat.

*to return messages

DATA:BEGIN OF it_return OCCURS 0.

INCLUDE STRUCTURE bapiret2.

DATA:END OF it_return.

PARAMETER: f_file LIKE rlgrap-filename,

upddata AS CHECKBOX. "Tick to update date to Materials Master

IF upddata = 'X'.

PERFORM upload_file.

PERFORM update_mm.

ENDIF.

----


*& Form UPLOAD_FILE

&----


  • text

----


FORM upload_file.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

filename = f_file

filetype = 'DAT'

  • FILETYPE = 'WK1'

TABLES

data_tab = int_mat

EXCEPTIONS

file_open_error = 1

file_write_error = 2

invalid_filesize = 3

invalid_type = 4

no_batch = 5

unknown_error = 6

invalid_table_width = 7

gui_refuse_filetransfer = 8

customer_error = 9

OTHERS = 10.

IF sy-subrc = 0.

FORMAT COLOR COL_GROUP.

WRITE:/ 'Data Upload Successfully from your local harddisk'.

SKIP.

ENDIF.

ENDFORM. "UPLOAD_FILE

&----


*& Form UPDATE_MM

&----


  • text

----


FORM update_mm.

LOOP AT int_mat.

  • Header

bapi_head-material = int_mat-matnr.

bapi_head-ind_sector = int_mat-mbrsh.

bapi_head-matl_type = int_mat-mtart.

bapi_head-basic_view = 'X'.

  • Material Description

REFRESH int_makt.

  • int_makt-langu = int_mat-spras.

int_makt-matl_desc = int_mat-maktx.

APPEND int_makt.

  • Client Data - Basic

bapi_mara1-base_uom = int_mat-meins.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

EXPORTING

headdata = bapi_head

clientdata = bapi_mara1

clientdatax = bapi_marax

IMPORTING

return = bapi_return

TABLES

materialdescription = int_makt.

WRITE:/ it_return-type,

2 it_return-id,

22 it_return-number,

25 it_return-message.

ENDLOOP.

endform.

1 REPLY 1

former_member188685
Active Contributor
0 Kudos

Check this sample code.

REPORT Z_BAPI_CODE.

*TO CREATE MATERIAL USING BAPI.

**********************************************************************
*                STRUCTURE  DECLARATIONS                             *
**********************************************************************

TABLES: BAPIMATHEAD,  "Headerdata
        BAPI_MARA,    "Clientdata
        BAPI_MARAX,   "Clientdatax
        BAPI_MARC,    "Plantdata
        BAPI_MARCX,   "Plantdatax
        BAPI_MAKT,    "Material description
        BAPI_MBEW,    "VALUATION DATA
        BAPI_MBEWX,
        BAPI_MARM,
        BAPI_MARMX,
        bapi_mean,
        BAPIRET2.     "Return messages

DATA:V_FILE TYPE STRING.   "input data file



DATA:
  BEGIN OF LSMW_MATERIAL_MASTER,
    MATNR(018) TYPE C,  "Material number
    MTART(004) TYPE C,  "Material type
    MBRSH(001) TYPE C,  "Industry sector
    WERKS(004) TYPE C,  "Plant
    MAKTX(040) TYPE C,  "Material description
    DISMM(002) TYPE C,  "Extra Field Added In the Program as itsrequired
    MEINS(003) TYPE C,  "Base unit of measure
    MATKL(009) TYPE C,  "Material group
    SPART(002) TYPE C,  "Division
    LABOR(003) TYPE C,  "Lab/office
    PRDHA(018) TYPE C,  "Product hierarchy
    MSTAE(002) TYPE C,  "X-plant matl status
    MTPOS_MARA(004) TYPE C,  "Gen item cat group
    <b>BRGEW(017) TYPE C,  "Gross weight
    GEWEI(003) TYPE C,  "Weight unit</b>    NTGEW(017) TYPE C,  "Net weight
    GROES(032) TYPE C,  "Size/Dimensions
    MAGRV(004) TYPE C,  "Matl grp pack matls
    BISMT(018) TYPE C,  "Old material number
    WRKST(048) TYPE C,  "Basic material
    PROFL(003) TYPE C,  "DG indicator profile
    KZUMW(001) TYPE C,  "Environmentally rlvt
    BSTME(003) TYPE C,  "Order unit
    VABME(001) TYPE C,
    EKGRP(003) TYPE C,  "Purchasing group
    XCHPF(001) TYPE C,  "Batch management
    EKWSL(004) TYPE C,  "Purchasing key value
    WEBAZ(003) TYPE C,  "GR processing time
    MFRPN(040) TYPE C,  "Manufacturer part number
    MFRNR(010) TYPE C,  "Manufacturer number
    VPRSV(001) TYPE C,  "Price control indicator
    STPRS(015) TYPE C,  "Standard price
    BWPRH(014) TYPE C,  "Commercial price1
    BKLAS(004) TYPE C,  "Valuation class
    bwkey(004) type c,

  END OF LSMW_MATERIAL_MASTER.


**********************************************************************
*                INTERNAL TABLE DECLARATIONS                         *
**********************************************************************

*to store the input data
DATA:
  BEGIN OF it_matmaster OCCURS 0.
        INCLUDE STRUCTURE LSMW_MATERIAL_MASTER.

DATA:
  END OF it_matmaster.

*for material description
DATA:BEGIN OF IT_MATERIALDESC OCCURS 0.
     INCLUDE STRUCTURE BAPI_MAKT .
DATA:END OF IT_MATERIALDESC.

*FOR gross wt
data: begin of it_uom occurs 0.
      include structure BAPI_MARM.
data:end of it_uom.

DATA: BEGIN OF IT_UOMX OCCURS 0.
      INCLUDE STRUCTURE BAPI_MARMX.
DATA:END OF IT_UOMX.

data:begin of it_mean occurs 0.
     include structure bapi_mean.
data:end of it_mean.

DATA:BEGIN OF IT_MLTX OCCURS 0.
     INCLUDE STRUCTURE BAPI_MLTX.
DATA:END OF IT_MLTX.
*to return messages
DATA:BEGIN OF IT_RETURN OCCURS 0.
     INCLUDE STRUCTURE BAPIRET2.
DATA:END OF IT_RETURN.

************************************************************************
*  SELECTION SCREEN                                                    *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002.

PARAMETERS:P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1 .

************************************************************************
* AT SELECTION SCREEN                                                  *
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      PROGRAM_NAME  = SYST-CPROG
      DYNPRO_NUMBER = SYST-DYNNR
      FIELD_NAME    = 'P_FILE'
    IMPORTING
      FILE_NAME     = P_FILE.



**********************************************************************
*                TO UPLOAD THE DATA                                  *
**********************************************************************

START-OF-SELECTION.
V_FILE = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
  EXPORTING
    filename                      = V_FILE
   FILETYPE                      = 'ASC'
   HAS_FIELD_SEPARATOR           = 'X'
*   HEADER_LENGTH                 = 0
*   READ_BY_LINE                  = 'X'
*   DAT_MODE                      = ' '
* IMPORTING
*   FILELENGTH                    =
*   HEADER                        =
  tables
    data_tab                      =  IT_MATMASTER
 EXCEPTIONS
   FILE_OPEN_ERROR               = 1
   FILE_READ_ERROR               = 2
   NO_BATCH                      = 3
   GUI_REFUSE_FILETRANSFER       = 4
   INVALID_TYPE                  = 5
   NO_AUTHORITY                  = 6
   UNKNOWN_ERROR                 = 7
   BAD_DATA_FORMAT               = 8
   HEADER_NOT_ALLOWED            = 9
   SEPARATOR_NOT_ALLOWED         = 10
   HEADER_TOO_LONG               = 11
   UNKNOWN_DP_ERROR              = 12
   ACCESS_DENIED                 = 13
   DP_OUT_OF_MEMORY              = 14
   DISK_FULL                     = 15
   DP_TIMEOUT                    = 16
   OTHERS                        = 17
          .
IF sy-subrc <> 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

*ELSE.
*DELETE IT_MATMASTER INDEX 1.
ENDIF.

**********************************************************************
*                DATA POPULATIONS                                    *
**********************************************************************


LOOP AT  IT_MATMASTER.
*HEADER DATA
  BAPIMATHEAD-MATERIAL = IT_MATMASTER-MATNR.
  BAPIMATHEAD-IND_SECTOR = IT_MATMASTER-Mbrsh.
  BAPIMATHEAD-MATL_TYPE = IT_MATMASTER-Mtart.
  BAPIMATHEAD-BASIC_VIEW = 'X'.
  BAPIMATHEAD-PURCHASE_VIEW = 'X'.
  BAPIMATHEAD-ACCOUNT_VIEW = 'X'.
*CLIENTDATA
  BAPI_MARA-MATL_GROUP = IT_MATMASTER-MATKL.
  BAPI_MARA-DIVISION = IT_MATMASTER-SPART.
  BAPI_MARA-DSN_OFFICE = IT_MATMASTER-LABOR.
  BAPI_MARA-PROD_HIER = IT_MATMASTER-PRDHA.
  BAPI_MARA-PUR_STATUS = IT_MATMASTER-MSTAE.
  BAPI_MARA-ITEM_CAT = IT_MATMASTER-MTPOS_MARA.
  BAPI_MARA-NET_WEIGHT = IT_MATMASTER-NTGEW.
*  BAPI_MARA-PO_UNIT = 'KG'.
*  BAPI_MARA-UNIT_OF_WT_ISO = 'KG'.
  BAPI_MARA-UNIT_OF_WT = 'KG'.
*  BAPI_MARA-PACK_VO_UN = 'KG'.
*  BAPI_MARA-BASE_UOM_ISO = 'KG'.
  bapi_mara-size_dim = it_matmaster-groes.
  BAPI_MARA-MAT_GRP_SM = IT_MATMASTER-MAGRV.
  BAPI_MARA-OLD_MAT_NO = IT_MATMASTER-BISMT.
  BAPI_MARA-BASE_UOM = IT_MATMASTER-MEINS.
  BAPI_MARA-BASIC_MATL = IT_MATMASTER-WRKST.
  BAPI_MARA-HAZMATPROF = IT_MATMASTER-PROFL.
  BAPI_MARA-ENVT_RLVT = IT_MATMASTER-KZUMW.
  BAPI_MARA-PO_UNIT = IT_MATMASTER-BSTME.
  BAPI_MARA-VAR_ORD_UN = IT_MATMASTER-VABME.
  BAPI_MARA-PUR_VALKEY = IT_MATMASTER-EKWSL.
  BAPI_MARA-MANU_MAT = IT_MATMASTER-MFRPN.
  BAPI_MARA-MFR_NO = IT_MATMASTER-MFRNR.
  BAPI_MARAX-MATL_GROUP = 'X'.
  BAPI_MARAX-DIVISION = 'X'.
  BAPI_MARAX-DSN_OFFICE = 'X'.
  BAPI_MARAX-PROD_HIER = 'X'.
  BAPI_MARAX-PUR_STATUS = 'X'.
  BAPI_MARAX-ITEM_CAT = 'X'.
  BAPI_MARAX-NET_WEIGHT = 'X'.
  BAPI_MARAX-UNIT_OF_WT = 'X'.
*  BAPI_MARAX-UNIT_OF_WT_ISO = 'X'.
  bapi_maraX-size_dim = 'X'.
  BAPI_MARAX-MAT_GRP_SM = 'X'.
  BAPI_MARAX-OLD_MAT_NO = 'X'.
  BAPI_MARAX-BASE_UOM = 'X'.
  BAPI_MARAX-BASE_UOM_ISO = 'X'.
  BAPI_MARAX-BASIC_MATL = 'X'.
  BAPI_MARAX-MFR_NO = 'X'.
  BAPI_MARAX-HAZMATPROF = 'X'.
  BAPI_MARAX-ENVT_RLVT = 'X'.
  BAPI_MARAX-PO_UNIT = 'X'.
*  BAPI_MARAX-PACK_VO_UN = 'X'.
  BAPI_MARAX-VAR_ORD_UN = 'X'.
  BAPI_MARAX-PUR_VALKEY = 'X'.
  BAPI_MARAX-MANU_MAT = 'X'.
  BAPI_MARAX-MFR_NO = 'X'.

*PLANT DATA

  BAPI_MARC-PLANT = IT_MATMASTER-WERKS.
  BAPI_MARC-PUR_GROUP = IT_MATMASTER-EKGRP.
  BAPI_MARC-BATCH_MGMT = IT_MATMASTER-XCHPF.
  BAPI_MARC-GR_PR_TIME = IT_MATMASTER-WEBAZ.
  BAPI_MARCX-PLANT = IT_MATMASTER-WERKS.
  BAPI_MARCX-PUR_GROUP = 'X'.
  BAPI_MARCX-BATCH_MGMT = 'X'.
  BAPI_MARCX-GR_PR_TIME = 'X'.

*VALUATION DATA
  BAPI_MBEW-PRICE_CTRL = IT_MATMASTER-VPRSV.
  BAPI_MBEW-STD_PRICE = IT_MATMASTER-STPRS.
  BAPI_MBEW-COMMPRICE1 = IT_MATMASTER-BWPRH.
  BAPI_MBEW-VAL_AREA = IT_MATMASTER-BWKEY.
  BAPI_MBEW-VAL_CLASS = IT_MATMASTER-BKLAS.
  BAPI_MBEWX-PRICE_CTRL = 'X'.
  BAPI_MBEWX-STD_PRICE = 'X'.
  BAPI_MBEWX-COMMPRICE1 = 'X'.
  BAPI_MBEWX-VAL_AREA = IT_MATMASTER-BWKEY.
  BAPI_MBEWX-VAL_CLASS = 'X'.
  IT_MATERIALDESC-LANGU = 'EN'.
  IT_MATERIALDESC-MATL_DESC = IT_MATMASTER-MAKTX.
  append IT_materialdesc.
<b>  IT_UOM-GROSS_WT = IT_MATMASTER-BRGEW.
  IT_UOM-ALT_UNIT = 'KG'.
  IT_UOM-ALT_UNIT_ISO = 'KG'.
    IT_UOM-UNIT_OF_WT = IT_MATMASTER-GEWEI.
    APPEND IT_UOM.
  IT_UOMX-GROSS_WT = 'X'.
  IT_UOMX-ALT_UNIT = 'KG'.
  IT_UOMX-ALT_UNIT_ISO = 'KG'.
  IT_UOMX-UNIT_OF_WT = 'X'.


  APPEND IT_UOMX.</b>

  it_mean-unit = 'KD3'.
  append it_mean.

  it_mltx-langu = 'E'.
  it_mltx-text_name = it_matmaster-matnr.
  APPEND IT_MLTX.
  CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
    EXPORTING
      headdata                   = BAPIMATHEAD
      CLIENTDATA                 = BAPI_MARA
      CLIENTDATAX                = BAPI_MARAx
     PLANTDATA                  =  BAPI_MARc
     PLANTDATAX                 =  BAPI_MARcx
*     FORECASTPARAMETERS         =
*     FORECASTPARAMETERSX        =
*     PLANNINGDATA               =
*     PLANNINGDATAX              =
*     STORAGELOCATIONDATA        =
*     STORAGELOCATIONDATAX       =
     VALUATIONDATA              = BAPI_MBEW
     VALUATIONDATAX             = BAPI_MBEWX
*     WAREHOUSENUMBERDATA        =
*     WAREHOUSENUMBERDATAX       =
*     SALESDATA                  =
*     SALESDATAX                 =
*     STORAGETYPEDATA            =
*     STORAGETYPEDATAX           =
*     FLAG_ONLINE                = ' '
*     FLAG_CAD_CALL              = ' '
   IMPORTING
     RETURN                     = IT_RETURN
   TABLES
     MATERIALDESCRIPTION        = IT_MATERIALDESC
     UNITSOFMEASURE             = IT_UOM
     UNITSOFMEASUREX            = IT_UOMX
     INTERNATIONALARTNOS        = it_mean
*     MATERIALLONGTEXT           = IT_MLTX
*     TAXCLASSIFICATIONS         =
*     RETURNMESSAGES             =
*     PRTDATA                    =
*     PRTDATAX                   =
*     EXTENSIONIN                =
*     EXTENSIONINX               =
            .

read table it_return with key TYPE = 'S'.
if sy-subrc = 0.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
*   EXPORTING
*     WAIT          =
*   IMPORTING
*     RETURN        =
            .
*else.
*
*CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
** IMPORTING
**   RETURN        =
*          .
*
endif.

 WRITE:/    IT_RETURN-TYPE,
        2   IT_RETURN-ID,
        22  IT_RETURN-NUMBER,
        25  IT_RETURN-MESSAGE.
*            IT_RETURN-LOG_NO,
*            IT_RETURN-LOG_MSG_NO,
*            IT_RETURN-MESSAGE_V1,
*            IT_RETURN-MESSAGE_V2,
*            IT_RETURN-MESSAGE_V3,
*            IT_RETURN-MESSAGE_V4,
*            IT_RETURN-PARAMETER,
*            IT_RETURN-ROW,
*            IT_RETURN-FIELD,
*            IT_RETURN-SYSTEM.


ENDLOOP.

Regards

vijay