Application Development and Automation 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: 
Read only

bapi material data second time upload cause problem

Former Member
0 Likes
1,316

Dear all,

I created bapi for uploading material master using bapi_material save data.

And i have uploaded data successfully for the first time.

Now i try to upload another excel file, it shows error like

field p002 transferred inconsistently or it is blank.  (p002 is plant name)

if i uploaded with the old data , it is working fine. (plant value is p001)

but stuck with new data showing above error.

Waiting for the reply,

Dhivya N.

7 REPLIES 7
Read only

Former Member
0 Likes
1,044

if any one knows, please suggest me some solution.

Read only

BH2408
Active Contributor
0 Likes
1,044

Please come out of the program and re run it.

BR,

Bharani.

Read only

Former Member
0 Likes
1,044

I have re run it more times.

I clear buffer also. but there is no solution.

Read only

0 Likes
1,044

Hi,

Are you trying to extend the material to P002?

Read only

Former Member
0 Likes
1,044

not extension.  creating new material for plant p002.

i already created material for plant p001.

Read only

Former Member
0 Likes
1,044

Have u used BAPI commit work after save data?

Read only

Former Member
0 Likes
1,044

initially, i did not use commit work or bapi transaction commit.

now , i have changed the program.  for your reference i attach my program.

REPORT ZR_MM01_UPLOAD.

**********************************************************************

***data declarations***

**********************************************************************

***table declaration***

tables: mara,

         marc,

         mbew,

         mlgn,

         mvke,

         makt,

         mlgt,

         mpop.

***declaration of bapi structure***

data: bapi_head like bapimathead,           "input parameters

       bapi_mara like bapi_mara,        "client data

       bapi_marax like bapi_marax,

       bapi_marc like bapi_marc,        "plant data

       bapi_marcx like bapi_marcx,

       bapi_mpop like bapi_mpop,        "forecast view

       bapi_mpopx like bapi_mpopx,

       bapi_mpgd like bapi_mpgd,        "planning view

       bapi_mpgdx like bapi_mpgdx,

       bapi_mard like bapi_mard,        "storage location

       bapi_mardx like bapi_mardx,

       bapi_mbew like bapi_mbew,        "valuation data

       bapi_mbewx like bapi_mbewx,

       bapi_mlgn like bapi_mlgn,        "warehouse data

       bapi_mlgnx like bapi_mlgnx,

       bapi_mvke like bapi_mvke,        "sales data

       bapi_mvkex like bapi_mvkex,

       bapi_mlgt like bapi_mlgt,        "storage data

       bapi_mlgtx like bapi_mlgtx.

data: bapireturn like bapiret2.     "export parameters

datata_bapimakt like bapi_makt OCCURS 0 WITH HEADER LINE,      "tables

        ta_bapimarm like bapi_marm OCCURS 0 WITH HEADER LINE,

        ta_bapimarmx like bapi_marmx OCCURS 0 WITH HEADER LINE,

        ta_bapimfhm like bapi_mfhm OCCURS 0 WITH HEADER LINE,

        ta_bapimfhmx LIKE bapi_mfhmx OCCURS 0 WITH HEADER LINE.

***declaration of flatfile***

data: BEGIN OF ta_flatfile OCCURS 0 ,

   "organizational data

          matnr type rmmg1-matnr,      "material number

          werks type marc-werks,       "plant

          lgort type RMMG1-lgort,      "storage location

          mbrsh type mara-mbrsh,       " 'industry sector

          mtart type mara-mtart,       "material type

   "basic data1

          maktx type makt-maktx,       "material description

          meins type mara-meins,       "base unit of measure

          matkl type mara-matkl,       "material group

          bismt type mara-bismt,       "old material number

          spart type mara-spart,       "division

          mstae type mara-mstae,       "x plant material status

          mtpos_mara type MARA-MTPOS_MARA, "general item category group

          brgew type mara-brgew,       "gross weight

          gewei type mara-gewei,       "weight unit

          ntgew type mara-ntgew,       "net weight

          volum type mara-volum,       "volume

          voleh type mara-voleh,       "volume unit

          groes type mara-groes,       "size and dimension

   "basic data2

          dzeinr type mara-zeinr,      "document number

          DZEIVR type mara-zeivr,      "document version

          AESZN type MARA-AESZN,       "document change number

   "purchasing data

          ekgrp type marc-ekgrp,       "purchasing group

          bstme type mara-bstme,       "alternative base unit of measure

          webaz type marc-webaz,       "gr processing time

   "MRP1

          dismm type marc-dismm,       "mrp type

          minbe type marc-minbe,       "recorder point

          disls type  marc-disls,      " lot size

          mabst type marc-mabst,       "maximum stock level (only for lot size HB)

          dispo type marc-dispo,       "mrp controller

   "MRP 2

          beskz type marc-beskz,       "procurement type

          lgpro type marc-lgpro,       "production storage location

*         rgekz type marc-rgekz,       "back flush

          lgfsb type marc-lgfsb,       "storage location for EP

          plifz type  marc-plifz,      "planned delivery

          fhori type marc-fhori,       "scheduling margin key

   "MRP3

           mtvfp type marc-mtvfp,       "availability check

   "MRP4

          SBDKZ TYPE MARC-SBDKZ,       "INDIVIDUAL/COLL

          bklas type mbew-bklas,       "valuation class

          VERPR_BAPI type mbew-verpr, "moving price

*         stprs type mbew-stprs,      "standard price

*         peinh type mbew-peinh,      "price unit

*         VPRSV TYPE MBEW-VPRSV,      "PRICE CONTROL

     "costing

          prctR(10) type c,      "profit centre

          bwkey type mbew-bwkey,       "valuation area

          spras type makt-spras,       "  Language key

          vkorg(4) type c,             "sales org

          vtweg(2) type c,             "distribution channel

          ktgrm(2) type c,             "acc assignment group

          stgma(1) type c,             "material stat grp

          ekalr(1) type c,             "quantity structure

          hkmat(1) type c,             "material origin

*         bwtar(10) type c,             "valuation type

       END OF ta_flatfile.

***declaration of other parameters***

data:       p_brow type i VALUE    2,

             p_bcol type i value   1,

             p_erow type i value 65536,

             p_ecol type i value 256.

data: V_tabix type sy-tabix,     "current line.

       v_lines type i,            "total number of records

       v_index type i,            "hold column in excel conversion

       v_flag ,

       sear type string.

FIELD-SYMBOLS: <fs> type any.    "field symbol for alsm_excel

DATA: TA_EXCEL TYPE TABLE OF ALSMEX_TABLINE"table to contain excel sheet values

       WA_EXCEL TYPE ALSMEX_TABLINE.

**********************************************************************

***design of selection screen***

**********************************************************************

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECTION-SCREEN SKIP 3.

PARAMETERS: p_file type IBIPPARMS-PATH .                             "input file

SELECTION-SCREEN SKIP 3.

SELECTION-SCREEN END OF BLOCK b1.

**********************************************************************

***SELECTION SCREEN VALUE REQUEST***

**********************************************************************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

   CALL FUNCTION 'F4_FILENAME'                                    "f4 help for file name

     EXPORTING

       PROGRAM_NAME  = SYST-CPROG

       DYNPRO_NUMBER = SYST-DYNNR

       FIELD_NAME    = 'P_FILE'

     IMPORTING

       FILE_NAME     = P_FILE.

**********************************************************************

***SELECTION SCREEN EVENT***

**********************************************************************

AT SELECTION-SCREEN.                                 "validation

   if p_file <> ''.

    sear = p_file.

   SEARCH sear for '.xls'.

   if sy-subrc <> 0.

     message 'please provide excel file. it is not valid' type 'E'.

   ENDIF.

  ENDIF.

***initialisation***

clear :bapi_head ,

       bapi_mara ,

       bapi_marax ,

       bapi_marc ,        "plant data

       bapi_marcx,

       bapi_mpop ,        "forecast view

       bapi_mpopx ,

       bapi_mpgd ,        "planning view

       bapi_mpgdx ,

       bapi_mard ,        "storage location

       bapi_mardx ,

       bapi_mbew ,        "valuation data

       bapi_mbewx ,

       bapi_mlgn,        "warehouse data

       bapi_mlgnx ,

       bapi_mvke ,        "sales data

       bapi_mvkex ,

       bapi_mlgt ,        "storage data

       bapi_mlgtx ,

       bapireturn.   "export parameters

    refreshta_bapimakt ,      "tables

        ta_bapimarm ,

        ta_bapimarmx,

        ta_bapimfhm ,

        ta_bapimfhmx .

CALL FUNCTION 'BUFFER_REFRESH_ALL'

           .

**********************************************************************

***START OF SELECTION***

**********************************************************************

START-OF-SELECTION.

   PERFORM EXCEL_UPLOAD.

   PERFORM EXCEL_CONVERSION.

   PERFORM NO_RECORDS.

**********************************************************************

***END OF SELECTION***

END-OF-SELECTION.

   PERFORM UPLOAD_MATERIAL.

*&---------------------------------------------------------------------*

*&      Form  EXCEL_UPLOAD

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM EXCEL_UPLOAD .

   CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

     EXPORTING

       FILENAME                = P_FILE

       I_BEGIN_COL             = P_BCOL

       I_BEGIN_ROW             = P_BROW

       I_END_COL               = P_ECOL

       I_END_ROW               = P_EROW

     TABLES

       INTERN                  = TA_EXCEL

     EXCEPTIONS

       INCONSISTENT_PARAMETERS = 1

       UPLOAD_OLE              = 2

       OTHERS                  = 3.

*  IF SY-SUBRC <> 0.

*

*  ENDIF.

ENDFORM.                    " EXCEL_UPLOAD

*&---------------------------------------------------------------------*

*&      Form  EXCEL_CONVERSION

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM EXCEL_CONVERSION .

   if ta_excel is NOT INITIAL.

     sort ta_excel by row col.

     clear wa_excel.

     clear ta_flatfile.

     LOOP AT ta_excel INTO wa_excel.

          move wa_excel-col to v_index.

          ASSIGN COMPONENT v_index OF STRUCTURE ta_flatfile to <fs>.

          if sy-subrc = 0.

             move wa_excel-value to <fs>.

          ENDIF.

      at END OF row.

        append ta_flatfile.

        clear ta_flatfile.

      ENDAT.

    ENDLOOP.

  else.

    MESSAGE 'no data for conversion' type 'I'.

  ENDIF.

ENDFORM.                    " EXCEL_CONVERSION

*&---------------------------------------------------------------------*

*&      Form  NO_RECORDS

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM NO_RECORDS .

DESCRIBE TABLE ta_flatfile LINES v_lines.

if v_lines = 0.

   MESSAGE 'NO RECORDS TO UPLOAD' TYPE 'E'.

   V_FLAG = 'X'.

ENDIF.

ENDFORM.                    " NO_RECORDS

*&---------------------------------------------------------------------*

*&      Form  UPLOAD_MATERIAL

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM UPLOAD_MATERIAL .

   LOOP AT TA_FLATFILE.

     CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

       EXPORTING

         INPUT         = ta_flatfile-matnr

      IMPORTING

        OUTPUT        = ta_flatfile-matnr

               .

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

       EXPORTING

         INPUT         = ta_flatfile-prctr

      IMPORTING

        OUTPUT        = ta_flatfile-prctr

               .

     "***HEADER

     CLEAR bapi_head.

     bapi_head-material   = TA_FLATFILE-matnr.

     bapi_head-IND_SECTOR = ta_flatfile-mbrsh.

     bapi_head-MATL_TYPE  = ta_flatfile-mtart.

     bapi_head-BASIC_VIEW = 'X'.

     bapi_head-SALES_VIEW = 'X'.

     bapi_head-MRP_VIEW = 'X'.

     bapi_head-PURCHASE_VIEW = 'X'.

*    bapi_head-FORECAST_VIEW = 'X'.

     bapi_head-WORK_SCHED_VIEW = 'X'.

*    bapi_head-PRT_VIEW = 'X'.

     bapi_head-STORAGE_VIEW = 'X'.

     bapi_head-WAREHOUSE_VIEW = 'X'.

     bapi_head-QUALITY_VIEW = 'X'.

     bapi_head-ACCOUNT_VIEW = 'X'.

     bapi_head-COST_VIEW = 'X'.

     "***client specific material data

     clear bapi_mara.

     bapi_mara-matl_group = ta_flatfile-matkl.

     bapi_mara-OLD_MAT_NO = ta_flatfile-bismt.

     bapi_mara-BASE_UOM = ta_flatfile-meins.

     bapi_mara-DOCUMENT = ta_flatfile-dzeinr.

     bapi_mara-DOC_VERS = ta_flatfile-DZEIVR.

     bapi_mara-SIZE_DIM = ta_flatfile-groes.

     bapi_mara-NET_WEIGHt = ta_flatfile-ntgew .

     bapi_mara-UNIT_OF_WT = ta_flatfile-gewei .

     bapi_mara-DIVISION = ta_flatfile-spart .

     bapi_mara-PUR_STATUS = ta_flatfile-mstae.

     bapi_mara-ITEM_CAT = ta_flatfile-mtpos_mara.

     bapi_mara-ITEM_CAT = ta_flatfile-mtpos_mara.

     bapi_mara-ALLWD_VOL = ta_flatfile-volum.

     bapi_mara-PACK_VO_UN = ta_flatfile-voleh.

     bapi_mara-DOC_CHG_NO = ta_flatfile-aeszn.

     bapi_mara-PO_UNIT = ta_flatfile-bstme.

     "Information on update for CLIENTDATA

     clear bapi_marax.

     bapi_marax-matl_group ='X'.

     bapi_marax-OLD_MAT_NO = 'X'.

     bapi_marax-BASE_UOM = 'X'.

     bapi_marax-DOCUMENT = 'X'.

     bapi_marax-DOC_VERS = 'X'.

     bapi_marax-SIZE_DIM = 'X'.

     bapi_marax-NET_WEIGHt = 'X'.

     bapi_marax-UNIT_OF_WT = 'X'.

     bapi_marax-DIVISION = 'X'.

     bapi_mara-PUR_STATUS = 'X'.

     bapi_marax-ITEM_CAT = 'X'.

     bapi_marax-ITEM_CAT = 'X'.

     bapi_marax-ALLWD_VOL = 'X'.

     bapi_marax-PACK_VO_UN = 'X'.

     bapi_marax-DOC_CHG_NO = 'X'.

     bapi_marax-PO_UNIT = 'X'.

     "Plant-specific material data

     clear bapi_marc.

     bapi_marc-PLANT          = ta_flatfile-werks.

     bapi_marc-PUR_GROUP       = ta_flatfile-ekgrp.

     bapi_marc-MRP_TYPE = ta_flatfile-dismm.

     bapi_marc-MRP_CTRLER = ta_flatfile-dispo.

     bapi_marc-PLND_DELRY = ta_flatfile-plifz.

     bapi_marc-GR_PR_TIME = ta_flatfile-webaz.

     bapi_marc-LOTSIZEKEY = ta_flatfile-disls.

     bapi_marc-SM_KEY = ta_flatfile-fhori.

     bapi_marc-AVAILCHECK = ta_flatfile-mtvfp.

     bapi_marc-PROFIT_CTR = ta_flatfile-prctr.

     bapi_marc-REORDER_PT = ta_flatfile-minbe.

     bapi_marc-MAX_STOCK = ta_flatfile-mabst.

     bapi_marc-PROC_TYPE = ta_flatfile-beskz.

     bapi_marc-ISS_ST_LOC = ta_flatfile-lgpro.

     bapi_marc-SLOC_EXPRC = ta_flatfile-lgfsb.

     bapi_marc-DEP_REQ_ID = ta_flatfile-sbdkz.

     "Information on update for PLANTDATA

     clear bapi_marcx.

     bapi_marcx-PLANT = ta_flatfile-werks.

     bapi_marcx-PUR_GROUP = 'X'.

     bapi_marcx-MRP_TYPE = 'X'.

     bapi_marcx-MRP_CTRLER = 'X'.

     bapi_marcx-PLND_DELRY = 'X'.

     bapi_marcx-GR_PR_TIME = 'X'.

     bapi_marcx-LOTSIZEKEY = 'X'.

     bapi_marcx-SM_KEY = 'X'.

     bapi_marcX-AVAILCHECK = 'X'.

     bapi_marcX-PROFIT_CTR = 'X'.

     bapi_marcx-REORDER_PT = 'X'.

     bapi_marcx-MAX_STOCK = 'X'.

     bapi_marcx-PROC_TYPE = 'X'.

     bapi_marcx-ISS_ST_LOC = 'X'.

     bapi_marcx-SLOC_EXPRC = 'X'.

     bapi_marcx-DEP_REQ_ID = 'X'.

   "STORAGE LOCATION DATA

     clear bapi_mard .

     bapi_mard-PLANT = ta_flatfile-werks.

     bapi_mard-stge_loc = ta_flatfile-lgort.

      clear bapi_mardx.

     bapi_mardx-PLANT = ta_flatfile-werks.

     bapi_mardx-stge_loc = ta_flatfile-lgort.

*    bapi_mpop-plant = ta_flatfile-werks.

*    bapi_mpopx-plant = ta_flatfile-werks.

*

*    bapi_mpgd-plant = ta_flatfile-werks.

*    bapi_mpgdx-plant = ta_flatfile-werks.

     "Valuation Data

      clear bapi_mbew.

     bapi_mbew-VAL_CLASS = ta_flatfile-bKLAS.

     bapi_mbew-VAL_AREA = ta_flatfile-bwkey.

*    bapi_mbew-VAL_TYPE = ta_flatfile-bwtar.

     bapi_mbew-MOVING_PR = ta_flatfile-VERPR_BAPI.

     bapi_mbew-qty_struct = ta_flatfile-ekalr.

     bapi_mbew-orig_mat = ta_flatfile-hkmat.

*    bapi_mbew-STD_PRICE = ta_flatfile-stprs.

*    bapi_mbew-PRICE_UNIT = ta_flatfile-peinh.

*    BAPI_MBEW-PRICE_CTRL = TA_FLATFILE-VPRSV.

     """Checkbox Structure for BAPI_MBEW

      clear bapi_mbewx.

     bapi_mbewx-VAL_CLASS = 'X'.

     bapi_mbewx-VAL_AREA = ta_flatfile-WERKS.

*    bapi_mbewx-VAL_TYPE = ta_flatfile-bwtar.

     bapi_mbewx-MOVING_PR = 'X'.

     bapi_mbewx-qty_struct = 'X'.

     bapi_mbewx-orig_mat = 'X'.

*    bapi_mbewx-STD_PRICE = 'X'.

*    bapi_mbewx-PRICE_UNIT = 'X'.

*    BAPI_MBEWX-PRICE_cTRL = 'X'.

     """"sales data***

     clear bapi_mvke.

     bapi_mvke-sales_org = ta_flatfile-vkorg.

     bapi_mvke-distr_chan = ta_flatfile-vtweg.

     bapi_mvke-acct_assgt = ta_flatfile-ktgrm.

     bapi_mvke-matl_stats = ta_flatfile-stgma.

  clear bapi_mvkex.

     bapi_mvkex-sales_org = ta_flatfile-vkorg.

     bapi_mvkex-distr_chan = ta_flatfile-vtweg.

     bapi_mvkex-acct_assgt = 'X'.

     bapi_mvkex-matl_stats = 'X'.

     "material description.

     clear ta_bapimakt.

      ta_bapimakt-langu = ta_flatfile-spras.

      ta_bapimakt-MATL_DESC = ta_flatfile-maktx.

      append ta_bapimakt.

*

      clear ta_bapimarm.

      TA_BAPIMARM-ALT_UNIT = TA_FLATFILE-MEINS.

      ta_bapimarm-GROSS_WT = ta_flatfile-brgew.

      ta_bapimarm-volume = ta_flatfile-volum.

      ta_bapimarm-VOLUMEUNIT = ta_flatfile-voleh.

      ta_bapimarm-UNIT_OF_WT = ta_flatfile-GEWEI.

      append ta_bapimarm.

*

      clear ta_bapimarmx.

      TA_BAPIMARMX-ALT_UNIT = TA_FLATFILE-MEINS.

      ta_bapimarmx-GROSS_WT = 'X'.

      TA_BAPIMARMX-UNIT_OF_WT = 'X'.

      ta_bapimarmx-volume = 'X'.

      TA_BAPIMARMX-VOLUMEUNIT = 'X'.

           append ta_bapimarmx.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

   EXPORTING

     HEADDATA                  = bapi_head

    CLIENTDATA                 = bapi_mara

    CLIENTDATAX                = bapi_marax

    PLANTDATA                  = bapi_marc

    PLANTDATAX                 = bapi_marcx

    FORECASTPARAMETERS         = bapi_mpop

    FORECASTPARAMETERSX        = bapi_mpopx

    PLANNINGDATA               = bapi_mpgd

    PLANNINGDATAX              = bapi_mpgdx

    STORAGELOCATIONDATA        = bapi_mard

    STORAGELOCATIONDATAX       = bapi_mardx

    VALUATIONDATA              = bapi_mbew

    VALUATIONDATAX             = BAPI_MBEWX

    WAREHOUSENUMBERDATA        = bapi_mlgn

    WAREHOUSENUMBERDATAX       = bapi_mlgnx

    SALESDATA                  = bapi_mvke

    SALESDATAX                 = bapi_mvkex

    STORAGETYPEDATA            = bapi_mlgt

    STORAGETYPEDATAX           = bapi_mlgtx

  IMPORTING

    RETURN                     = bapireturn

  TABLES

    MATERIALDESCRIPTION        = ta_bapimakt

    UNITSOFMEASURE             = ta_bapimarm

    UNITSOFMEASUREX            = ta_bapimarmx.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

* EXPORTING

*   WAIT          = 'X'

** IMPORTING

**   RETURN        =

           .

if bapireturn-type = 'E'.

     write:/ 'error:', bapireturn-message , 'for material:  ' , ta_flatfile-matnr.

   ELSEIF bapireturn-type = 'S'.

     write:/ 'success:', bapireturn-message , 'for material:  ' , ta_flatfile-matnr.

   ENDIF.

clear bapireturn.

       ENDLOOP.