PURPOSE -:GETTING PROFIT CENTER DETAILS FROM CEPC & CEPCT TABLES BASED ON USER INPUT AND SAVING THE DATA IN A DESKTOP FILE AND DISPLAYING THEM.
DESCRIPTION -:On providing the Profit Center data and file path of the .txt file, the user should get the PROFIT CENTER DETAILS from CEPC & CEPCT Tables saved on the file and the details will be displayed in the output.
CODE -:* ALL THE GLOBAL DECLARATIONS
*&---------------------------------------------------------------------*
*&-------------------------DECLARATION OF TYPES------------------------*
*&---------------------------------------------------------------------*
TYPES: BEGIN OF TY_FINAL,
BUKRS TYPE BUKRS, " Company Code
PRCTR TYPE PRCTR, " Profit Center
DATBI TYPE DATBI, " valid to date
KOKRS TYPE KOKRS, " controlling area
DATAB TYPE DATAB, " valid from date
VERAK TYPE VERAPC, " person in charge of profit center
KHINR TYPE PHINR, " profit center area
TXJCD TYPE TXJCD, " tax jurisdiction code
KTEXT TYPE KTEXT, " general name
LTEXT TYPE LTEXT, " long text
ABTEI TYPE ABTEIL, " department
SEGMENT TYPE FB_SEGMENT, " segment for segmental reporting
END OF TY_FINAL.
TYPES: TY_PRCTR_T TYPE RANGE OF PRCTR,
TY_KOKRS_T TYPE RANGE OF KOKRS,
TY_BUKRS_T TYPE RANGE OF BUKRS,
TY_KHINR_T TYPE RANGE OF PHINR.
*&---------------------------------------------------------------------*
*&------------------DECLARATION OF INTERNAL TABLE----------------------*
*&---------------------------------------------------------------------*
DATA: I_FINAL TYPE STANDARD TABLE OF TY_FINAL.
*&---------------------------------------------------------------------*
*&-----------------DECLARATION OF WORK-AREA----------------------------*
*&---------------------------------------------------------------------*
DATA: WA_FINAL TYPE TY_FINAL.
*&---------------------------------------------------------------------*
*&------------------------------VARIABLES------------------------------*
*&---------------------------------------------------------------------*
DATA: G_PRCTR TYPE PRCTR,
G_DATBI TYPE DATBI,
G_KOKRS TYPE KOKRS,
G_BUKRS TYPE BUKRS,
G_KHINR TYPE PHINR.
DATA: L_V_RECORD TYPE STRING,
L_V_REM TYPE STRING,
L_V_LEFT TYPE STRING,
L_V_FILE TYPE STRING.
*&-----------------------------------------------------------------------&*
*& SELECTION SCREEN &*
*&-----------------------------------------------------------------------&*
SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE text-001.
SELECT-OPTIONS: S_PRCTR FOR G_PRCTR,
S_DATBI FOR G_DATBI,
S_KOKRS FOR G_KOKRS,
S_BUKRS FOR G_BUKRS,
S_KHINR FOR G_KHINR.
PARAMETERS: P_PREFIL TYPE RLGRAP-FILENAME obligatory.
SELECTION-SCREEN END OF BLOCK B.
*&------------------------------------------------------------------------&*
*& VALIDATING SELECTION SCREEN &*
*&------------------------------------------------------------------------&*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PREFIL.
PERFORM f_getfile_name
CHANGING P_PREFIL.
AT SELECTION-SCREEN ON S_PRCTR.
* PERFORM VALIDATION OF Profit Centre
PERFORM f_validate_profit_centre
USING S_PRCTR[].
AT SELECTION-SCREEN ON S_KOKRS.
* PERFORM VALIDATION OF Controlling Area
PERFORM f_validate_control_area
USING S_KOKRS[].
AT SELECTION-SCREEN ON S_BUKRS.
* PERFORM VALIDATION OF Company Code
PERFORM f_validate_company_code
USING S_BUKRS[].
AT SELECTION-SCREEN ON S_KHINR.
* PERFORM VALIDATION OF Profit Center Area
PERFORM f_validate_center_area
USING S_KHINR[].
*&***********************************************************************&*
START-OF-SELECTION.
*&*******FETCHING DATA FROM CEPC & CEPCT TABLES BASED ON USER INPUT******&*
SELECT CEPC~BUKRS
CEPC~PRCTR
CEPC~DATBI
CEPC~KOKRS
CEPC~DATAB
CEPC~VERAK
CEPC~KHINR
CEPC~TXJCD
CEPCT~KTEXT
CEPCT~LTEXT
CEPC~ABTEI
CEPC~SEGMENT
INTO TABLE I_FINAL
FROM CEPC INNER JOIN CEPCT ON CEPC~PRCTR = CEPCT~PRCTR
WHERE CEPC~PRCTR IN S_PRCTR
AND CEPC~DATBI IN S_DATBI
AND CEPC~KOKRS IN S_KOKRS
AND CEPC~BUKRS IN S_BUKRS
AND CEPC~KHINR IN S_KHINR .
END-OF-SELECTION.
IF SY-SUBRC <> 0 .
MESSAGE 'No Data Found' TYPE 'I'.
LEAVE LIST-PROCESSING.
ELSE.
PERFORM F_SAVE_PRES_SERVER.
PERFORM F_DISPLAY_REPORT1.
ENDIF.
* ALL THE PERFORMS.
*&---------------------------------------------------------------------*
*& Form f_getfile_name
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->FP_P_FILE text
*----------------------------------------------------------------------*
FORM f_getfile_name CHANGING fp_p_file TYPE LOCALFILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_PREFIL'
IMPORTING
file_name = fp_p_file.
ENDFORM. "f_getfile_name
*&---------------------------------------------------------------------*
*& Form F_VALIDATE_PROFIT_CENTRE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_G_PRCTR text
*----------------------------------------------------------------------*
FORM F_VALIDATE_PROFIT_CENTRE USING P_S_PRCTR TYPE TY_PRCTR_T.
SELECT PRCTR
FROM CEPC
INTO G_PRCTR
UP TO 1 ROWS
WHERE PRCTR IN P_S_PRCTR.
ENDSELECT.
IF sy-subrc NE 0.
MESSAGE 'invalid profit centre' TYPE 'E'.
ENDIF.
ENDFORM. " F_VALIDATE_PROFIT_CENTRE
*&---------------------------------------------------------------------*
*& Form F_VALIDATE_CONTROL_AREA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_G_KOKRS text
*----------------------------------------------------------------------*
FORM F_VALIDATE_CONTROL_AREA USING P_S_KOKRS TYPE TY_KOKRS_T.
SELECT KOKRS
FROM TKA01
INTO G_KOKRS
UP TO 1 ROWS
WHERE KOKRS IN P_S_KOKRS.
ENDSELECT.
IF sy-subrc NE 0.
MESSAGE 'invalid controlling area' TYPE 'E'.
ENDIF.
ENDFORM. " F_VALIDATE_CONTROL_AREA
*&---------------------------------------------------------------------*
*& Form F_VALIDATE_COMPANY_CODE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_G_BUKRS text
*----------------------------------------------------------------------*
FORM F_VALIDATE_COMPANY_CODE USING P_S_BUKRS TYPE TY_BUKRS_T.
SELECT BUKRS
FROM T001
INTO G_BUKRS
UP TO 1 ROWS
WHERE BUKRS IN P_S_BUKRS.
ENDSELECT.
IF sy-subrc NE 0.
MESSAGE 'invalid company code' TYPE 'E'.
ENDIF.
ENDFORM. " F_VALIDATE_COMPANY_CODE
*&---------------------------------------------------------------------*
*& Form F_VALIDATE_CENTER_AREA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_G_KHINR text
*----------------------------------------------------------------------*
FORM f_validate_center_area USING P_S_KHINR TYPE TY_KHINR_T.
SELECT KHINR
FROM CEPC
INTO G_KHINR
UP TO 1 ROWS
WHERE KHINR IN P_S_KHINR.
ENDSELECT.
IF sy-subrc NE 0.
MESSAGE 'invalid profit centre area' TYPE 'E'.
ENDIF.
ENDFORM. " F_VALIDATE_CENTER_AREA
*****************SAVING DATA IN PRESENTATION SERVER*********************
*&---------------------------------------------------------------------*
*& Form F_SAVE_PRES_SERVER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM F_SAVE_PRES_SERVER . L_V_FILE = P_PREFIL. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING FILENAME = L_V_FILE FILETYPE = 'ASC' APPEND = ' ' WRITE_FIELD_SEPARATOR = '|' NO_AUTH_CHECK = 'X' TABLES DATA_TAB = I_FINAL EXCEPTIONS FILE_WRITE_ERROR = 1 NO_BATCH = 2 GUI_REFUSE_FILETRANSFER = 3 INVALID_TYPE = 4 NO_AUTHORITY = 5 UNKNOWN_ERROR = 6 HEADER_NOT_ALLOWED = 7 SEPARATOR_NOT_ALLOWED = 8 FILESIZE_NOT_ALLOWED = 9 HEADER_TOO_LONG = 10 DP_ERROR_CREATE = 11 DP_ERROR_SEND = 12 DP_ERROR_WRITE = 13 UNKNOWN_DP_ERROR = 14 ACCESS_DENIED = 15 DP_OUT_OF_MEMORY = 16 DISK_FULL = 17 DP_TIMEOUT = 18 FILE_NOT_FOUND = 19 DATAPROVIDER_EXCEPTION = 20 CONTROL_FLUSH_ERROR = 21 OTHERS = 22 . 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. " F_SAVE_PRES_SERVER
***************DISPLAYING DATA FROM PRESENTATION SERVER*****************
*&---------------------------------------------------------------------*
*& Form F_DISPLAY_REPORT1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text *----------------------------------------------------------------------* FORM F_DISPLAY_REPORT1 . CALL FUNCTION 'GUI_UPLOAD' EXPORTING FILENAME = L_V_FILE FILETYPE = 'ASC' HAS_FIELD_SEPARATOR = '|' NO_AUTH_CHECK = 'X' TABLES DATA_TAB = I_FINAL 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.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
WRITE:/ 'Code',
5 sy-vline,
6 'Pro.Ctr',
16 sy-vline,
17 'To Date',
28 sy-vline,
29 'Area',
34 sy-vline,
35 'From Date',
47 sy-vline,
48 'In charge',
70 sy-vline,
71 'Ctr Area',
84 sy-vline,
85 'Tax Code',
101 sy-vline,
102 'Name',
122 sy-vline,
123 'Long Text',
152 sy-vline,
153 'Dept',
165 sy-vline,
166 'Segment'.
ULINE.
LOOP AT I_FINAL INTO WA_FINAL.
WRITE:/ WA_FINAL-BUKRS,
5 sy-vline,
6 WA_FINAL-PRCTR,
16 sy-vline,
17 WA_FINAL-DATBI,
28 sy-vline,
29 WA_FINAL-KOKRS,
34 sy-vline,
35 WA_FINAL-DATAB,
47 sy-vline,
48 WA_FINAL-VERAK,
70 sy-vline,
71 WA_FINAL-KHINR,
84 sy-vline,
85 WA_FINAL-TXJCD,
101 sy-vline,
102 WA_FINAL-KTEXT,
122 sy-vline,
123 WA_FINAL-LTEXT,
152 sy-vline,
153 WA_FINAL-ABTEI,
165 sy-vline,
166 WA_FINAL-SEGMENT.
ENDLOOP.
ULINE.
ENDFORM. " F_DISPLAY_REPORT1
OUTPUT -: