0% found this document useful (0 votes)
106 views

As01 Program

This document contains code for extracting asset management data from SAP using BAPI calls and then processing and displaying the extracted data. It declares variables and internal tables for holding the selection criteria, returned data from the BAPI calls, and processed output. It also contains code for mapping the returned data to target tables for further processing and export to Excel.

Uploaded by

Anil Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
106 views

As01 Program

This document contains code for extracting asset management data from SAP using BAPI calls and then processing and displaying the extracted data. It declares variables and internal tables for holding the selection criteria, returned data from the BAPI calls, and processed output. It also contains code for mapping the returned data to target tables for further processing and export to Excel.

Uploaded by

Anil Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 14

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

*& Report ZFI1_ASSET_MGMT_DOWNLOAD


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZFI1_ASSET_MGMT_DOWNLOAD NO STANDARD PAGE HEADING.
*
************************************************************************
* Modification History
************************************************************************
************************************************************************
************************************************************************
* T A B L E S
************************************************************************
TABLES : ANLA.
*----------------------------------------------------------------------* T Y P E S
*----------------------------------------------------------------------TYPE-POOLS : SLIS,OLE2.
TYPES : BEGIN OF TY_OUTPUT,
BUKRS TYPE BUKRS,
ANLN1 TYPE ANLN1,
ANLN2 TYPE ANLN2,
ANLKL TYPE ANLKL,
GDESCRIPT TYPE BF_TXA50,
KTOGR TYPE KTOGR,
DEACT_DATE TYPE BF_DEAKT,
VENDOR_NO
TYPE BF_AM_LIFNR,
PURCH_NEW
TYPE XNEU_AM,
COUNTRY TYPE BF_AM_LAND1,
AREA TYPE
BF_AFABE_D,
DESCRIPT TYPE AFBKTX,
DEP_KEY TYPE BF_AFASL,
ULIFE_YRS TYPE BF_NDJAR,
EXP_ULIFE_YRS TYPE BF_NDABJ,
END OF TY_OUTPUT.
TYPES : TT_OUTPUT TYPE STANDARD TABLE OF TY_OUTPUT.
TYPES: BEGIN OF T_HEADER,
FLD TYPE CHAR40,
END OF T_HEADER.
TYPES: BEGIN OF GTY_EXCEL,
STRUC_NAME(20) TYPE C,
DATA_TAB TYPE STRING_TABLE,
END OF GTY_EXCEL.
TYPES: TY_LINE(5000) TYPE C.
*-----------------------------------------------------------------------

* V A R I A B L E D E C L A R A T I O N S
*----------------------------------------------------------------------DATA : W_BAPI1022_SELECTIONCRITERIA TYPE BAPI1022_SELECTIONCRITERIA,
W_REQUESTEDTABLESX TYPE BAPI1022_REQUESTEDTABLESX.
DATA : V_COMPANYCODE TYPE BAPI1022_1-COMP_CODE.
DATA : W_ANLA TYPE ANLA,
W_ANLB TYPE ANLB,
W_ANLV TYPE ANLV,
W_ANKA TYPE ANKA,
W_ANLZ TYPE ANLZ.
*W_GENERALDATA TYPE BAPI1022_FEGLG001_PID,
*W_INVENTORY TYPE BAPI1022_FEGLG011_PID,
*W_POSTINGINFORMATION TYPE BAPI1022_FEGLG002_PID,
*W_TIMEDEPENDENTDATA TYPE BAPI1022_FEGLG003_PID,
*W_ALLOCATIONS TYPE BAPI1022_FEGLG004_PID,
*W_ORIGIN TYPE BAPI1022_FEGLG009_PID,
*W_INVESTACCTASSIGNMNT TYPE BAPI1022_FEGLG010_PID,
*W_NETWORTHVALUATION TYPE BAPI1022_FEGLG006_PID,
*W_REALESTATE TYPE BAPI1022_FEGLG007_PID,
*W_INSURANCE TYPE BAPI1022_FEGLG008_PID,
*W_LEASING TYPE BAPI1022_FEGLG005_PID,
*W_DEPRECIATIONAREAS TYPE BAPI1022_DEP_AREAS_PID,
*W_DEPRECIATIONAREAVALS TYPE BAPI1022_VALUES,
*W_EXTENSIONOUT TYPE BAPIPAREX.
DATA : W_OUTPUT TYPE TY_OUTPUT,
W_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
*----------------------------------------------------------------------* I N T E R N A L T A B L E S
*----------------------------------------------------------------------DATA : T_BAPI1022_SELECTIONCRITERIA TYPE STANDARD TABLE OF BAPI1022_SELECTIONCRI
TERIA.
DATA :
T_ANLA
T_ANLZ
T_ANLV
T_ANLB
T_ANKA
*
*
*
*
*
*
*
*
*
*
*
*
*
*

TYPE
TYPE
TYPE
TYPE
TYPE

STANDARD
STANDARD
STANDARD
STANDARD
STANDARD

TABLE
TABLE
TABLE
TABLE
TABLE

OF
OF
OF
OF
OF

ANLA,
ANLZ,
ANLV,
ANLB,
ANKA,

T_GENERALDATA TYPE STANDARD TABLE OF BAPI1022_FEGLG001_PID,


T_INVENTORY TYPE STANDARD TABLE OF BAPI1022_FEGLG011_PID,
T_POSTINGINFORMATION TYPE STANDARD TABLE OF BAPI1022_FEGLG002_PID,
T_TIMEDEPENDENTDATA TYPE STANDARD TABLE OF BAPI1022_FEGLG003_PID,
T_ALLOCATIONS TYPE STANDARD TABLE OF BAPI1022_FEGLG004_PID,
T_ORIGIN TYPE STANDARD TABLE OF BAPI1022_FEGLG009_PID,
T_INVESTACCTASSIGNMNT TYPE STANDARD TABLE OF BAPI1022_FEGLG010_PID,
T_NETWORTHVALUATION TYPE STANDARD TABLE OF BAPI1022_FEGLG006_PID,
T_REALESTATE TYPE STANDARD TABLE OF BAPI1022_FEGLG007_PID,
T_INSURANCE TYPE STANDARD TABLE OF BAPI1022_FEGLG008_PID,
T_LEASING TYPE STANDARD TABLE OF BAPI1022_FEGLG005_PID,
T_DEPRECIATIONAREAS TYPE STANDARD TABLE OF BAPI1022_DEP_AREAS_PID,
T_DEPRECIATIONAREAVALS TYPE STANDARD TABLE OF BAPI1022_VALUES,
T_EXTENSIONOUT TYPE STANDARD TABLE OF BAPIPAREX,
T_MAPPING TYPE STANDARD TABLE OF ZDM_MAPPING,

T_CATG TYPE STANDARD TABLE OF ZDM_CATG,


T_TAB TYPE STANDARD TABLE OF ZDM_TAB,
T_TRANS TYPE STANDARD TABLE OF ZDM_TRANS,
T_HEAD1 TYPE TABLE OF T_HEADER,
T_HEAD2 TYPE TABLE OF T_HEADER,
T_HEAD3 TYPE TABLE OF T_HEADER,
T_EDATA TYPE TABLE OF TY_LINE.
DATA: BEGIN OF T_TABLE OCCURS 0,
CATG LIKE ZDM_MAPPING-CATG,
TAB LIKE ZDM_MAPPING-TAB,
TBNAME LIKE DD02L-TABNAME,
END OF T_TABLE.
DATA : T_OUTPUT TYPE TT_OUTPUT,
T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: GIT_EXCEL TYPE STANDARD TABLE OF GTY_EXCEL,
GWA_EXCEL TYPE GTY_EXCEL.
**Excle
DATA: W_EXCEL TYPE OLE2_OBJECT,
W_WORKBOOK
TYPE OLE2_OBJECT,
W_WORKSHEET
TYPE OLE2_OBJECT,
W_COLUMNS
TYPE OLE2_OBJECT,
W_COLUMN_ENT
TYPE OLE2_OBJECT,
W_CELL
TYPE OLE2_OBJECT,
W_INT
TYPE OLE2_OBJECT,
W_RANGE
TYPE OLE2_OBJECT,
W_MAPPING TYPE ZDM_MAPPING,
W_CATG TYPE ZDM_CATG,
W_TAB TYPE ZDM_TAB,
W_TRANS TYPE ZDM_TRANS,
W_HEAD TYPE T_HEADER,
WA_TAB TYPE TY_LINE.
DATA INDEX TYPE I.
DATA: LD_COLINDX TYPE I,
LD_ROWINDX TYPE I,
W_RC TYPE I.

"column index
"row index

CONSTANTS: C_TCODE(4) TYPE C VALUE 'ME11', "Transaction


C_G TYPE C VALUE 'G',
"General
C_1(3) TYPE C VALUE '001',
C_2(3) TYPE C VALUE '003',
C_3(3) TYPE C VALUE '005',
C_4(3) TYPE C VALUE '007',
C_5(3) TYPE C VALUE '009',
C_6(3) TYPE C VALUE '011',
C_7(3) TYPE C VALUE '013',
C_8(3) TYPE C VALUE '015',
C_9(3) TYPE C VALUE '019',
C_10(3) TYPE C VALUE '021',
C_11(3) TYPE C VALUE '023',
C_12(3) TYPE C VALUE '025',
C_13(3) TYPE C VALUE '027'.
CONSTANTS: ROW_MAX TYPE I VALUE 256.
CONSTANTS : CON_TAB TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.

FIELD-SYMBOLS: <FS_TABLE> TYPE STANDARD TABLE,


<FS_WA>,
<FS_FIELD>,
<FS>,
<FS_CHAR> TYPE CHAR255.
DATA: DYN_TABLE
TYPE REF TO DATA,
DYN_LINE
TYPE REF TO DATA,
WA_FIELDCAT TYPE LVC_S_FCAT,
IT_FIELDCAT TYPE LVC_T_FCAT,
GV_TAB TYPE ZDM_MAPPING-TAB,
GV_CATG TYPE ZDM_MAPPING-CATG,
GV_EXCEL TYPE C,
V_SHEETNO TYPE I.
DATA: FIELDCATALOG
GD_TAB_GROUP
GD_LAYOUT
GD_REPID
V_LENGTH

TYPE
TYPE
TYPE
LIKE
TYPE

SLIS_T_FIELDCAT_ALV WITH HEADER LINE,


SLIS_T_SP_GROUP_ALV,
SLIS_LAYOUT_ALV,
SY-REPID,
CHAR3.

* ************************************************************************
* S E L E C T - O P T I O N S A N D P A R A M E T E R S
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS : P_BUKRS TYPE ANLA-BUKRS OBLIGATORY.
SELECT-OPTIONS : S_ANLN1 FOR ANLA-ANLN1,
S_ANLN2 FOR ANLA-ANLN2,
S_ANLKL FOR ANLA-ANLKL.
SELECTION-SCREEN END OF BLOCK B1.
IF S_ANLN1-LOW NE ' '.
W_BAPI1022_SELECTIONCRITERIA-PARAMETER = 'GENERALDATA'.
W_BAPI1022_SELECTIONCRITERIA-FIELD = 'ASSET'.
W_BAPI1022_SELECTIONCRITERIA-SIGN = S_ANLN1-SIGN.
W_BAPI1022_SELECTIONCRITERIA-OPTION = S_ANLN1-OPTION.
W_BAPI1022_SELECTIONCRITERIA-LOW = S_ANLN1-LOW.
W_BAPI1022_SELECTIONCRITERIA-HIGH = S_ANLN1-HIGH.
APPEND W_BAPI1022_SELECTIONCRITERIA TO T_BAPI1022_SELECTIONCRITERIA.
CLEAR W_BAPI1022_SELECTIONCRITERIA.
ENDIF.
IF S_ANLN2-LOW NE ' '.
W_BAPI1022_SELECTIONCRITERIA-PARAMETER = 'GENERALDATA'.
W_BAPI1022_SELECTIONCRITERIA-FIELD = 'SUBNUMBER'.
W_BAPI1022_SELECTIONCRITERIA-SIGN = S_ANLN2-SIGN.
W_BAPI1022_SELECTIONCRITERIA-OPTION = S_ANLN2-OPTION.
W_BAPI1022_SELECTIONCRITERIA-LOW = S_ANLN2-LOW.
W_BAPI1022_SELECTIONCRITERIA-HIGH = S_ANLN2-HIGH.
APPEND W_BAPI1022_SELECTIONCRITERIA TO T_BAPI1022_SELECTIONCRITERIA.
CLEAR W_BAPI1022_SELECTIONCRITERIA.
ENDIF.
IF S_ANLKL-LOW NE ' '.
W_BAPI1022_SELECTIONCRITERIA-PARAMETER = 'GENERALDATA'.

W_BAPI1022_SELECTIONCRITERIA-FIELD = 'ASSETCLASS'.
W_BAPI1022_SELECTIONCRITERIA-SIGN = S_ANLKL-SIGN.
W_BAPI1022_SELECTIONCRITERIA-OPTION = S_ANLKL-OPTION.
W_BAPI1022_SELECTIONCRITERIA-LOW = S_ANLKL-LOW.
W_BAPI1022_SELECTIONCRITERIA-HIGH = S_ANLKL-HIGH.
APPEND W_BAPI1022_SELECTIONCRITERIA TO T_BAPI1022_SELECTIONCRITERIA.
CLEAR W_BAPI1022_SELECTIONCRITERIA.
ENDIF.
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE

'X'
'X'
'X'
'X'
'X'
'X'
'X'
'X'
'X'
'X'
'X'
'X'
'X'
'X'

TO
TO
TO
TO
TO
TO
TO
TO
TO
TO
TO
TO
TO
TO

W_REQUESTEDTABLESX-GENERALDATA.
W_REQUESTEDTABLESX-INVENTORY.
W_REQUESTEDTABLESX-POSTINGINFORMATION.
W_REQUESTEDTABLESX-TIMEDEPENDENTDATA.
W_REQUESTEDTABLESX-ALLOCATIONS.
W_REQUESTEDTABLESX-ORIGIN.
W_REQUESTEDTABLESX-INVESTACCTASSIGNMNT.
W_REQUESTEDTABLESX-NETWORTHVALUATION.
W_REQUESTEDTABLESX-REALESTATE.
W_REQUESTEDTABLESX-INSURANCE.
W_REQUESTEDTABLESX-LEASING.
W_REQUESTEDTABLESX-DEPRECIATIONAREAS.
W_REQUESTEDTABLESX-DEPRECIATIONAREAVALS.
W_REQUESTEDTABLESX-EXTENSIONOUT.

SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-017.


PARAMETERS: P_FILE TYPE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END OF BLOCK A.
************************************************************************
* S T A R T - O F - S E L E C T I O N
************************************************************************
START-OF-SELECTION.
PERFORM EXTRACTING_DATA.
IF NOT T_ANLA IS INITIAL.
**Master data
PERFORM GET_MASTER_DATA(ZDM_GLOBAL_ROUTINE) TABLES T_TAB T_MAPPING T_TRANS T
_CATG USING C_TCODE.
**Data preperation
PERFORM DATA_PROCESS.
ENDIF.
PERFORM DISPLAY_DATA.
*&---------------------------------------------------------------------*
*&
Form EXTRACTING_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM EXTRACTING_DATA .

V_COMPANYCODE = P_BUKRS.

*
*
*
*
*

CALL FUNCTION 'BAPI_FIXEDASSET_GETLIST'


EXPORTING
COMPANYCODE
= V_COMPANYCODE
EVALUATIONDATE
=
DEPRECIATIONAREA
=
MAXENTRIES
=
REQUESTEDTABLESX
= W_REQUESTEDTABLESX
IMPORTING
RETURN
=
TABLES
SELECTIONCRITERIA
= T_BAPI1022_SELECTIONCRITERIA
GENERALDATA
= T_GENERALDATA
INVENTORY
= T_INVENTORY
POSTINGINFORMATION
= T_POSTINGINFORMATION
TIMEDEPENDENTDATA
= T_TIMEDEPENDENTDATA
ALLOCATIONS
= T_ALLOCATIONS
ORIGIN
= T_ORIGIN
INVESTACCTASSIGNMNT
= T_INVESTACCTASSIGNMNT
NETWORTHVALUATION
= T_NETWORTHVALUATION
REALESTATE
= T_REALESTATE
INSURANCE
= T_INSURANCE
LEASING
= T_LEASING
DEPRECIATIONAREAS
= T_DEPRECIATIONAREAS
DEPRECIATIONAREAVALS
= T_DEPRECIATIONAREAVALS
EXTENSIONOUT
= T_EXTENSIONOUT
.
SORT T_POSTINGINFORMATION BY : SUBNUMBER, ASSET.
SORT T_ORIGIN BY : SUBNUMBER,ASSET.
LOOP AT T_GENERALDATA INTO W_GENERALDATA.
MOVE W_GENERALDATA-ASSET TO W_OUTPUT-ANLN1.
MOVE W_GENERALDATA-SUBNUMBER TO W_OUTPUT-ANLN2.
MOVE W_GENERALDATA-ASSETCLASS TO W_OUTPUT-ANLKL.
MOVE W_GENERALDATA-ACCT_DETRM TO W_OUTPUT-KTOGR.
MOVE W_GENERALDATA-DESCRIPT TO W_OUTPUT-GDESCRIPT.
MOVE P_BUKRS TO W_OUTPUT-BUKRS.

READ TABLE T_POSTINGINFORMATION INTO W_POSTINGINFORMATION WITH KEY ASSET = W


_GENERALDATA-ASSET SUBNUMBER = W_GENERALDATA-SUBNUMBER BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE W_POSTINGINFORMATION-DEACT_DATE TO W_OUTPUT-DEACT_DATE.
ENDIF.
READ TABLE T_ORIGIN INTO W_ORIGIN WITH KEY ASSET = W_GENERALDATA-ASSET SUBN
UMBER = W_GENERALDATA-SUBNUMBER BINARY SEARCH.
IF SY-SUBRC EQ 0.
MOVE-CORRESPONDING W_ORIGIN TO W_OUTPUT.
ENDIF.
LOOP AT T_DEPRECIATIONAREAS INTO W_DEPRECIATIONAREAS WHERE ASSET = W_GENERAL
DATA-ASSET AND SUBNUMBER = W_GENERALDATA-SUBNUMBER.
MOVE-CORRESPONDING W_DEPRECIATIONAREAS TO W_OUTPUT.
APPEND W_OUTPUT TO T_OUTPUT.
CLEAR W_DEPRECIATIONAREAS.
ENDLOOP.
CLEAR : W_OUTPUT , W_GENERALDATA,W_POSTINGINFORMATION,W_ORIGIN.

ENDLOOP.
ENDFORM.
" EXTRACTING_DATA
************************************************************************
* F O R M S
************************************************************************
*&---------------------------------------------------------------------*
*&
Form DISPLAY_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM DISPLAY_DATA .
SORT T_GENERALDATA BY : SUBNUMBER,ASSET.
PERFORM BUILD_CATALOG.
PERFORM ALV_DISPLAY.
ENDFORM.

" DISPLAY_DATA

*&---------------------------------------------------------------------*
*&
Form BUILD_CATALOG
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM BUILD_CATALOG .
W_FIELDCAT-TABNAME =
W_FIELDCAT-FIELDNAME
W_FIELDCAT-SELTEXT_M
APPEND W_FIELDCAT TO
CLEAR W_FIELDCAT.

'T_OUTPUT'.
= 'BUKRS'.
= TEXT-002.
T_FIELDCAT.

W_FIELDCAT-TABNAME = 'T_OUTPUT'.
W_FIELDCAT-FIELDNAME = 'ANLN1'.
W_FIELDCAT-REF_TABNAME = 'ANLA'.
W_FIELDCAT-REF_FIELDNAME = 'ANLN1'.
W_FIELDCAT-HOTSPOT = '1'.
W_FIELDCAT-SELTEXT_M = TEXT-003.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
W_FIELDCAT-TABNAME =
W_FIELDCAT-FIELDNAME
W_FIELDCAT-SELTEXT_M
APPEND W_FIELDCAT TO
CLEAR W_FIELDCAT.

'T_OUTPUT'.
= 'ANLN2'.
= TEXT-004.
T_FIELDCAT.

W_FIELDCAT-TABNAME =
W_FIELDCAT-FIELDNAME
W_FIELDCAT-SELTEXT_M
APPEND W_FIELDCAT TO
CLEAR W_FIELDCAT.

'T_OUTPUT'.
= 'ANLKL'.
= TEXT-005.
T_FIELDCAT.

W_FIELDCAT-TABNAME =
W_FIELDCAT-FIELDNAME
W_FIELDCAT-SELTEXT_M
APPEND W_FIELDCAT TO
CLEAR W_FIELDCAT.

'T_OUTPUT'.
= 'GDESCRIPT'.
= TEXT-007.
T_FIELDCAT.

W_FIELDCAT-TABNAME =
W_FIELDCAT-FIELDNAME
W_FIELDCAT-SELTEXT_M
APPEND W_FIELDCAT TO
CLEAR W_FIELDCAT.

'T_OUTPUT'.
= 'KTOGR'.
= TEXT-006.
T_FIELDCAT.

W_FIELDCAT-TABNAME =
W_FIELDCAT-FIELDNAME
W_FIELDCAT-SELTEXT_M
APPEND W_FIELDCAT TO
CLEAR W_FIELDCAT.

'T_OUTPUT'.
= 'DEACT_DATE'.
= TEXT-008.
T_FIELDCAT.

W_FIELDCAT-TABNAME =
W_FIELDCAT-FIELDNAME
W_FIELDCAT-SELTEXT_M
APPEND W_FIELDCAT TO
CLEAR W_FIELDCAT.

'T_OUTPUT'.
= 'VENDOR_NO'.
= TEXT-009.
T_FIELDCAT.

W_FIELDCAT-TABNAME =
W_FIELDCAT-FIELDNAME
W_FIELDCAT-SELTEXT_M
APPEND W_FIELDCAT TO
CLEAR W_FIELDCAT.

'T_OUTPUT'.
= 'PURCH_NEW'.
= TEXT-010.
T_FIELDCAT.

W_FIELDCAT-TABNAME =
W_FIELDCAT-FIELDNAME
W_FIELDCAT-SELTEXT_M
APPEND W_FIELDCAT TO
CLEAR W_FIELDCAT.

'T_OUTPUT'.
= 'COUNTRY'.
= TEXT-011.
T_FIELDCAT.

W_FIELDCAT-TABNAME =
W_FIELDCAT-FIELDNAME
W_FIELDCAT-SELTEXT_M
APPEND W_FIELDCAT TO
CLEAR W_FIELDCAT.

'T_OUTPUT'.
= 'AREA'.
= TEXT-012.
T_FIELDCAT.

W_FIELDCAT-TABNAME =
W_FIELDCAT-FIELDNAME
W_FIELDCAT-SELTEXT_M
APPEND W_FIELDCAT TO
CLEAR W_FIELDCAT.

'T_OUTPUT'.
= 'DESCRIPT'.
= TEXT-013.
T_FIELDCAT.

W_FIELDCAT-TABNAME =
W_FIELDCAT-FIELDNAME
W_FIELDCAT-SELTEXT_M
APPEND W_FIELDCAT TO
CLEAR W_FIELDCAT.

'T_OUTPUT'.
= 'DEP_KEY'.
= TEXT-014.
T_FIELDCAT.

W_FIELDCAT-TABNAME =
W_FIELDCAT-FIELDNAME
W_FIELDCAT-SELTEXT_M
APPEND W_FIELDCAT TO
CLEAR W_FIELDCAT.

'T_OUTPUT'.
= 'ULIFE_YRS'.
= TEXT-015.
T_FIELDCAT.

W_FIELDCAT-TABNAME =
W_FIELDCAT-FIELDNAME
W_FIELDCAT-SELTEXT_M
APPEND W_FIELDCAT TO
CLEAR W_FIELDCAT.

'T_OUTPUT'.
= 'EXP_ULIFE_YRS'.
= TEXT-016.
T_FIELDCAT.

ENDFORM.
" BUILD_CATALOG
*&---------------------------------------------------------------------*
*&
Form ALV_DISPLAY
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM ALV_DISPLAY .

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
I_INTERFACE_CHECK
= ' '
I_BYPASSING_BUFFER
= ' '
I_BUFFER_ACTIVE
= ' '
I_CALLBACK_PROGRAM
= SY-REPID
I_CALLBACK_PF_STATUS_SET
= ' '
I_CALLBACK_USER_COMMAND
= 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE
= ' '
I_CALLBACK_HTML_TOP_OF_PAGE
= ' '
I_CALLBACK_HTML_END_OF_LIST
= ' '
I_STRUCTURE_NAME
=
I_BACKGROUND_ID
= ' '
I_GRID_TITLE
= 'Asset Management'
I_GRID_SETTINGS
=
IS_LAYOUT
=
IT_FIELDCAT
= T_FIELDCAT
IT_EXCLUDING
=
IT_SPECIAL_GROUPS
=
IT_SORT
=
IT_FILTER
=
IS_SEL_HIDE
=
I_DEFAULT
= 'X'
I_SAVE
= ' '
IS_VARIANT
=
IT_EVENTS
=
IT_EVENT_EXIT
=
IS_PRINT
=
IS_REPREP_ID
=
I_SCREEN_START_COLUMN
= 0
I_SCREEN_START_LINE
= 0
I_SCREEN_END_COLUMN
= 0
I_SCREEN_END_LINE
= 0
I_HTML_HEIGHT_TOP
= 0
I_HTML_HEIGHT_END
= 0
IT_ALV_GRAPHICS
=
IT_HYPERLINK
=
IT_ADD_FIELDCAT
=
IT_EXCEPT_QINFO
=
IR_SALV_FULLSCREEN_ADAPTER
=
IMPORTING
E_EXIT_CAUSED_BY_CALLER
=

ES_EXIT_CAUSED_BY_USER
=
TABLES
T_OUTTAB
= T_OUTPUT
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.
ENDFORM.
" ALV_DISPLAY
*&---------------------------------------------------------------------*
*&
Form USER_COMMAND
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->R_UCOMM
text
*
-->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
IF RS_SELFIELD-FIELDNAME EQ 'ANLN1'.
READ TABLE T_OUTPUT INDEX RS_SELFIELD-TABINDEX INTO W_OUTPUT .
IF SY-SUBRC EQ 0.
SET PARAMETER ID 'AN1' FIELD W_OUTPUT-ANLN1.
SET PARAMETER ID 'AN2' FIELD W_OUTPUT-ANLN2.
SET PARAMETER ID 'BUK' FIELD W_OUTPUT-BUKRS.
SET PARAMETER ID 'ANK' FIELD W_OUTPUT-ANLKL.
CLEAR W_OUTPUT.
ENDIF.
CALL TRANSACTION 'AS03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
"USER_COMMAND
*&---------------------------------------------------------------------*
*&
Form DATA_PROCESS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM DATA_PROCESS .
DATA: LT_MAP TYPE STANDARD TABLE OF ZDM_MAP,
LW_MAP TYPE ZDM_MAP,
LV_TAB TYPE CHAR20,
LV_FLD TYPE CHAR20,
LV_TABFLD TYPE ZDM_TRANS-TABFLD.
LOOP AT T_MAPPING INTO W_MAPPING.
MOVE-CORRESPONDING W_MAPPING TO LW_MAP.
APPEND LW_MAP TO LT_MAP.
CLEAR LW_MAP.
ENDLOOP.

PERFORM TABLE_FIELDS(ZDM_GLOBAL_ROUTINE) TABLES LT_MAP T_TRANS T_TAB T_MAPPING


USING LV_TAB LV_FLD.
LOOP AT LT_MAP INTO LW_MAP.
MOVE-CORRESPONDING LW_MAP TO T_TABLE.
*preparing fieldcatalog for the output table
PERFORM FIELDCAT_INTABLE(ZDM_GLOBAL_ROUTINE) TABLES T_TRANS T_MAPPING T_HEA
D1
T_HEAD2 T_HEAD3 IT_FIEL
DCAT
USING LW_MAP LV_TABFLD
V_LENGTH.
AT END OF SEQUENCE.
APPEND T_TABLE.
GV_TAB = T_TABLE-TAB.
GV_CATG = T_TABLE-CATG.
*
GV_SEQUENCE = LW_MAP-SEQUENCE.
READ TABLE T_TAB INTO W_TAB WITH KEY CATG = GV_CATG
TAB = GV_TAB
SEQUENCE = LW_MAP-SEQUENCE
SPRAS = SY-LANGU.
**Create dynamic table
PERFORM CREATE_DYNAMIC_TABLE(ZDM_GLOBAL_ROUTINE) USING IT_FIELDCAT
CHANGING DYN_TABLE.
ASSIGN DYN_TABLE->* TO <FS_TABLE>.
* Create dynamic work area and assign to Field Symbol
CREATE DATA DYN_LINE LIKE LINE OF <FS_TABLE>.
ASSIGN DYN_LINE->* TO <FS_WA>.
**Populate data into internal table
PERFORM DATA_POPULATE.
ENDAT.
ENDLOOP.
IF GV_EXCEL EQ 'X'.
* Save the Excel file
PERFORM SAVE_EXCEL(ZDM_GLOBAL_ROUTINE) USING W_EXCEL W_WORKBOOK P_FILE.
FREE OBJECT: W_WORKSHEET, W_EXCEL.
ENDIF.
ENDFORM.
" DATA_PROCESS
.
*&---------------------------------------------------------------------*
*&
Form DATA_POPULATE
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM DATA_POPULATE .
REFRESH <FS_TABLE>.
*Asset : General Data
IF GV_CATG EQ C_G AND GV_TAB EQ C_1.
LOOP AT T_GENERALDATA INTO W_GENERALDATA.
MOVE-CORRESPONDING W_GENERALDATA TO <FS_WA>.
APPEND <FS_WA> TO <FS_TABLE>.
CLEAR <FS_WA>.

ENDLOOP.
*Asset : Inventory
ELSEIF GV_CATG EQ C_G AND GV_TAB EQ C_2.
LOOP AT T_INVENTORY INTO W_INVENTORY.
MOVE-CORRESPONDING W_INVENTORY TO <FS_WA>.
APPEND <FS_WA> TO <FS_TABLE>.
CLEAR <FS_WA>.
ENDLOOP.
*Asset : Posting Information
ELSEIF GV_CATG EQ C_G AND GV_TAB EQ C_3.
LOOP AT T_POSTINGINFORMATION INTO W_POSTINGINFORMATION.
MOVE-CORRESPONDING W_POSTINGINFORMATION TO <FS_WA>.
APPEND <FS_WA> TO <FS_TABLE>.
CLEAR <FS_WA>.
ENDLOOP.
*Asset :
ELSEIF GV_CATG EQ C_G AND GV_TAB EQ C_4.
LOOP AT T_TIMEDEPENDENTDATA INTO W_TIMEDEPENDENTDATA.
MOVE-CORRESPONDING W_TIMEDEPENDENTDATA TO <FS_WA>.
APPEND <FS_WA> TO <FS_TABLE>.
CLEAR <FS_WA>.
ENDLOOP.
*Asset :
ELSEIF GV_CATG EQ C_G AND GV_TAB EQ C_5.
LOOP AT T_ALLOCATIONS INTO W_ALLOCATIONS.
MOVE-CORRESPONDING W_ALLOCATIONS TO <FS_WA>.
APPEND <FS_WA> TO <FS_TABLE>.
CLEAR <FS_WA>.
ENDLOOP.
*Asset :
ELSEIF GV_CATG EQ C_G AND GV_TAB EQ C_6.
LOOP AT T_ORIGIN INTO W_ORIGIN.
MOVE-CORRESPONDING W_ORIGIN TO <FS_WA>.
APPEND <FS_WA> TO <FS_TABLE>.
CLEAR <FS_WA>.
ENDLOOP.
*Asset :
ELSEIF GV_CATG EQ C_G AND GV_TAB EQ C_7.
LOOP AT T_INVESTACCTASSIGNMNT INTO W_INVESTACCTASSIGNMNT.
MOVE-CORRESPONDING W_INVESTACCTASSIGNMNT TO <FS_WA>.
APPEND <FS_WA> TO <FS_TABLE>.
CLEAR <FS_WA>.
ENDLOOP.
*Asset :
ELSEIF GV_CATG EQ C_G AND GV_TAB EQ C_8.
LOOP AT T_NETWORTHVALUATION INTO W_NETWORTHVALUATION.
MOVE-CORRESPONDING W_NETWORTHVALUATION TO <FS_WA>.
APPEND <FS_WA> TO <FS_TABLE>.
CLEAR <FS_WA>.
ENDLOOP.
*Asset :
ELSEIF GV_CATG EQ C_G AND GV_TAB EQ C_9.

LOOP AT T_REALESTATE INTO W_REALESTATE.


MOVE-CORRESPONDING W_REALESTATE TO <FS_WA>.
APPEND <FS_WA> TO <FS_TABLE>.
CLEAR <FS_WA>.
ENDLOOP.
*Asset :
ELSEIF GV_CATG EQ C_G AND GV_TAB EQ C_10.
LOOP AT T_INSURANCE INTO W_INSURANCE.
MOVE-CORRESPONDING W_INSURANCE TO <FS_WA>.
APPEND <FS_WA> TO <FS_TABLE>.
CLEAR <FS_WA>.
ENDLOOP.
*Asset :
ELSEIF GV_CATG EQ C_G AND GV_TAB EQ C_11.
LOOP AT T_LEASING INTO W_LEASING.
MOVE-CORRESPONDING W_LEASING TO <FS_WA>.
APPEND <FS_WA> TO <FS_TABLE>.
CLEAR <FS_WA>.
ENDLOOP.
*Asset :
ELSEIF GV_CATG EQ C_G AND GV_TAB EQ C_12.
LOOP AT T_DEPRECIATIONAREAS INTO W_DEPRECIATIONAREAS.
MOVE-CORRESPONDING W_DEPRECIATIONAREAS TO <FS_WA>.
APPEND <FS_WA> TO <FS_TABLE>.
CLEAR <FS_WA>.
ENDLOOP.
ENDIF.
**Header1
CLEAR: WA_TAB, W_HEAD.
LOOP AT T_HEAD1 INTO W_HEAD.
ASSIGN COMPONENT SY-INDEX OF STRUCTURE W_HEAD TO <FS>.
IF WA_TAB IS INITIAL.
WA_TAB = <FS>.
ELSE.
CONCATENATE WA_TAB <FS> INTO WA_TAB SEPARATED BY CON_TAB.
ENDIF.
ENDLOOP.
APPEND WA_TAB TO T_EDATA.
**Header2
CLEAR: WA_TAB, W_HEAD.
LOOP AT T_HEAD2 INTO W_HEAD.
ASSIGN COMPONENT SY-INDEX OF STRUCTURE W_HEAD TO <FS>.
IF WA_TAB IS INITIAL.
WA_TAB = <FS>.
ELSE.
CONCATENATE WA_TAB <FS> INTO WA_TAB SEPARATED BY CON_TAB.
ENDIF.
ENDLOOP.
APPEND WA_TAB TO T_EDATA.
**Header3
CLEAR: WA_TAB, W_HEAD.
LOOP AT T_HEAD3 INTO W_HEAD.
ASSIGN COMPONENT SY-INDEX OF STRUCTURE W_HEAD TO <FS>.
IF WA_TAB IS INITIAL.

WA_TAB = <FS>.
ELSE.
CONCATENATE WA_TAB <FS> INTO WA_TAB SEPARATED BY CON_TAB.
ENDIF.
ENDLOOP.
APPEND WA_TAB TO T_EDATA.
**Data
DATA: LV_CHAR TYPE CHAR120.
CLEAR: WA_TAB, W_HEAD.
LOOP AT <FS_TABLE> INTO <FS_WA>.
DO.
ASSIGN COMPONENT SY-INDEX OF STRUCTURE <FS_WA> TO <FS>.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
LV_CHAR = <FS>.
IF WA_TAB IS INITIAL.
WA_TAB = LV_CHAR.
ELSE.
CONCATENATE WA_TAB LV_CHAR INTO WA_TAB SEPARATED BY CON_TAB.
ENDIF.
ENDDO.
APPEND WA_TAB TO T_EDATA.
CLEAR WA_TAB.
ENDLOOP.
IF GV_EXCEL IS INITIAL.
DATA:V_NSHEET TYPE I.
DESCRIBE TABLE T_TAB LINES V_NSHEET.
**Open excel sheet to populate data
PERFORM OPEN_EXCEL(ZDM_GLOBAL_ROUTINE) USING V_NSHEET W_WORKBOOK W_EXCEL.
GV_EXCEL = 'X'.
ENDIF.
V_SHEETNO = V_SHEETNO + 1.
PERFORM DOWNLOAD_SHEET(ZDM_GLOBAL_ROUTINE) TABLES T_EDATA T_HEAD1
USING W_EXCEL W_WORKSHEET W_RANGE W
_COLUMNS W_INT W_RC V_SHEETNO W_TAB-ZDESC.
GET PROPERTY OF W_EXCEL 'ActiveSheet' = W_WORKSHEET.
REFRESH: T_TABLE, IT_FIELDCAT, T_HEAD1, T_HEAD2, T_HEAD3, T_EDATA.
ENDFORM.

" DATA_POPULATE015

You might also like