<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Problem in using BAPI_MATERIAL_SAVEDATA in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-using-bapi-material-savedata/m-p/3622899#M872796</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Vankatesh Rao,&lt;/P&gt;&lt;P&gt;                              Error message is clearly telling that you are not passing the correct value for the PLANT field . &lt;/P&gt;&lt;P&gt;  Your code :&lt;/P&gt;&lt;P&gt;     la_PLANTDATA-plant = '5530'.&lt;/P&gt;&lt;P&gt;     la_PLANTDATAX-plant = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this needs to be changed to :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     la_PLANTDATA-plant = '5530'.&lt;/P&gt;&lt;P&gt;     la_PLANTDATAX-plant = '5530'.&lt;/P&gt;&lt;P&gt;Update field only needs to hold X and not the PLANT field on your structure "  la_PLANTDATAX".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let me know if you have any questions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Greetson&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 26 Mar 2008 20:33:25 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-03-26T20:33:25Z</dc:date>
    <item>
      <title>Problem in using BAPI_MATERIAL_SAVEDATA</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-using-bapi-material-savedata/m-p/3622898#M872795</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I want to extend a Material from Plant A to Plant B. I am getting the following error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;E   MM         360 Key fields for user data PLANTDATA and checkbox structure PLANTDATAX are different&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please correct in the following code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: la_headdata type BAPIMATHEAD,&lt;/P&gt;&lt;P&gt;la_clientdata type BAPI_MARA,&lt;/P&gt;&lt;P&gt;la_CLIENTDATAX type BAPI_MARAX,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;la_PLANTDATA type BAPI_marc,    "Plant View&lt;/P&gt;&lt;P&gt;la_PLANTDATAX type bapi_marcx,  "Plant View&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;la_mbew  type  bapi_mbew,    "Accounting View&lt;/P&gt;&lt;P&gt;la_mbewx  type bapi_mbewx.&lt;/P&gt;&lt;P&gt;*la_return type BAPIRET2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*to return messages&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF la_RETURN OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE BAPIRET2.&lt;/P&gt;&lt;P&gt;DATA:END OF la_RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: i_materialdescription type table of BAPI_MAKT,&lt;/P&gt;&lt;P&gt;      wa_mat_desc like line of i_materialdescription.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;la_headdata-MATERIAL = '000001000000004000'.&lt;/P&gt;&lt;P&gt;la_headdata-IND_SECTOR = 'M'.&lt;/P&gt;&lt;P&gt;la_headdata-MATL_TYPE = 'ZALB'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    la_headdata-basic_view      = 'X'.&lt;/P&gt;&lt;P&gt;    la_headdata-purchase_view   = 'X'.&lt;/P&gt;&lt;P&gt;    la_headdata-account_view    = 'X'.&lt;/P&gt;&lt;P&gt;    la_headdata-MRP_VIEW        = 'X'.&lt;/P&gt;&lt;P&gt;    la_headdata-STORAGE_VIEW    = 'X'.&lt;/P&gt;&lt;P&gt;    la_headdata-COST_VIEW       = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Client Data - Basic&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;la_clientdata-BASE_UOM = 'EA'.&lt;/P&gt;&lt;P&gt;la_CLIENTDATAX-BASE_UOM = 'X'.&lt;/P&gt;&lt;P&gt;la_clientdata-MATL_GROUP = '21001000'.&lt;/P&gt;&lt;P&gt;la_CLIENTDATAX-MATL_GROUP = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; la_clientdata-unit_of_wt     = 'KG'.&lt;/P&gt;&lt;P&gt; la_clientdatax-unit_of_wt    = 'X'.&lt;/P&gt;&lt;P&gt; la_clientdata-division       = '10'.&lt;/P&gt;&lt;P&gt; la_clientdatax-division      = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Material Description&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;wa_mat_desc-langu           = 'E'.&lt;/P&gt;&lt;P&gt;wa_mat_desc-MATL_DESC = '+TLA,FILTER KIT,BUNDLE B'.&lt;/P&gt;&lt;P&gt;append wa_mat_desc to i_materialdescription.&lt;/P&gt;&lt;P&gt;clear: wa_mat_desc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Plant - Purchasing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;la_PLANTDATA-plant     = '5530'.&lt;/P&gt;&lt;P&gt;la_PLANTDATAX-plant     = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;la_PLANTDATA-pur_group     = '006'.&lt;/P&gt;&lt;P&gt;la_PLANTDATAX-pur_group    = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Accounting&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;la_mbew-val_area = '5530'.&lt;/P&gt;&lt;P&gt;la_mbewx-val_area = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;la_mbew-price_ctrl = 'S'.&lt;/P&gt;&lt;P&gt;la_mbewx-price_ctrl = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;la_mbew-std_price = '0.01'.&lt;/P&gt;&lt;P&gt;la_mbewx-std_price = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*la_mbew-price_unit = '1.000'.&lt;/P&gt;&lt;P&gt;*la_mbewx-price_unit = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;headdata = la_headdata&lt;/P&gt;&lt;P&gt;CLIENTDATA = la_clientdata&lt;/P&gt;&lt;P&gt;CLIENTDATAX = la_CLIENTDATAX&lt;/P&gt;&lt;P&gt; PLANTDATA = la_PLANTDATA&lt;/P&gt;&lt;P&gt; PLANTDATAX = la_PLANTDATAX&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORECASTPARAMETERS =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORECASTPARAMETERSX =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PLANNINGDATA =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PLANNINGDATAX =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;STORAGELOCATIONDATA =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;STORAGELOCATIONDATAX =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; VALUATIONDATA = la_mbew&lt;/P&gt;&lt;P&gt; VALUATIONDATAX = la_mbewx&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WAREHOUSENUMBERDATA =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WAREHOUSENUMBERDATAX =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SALESDATA =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SALESDATAX =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;STORAGETYPEDATA =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;STORAGETYPEDATAX =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FLAG_ONLINE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FLAG_CAD_CALL = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;RETURN = la_return&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;MATERIALDESCRIPTION = i_materialdescription&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;UNITSOFMEASURE =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;UNITSOFMEASUREX =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INTERNATIONALARTNOS =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MATERIALLONGTEXT =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TAXCLASSIFICATIONS =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;RETURNMESSAGES =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PRTDATA =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PRTDATAX =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXTENSIONIN =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXTENSIONINX =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;read table la_return with key TYPE = 'S'.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WRITE:/ la_RETURN-TYPE,&lt;/P&gt;&lt;P&gt;    2 la_RETURN-ID,&lt;/P&gt;&lt;P&gt;    22 la_RETURN-NUMBER,&lt;/P&gt;&lt;P&gt;    25 la_RETURN-MESSAGE.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Mar 2008 20:09:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-using-bapi-material-savedata/m-p/3622898#M872795</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-26T20:09:47Z</dc:date>
    </item>
    <item>
      <title>Re: Problem in using BAPI_MATERIAL_SAVEDATA</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-using-bapi-material-savedata/m-p/3622899#M872796</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Vankatesh Rao,&lt;/P&gt;&lt;P&gt;                              Error message is clearly telling that you are not passing the correct value for the PLANT field . &lt;/P&gt;&lt;P&gt;  Your code :&lt;/P&gt;&lt;P&gt;     la_PLANTDATA-plant = '5530'.&lt;/P&gt;&lt;P&gt;     la_PLANTDATAX-plant = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this needs to be changed to :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     la_PLANTDATA-plant = '5530'.&lt;/P&gt;&lt;P&gt;     la_PLANTDATAX-plant = '5530'.&lt;/P&gt;&lt;P&gt;Update field only needs to hold X and not the PLANT field on your structure "  la_PLANTDATAX".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let me know if you have any questions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Greetson&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Mar 2008 20:33:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-using-bapi-material-savedata/m-p/3622899#M872796</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-26T20:33:25Z</dc:date>
    </item>
    <item>
      <title>Re: Problem in using BAPI_MATERIAL_SAVEDATA</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-using-bapi-material-savedata/m-p/3622900#M872797</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;hope this code gives you an idea&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;*&amp;amp;---------------------------------------------------------------------*

*&amp;amp; Report ZKAR_MATMAS_BAPI

*&amp;amp;---------------------------------------------------------------------*

*&amp;amp; This program demonstrates how easy it is to create Material master

*&amp;amp; data using BAPI_MATERIAL_SAVEDATA

*&amp;amp; The program also generates a report post-execution displaying errors

*&amp;amp; as well as successful uploads

*&amp;amp;---------------------------------------------------------------------*
REPORT ZKAR_MATMAS_BAPI.
*----------------------------------------------------------------------*

* TABLES

*----------------------------------------------------------------------*
*----------------------------------------------------------------------*

* FLAGS *

*----------------------------------------------------------------------*
DATA: F_STOP. " Flag used to stop processing
*----------------------------------------------------------------------*

* DATA DECLARATIONS *

*----------------------------------------------------------------------*
DATA : V_EMPTY TYPE I, " No. of empty records

V_TOTAL TYPE I. " Total no. of records.
*----------------------------------------------------------------------*

* STRUCTURES &amp;amp; INTERNAL TABLES

*----------------------------------------------------------------------*
*BAPI structures

*----------------------------------------------------------------------*

DATA: BAPI_HEAD LIKE BAPIMATHEAD, " Header Segment with Control Information

BAPI_MAKT LIKE BAPI_MAKT, " Material Description

BAPI_MARA1 LIKE BAPI_MARA, " Client Data

BAPI_MARAX LIKE BAPI_MARAX, " Checkbox Structure for BAPI_MARA

BAPI_MARC1 LIKE BAPI_MARC, " Plant View

BAPI_MARCX LIKE BAPI_MARCX, " Checkbox Structure for BAPI_MARC

BAPI_MBEW1 LIKE BAPI_MBEW, " Accounting View

BAPI_MBEWX LIKE BAPI_MBEWX, " Checkbox Structure for BAPI_MBEW

BAPI_RETURN LIKE BAPIRET2. " Return Parameter

*--- Internal table to hold excel file data

DATA: IT_INTERN TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.

*--- Internal table to hold Matetrial descriptions

DATA: BEGIN OF IT_MAKT OCCURS 100.

        INCLUDE STRUCTURE BAPI_MAKT.

DATA: END OF IT_MAKT.

*--- Internal to hold the records in the text file

DATA : BEGIN OF IT_DATA OCCURS 100,

            WERKS(4), " Plant

            MTART(4), " Material type

            MATNR(18), " Material number

            MATKL(9) , " Material group

            MBRSH(1), " Industry sector

            MEINS(3), " Base unit of measure

            GEWEI(3), " Weight Unit

            SPART(2), " Division

            EKGRP(3), " Purchasing group

            VPRSV(1), " Price control indicator

            STPRS(12), " Standard price

            PEINH(3), " Price unit

            SPRAS(2), " Language key

            MAKTX(40), " Material description

            END OF IT_DATA.

*----------------------------------------------------------------------*

* SELECTION SCREEN. *

*----------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK SCR1 WITH FRAME TITLE TEXT-111.

PARAMETER : P_FILE TYPE RLGRAP-FILENAME OBLIGATORY DEFAULT " Input File

'C:\Material_master.XLS'.

PARAMETER : P_MAX(4) OBLIGATORY DEFAULT '100'. " no.of recs in a session

PARAMETERS: P_HEADER TYPE I DEFAULT 0. " Header Lines

PARAMETERS: P_BEGCOL TYPE I DEFAULT 1 NO-DISPLAY,

P_BEGROW TYPE I DEFAULT 1 NO-DISPLAY,

P_ENDCOL TYPE I DEFAULT 100 NO-DISPLAY,

P_ENDROW TYPE I DEFAULT 32000 NO-DISPLAY.

SELECTION-SCREEN END OF BLOCK SCR1.

*---------------------------------------------------------------------*

* AT SELECTION-SCREEN *

*---------------------------------------------------------------------*

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

*--- Validating file

  PERFORM VALIDATE_FILE USING P_FILE.

*----------------------------------------------------------------------*

* START-OF-SELECTION

*----------------------------------------------------------------------*

START-OF-SELECTION.

*--- Perform to convert the Excel data into an internal table

  PERFORM CONVERT_XLS_ITAB.

  IF NOT IT_DATA[] IS INITIAL.

*--- Perform to delete Header lines

    PERFORM DELETE_HEADER_EMPTY_RECS.

  ENDIF.

*----------------------------------------------------------------------*

* END OF SELECTION. *

*----------------------------------------------------------------------*

END-OF-SELECTION.

*--- Perform to upload Material Master data

  PERFORM UPLOAD_MATMAS.

*----------------------------------------------------------------------*

* Form : validate_input_file

*----------------------------------------------------------------------*

* Description : To provide F4 help for file if read from PC

*----------------------------------------------------------------------*

FORM VALIDATE_FILE USING F_FILE TYPE RLGRAP-FILENAME.

  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
    CHANGING
      FILE_NAME     = F_FILE
    EXCEPTIONS
      MASK_TOO_LONG = 1
      OTHERS        = 2.

  IF SY-SUBRC &amp;lt;&amp;gt; 0.

    MESSAGE S010(ZLKPL_MSGCLASS). " 'Error in getting filename'.

  ENDIF.

ENDFORM. " validate_input_file

*&amp;amp;---------------------------------------------------------------------*

*&amp;amp; Form CONVER_XLS_ITAB

*&amp;amp;---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

FORM CONVERT_XLS_ITAB.

  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      FILENAME    = P_FILE
      I_BEGIN_COL = P_BEGCOL
      I_BEGIN_ROW = P_BEGROW
      I_END_COL   = P_ENDCOL
      I_END_ROW   = P_ENDROW
    TABLES
      INTERN      = IT_INTERN.

  IF SY-SUBRC &amp;lt;&amp;gt; 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  ENDIF.

*--- Perform to move the data into an internal data

  PERFORM MOVE_DATA.

ENDFORM. " CONVERT_XLS_ITAB

*&amp;amp;---------------------------------------------------------------------*

*&amp;amp; Form MOVE_DATA

*&amp;amp;---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

FORM MOVE_DATA.

  DATA : LV_INDEX TYPE I.

  FIELD-SYMBOLS &amp;lt;FS&amp;gt;.

*--- Sorting the internal table

  SORT IT_INTERN BY ROW COL.

  CLEAR IT_INTERN.

  LOOP AT IT_INTERN.

    MOVE IT_INTERN-COL TO LV_INDEX.

*--- Assigning the each record to an internal table row

    ASSIGN COMPONENT LV_INDEX OF STRUCTURE IT_DATA TO &amp;lt;FS&amp;gt;.

*--- Asigning the field value to a field symbol

    MOVE IT_INTERN-VALUE TO &amp;lt;FS&amp;gt;.

    AT END OF ROW.

      APPEND IT_DATA.

      CLEAR IT_DATA.

    ENDAT.

  ENDLOOP.

ENDFORM. " MOVE_DATA

*&amp;amp;---------------------------------------------------------------------*

*&amp;amp; Form DELETE_HEADER_EMPTY_RECS

*&amp;amp;---------------------------------------------------------------------*

* To delete the Header and empty records

*----------------------------------------------------------------------*

FORM DELETE_HEADER_EMPTY_RECS.

  DATA: LV_TABIX LIKE SY-TABIX.

  IF NOT P_HEADER IS INITIAL.

    LOOP AT IT_DATA.

      IF P_HEADER &amp;gt; 0 AND NOT IT_DATA IS INITIAL.

        DELETE IT_DATA FROM 1 TO P_HEADER.

* P_HEADER = 0.

        EXIT.

      ENDIF.

    ENDLOOP.

  ENDIF.

  CLEAR IT_DATA.

*--- To delete the empty lines from internal table

  LOOP AT IT_DATA.

    LV_TABIX = SY-TABIX.

    IF IT_DATA IS INITIAL.

      V_EMPTY = V_EMPTY + 1.

      DELETE IT_DATA INDEX LV_TABIX..

    ENDIF.

  ENDLOOP.

  CLEAR IT_DATA.

*--- Total no of recs in file

  DESCRIBE TABLE IT_DATA LINES V_TOTAL.

  IF V_TOTAL = 0.

    MESSAGE I013(ZLKPL_MSGCLASS). " No records in the file

    F_STOP = 'X'.

    STOP.

  ENDIF.

ENDFORM. " DELETE_HEADER_EMPTY_RECS

*&amp;amp;---------------------------------------------------------------------*

*&amp;amp; Form UPLOAD_MATMAS

*&amp;amp;---------------------------------------------------------------------*

* to upload Material Master data

*----------------------------------------------------------------------*

FORM UPLOAD_MATMAS .

  LOOP AT IT_DATA.

* Header
    UNPACK IT_DATA-MATNR TO IT_DATA-MATNR.
    BAPI_HEAD-MATERIAL = IT_DATA-MATNR.

    BAPI_HEAD-IND_SECTOR = IT_DATA-MBRSH.

    BAPI_HEAD-MATL_TYPE = IT_DATA-MTART.

    BAPI_HEAD-BASIC_VIEW = 'X'.

    BAPI_HEAD-PURCHASE_VIEW = 'X'.

    BAPI_HEAD-ACCOUNT_VIEW = 'X'.

* Material Description

    REFRESH IT_MAKT.

    IT_MAKT-LANGU = IT_DATA-SPRAS.

    IT_MAKT-MATL_DESC = IT_DATA-MAKTX.

    APPEND IT_MAKT.

* Client Data - Basic

    BAPI_MARA1-MATL_GROUP = IT_DATA-MATKL.

    BAPI_MARA1-BASE_UOM = IT_DATA-MEINS.

    BAPI_MARA1-UNIT_OF_WT = IT_DATA-GEWEI.

    BAPI_MARA1-DIVISION = IT_DATA-SPART.

    BAPI_MARAX-MATL_GROUP = 'X'.

    BAPI_MARAX-BASE_UOM = 'X'.

    BAPI_MARAX-UNIT_OF_WT = 'X'.

    BAPI_MARAX-DIVISION = 'X'.

* Plant - Purchasing

    BAPI_MARC1-PLANT = IT_DATA-WERKS.

    BAPI_MARC1-PUR_GROUP = IT_DATA-EKGRP.

    BAPI_MARCX-PLANT = IT_DATA-WERKS.

    BAPI_MARCX-PUR_GROUP = 'X'.

* Accounting

    BAPI_MBEW1-VAL_AREA = IT_DATA-WERKS.

    BAPI_MBEW1-PRICE_CTRL = IT_DATA-VPRSV.

    BAPI_MBEW1-STD_PRICE = IT_DATA-STPRS.

    BAPI_MBEW1-PRICE_UNIT = IT_DATA-PEINH.

    BAPI_MBEWX-VAL_AREA = IT_DATA-WERKS.

    BAPI_MBEWX-PRICE_CTRL = 'X'.

    BAPI_MBEWX-STD_PRICE = 'X'.

    BAPI_MBEWX-PRICE_UNIT = 'X'.

*--- BAPI to create material

    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

    EXPORTING

    HEADDATA = BAPI_HEAD

    CLIENTDATA = BAPI_MARA1

    CLIENTDATAX = BAPI_MARAX

    PLANTDATA = BAPI_MARC1

    PLANTDATAX = BAPI_MARCX

* FORECASTPARAMETERS =

* FORECASTPARAMETERSX =

* PLANNINGDATA =

* PLANNINGDATAX =

* STORAGELOCATIONDATA =

* STORAGELOCATIONDATAX =

* VALUATIONDATA = BAPI_MBEW1

* VALUATIONDATAX = BAPI_MBEWX

* WAREHOUSENUMBERDATA =

* WAREHOUSENUMBERDATAX =

* SALESDATA = BAPI_MVKE1

* SALESDATAX = BAPI_MVKEX

* STORAGETYPEDATA =

* STORAGETYPEDATAX =

    IMPORTING

    RETURN = BAPI_RETURN

    TABLES

    MATERIALDESCRIPTION = IT_MAKT

* UNITSOFMEASURE =

* UNITSOFMEASUREX =

* INTERNATIONALARTNOS =

* MATERIALLONGTEXT =

* TAXCLASSIFICATIONS =

* RETURNMESSAGES =

* PRTDATA =

* PRTDATAX =

* EXTENSIONIN =

* EXTENSIONINX =

    .

    IF BAPI_RETURN-TYPE = 'E'.

      WRITE:/ 'Error:' ,BAPI_RETURN-MESSAGE ,'for material:' ,IT_DATA-MATNR.

    ELSEIF BAPI_RETURN-TYPE = 'S'.

      WRITE: 'Successfully created material' ,IT_DATA-MATNR.

    ENDIF.

  ENDLOOP.

ENDFORM. " UPLOAD_MATMAS&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;V.Balaji&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if Usefull...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Mar 2008 02:11:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-using-bapi-material-savedata/m-p/3622900#M872797</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-27T02:11:34Z</dc:date>
    </item>
    <item>
      <title>Re: Problem in using BAPI_MATERIAL_SAVEDATA</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-using-bapi-material-savedata/m-p/3622901#M872798</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Greetson,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you for the valuable information.&lt;/P&gt;&lt;P&gt;Actually I want to extend material XXX from plant 5500 to 5530.&lt;/P&gt;&lt;P&gt;I have changed PLANTDATAX-plant value as you suggested.&lt;/P&gt;&lt;P&gt;The material has been created successfully.&lt;/P&gt;&lt;P&gt;The system was prompted to maintain the values for AVAILCHECK, MRP_TYPE, MRP_CTRLER, SM_KEY and LOTSIZEKEY. I have checked the material in MARC for plant 5500 and given the same values for plant 5530.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---- Plant - Purchasing&lt;/P&gt;&lt;P&gt;la_PLANTDATA-plant      = '5530'.&lt;/P&gt;&lt;P&gt;la_PLANTDATAX-plant     = '5530'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;la_PLANTDATA-pur_group     = '006'.&lt;/P&gt;&lt;P&gt;la_PLANTDATAX-pur_group    = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*BAPI_MARC-AVAILCHECK&lt;/P&gt;&lt;P&gt;la_PLANTDATA-AVAILCHECK  = '02'.&lt;/P&gt;&lt;P&gt;la_PLANTDATAX-AVAILCHECK = '02'.&lt;/P&gt;&lt;P&gt;*MRP Type&lt;/P&gt;&lt;P&gt;la_PLANTDATA-MRP_TYPE  = 'PD'.&lt;/P&gt;&lt;P&gt;la_PLANTDATAX-MRP_TYPE = 'PD'.&lt;/P&gt;&lt;P&gt;*MRP Controller&lt;/P&gt;&lt;P&gt;la_PLANTDATA-MRP_CTRLER  = '001'.&lt;/P&gt;&lt;P&gt;la_PLANTDATAX-MRP_CTRLER = '001'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Scheduling Margin Key for Floats&lt;/P&gt;&lt;P&gt;la_PLANTDATA-SM_KEY  = '000'.&lt;/P&gt;&lt;P&gt;la_PLANTDATAX-SM_KEY = '000'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Lot size (materials planning)&lt;/P&gt;&lt;P&gt;la_PLANTDATA-LOTSIZEKEY = 'EX'.&lt;/P&gt;&lt;P&gt;la_PLANTDATAX-LOTSIZEKEY = 'EX'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Finally the material is got created. But the way I am doing is it correct?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And also I need to maintain this for all the views Basic Data 1, Basic Data 2, Sales: Sales Org. Data 1, Sales: Sales Org. Data 2, Sales: General/Plant Data,  Sales Text,  Purchasing,  Purchase Order Text, MRP 1, MRP 2, MRP 3, MRP 4, Work Scheduling, General Plant Data / Storage 1, General Plant Data / Storage 2, Accounting 1, Accounting 2, Costing 1 and Costing 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please guide me how to pass the values to BAPI for these views.&lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Vankatesh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Mar 2008 14:40:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-using-bapi-material-savedata/m-p/3622901#M872798</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-27T14:40:15Z</dc:date>
    </item>
    <item>
      <title>Re: Problem in using BAPI_MATERIAL_SAVEDATA</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-using-bapi-material-savedata/m-p/3622902#M872799</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Your answer is still usefull : great help for me !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a nice day,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Paskalo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Aug 2014 15:04:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-using-bapi-material-savedata/m-p/3622902#M872799</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2014-08-08T15:04:07Z</dc:date>
    </item>
  </channel>
</rss>

