As01 Program
As01 Program
* 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,
"column index
"row index
TYPE
TYPE
TYPE
LIKE
TYPE
* ************************************************************************
* 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.
V_COMPANYCODE = P_BUKRS.
*
*
*
*
*
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 .
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
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.
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.
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