0% found this document useful (0 votes)
100 views7 pages

Ab01 Upload

This document contains ABAP code for uploading asset data from an Excel file into SAP. It defines data structures and types for the asset data and batches. It includes forms to fetch the asset data from Excel, call transaction AB01L to create the assets, and handle any error messages. The core logic loops through the asset records, calls subroutines to populate the fields for transaction AB01L, and executes the transaction to create the assets in SAP.

Uploaded by

Jagath Jayasurya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
100 views7 pages

Ab01 Upload

This document contains ABAP code for uploading asset data from an Excel file into SAP. It defines data structures and types for the asset data and batches. It includes forms to fetch the asset data from Excel, call transaction AB01L to create the assets, and handle any error messages. The core logic loops through the asset records, calls subroutines to populate the fields for transaction AB01L, and executes the transaction to create the assets in SAP.

Uploaded by

Jagath Jayasurya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 7

*&---------------------------------------------------------------------*

*& Report ZFIB_AB01L_UPLOAD


*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZFIB_AB01L_UPLOAD NO STANDARD PAGE HEADING LINE-SIZE 255.
TABLES : t100.

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:ist_final TYPE TABLE OF ty_final,


wa_final TYPE ty_final,
t_bseg TYPE TABLE OF ts_bseg,
w_bseg TYPE ts_bseg,
t1_bseg TYPE TABLE OF ts1_bseg,
w1_bseg TYPE ts1_bseg.

* Batchinputdata of single transaction


DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
* messages of call transaction
DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

DATA: l_mstring(480).

SELECTION-SCREEN:BEGIN OF BLOCK b WITH FRAME.


PARAMETERS:p_file TYPE rlgrap-filename,
p_mode TYPE char1 DEFAULT 'A'.
SELECTION-SCREEN:END OF BLOCK b.

*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
.

CONCATENATE wa_final-budat+6(4) wa_final-budat+3(2) wa_final-budat+0(2)


INTO lv_budat.
w1_bseg-budat = lv_budat.
APPEND w1_bseg TO t1_bseg.
CLEAR:w1_bseg,lv_budat.

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'.

CALL TRANSACTION 'AB01L' WITH AUTHORITY-CHECK USING bdcdata


MODE p_mode "CTUMODE
UPDATE 'S' "CUPDATE
MESSAGES INTO messtab .

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 NOT t1_bseg[] IS INITIAL.


SELECT bukrs
belnr
gjahr
buzei
anln1
anln2 FROM bseg INTO TABLE t_bseg
FOR ALL ENTRIES IN t1_bseg
WHERE anln1 = t1_bseg-anln1
AND h_budat = t1_bseg-budat
and ANBWA = '100'.

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.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
i_callback_program = sy-repid
it_fieldcat = t_fieldcat[]
i_save = 'X'
i_default = 'X'
it_events = t_event
TABLES
t_outtab = t_bseg
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ENDIF.

ENDIF.

ENDFORM.

You might also like