Ab01 Upload
Ab01 Upload
TYPES:BEGIN OF ty_final,
bukrs TYPE raifp2-bukrs,
anln1 TYPE raifp2-anln1,
anln2 TYPE raifp2-anln2,
bwasl TYPE raifp1-bwasl,
acc_principle TYPE raifp1-acc_principle,
bldat TYPE char10, "raifp1-bldat,
budat TYPE char10, "raifp1-budat,
bzdat TYPE char10, "raifp1-bzdat,
anbtr TYPE raifp2-anbtr,
menge TYPE raifp2-menge,
meins TYPE raifp2-meins,
sgtxt TYPE raifp2-sgtxt,
blart TYPE raifp1-blart,
gkont TYPE raifp2-gkont,
afabe_post_01 TYPE raifp1-afabe_post,
afabe_post_15 TYPE raifp1-afabe_post,
END OF ty_final,
BEGIN OF ts1_bseg,
anln1 TYPE bseg-anln1,
budat TYPE bseg-h_budat,
END OF ts1_bseg,
BEGIN OF ts_bseg,
bukrs TYPE bseg-bukrs,
belnr TYPE bseg-belnr,
gjahr TYPE bseg-gjahr,
buzei TYPE bseg-buzei,
anln1 TYPE bseg-anln1,
anln2 TYPE bseg-anln2,
END OF ts_bseg.
DATA: l_mstring(480).
*include bdcrecx1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM f4_filename. "f4 HELP
START-OF-SELECTION.
PERFORM fetch_data. "FETCH DATA FROM EXCEL
DATA:lv_budat TYPE char8.
CLEAR:lv_budat.
*perform open_group.
LOOP AT ist_final INTO wa_final.
PERFORM depreciation_area_01.
* PERFORM Depreciation_Area_15.
w1_bseg-anln1 = wa_final-anln1.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = w1_bseg-anln1
IMPORTING
OUTPUT = w1_bseg-anln1
.
ENDLOOP.
wait UP TO 3 SECONDS.
PERFORM error_msg.
PERFORM meg.
*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM.
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
* IF FVAL <> NODATA.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
SHIFT bdcdata-fval LEFT DELETING LEADING space.
APPEND bdcdata.
* ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form F4_FILENAME
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM f4_filename .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FETCH_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM fetch_data .
DATA: tab_raw TYPE truxs_t_text_data.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* I_FIELD_SEPERATOR =
i_line_header = 'X'
i_tab_raw_data = tab_raw
i_filename = p_file
TABLES
i_tab_converted_data = ist_final
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form ERROR_MSG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM error_msg .
LOOP AT messtab.
SELECT SINGLE * FROM t100 WHERE sprsl = messtab-msgspra
AND arbgb = messtab-msgid
AND msgnr = messtab-msgnr.
IF sy-subrc = 0.
l_mstring = t100-text.
IF l_mstring CS '&1'.
REPLACE '&1' WITH messtab-msgv1 INTO l_mstring.
REPLACE '&2' WITH messtab-msgv2 INTO l_mstring.
REPLACE '&3' WITH messtab-msgv3 INTO l_mstring.
REPLACE '&4' WITH messtab-msgv4 INTO l_mstring.
ELSE.
REPLACE '&' WITH messtab-msgv1 INTO l_mstring.
REPLACE '&' WITH messtab-msgv2 INTO l_mstring.
REPLACE '&' WITH messtab-msgv3 INTO l_mstring.
REPLACE '&' WITH messtab-msgv4 INTO l_mstring.
ENDIF.
CONDENSE l_mstring.
WRITE: / messtab-msgtyp, l_mstring(250).
ELSE.
WRITE: / messtab.
ENDIF.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form Depreciation_Area_01
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM depreciation_area_01 .
PERFORM bdc_dynpro USING 'SAPLAMDPS2I' '0303'.
PERFORM bdc_field USING 'BDC_CURSOR'
'GV_RAIFP1_BWASL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=OKAY'.
PERFORM bdc_field USING 'RAIFP2-BUKRS'
wa_final-bukrs. "'1000'.
PERFORM bdc_field USING 'RAIFP2-ANLN1'
wa_final-anln1. "'150000034'.
* perform bdc_field using 'RAIFP2-ANLN2'.
PERFORM bdc_field USING 'RAIFP2-ANLN2'
wa_final-anln2. "'0'.
PERFORM bdc_field USING 'GV_RAIFP1_BWASL'
wa_final-bwasl. "'100'.
PERFORM bdc_dynpro USING 'SAPLAMDPS2I' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=TAB02'.
PERFORM bdc_field USING 'RAIFP1-ACC_PRINCIPLE'
wa_final-acc_principle. "'INAS'.
PERFORM bdc_field USING 'RAIFP1-AFABE_POST'
wa_final-afabe_post_01. "'01'.
PERFORM bdc_field USING 'RAIFP1-BLDAT'
wa_final-bldat. "'01.10.2017'.
PERFORM bdc_field USING 'RAIFP1-BUDAT'
wa_final-budat. "'01.10.2017'.
PERFORM bdc_field USING 'RAIFP1-BZDAT'
wa_final-bzdat. "'01.10.2017'.
PERFORM bdc_field USING 'RAIFP2-ANBTR'
wa_final-anbtr. "'10000'.
PERFORM bdc_field USING 'RAIFP2-MENGE'
wa_final-menge. "'1'.
PERFORM bdc_field USING 'RAIFP2-MEINS'
wa_final-meins. "'ea'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RAIFP2-SGTXT'.
PERFORM bdc_field USING 'RAIFP2-SGTXT'
wa_final-sgtxt. "'tEST'.
PERFORM bdc_dynpro USING 'SAPLAMDPS2I' '0100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SAVE'.
PERFORM bdc_field USING 'RAIFP1-BLART'
wa_final-blart . "'UE'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RAIFP2-GKONT'.
PERFORM bdc_field USING 'RAIFP2-GKONT'
wa_final-gkont. "GKONT'1254100004'.
CLEAR:wa_final-blart,wa_final-gkont.
REFRESH:bdcdata.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form Depreciation_Area_15
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
*FORM Depreciation_Area_15 .
*
* PERFORM bdc_dynpro USING 'SAPLAMDPS2I' '0303'.
* PERFORM bdc_field USING 'BDC_CURSOR'
* 'GV_RAIFP1_BWASL'.
* PERFORM bdc_field USING 'BDC_OKCODE'
* '=ENTR'.
* PERFORM bdc_field USING 'RAIFP2-BUKRS'
* wa_final-bukrs. "'1000'.
* PERFORM bdc_field USING 'RAIFP2-ANLN1'
* wa_final-anln1. "'150000034'.
* PERFORM bdc_field USING 'RAIFP2-ANLN2'
* wa_final-anln2. "'0'.
* PERFORM bdc_field USING 'GV_RAIFP1_BWASL'
* wa_final-bwasl. "'100'.
* PERFORM bdc_dynpro USING 'SAPLAMDPS2I' '0100'.
* PERFORM bdc_field USING 'BDC_OKCODE'
* '=SAVE'.
* PERFORM bdc_field USING 'RAIFP1-ACC_PRINCIPLE'
* wa_final-acc_principle. "'INAS'.
* PERFORM bdc_field USING 'RAIFP1-AFABE_POST'
* wa_final-afabe_post_15. "'15'.
* PERFORM bdc_field USING 'RAIFP1-BLDAT'
* wa_final-bldat. "'01.10.2017'.
* PERFORM bdc_field USING 'RAIFP1-BUDAT'
* wa_final-budat. "'01.10.2017'.
* PERFORM bdc_field USING 'RAIFP1-BZDAT'
* wa_final-bzdat. "'01.10.2017'.
* PERFORM bdc_field USING 'RAIFP2-ANBTR'
* wa_final-anbtr. "'10000'.
* PERFORM bdc_field USING 'RAIFP2-MENGE'
* wa_final-menge. "'1'.
* PERFORM bdc_field USING 'RAIFP2-MEINS'
* wa_final-meins. "'ea'.
* PERFORM bdc_field USING 'BDC_CURSOR'
* 'RAIFP2-SGTXT'.
* PERFORM bdc_field USING 'RAIFP2-SGTXT'
* wa_final-sgtxt. "''tEST'.
*
* CALL TRANSACTION 'AB01L' WITH AUTHORITY-CHECK USING bdcdata
* MODE P_MODE"'N' "CTUMODE
* UPDATE 'S' "CUPDATE
* MESSAGES INTO messtab .
* CLEAR:wa_final.
* REFRESH:bdcdata.
*ENDFORM.
*&---------------------------------------------------------------------*
*& Form MEG
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM meg .
DATA: t_fieldcat TYPE TABLE OF slis_fieldcat_alv WITH HEADER LINE,
t_event TYPE slis_t_event.
DATA: tabix TYPE sy-tabix.
IF sy-subrc = 0.
sort t_bseg by belnr.
delete ADJACENT DUPLICATES FROM t_bseg COMPARING belnr.
t_fieldcat-fieldname = 'BUKRS'.
t_fieldcat-tabname = 'T_BSEG'.
t_fieldcat-seltext_m = 'Company Code'.
t_fieldcat-outputlen = '10'.
APPEND t_fieldcat.
CLEAR t_fieldcat.
t_fieldcat-fieldname = 'BELNR'.
t_fieldcat-tabname = 'T_BSEG'.
t_fieldcat-seltext_m = 'Document No'.
t_fieldcat-outputlen = '10'.
APPEND t_fieldcat.
CLEAR t_fieldcat.
t_fieldcat-fieldname = 'ANLN1'.
t_fieldcat-tabname = 'T_BSEG'.
t_fieldcat-seltext_m = 'Asset No'.
t_fieldcat-outputlen = '12'.
APPEND t_fieldcat.
CLEAR t_fieldcat.
t_fieldcat-fieldname = 'GJAHR'.
t_fieldcat-tabname = 'T_BSEG'.
t_fieldcat-seltext_m = 'Fiscal Year'.
t_fieldcat-outputlen = '10'.
APPEND t_fieldcat.
CLEAR t_fieldcat.
ENDIF.
ENDIF.
ENDFORM.