<?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: BAPI_MATERIAL_SAVEDATA (problem to create the data) in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-material-savedata-problem-to-create-the-data/m-p/2466540#M553994</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HEllo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This should be all you need.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
REPORT ZV_MAT_CREATE .


DATA: HEADDATA TYPE BAPIMATHEAD.
DATA: CLIENTDATA TYPE BAPI_MARA.
DATA: CLIENTDATAX TYPE BAPI_MARAX.
DATA: RETURN TYPE  BAPIRET2 .
DATA: RETURNM TYPE TABLE OF BAPI_MATRETURN2 WITH HEADER LINE.
DATA: XMARA TYPE MARA.
DATA: RETURNMESSAGES LIKE BAPIRET2        OCCURS 0 WITH HEADER LINE.
DATA: MATERIALDESCRIPTION LIKE BAPI_MAKT  OCCURS 0 WITH HEADER LINE.
PARAMETERS: P_MATNR TYPE MARA-MATNR,
            P_MAKTX LIKE MAKT-MAKTX.

SELECT SINGLE * FROM MARA INTO XMARA
          WHERE MATNR = P_MATNR.

HEADDATA-MATERIAL   = P_MATNR.
HEADDATA-MATL_TYPE  = 'FERT'.
HEADDATA-IND_SECTOR = 'M'.
HEADDATA-BASIC_VIEW = 'X'.

*clientdata-del_flag =  'X'.
*clientdatax-del_flag = 'X'.
* Daten für die Sicht GRUNDDATEN 1
MATERIALDESCRIPTION-LANGU = SY-LANGU.
MATERIALDESCRIPTION-MATL_DESC = P_MAKTX.
APPEND MATERIALDESCRIPTION.
*---------------------------------------------------------------------*
* Mandantenspezifische Materialdaten
*---------------------------------------------------------------------*
CLIENTDATA-BASE_UOM  = 'ST'.
CLIENTDATAX-BASE_UOM = 'X'.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
     EXPORTING
          HEADDATA            = HEADDATA
          CLIENTDATA          = CLIENTDATA
          CLIENTDATAX         = CLIENTDATAX
     IMPORTING
          RETURN              = RETURN
     TABLES
          RETURNMESSAGES      = RETURNM
          MATERIALDESCRIPTION = MATERIALDESCRIPTION.

CHECK SY-SUBRC  = 0.
COMMIT WORK AND WAIT.

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Vasanth&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 22 Jun 2007 08:15:42 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-06-22T08:15:42Z</dc:date>
    <item>
      <title>BAPI_MATERIAL_SAVEDATA (problem to create the data)</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-material-savedata-problem-to-create-the-data/m-p/2466537#M553991</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi all,&lt;/P&gt;&lt;P&gt;I am using Bapi&lt;/P&gt;&lt;P&gt;BAPI_MATERIAL_SAVEDATA to create a material.&lt;/P&gt;&lt;P&gt;i am executing the above FM and&lt;/P&gt;&lt;P&gt;passing data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HEADDATA-----&lt;/P&gt;&lt;P&gt;material&lt;/P&gt;&lt;P&gt;idustry sector&lt;/P&gt;&lt;P&gt;material type&lt;/P&gt;&lt;P&gt;basic view = X&lt;/P&gt;&lt;P&gt;material_external = here i am passing the material description&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLIENTDATA----&lt;/P&gt;&lt;P&gt;BASE_UOM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;after executing the FM &lt;/P&gt;&lt;P&gt;i am getting the message    NO Description is Transferred&lt;/P&gt;&lt;P&gt;plz suggest me where i am getting wrong?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;sanjeev&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2007 08:07:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-material-savedata-problem-to-create-the-data/m-p/2466537#M553991</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-22T08:07:12Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_MATERIAL_SAVEDATA (problem to create the data)</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-material-savedata-problem-to-create-the-data/m-p/2466538#M553992</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Here is the Sample code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report ZMMR_DELETEPO                                               *
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;  Author                    : Bikash Agarwal
*&amp;amp;  Description               : VTLS PO Change
*&amp;amp;  Program Objective         : Places a DELETION indicator for the PO
*&amp;amp;                              items given in the VTLS data
*&amp;amp;  Remarks                   : NA
*&amp;amp;---------------------------------------------------------------------*

REPORT ZMMR_DELETEPO NO STANDARD PAGE HEADING MESSAGE-ID zisb.

tables : zvtls_sap.

*C-- Types Declarations

TYPES : BEGIN OF tp_flatfile_vtls,
        ebeln(10),
        ebelp type ekpo-ebelp,
        END OF tp_flatfile_vtls.

*=====================================================================
*                   INTERNAL TABLES DECLARATION
*=====================================================================

DATA:  t_flatfile_vtls TYPE tp_flatfile_vtls OCCURS 0 WITH HEADER LINE.

data : begin of t_sapdata occurs 0,
       po like zvtls_sap-posap,
       item like zvtls_sap-itemsap,
       end of t_sapdata.

data : begin of t_flatfile_vtls1 occurs 0,
       po(10),
       item like zvtls_sap-itemsap,
       end of t_flatfile_vtls1.

data : begin of t_update occurs 0,
       mandt like zvtls_sap-mandt,
       povtls like zvtls_sap-povtls,
       itemvtls like zvtls_sap-itemvtls,
       posap like zvtls_sap-posap,
       itemsap like zvtls_sap-itemsap,
       aedat like zvtls_sap-aedat,
       paedt like zvtls_sap-paedt,
       loekz like zvtls_sap-loekz,
       end of t_update.

data : begin of t_poheader occurs 0,
       po like zvtls_sap-posap,
       end of t_poheader.

data : begin of t_poitem occurs 0,
       po like zvtls_sap-posap,
       item like zvtls_sap-itemsap,
       end of t_poitem.

DATA : BEGIN OF T_MESSAGE OCCURS 0,
       MSGTY,
       MSGID(2),
       MSGNO(3),
       MSGTX(100),
       PO like zvtls_sap-povtls,
       item like zvtls_sap-itemvtls,
       END OF T_MESSAGE.

DATA : BEGIN OF t_bapi_poheader OCCURS 0.
        INCLUDE STRUCTURE bapimepoheader.
DATA : END OF t_bapi_poheader.

DATA : BEGIN OF t_bapi_poheaderx OCCURS 0.
        INCLUDE STRUCTURE bapimepoheaderx.
DATA : END OF t_bapi_poheaderx.

DATA : BEGIN OF t_bapi_poitem OCCURS 0.
        INCLUDE STRUCTURE bapimepoitem.
DATA : END OF t_bapi_poitem.

DATA : BEGIN OF t_bapi_poitemx OCCURS 0.
        INCLUDE STRUCTURE bapimepoitemx.
DATA : END OF t_bapi_poitemx.

DATA : BEGIN OF t_bapireturn OCCURS 0.
        INCLUDE STRUCTURE bapiret2.
DATA : END OF t_bapireturn.

*=====================================================================
*                   V A R I A B L E S
*=====================================================================

DATA: w_success(6)  TYPE n,
      w_bklas like t023-bklas,
      w_curryear(4),
      w_begda like sy-datum,
      w_endda like sy-datum,
      w_begyr(4),
      w_endyr(4),
      w_currmon(2),
      w_assetclass like ankt-anlkl,
      w_price type p,
      w_recordsap type i,
      w_povtls(10),
      w_count type i.

DATA:  w_filepath TYPE rlgrap-filename,
       w_rc TYPE sy-subrc,
       w_sscrfields_ucomm1   TYPE sscrfields-ucomm,
       w_file1 TYPE string,
       w_file2 TYPE FILENAME-FILEINTERN.

*=====================================================================
*                   C O N S T A N T S
*=====================================================================

CONSTANTS: c_x              TYPE  c         VALUE 'X',
           c_hyp            TYPE  c         VALUE '-',
           c_err            TYPE  bdc_mart  VALUE 'E'.

CONSTANTS:  c_slash(1)            TYPE c VALUE '/',
            c_hash(1)             TYPE c VALUE '#',
            c_pipe                TYPE c VALUE '|',
            c_1                   TYPE i VALUE 1,
            c_zero                TYPE n VALUE '0',
            c_rg1(3)              TYPE c VALUE 'rg1',
            c_gr3(3)              TYPE c VALUE 'GR3',
            c_gr2(3)              TYPE c VALUE 'GR2',
            c_e(1)                TYPE c VALUE 'E',
            c_filepath(8)         TYPE c VALUE '/interf/',
            c_filetype(10)        TYPE c VALUE 'ASC'.

CONSTANTS : c_bapimepoheaderx   TYPE x030l-tabname
                               VALUE 'bapimepoheaderx',
           c_bapimepoitem      TYPE  x030l-tabname
                               VALUE 'bapimepoitem',
           c_bapimepoaccount   TYPE  x030l-tabname
                               VALUE 'bapimepoaccount',
           c_t_bapi_poheader(15)        TYPE c
                                        VALUE 't_bapi_poheader',
           c_t_bapi_poitem(13)          TYPE c
                                        VALUE 't_bapi_poitem',
           c_t_bapi_poitemx(14)         TYPE c
                                        VALUE 't_bapi_poitemx',
           c_t_bapi_poheaderx(16)       TYPE c
                                        VALUE 't_bapi_poheaderx'.

CLASS cl_abap_char_utilities DEFINITION LOAD.
CONSTANTS:con_tab  TYPE c VALUE cl_abap_char_utilities=&amp;gt;horizontal_tab.

*======================================================================
*                        SELECTION SCREEN
*======================================================================

SELECTION-SCREEN BEGIN OF BLOCK inputpath WITH FRAME TITLE text-001.

SELECTION-SCREEN : BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.
PARAMETERS : p_fore RADIOBUTTON GROUP rg1
                    USER-COMMAND pc,
             p_back RADIOBUTTON GROUP rg1 DEFAULT 'X'.
SELECTION-SCREEN : END OF BLOCK blk2.

SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-003.
PARAMETERS :  p_file1 LIKE rlgrap-filename OBLIGATORY MODIF ID gr2.
PARAMETERS :  p_afile1 LIKE rlgrap-filename OBLIGATORY MODIF ID gr3.
SELECTION-SCREEN : END OF BLOCK blk1.

SELECTION-SCREEN END OF BLOCK inputpath.

*C-- Initialization Event

INITIALIZATION.

  CLEAR w_filepath.
  CONCATENATE c_filepath sy-sysid c_slash sy-mandt c_slash INTO
  w_filepath.

  CONDENSE w_filepath NO-GAPS.

  p_file1 = text-008.

  p_afile1 = text-009.

*======================================================================
*                        SELECTION SCREEN EVENTS
*======================================================================

*C-- Selection Screen Output

AT SELECTION-SCREEN OUTPUT.
  IF p_fore = c_x.
    w_sscrfields_ucomm1 = space.
  ELSE.
    w_sscrfields_ucomm1 = c_rg1.
  ENDIF.

  LOOP AT SCREEN.

*C--Modify selection screen if presentation
*C--or application server radio button is chosen

    IF w_sscrfields_ucomm1 = space.
      IF screen-group1 = c_gr3.
        screen-active = c_zero.
      ENDIF.
    ELSE.

      IF screen-group1 = c_gr2.
        screen-active = c_zero.
      ENDIF.
    ENDIF.

    if screen-name = 'P_AFILE1'.
      screen-input = 0.
    ENDIF.
    MODIFY SCREEN.

  ENDLOOP.

*C-- Selection Screen VALUE-REQUEST FOR File path

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.

  IF p_fore EQ c_x.

    CALL FUNCTION 'F4_FILENAME'
      EXPORTING
        program_name  = syst-cprog
        dynpro_number = syst-dynnr
      IMPORTING
        file_name     = p_file1.
  ENDIF.

*C-- At Start of the Selection Process

START-OF-SELECTION.

  IF p_fore EQ c_x.
    w_file1 = p_file1.
  ELSE.
    w_file2 = p_afile1.
  ENDIF.

  IF p_fore EQ c_x. " Presentaion Server

*C--Validations for the input files

    PERFORM validate_pre_file USING p_file1.

*C-- Load the contents of the input file into the internal table

    PERFORM upload_file TABLES t_flatfile_vtls
                        USING w_file1
                        CHANGING w_rc.

    IF w_rc &amp;lt;&amp;gt; 0.
      MESSAGE s006 DISPLAY LIKE c_e.
    ENDIF.

  ELSE. " Application Server

*C--Validations for the input files

    PERFORM validate_app_file USING  w_file2.

*C-- Load the contents of the input file into the internal table

    PERFORM upload_file_app TABLES t_flatfile_vtls
                            USING w_file2
                            CHANGING w_rc.

  ENDIF.

  loop at t_flatfile_vtls.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input  = t_flatfile_vtls-ebeln
      IMPORTING
        output = t_flatfile_vtls1-po.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input  = t_flatfile_vtls-ebelp
      IMPORTING
        output = t_flatfile_vtls1-item.
    append t_flatfile_vtls1.
    clear t_flatfile_vtls1.

  endloop.

  perform get_podata.

  loop at t_poheader.

    perform move_to_bapi.

    perform call_bapi.

  endloop.

  PERFORM STORE_MESSAGES TABLES T_MESSAGE.

*&amp;amp;---------------------------------------------------------------------
*
*&amp;amp;      Form  validate_pre_file
*&amp;amp;---------------------------------------------------------------------
*
*     Routine to validate presentation server file path.
*----------------------------------------------------------------------
*
*      --&amp;gt;fp_name  text
*----------------------------------------------------------------------
*
FORM validate_pre_file USING fp_name TYPE rlgrap-filename.

  DATA : l_result,
         l_filename TYPE string.

  l_filename = fp_name.

  CLEAR l_result.

  CALL METHOD cl_gui_frontend_services=&amp;gt;file_exist
    EXPORTING
      file                 = l_filename
    RECEIVING
      result               = l_result
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      wrong_parameter      = 3
      not_supported_by_gui = 4
      OTHERS               = 5.

  IF sy-subrc &amp;lt;&amp;gt; 0.
    MESSAGE s007 DISPLAY LIKE c_e.
    LEAVE LIST-PROCESSING.
  ELSEIF l_result IS INITIAL.
    MESSAGE s008 DISPLAY LIKE c_e.
    LEAVE LIST-PROCESSING.
  ENDIF.

ENDFORM.                    " validate_pre_file_hdr

*&amp;amp;---------------------------------------------------------------------
*
*&amp;amp;      Form  validate_app_file
*&amp;amp;---------------------------------------------------------------------
*
*       text - Checks if the path entered and filename is correct
*----------------------------------------------------------------------
*
FORM validate_app_file USING  fp_file  TYPE FILENAME-FILEINTERN.

  data : l_fname(60).

  CALL FUNCTION 'FILE_GET_NAME'
    EXPORTING
      LOGICAL_FILENAME = FP_FILE
      OPERATING_SYSTEM = SY-OPSYS
    IMPORTING
      FILE_NAME        = L_FNAME
    EXCEPTIONS
      FILE_NOT_FOUND   = 1
      OTHERS           = 2.
  IF SY-SUBRC = '0'.
    OPEN DATASET  L_FNAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.
    IF sy-subrc NE 0.
      MESSAGE s007 DISPLAY LIKE c_e.
    ELSE.
      CLOSE DATASET l_fname.
    ENDIF.
  ENDIF.

ENDFORM.                    " validate_app_file

*&amp;amp;---------------------------------------------------------------------
*
*&amp;amp;      Form  upload_file
*&amp;amp;---------------------------------------------------------------------
*
*       Routine to upload data from file to tables.
*----------------------------------------------------------------------
*
*      --&amp;gt;P_fp_flatfile
*      --&amp;gt;P_fp_file
*      &amp;lt;--P_fp_rc
*----------------------------------------------------------------------
*

FORM  upload_file TABLES   fp_flatfile
                  USING    fp_file TYPE string
                  CHANGING fp_rc TYPE sy-subrc.

  IF fp_flatfile[] IS INITIAL.

    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        filename                = fp_file
        filetype                = c_filetype
        has_field_separator     = c_x
      TABLES
        data_tab                = fp_flatfile
      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.

    MOVE sy-subrc TO fp_rc.

  ENDIF.

ENDFORM.  " upload_file

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  upload_file_app
*&amp;amp;--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      --&amp;gt;FP_FLATFILEtext
*      --&amp;gt;FP_FILE    text
*      --&amp;gt;FP_RC      text
*---------------------------------------------------------------------*
FORM  upload_file_app TABLES   fp_flatfile
                      USING    fp_file TYPE FILENAME-FILEINTERN
CHANGING fp_rc TYPE sy-subrc.

  DATA: l_string TYPE tedata-data.
  DATA: wa_data_file TYPE tp_flatfile_vtls,
        l_wllength TYPE i,
        FNAME(60).

  CALL FUNCTION 'FILE_GET_NAME'
    EXPORTING
      LOGICAL_FILENAME = FP_FILE
      OPERATING_SYSTEM = SY-OPSYS
    IMPORTING
      FILE_NAME        = FNAME
    EXCEPTIONS
      FILE_NOT_FOUND   = 1
      OTHERS           = 2.

  IF SY-SUBRC = 0.

    OPEN DATASET  FNAME FOR INPUT IN TEXT MODE ENCODING DEFAULT.

    IF sy-subrc NE 0.
* *C-- commented by Bikash
*      MESSAGE s107(yaero_ps) DISPLAY LIKE c_e.
      message e008.
    ELSE.
      DO.

        CLEAR: l_string.

        READ DATASET  FNAME INTO l_string LENGTH l_wllength.
        IF sy-subrc NE 0.
          EXIT.
        ELSE.
          SPLIT l_string AT con_tab INTO   wa_data_file-ebeln
                                           wa_data_file-ebelp.

          APPEND wa_data_file TO fp_flatfile.
        ENDIF.

      ENDDO.

      CLOSE DATASET  FNAME.
    ENDIF.

  ENDIF.

ENDFORM.  " upload_file_app

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  get_podata
*&amp;amp;--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
form get_podata.

  select *
  into table t_update
  from zvtls_sap
  for all entries in t_flatfile_vtls1
   where itemvtls = t_flatfile_vtls1-item
  and povtls = t_flatfile_vtls1-po.

  sort t_update by posap itemsap.

  loop at t_update.
    at new posap.
      t_poheader-po = t_update-posap.
      append t_poheader.
      clear t_poheader.
    endat.
    t_poitem-po = t_update-posap.
    t_poitem-item = t_update-itemsap.
    append t_poitem.
    clear t_poitem.
    t_update-paedt = sy-datum.
    t_update-loekz = 'X'.
    modify t_update.
  endloop.

  modify zvtls_sap from table t_update.

endform.                    "get_podata

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  move_to_bapi
*&amp;amp;--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
form move_to_bapi.

  t_bapi_poheader-po_number = t_poheader-po.

  CLEAR t_bapi_poheaderx.

  PERFORM fill_check_structure USING c_bapimepoheaderx
                                     c_t_bapi_poheader
                                     c_t_bapi_poheaderx
                                     c_x.

  refresh : t_bapi_poitem,t_bapi_poitemx.

  loop at t_poitem where po = t_poheader-po.

    clear t_bapi_poitem.
    t_bapi_poitem-po_item = t_poitem-item.
    t_bapi_poitem-delete_ind = 'X'.

    CLEAR t_bapi_poitemx.

    PERFORM fill_check_structure USING c_bapimepoitem
                                       c_t_bapi_poitem
                                       c_t_bapi_poitemx
                                       c_x.

    t_bapi_poitemx-po_item = t_poitem-item.
    t_bapi_poitemx-po_itemx = c_x.

    APPEND t_bapi_poitem.
    APPEND t_bapi_poitemx.
    clear t_bapi_poitem.
    clear t_bapi_poitemx.

  endloop.

endform.                    "move_to_bapi

*&amp;amp;---------------------------------------------------------------------
*
*&amp;amp;      Form  call_bapi
*&amp;amp;---------------------------------------------------------------------
*
*       This form Routine is used to commit the data records
*----------------------------------------------------------------------*

FORM call_bapi .
  DATA : l_msgty      TYPE c,
         l_msgid(2)   TYPE c,
         l_msgno(3)   TYPE c,
         l_msgtx(100) TYPE c,
         l_errflag    TYPE c.

  CLEAR: t_bapireturn.
  REFRESH: t_bapireturn.

  CALL FUNCTION 'BAPI_PO_CHANGE'
    EXPORTING
      PURCHASEORDER = T_POHEADER-PO
      POHEADER      = T_BAPI_POHEADER
      POHEADERX     = T_BAPI_POHEADERX
    TABLES
      RETURN        = T_BAPIRETURN
      POITEM        = T_BAPI_POITEM
      POITEMX       = T_BAPI_POITEMX.

  READ TABLE t_bapireturn WITH KEY type = c_err TRANSPORTING NO FIELDS.
  IF sy-subrc NE 0.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = c_x.
  ENDIF.
*C-- Write messages

  WRITE: / 'PO Number', t_poheader-po.
  clear : t_update,w_povtls.
  read table t_update with key posap = t_poheader-po.
  w_povtls = t_update-povtls.

  CLEAR l_errflag.

  LOOP AT t_bapireturn.

    CLEAR: l_msgty, l_msgid, l_msgno, l_msgtx.

    l_msgty = t_bapireturn-type.
    l_msgid = t_bapireturn-id.
    l_msgno = t_bapireturn-number.
    l_msgtx = t_bapireturn-message.

    WRITE: / l_msgty, l_msgid, l_msgno, l_msgtx.

    if l_msgtx cs t_poheader-po.
      w_count = w_count + 1.

      loop at t_update.
        if sy-tabix = w_count.
          t_message-item = t_update-itemvtls.
        endif.
      endloop.

    endif.

    t_message-msgty = l_msgty.
    t_message-msgid = l_msgid.
    t_message-msgno = l_msgno.
    t_message-msgtx = l_msgtx.
    t_message-po = w_povtls.
    append t_message.
    clear t_message.

    IF l_msgty EQ c_err.
      l_errflag = c_x.
    ENDIF.    " l_msgty EQ 'E'
  ENDLOOP.
  ULINE.

  IF l_errflag NE c_x.
    w_success = w_success + 1.
  ENDIF.    " l_errflag NE C_X

endform.                    "call_bapi

*&amp;amp;---------------------------------------------------------------------
*
*&amp;amp;      Form  fill_check_structure
*&amp;amp;---------------------------------------------------------------------
*
*       This form Routine will check whether the specified structure
*       exist/active
*----------------------------------------------------------------------
*

FORM fill_check_structure  USING    fp_tabname TYPE any
                                    fp_orgtabname TYPE any
                                    fp_chktabname TYPE any
                                    fp_check TYPE c.

  FIELD-SYMBOLS : &amp;lt;fs_chk&amp;gt;, &amp;lt;fs_org&amp;gt;.

  DATA:    l_char1(61)  TYPE c,
           l_char2(61)  TYPE c.

  DATA:    BEGIN OF tl_nametab OCCURS 60.
          INCLUDE STRUCTURE x031l.
  DATA:    END OF tl_nametab.

  REFRESH tl_nametab.
  CALL FUNCTION 'RFC_GET_NAMETAB'
    EXPORTING
      tabname          = fp_tabname
    TABLES
      nametab          = tl_nametab
    EXCEPTIONS
      table_not_active = 1
      OTHERS           = 2.
  IF sy-subrc &amp;lt;&amp;gt; 0.
    CLEAR tl_nametab.
  ENDIF.

  LOOP AT tl_nametab.
    CLEAR: l_char1, l_char2.
    CONCATENATE fp_chktabname c_hyp tl_nametab-fieldname INTO l_char1.
    ASSIGN (l_char1) TO &amp;lt;fs_chk&amp;gt;.
    CONCATENATE fp_orgtabname c_hyp tl_nametab-fieldname INTO l_char2.
    ASSIGN (l_char2) TO &amp;lt;fs_org&amp;gt;.
    IF &amp;lt;fs_org&amp;gt; IS NOT INITIAL.
      &amp;lt;fs_chk&amp;gt; = fp_check.
    ENDIF.
  ENDLOOP.

ENDFORM.                    " fill_check_structure

*&amp;amp;--------------------------------------------------------------------*
*&amp;amp;      Form  STORE_MESSAGES
*&amp;amp;--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      --&amp;gt;FP_MESSAGEStext
*---------------------------------------------------------------------*
FORM STORE_MESSAGES TABLES FP_MESSAGES STRUCTURE T_MESSAGE.

  DATA: wl_output_data LIKE t_MESSAGE.
  DATA: l_catstr TYPE string.
  DATA: l_fieldvalue TYPE string.
  DATA: l_index TYPE i VALUE 1.
  DATA: L_FNAME(60).

  FIELD-SYMBOLS &amp;lt;fs&amp;gt;.

  CLEAR l_catstr.

  CALL FUNCTION 'FILE_GET_NAME'
    EXPORTING
      LOGICAL_FILENAME = '/USR/SAP/VTLS/POCHANGE/LOG'
      OPERATING_SYSTEM = SY-OPSYS
    IMPORTING
      FILE_NAME        = L_FNAME
    EXCEPTIONS
      FILE_NOT_FOUND   = 1
      OTHERS           = 2.

  IF SY-SUBRC = '0'.
    IF fp_messages[] IS NOT INITIAL.

      OPEN DATASET L_FNAME FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

      IF sy-subrc NE 0.

        LEAVE LIST-PROCESSING.

      ELSE.

        LOOP AT fp_messages INTO wl_output_data.

          DO.

           ASSIGN COMPONENT l_index OF STRUCTURE wl_output_data TO &amp;lt;fs&amp;gt;.

            IF sy-subrc &amp;lt;&amp;gt; 0.

              EXIT.

            ENDIF.

            MOVE &amp;lt;fs&amp;gt; TO l_fieldvalue.

            IF l_catstr IS NOT INITIAL.

              CONCATENATE l_catstr l_fieldvalue INTO l_catstr SEPARATED
              BY con_tab.

            ELSE.

              MOVE l_fieldvalue TO l_catstr.

            ENDIF.

            l_index = l_index + c_1.

            CLEAR l_fieldvalue.

            CLEAR &amp;lt;fs&amp;gt;.

          ENDDO.

          l_index = c_1.

          TRANSFER l_catstr TO L_FNAME .

          CLEAR wl_output_data.

          CLEAR l_catstr.

        ENDLOOP.

        CLOSE  DATASET L_FNAME.

      ENDIF.
    ENDIF.
  ENDIF.

ENDFORM.                    "STORE_MESSAGES

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards &lt;/P&gt;&lt;P&gt; Sudheer&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2007 08:13:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-material-savedata-problem-to-create-the-data/m-p/2466538#M553992</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-22T08:13:18Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_MATERIAL_SAVEDATA (problem to create the data)</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-material-savedata-problem-to-create-the-data/m-p/2466539#M553993</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;The description has to be transfered by MATERIALDESCRIPTION table, MATERIAL_EXTERNAL is to indicate the material code of the legacy system&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Max&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2007 08:13:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-material-savedata-problem-to-create-the-data/m-p/2466539#M553993</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-22T08:13:32Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_MATERIAL_SAVEDATA (problem to create the data)</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-material-savedata-problem-to-create-the-data/m-p/2466540#M553994</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HEllo,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This should be all you need.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
REPORT ZV_MAT_CREATE .


DATA: HEADDATA TYPE BAPIMATHEAD.
DATA: CLIENTDATA TYPE BAPI_MARA.
DATA: CLIENTDATAX TYPE BAPI_MARAX.
DATA: RETURN TYPE  BAPIRET2 .
DATA: RETURNM TYPE TABLE OF BAPI_MATRETURN2 WITH HEADER LINE.
DATA: XMARA TYPE MARA.
DATA: RETURNMESSAGES LIKE BAPIRET2        OCCURS 0 WITH HEADER LINE.
DATA: MATERIALDESCRIPTION LIKE BAPI_MAKT  OCCURS 0 WITH HEADER LINE.
PARAMETERS: P_MATNR TYPE MARA-MATNR,
            P_MAKTX LIKE MAKT-MAKTX.

SELECT SINGLE * FROM MARA INTO XMARA
          WHERE MATNR = P_MATNR.

HEADDATA-MATERIAL   = P_MATNR.
HEADDATA-MATL_TYPE  = 'FERT'.
HEADDATA-IND_SECTOR = 'M'.
HEADDATA-BASIC_VIEW = 'X'.

*clientdata-del_flag =  'X'.
*clientdatax-del_flag = 'X'.
* Daten für die Sicht GRUNDDATEN 1
MATERIALDESCRIPTION-LANGU = SY-LANGU.
MATERIALDESCRIPTION-MATL_DESC = P_MAKTX.
APPEND MATERIALDESCRIPTION.
*---------------------------------------------------------------------*
* Mandantenspezifische Materialdaten
*---------------------------------------------------------------------*
CLIENTDATA-BASE_UOM  = 'ST'.
CLIENTDATAX-BASE_UOM = 'X'.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
     EXPORTING
          HEADDATA            = HEADDATA
          CLIENTDATA          = CLIENTDATA
          CLIENTDATAX         = CLIENTDATAX
     IMPORTING
          RETURN              = RETURN
     TABLES
          RETURNMESSAGES      = RETURNM
          MATERIALDESCRIPTION = MATERIALDESCRIPTION.

CHECK SY-SUBRC  = 0.
COMMIT WORK AND WAIT.

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Vasanth&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2007 08:15:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-material-savedata-problem-to-create-the-data/m-p/2466540#M553994</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-22T08:15:42Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_MATERIAL_SAVEDATA (problem to create the data)</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-material-savedata-problem-to-create-the-data/m-p/2466541#M553995</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanks all for helping me.&lt;/P&gt;&lt;P&gt;keep on helping like this.&lt;/P&gt;&lt;P&gt;i have awarded all ur efforts&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2007 09:49:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-material-savedata-problem-to-create-the-data/m-p/2466541#M553995</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-22T09:49:05Z</dc:date>
    </item>
  </channel>
</rss>

