2013 Feb 05 3:21 AM
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
2013 Feb 05 7:24 AM
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
2013 Feb 05 4:06 AM
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
2013 Feb 05 4:11 AM
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
2013 Feb 05 7:24 AM
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
2013 Feb 05 7:33 AM
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
2013 Feb 05 8:02 AM
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