0% found this document useful (0 votes)
1 views5 pages

BAPI_MSGs

The document outlines an ABAP program that uploads material data from a file and saves it using the BAPI_MATERIAL_SAVEDATA function. It includes error handling for file operations and processes the uploaded data to generate messages indicating success or failure. Finally, it displays the results in an ALV grid format with appropriate field catalog and layout settings.

Uploaded by

gurulakshminallu
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
Download as txt, pdf, or txt
0% found this document useful (0 votes)
1 views5 pages

BAPI_MSGs

The document outlines an ABAP program that uploads material data from a file and saves it using the BAPI_MATERIAL_SAVEDATA function. It includes error handling for file operations and processes the uploaded data to generate messages indicating success or failure. Finally, it displays the results in an ALV grid format with appropriate field catalog and layout settings.

Uploaded by

gurulakshminallu
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1/ 5

TYPES: BEGIN OF ty_str,

matnr TYPE mara-matnr,


mbrsh TYPE mara-mbrsh,
mtart TYPE mara-mtart,
maktx TYPE makt-maktx,
meins TYPE mara-meins,
END OF ty_str.

TYPES : BEGIN OF ty_color,


msgid TYPE string,
msgnr TYPE string,
msgv1 TYPE string,
lights TYPE icon_d,
END OF ty_color.

DATA: it_color TYPE TABLE OF ty_color,


wa_color TYPE ty_color.

DATA: it_data TYPE TABLE OF ty_str,


wa_data TYPE ty_str.

DATA: lv_input TYPE string.

DATA: it_fldcat TYPE slis_t_fieldcat_alv,


wa_fldcat TYPE slis_fieldcat_alv.

DATA: lv_headdata TYPE bapimathead.


DATA: lv_clientdata TYPE bapi_mara.
DATA: lv_clientdatax TYPE bapi_marax.

DATA: it_return TYPE TABLE OF bapiret2,


wa_return TYPE bapiret2.

DATA: it_des TYPE TABLE OF bapi_makt,


wa_des TYPE bapi_makt.

DATA: lv_msg TYPE string.

DATA: wa_layout TYPE slis_layout_alv.

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


PARAMETERS: p_input TYPE localfile.
SELECTION-SCREEN: END OF BLOCK b1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_input.


CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = ' '
IMPORTING
file_name = p_input.

START-OF-SELECTION.
lv_input = p_input.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lv_input
* FILETYPE = 'ASC'
has_field_separator = 'X'
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* CHECK_BOM = ' '
* VIRUS_SCAN_PROFILE =
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
TABLES
data_tab = it_data
* CHANGING
* ISSCANPERFORMED = ' '
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.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

LOOP AT it_data INTO wa_data.


lv_headdata-material = wa_data-matnr.
lv_headdata-ind_sector = wa_data-mbrsh.
lv_headdata-matl_type = wa_data-mtart.
lv_headdata-basic_view = 'X'.

lv_clientdata-base_uom = wa_data-meins.

lv_clientdatax-base_uom = 'X'.

wa_des-langu = sy-langu.
wa_des-matl_desc = wa_data-maktx.
APPEND wa_des TO it_des.
CLEAR: wa_des.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'


EXPORTING
headdata = lv_headdata
clientdata = lv_clientdata
clientdatax = lv_clientdatax
* PLANTDATA =
* PLANTDATAX =
* FORECASTPARAMETERS =
* FORECASTPARAMETERSX =
* PLANNINGDATA =
* PLANNINGDATAX =
* STORAGELOCATIONDATA =
* STORAGELOCATIONDATAX =
* VALUATIONDATA =
* VALUATIONDATAX =
* WAREHOUSENUMBERDATA =
* WAREHOUSENUMBERDATAX =
* SALESDATA =
* SALESDATAX =
* STORAGETYPEDATA =
* STORAGETYPEDATAX =
* FLAG_ONLINE = ' '
* FLAG_CAD_CALL = ' '
* NO_DEQUEUE = ' '
* NO_ROLLBACK_WORK = ' '
* CLIENTDATACWM =
* CLIENTDATACWMX =
* VALUATIONDATACWM =
* VALUATIONDATACWMX =
* MATPLSTADATA =
* MATPLSTADATAX =
* MARC_APS_EXTDATA =
* MARC_APS_EXTDATAX =
* IMPORTING
* return = wa_return
TABLES
materialdescription = it_des
* UNITSOFMEASURE =
* UNITSOFMEASUREX =
* INTERNATIONALARTNOS =
* MATERIALLONGTEXT =
* TAXCLASSIFICATIONS =
RETURNMESSAGES = IT_RETURN
* PRTDATA =
* PRTDATAX =
* EXTENSIONIN =
* EXTENSIONINX =
* UNITSOFMEASURECWM =
* UNITSOFMEASURECWMX =
* SEGMRPGENERALDATA =
* SEGMRPGENERALDATAX =
* SEGMRPQUANTITYDATA =
* SEGMRPQUANTITYDATAX =
* SEGVALUATIONTYPE =
* SEGVALUATIONTYPEX =
* SEGSALESSTATUS =
* SEGSALESSTATUSX =
* SEGWEIGHTVOLUME =
* SEGWEIGHTVOLUMEX =
* DEMAND_PENALTYDATA =
* DEMAND_PENALTYDATAX =
* NFMCHARGEWEIGHTS =
* NFMCHARGEWEIGHTSX =
* NFMSTRUCTURALWEIGHTS =
* NFMSTRUCTURALWEIGHTSX =
.
* APPEND wa_return TO it_return.
CLEAR: lv_headdata, lv_clientdata, lv_clientdatax.
REFRESH: it_des.
endloop.

LOOP AT it_return INTO wa_return.


CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = wa_RETURN-ID
msgnr = wa_RETURN-NUMBER
msgv1 = wa_RETURN-MESSAGE_V1
msgv2 = wa_RETURN-MESSAGE_V2
msgv3 = wa_RETURN-MESSAGE_V3
msgv4 = wa_RETURN-MESSAGE_V4
IMPORTING
message_text_output = lv_msg.

wa_color-msgid = wa_RETURN-id.
wa_color-msgnr = wa_RETURN-NUMBER.
wa_color-msgv1 = lv_msg.

IF wa_COLOR-msgnr = '800'.
wa_color-lights = icon_green_light.
ELSE.
wa_color-lights = icon_red_light.
ENDIF.

APPEND wa_color TO it_color.


ENDLOOP.

CLEAR wa_fldcat.

wa_fldcat-col_pos = 1.
wa_fldcat-fieldname = 'MSGID'.
wa_fldcat-seltext_L = 'Messsage Id'.
APPEND wa_fldcat TO it_fldcat.
CLEAR wa_fldcat.

wa_fldcat-col_pos = 2.
wa_fldcat-fieldname = 'MSGNR'.
wa_fldcat-seltext_L = 'Messsage Number'.
APPEND wa_fldcat TO it_fldcat.
CLEAR wa_fldcat.

wa_fldcat-col_pos = 3.
wa_fldcat-fieldname = 'MSGV1'.
wa_fldcat-seltext_L = 'Variable1'.
APPEND wa_fldcat TO it_fldcat.
CLEAR wa_fldcat.

wa_fldcat-col_pos = 4.
wa_fldcat-fieldname = 'LIGHTS'.
wa_fldcat-seltext_l = 'status'.
wa_fldcat-icon = 'X'.
APPEND wa_fldcat TO it_fldcat.
CLEAR: wa_fldcat.

CLEAR: wa_layout.
wa_layout-zebra = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
i_callback_program = sy-repid
IS_LAYOUT = wa_layout
it_fieldcat = it_fldcat
TABLES
t_outtab = it_color
EXCEPTIONS
program_error = 1
OTHERS = 2.

IF sy-subrc <> 0.
*MESSAGE 'upload correct file' TYPE 'E'.
ENDIF.

You might also like