Sei sulla pagina 1di 3

TABLES : bapimathead.

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.
DATA : it_return TYPE TABLE OF bapiret2 WITH HEADER LINE,
it_bapi LIKE bapi_mbew OCCURS 0 WITH HEADER LINE.
PARAMETERS: p_file TYPE rlgrap-filename.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM get_f4_help.
START-OF-SELECTION.
PERFORM upload_file.
PERFORM call_bapi.
*&---------------------------------------------------------------------*
*& Form GET_F4_HELP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_f4_help .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
* FIELD_NAME = 'p_file'
IMPORTING
file_name = p_file.
ENDFORM. " GET_F4_HELP
*&---------------------------------------------------------------------*
*& Form CALL_BAPI
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM call_bapi .
DATA : bapi_mbew TYPE bapi_mbew.
DATA : bapi_mbewx TYPE bapi_mbewx.
LOOP AT itab.
bapimathead-material = itab-material.
bapimathead-ind_sector = itab-ind_sector.
bapimathead-matl_type = itab-matl_type.
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'.
APPEND it_bapi.
CLEAR it_bapi.
ENDLOOP.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = bapimathead
* CLIENTDATA =
* 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 = ' '
* AFS_HEADDATA =
* AFS_CLIENTDATA =
* AFS_CLIENTDATAX =
* AFS_PLANTDATA =
* AFS_PLANTDATAX =
* AFS_SALESDATA =
* AFS_SALESDATAX =
IMPORTING
return = it_return
TABLES
materialdescription = it_bapi
* UNITSOFMEASURE =
* UNITSOFMEASUREX =
* INTERNATIONALARTNOS =
* MATERIALLONGTEXT =
* TAXCLASSIFICATIONS =
returnmessages = it_bapi.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 2
* IMPORTING
* RETURN =
.
ENDFORM. " CALL_BAPI
*&---------------------------------------------------------------------*
*& Form UPLOAD_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM upload_file .
DATA : v_file TYPE string.
MOVE p_file TO v_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_file
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 = itab.
* 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.
ENDFORM. " UPLOAD_FILE

Potrebbero piacerti anche