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_SAVEDATA (Accounting View)

Former Member
0 Likes
3,359

Hello Gurus,

                   I have written the below code for Accounting view, but unfortunately its giving error in this case. If i declare any of the return type i get a DUMP. Please Help.

TABLES :   bapimathead,
                  bapi_mbewx,
                  bapi_mbew.


DATA :      BEGIN OF  itab  OCCURS 0,
                 material TYPE bapimathead-material,
                 ind_sector(20),
                matl_type TYPE bapimathead-matl_type,
                val_area    TYPE werks,
                price_ctrl  TYPE bapi_mbew-price_ctrl,
                val_class   TYPE bapi_mbew-val_class,
                END OF  itab,
                it_return TYPE TABLE OF bapiret2 WITH HEADER LINE,
               it_bapi LIKE bapi_mbew  OCCURS 0 WITH HEADER LINE.


PARAMETERS:p_file TYPE ibipparms-path OBLIGATORY.
*---f4 help for the file from PC
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  PERFORM get_f4help.
*--start-of-selection .
START-OF-SELECTION.
  PERFORM upload_file_itab.
  PERFORM call_bapi.
*&---------------------------------------------------------------------*
*&      Form  get_f4help
*&---------------------------------------------------------------------*
FORM get_f4help .
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      program_name  = syst-cprog
      dynpro_number = syst-dynnr
    IMPORTING
      file_name     = p_file.
ENDFORM.                    " get_f4help
*&---------------------------------------------------------------------*
*&      Form  upload_file_itab
*&---------------------------------------------------------------------*
FORM upload_file_itab .
  DATA:v_file TYPE string.
  MOVE p_file TO v_file. CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
     filename                      = v_file
     filetype                      = 'ASC'
     has_field_separator           = 'X'
    TABLES
      data_tab                      = itab .
ENDFORM.                    " upload_file_itab

*&---------------------------------------------------------------------*
*&      Form  call_bapi
*&---------------------------------------------------------------------*
FORM call_bapi .
  LOOP AT itab.
    bapimathead-material = itab-material.
    bapimathead-ind_sector = itab-ind_sector.
    bapimathead-matl_type = itab-matl_type.
    bapimathead-account_view = 'X'.
    bapi_mbew-val_area = itab-val_area.
    bapi_mbew-price_ctrl = itab-price_ctrl.
    bapi_mbew-val_class = itab-val_class.
    bapi_mbewx-val_area = itab-val_area.
    bapi_mbewx-price_ctrl = 'X'.
    bapi_mbewx-val_class = 'X'.
*IT_BAPI-LANGU_ISO = 'EN'.
*IT_BAPI-MATL_DESC = ITAB-MATL_DESC.
*    APPEND it_bapi.
*    CLEAR it_bapi.


    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        headdata                   = bapimathead
*                      CLIENTDATA                 =
*                      CLIENTDATAX                =
*                      PLANTDATA                  =
*                      PLANTDATAX                 =
*                      FORECASTPARAMETERS         =
*                      FORECASTPARAMETERSX        =
*                      PLANNINGDATA               =
*                      PLANNINGDATAX              =
*                      STORAGELOCATIONDATA        =
*                      STORAGELOCATIONDATAX       =
       valuationdata               = bapi_mbew
       valuationdatax              = bapi_mbewx
*                      WAREHOUSENUMBERDATA        =
*                      WAREHOUSENUMBERDATAX       =
*                      SALESDATA                  =
*                      SALESDATAX                 =
*                      STORAGETYPEDATA            =
*                      STORAGETYPEDATAX           =
*                      FLAG_ONLINE                = ' '
*                      FLAG_CAD_CALL              = ' '
*                      NO_DEQUEUE                 = ' '
*                      NO_ROLLBACK_WORK           = ' '
     IMPORTING
       return                     = it_return.
*                    TABLES
*                      MATERIALDESCRIPTION        = it_bapi.
*                      UNITSOFMEASURE             =
*                      UNITSOFMEASUREX            =
*                      INTERNATIONALARTNOS        =
*                      MATERIALLONGTEXT           =
*                      TAXCLASSIFICATIONS         =
*                      RETURNMESSAGES             =  it_bapi
*                      PRTDATA                    =
*                      PRTDATAX                   =
*                      EXTENSIONIN                =
*                      EXTENSIONINX               =

****    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
****      EXPORTING
****        headdata            = bapimathead
****        clientdata          = bapi_mbew
****        clientdatax         = bapi_mbewx
****      IMPORTING
****        return              = it_return
****      TABLES
****        materialdescription = it_bapi.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .

    WRITE:/ it_return-type.
  ENDLOOP.
ENDFORM.                    " call_bapi

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
2,043

Dear Both ,

                   made the changes in the code, also i imported .txt file.

                   during debugging the itab gets populated right

                   but as it goes to,

 

      valuationdata               = bapi_mbew

       valuationdatax              = bapi_mbewx

some issues occur,

secondly

    i guess returning is an issue. it still returns E

TABLES :   bapimathead,
           bapi_mbewx,
           bapi_mbew,
           bapi_makt.
DATA : BEGIN OF  itab  OCCURS 0,
       material TYPE bapimathead-material,
       ind_sector(20),
       matl_type TYPE bapimathead-matl_type,
       val_area    TYPE bapi_mbew-val_area,
       price_ctrl  TYPE bapi_mbew-price_ctrl,
       val_class   TYPE bapi_mbew-val_class,
       END OF  itab,
       it_return like bapi_matreturn2,
       it_bapi LIKE bapi_makt  OCCURS 0 WITH HEADER LINE.


PARAMETERS:p_file TYPE ibipparms-path OBLIGATORY.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  PERFORM get_f4help.

START-OF-SELECTION.
  PERFORM upload_file_itab.
  PERFORM call_bapi.
*&---------------------------------------------------------------------*
*&      Form  get_f4help
*&---------------------------------------------------------------------*
FORM get_f4help .
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      program_name  = syst-cprog
      dynpro_number = syst-dynnr
    IMPORTING
      file_name     = p_file.
ENDFORM.                    " get_f4help
*&---------------------------------------------------------------------*
*&      Form  upload_file_itab
*&---------------------------------------------------------------------*
FORM upload_file_itab .
  DATA:v_file TYPE string.
  MOVE p_file TO v_file.
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
     filename                      = v_file
     filetype                      = 'ASC'
     has_field_separator           = 'X'
    TABLES
      data_tab                      = itab .
ENDFORM.                    " upload_file_itab

*&---------------------------------------------------------------------*
*&      Form  call_bapi
*&---------------------------------------------------------------------*
FORM call_bapi .
  LOOP AT itab.
    bapimathead-material = itab-material.
    bapimathead-ind_sector = itab-ind_sector.
    bapimathead-matl_type = itab-matl_type.
    bapimathead-account_view = 'X'.
    bapi_mbew-val_area = itab-val_area.
    bapi_mbew-price_ctrl = itab-price_ctrl.
    bapi_mbew-val_class = itab-val_class.
    bapi_mbewx-val_area = itab-val_area.
    bapi_mbewx-price_ctrl = 'X'.
    bapi_mbewx-val_class = 'X'.
*IT_BAPI-LANGU_ISO = 'EN'.
*IT_BAPI-MATL_DESC = ITAB-MATL_DESC.
   APPEND it_bapi.
    CLEAR it_bapi.


    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        headdata                   = bapimathead
*                      CLIENTDATA                 =
*                      CLIENTDATAX                =
*                      PLANTDATA                  =
*                      PLANTDATAX                 =
*                      FORECASTPARAMETERS         =
*                      FORECASTPARAMETERSX        =
*                      PLANNINGDATA               =
*                      PLANNINGDATAX              =
*                      STORAGELOCATIONDATA        =
*                      STORAGELOCATIONDATAX       =
       valuationdata               = bapi_mbew
       valuationdatax              = bapi_mbewx
*                      WAREHOUSENUMBERDATA        =
*                      WAREHOUSENUMBERDATAX       =
*                      SALESDATA                  =
*                      SALESDATAX                 =
*                      STORAGETYPEDATA            =
*                      STORAGETYPEDATAX           =
*                      FLAG_ONLINE                = ' '
*                      FLAG_CAD_CALL              = ' '
*                      NO_DEQUEUE                 = ' '
*                      NO_ROLLBACK_WORK           = ' '
     IMPORTING
       return                     = it_return
                    TABLES
                      MATERIALDESCRIPTION        = it_bapi.
*                      UNITSOFMEASURE             =
*                      UNITSOFMEASUREX            =
*                      INTERNATIONALARTNOS        =
*                      MATERIALLONGTEXT           =
*                      TAXCLASSIFICATIONS         =
*                      RETURNMESSAGES             =  it_bapi
*                      PRTDATA                    =
*                      PRTDATAX                   =
*                      EXTENSIONIN                =
*                      EXTENSIONINX               =

****    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
****      EXPORTING
****        headdata            = bapimathead
****        clientdata          = bapi_mbew
****        clientdatax         = bapi_mbewx
****      IMPORTING
****        return              = it_return
****      TABLES
****        materialdescription = it_bapi.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .

    WRITE:/ it_return-type.
  ENDLOOP.
ENDFORM.                    " call_bapi

Hello Gurus,

                   I have written the below code for Accounting view, but unfortunately its giving error in this case. If i declare any of the return type i get a DUMP. Please Help.

TABLES :   bapimathead,
                  bapi_mbewx,
                  bapi_mbew.


DATA :      BEGIN OF  itab  OCCURS 0,
                 material TYPE bapimathead-material,
                 ind_sector(20),
                matl_type TYPE bapimathead-matl_type,
                val_area    TYPE werks,
                price_ctrl  TYPE bapi_mbew-price_ctrl,
                val_class   TYPE bapi_mbew-val_class,
                END OF  itab,
                it_return TYPE TABLE OF bapiret2 WITH HEADER LINE,
               it_bapi LIKE bapi_mbew  OCCURS 0 WITH HEADER LINE.


PARAMETERS:p_file TYPE ibipparms-path OBLIGATORY.
*---f4 help for the file from PC
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  PERFORM get_f4help.
*--start-of-selection .
START-OF-SELECTION.
  PERFORM upload_file_itab.
  PERFORM call_bapi.
*&---------------------------------------------------------------------*
*&      Form  get_f4help
*&---------------------------------------------------------------------*
FORM get_f4help .
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      program_name  = syst-cprog
      dynpro_number = syst-dynnr
    IMPORTING
      file_name     = p_file.
ENDFORM.                    " get_f4help
*&---------------------------------------------------------------------*
*&      Form  upload_file_itab
*&---------------------------------------------------------------------*
FORM upload_file_itab .
  DATA:v_file TYPE string.
  MOVE p_file TO v_file. CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
     filename                      = v_file
     filetype                      = 'ASC'
     has_field_separator           = 'X'
    TABLES
      data_tab                      = itab .
ENDFORM.                    " upload_file_itab

*&---------------------------------------------------------------------*
*&      Form  call_bapi
*&---------------------------------------------------------------------*
FORM call_bapi .
  LOOP AT itab.
    bapimathead-material = itab-material.
    bapimathead-ind_sector = itab-ind_sector.
    bapimathead-matl_type = itab-matl_type.
    bapimathead-account_view = 'X'.
    bapi_mbew-val_area = itab-val_area.
    bapi_mbew-price_ctrl = itab-price_ctrl.
    bapi_mbew-val_class = itab-val_class.
    bapi_mbewx-val_area = itab-val_area.
    bapi_mbewx-price_ctrl = 'X'.
    bapi_mbewx-val_class = 'X'.
*IT_BAPI-LANGU_ISO = 'EN'.
*IT_BAPI-MATL_DESC = ITAB-MATL_DESC.
*    APPEND it_bapi.
*    CLEAR it_bapi.


    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        headdata                   = bapimathead
*                      CLIENTDATA                 =
*                      CLIENTDATAX                =
*                      PLANTDATA                  =
*                      PLANTDATAX                 =
*                      FORECASTPARAMETERS         =
*                      FORECASTPARAMETERSX        =
*                      PLANNINGDATA               =
*                      PLANNINGDATAX              =
*                      STORAGELOCATIONDATA        =
*                      STORAGELOCATIONDATAX       =
       valuationdata               = bapi_mbew
       valuationdatax              = bapi_mbewx
*                      WAREHOUSENUMBERDATA        =
*                      WAREHOUSENUMBERDATAX       =
*                      SALESDATA                  =
*                      SALESDATAX                 =
*                      STORAGETYPEDATA            =
*                      STORAGETYPEDATAX           =
*                      FLAG_ONLINE                = ' '
*                      FLAG_CAD_CALL              = ' '
*                      NO_DEQUEUE                 = ' '
*                      NO_ROLLBACK_WORK           = ' '
     IMPORTING
       return                     = it_return.
*                    TABLES
*                      MATERIALDESCRIPTION        = it_bapi.
*                      UNITSOFMEASURE             =
*                      UNITSOFMEASUREX            =
*                      INTERNATIONALARTNOS        =
*                      MATERIALLONGTEXT           =
*                      TAXCLASSIFICATIONS         =
*                      RETURNMESSAGES             =  it_bapi
*                      PRTDATA                    =
*                      PRTDATAX                   =
*                      EXTENSIONIN                =
*                      EXTENSIONINX               =

****    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
****      EXPORTING
****        headdata            = bapimathead
****        clientdata          = bapi_mbew
****        clientdatax         = bapi_mbewx
****      IMPORTING
****        return              = it_return
****      TABLES
****        materialdescription = it_bapi.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .

    WRITE:/ it_return-type.
  ENDLOOP.
ENDFORM.                    " call_bapi

5 REPLIES 5
Read only

Former Member
0 Likes
2,043

Hi Anagh,

               The type declaration of it_bapi is wrong.

Wrong:

it_bapi LIKE bapi_mbew  OCCURS 0 WITH HEADER LINE.

It should be for MATERIALDESCRIPTION

it_bapi LIKE BAPI_MAKT  OCCURS 0 WITH HEADER LINE.

For RETURNMESSAGES

it_return like BAPI_MATRETURN2 OCCURS 0 WITH HEADER LINE.


Regards,

Vikram


Read only

Former Member
0 Likes
2,043

Hi Anagh,

Change Some code as per below ...

1st :  DATA: it_return   LIKE BAPIRET2  OCCURS 0 WITH HEADER LINE.

2nd :  Check what value you pass in valuation area ? , is it Plant(WERKS) or something else ? 

            VALUATIONDATA-VAL_AREA.  "Valuation Area  

            VALUATIONDATAX-VAL_AREA

3rd:  if above two point not solve your issue then provide your dump full message .

Regard's

Smruti

Read only

Former Member
0 Likes
2,044

Dear Both ,

                   made the changes in the code, also i imported .txt file.

                   during debugging the itab gets populated right

                   but as it goes to,

 

      valuationdata               = bapi_mbew

       valuationdatax              = bapi_mbewx

some issues occur,

secondly

    i guess returning is an issue. it still returns E

TABLES :   bapimathead,
           bapi_mbewx,
           bapi_mbew,
           bapi_makt.
DATA : BEGIN OF  itab  OCCURS 0,
       material TYPE bapimathead-material,
       ind_sector(20),
       matl_type TYPE bapimathead-matl_type,
       val_area    TYPE bapi_mbew-val_area,
       price_ctrl  TYPE bapi_mbew-price_ctrl,
       val_class   TYPE bapi_mbew-val_class,
       END OF  itab,
       it_return like bapi_matreturn2,
       it_bapi LIKE bapi_makt  OCCURS 0 WITH HEADER LINE.


PARAMETERS:p_file TYPE ibipparms-path OBLIGATORY.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  PERFORM get_f4help.

START-OF-SELECTION.
  PERFORM upload_file_itab.
  PERFORM call_bapi.
*&---------------------------------------------------------------------*
*&      Form  get_f4help
*&---------------------------------------------------------------------*
FORM get_f4help .
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      program_name  = syst-cprog
      dynpro_number = syst-dynnr
    IMPORTING
      file_name     = p_file.
ENDFORM.                    " get_f4help
*&---------------------------------------------------------------------*
*&      Form  upload_file_itab
*&---------------------------------------------------------------------*
FORM upload_file_itab .
  DATA:v_file TYPE string.
  MOVE p_file TO v_file.
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
     filename                      = v_file
     filetype                      = 'ASC'
     has_field_separator           = 'X'
    TABLES
      data_tab                      = itab .
ENDFORM.                    " upload_file_itab

*&---------------------------------------------------------------------*
*&      Form  call_bapi
*&---------------------------------------------------------------------*
FORM call_bapi .
  LOOP AT itab.
    bapimathead-material = itab-material.
    bapimathead-ind_sector = itab-ind_sector.
    bapimathead-matl_type = itab-matl_type.
    bapimathead-account_view = 'X'.
    bapi_mbew-val_area = itab-val_area.
    bapi_mbew-price_ctrl = itab-price_ctrl.
    bapi_mbew-val_class = itab-val_class.
    bapi_mbewx-val_area = itab-val_area.
    bapi_mbewx-price_ctrl = 'X'.
    bapi_mbewx-val_class = 'X'.
*IT_BAPI-LANGU_ISO = 'EN'.
*IT_BAPI-MATL_DESC = ITAB-MATL_DESC.
   APPEND it_bapi.
    CLEAR it_bapi.


    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
      EXPORTING
        headdata                   = bapimathead
*                      CLIENTDATA                 =
*                      CLIENTDATAX                =
*                      PLANTDATA                  =
*                      PLANTDATAX                 =
*                      FORECASTPARAMETERS         =
*                      FORECASTPARAMETERSX        =
*                      PLANNINGDATA               =
*                      PLANNINGDATAX              =
*                      STORAGELOCATIONDATA        =
*                      STORAGELOCATIONDATAX       =
       valuationdata               = bapi_mbew
       valuationdatax              = bapi_mbewx
*                      WAREHOUSENUMBERDATA        =
*                      WAREHOUSENUMBERDATAX       =
*                      SALESDATA                  =
*                      SALESDATAX                 =
*                      STORAGETYPEDATA            =
*                      STORAGETYPEDATAX           =
*                      FLAG_ONLINE                = ' '
*                      FLAG_CAD_CALL              = ' '
*                      NO_DEQUEUE                 = ' '
*                      NO_ROLLBACK_WORK           = ' '
     IMPORTING
       return                     = it_return
                    TABLES
                      MATERIALDESCRIPTION        = it_bapi.
*                      UNITSOFMEASURE             =
*                      UNITSOFMEASUREX            =
*                      INTERNATIONALARTNOS        =
*                      MATERIALLONGTEXT           =
*                      TAXCLASSIFICATIONS         =
*                      RETURNMESSAGES             =  it_bapi
*                      PRTDATA                    =
*                      PRTDATAX                   =
*                      EXTENSIONIN                =
*                      EXTENSIONINX               =

****    CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
****      EXPORTING
****        headdata            = bapimathead
****        clientdata          = bapi_mbew
****        clientdatax         = bapi_mbewx
****      IMPORTING
****        return              = it_return
****      TABLES
****        materialdescription = it_bapi.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .

    WRITE:/ it_return-type.
  ENDLOOP.
ENDFORM.                    " call_bapi

Read only

0 Likes
2,043

is your material number leading with zero's or not ?

like

itab-material = '000000001000000329' .

Note : Provide your Error message "it_return-MESSAGE" ?????

Regard's

Smruti

Read only

Former Member
0 Likes
2,043

DATA : BEGIN OF  ITAB  OCCURS 0,

        MATERIAL TYPE BAPIMATHEAD-MATERIAL,

        IND_SECTOR(20),

        MATL_TYPE TYPE BAPIMATHEAD-MATL_TYPE,

        VAL_AREA    TYPE BAPI_MBEW-VAL_AREA,

        PRICE_CTRL  TYPE BAPI_MBEW-PRICE_CTRL,

        VAL_CLASS   TYPE BAPI_MBEW-VAL_CLASS,

        MATL_DESC   type BAPI_MAKT-MATL_DESC,                  " added by SRM

        END OF  ITAB,

LOOP AT ITAB.

     BAPIMATHEAD-MATERIAL      = ITAB-MATERIAL.           " '000000000000001698' .

     BAPIMATHEAD-IND_SECTOR    = ITAB-IND_SECTOR.       "'M' .    "

     BAPIMATHEAD-MATL_TYPE     =  ITAB-MATL_TYPE.      " 'ERSA'.

     BAPIMATHEAD-ACCOUNT_VIEW  = 'X'.

     BAPI_MBEW-VAL_AREA        = ITAB-VAL_AREA.           " '1000' .

     BAPI_MBEW-PRICE_CTRL      = ITAB-PRICE_CTRL.         " 'V' .

     BAPI_MBEW-VAL_CLASS       =  ITAB-VAL_CLASS.         " '3040' .

     BAPI_MBEWX-VAL_AREA       =   ITAB-VAL_AREA.          " '1000' .  "

     BAPI_MBEWX-PRICE_CTRL     = 'X'.

     BAPI_MBEWX-VAL_CLASS      = 'X'.

     MOVE 'EN'            TO IT_BAPI-LANGU_ISO .                         " added by SRM

     MOVE ITAB-MATL_DESC  TO IT_BAPI-MATL_DESC .            " added by SRM

     APPEND IT_BAPI.                                                                 " added by SRM

     CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

       EXPORTING

         HEADDATA            = BAPIMATHEAD

         VALUATIONDATA       = BAPI_MBEW

         VALUATIONDATAX      = BAPI_MBEWX

       IMPORTING

         RETURN              = IT_RETURN

       TABLES

         MATERIALDESCRIPTION = IT_BAPI.

     CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .

     CLEAR: IT_BAPI,BAPI_MBEWX,BAPIMATHEAD,ITAB .                                  " added by SRM

     WRITE:/ IT_RETURN-TYPE.

   ENDLOOP.

Regard's

Smruti