REPORT
ZR_D200_HRAS111_EMPREPORT.
TABLES PERNR.
INFOTYPES: 0000,0001,0002,0006,0008.
RANGES:R_PERNR FOR PERNR-PERNR,
R_INFTY FOR P0008-INFTY.
DATA IT_LOG TYPE PLDOC_KEY_TAB.
DATA WA_LOG TYPE PLDOC_KEY.
DATA IT_INFTY_B TYPE PRELP_TAB.
DATA WA_INFTY_B TYPE PRELP.
DATA IT_INFTY_A TYPE PRELP_TAB.
DATA WA_INFTY_A TYPE PRELP.
DATA IT_FIELDS LIKE HRINFTYLOG_FIELDS
OCCURS 0 WITH HEADER LINE.
DATA:BEGIN OF ITAB OCCURS 0,
FNAME(6) TYPE C,
OLD(10) TYPE C,
NEW(10) TYPE C,
PERNR TYPE PERNR,
NACHN TYPE NACHN,
HIRE TYPE PREL-BEGDA,
WERKS TYPE P0001-WERKS,
BTRTL TYPE P0001-BTRTL,
STRAS TYPE P0006-STRAS,
ORT01 TYPE P0006-ORT01,
ORT02 TYPE P0006-ORT02,
PSTLZ TYPE P0006-PSTLZ,
TRFAR TYPE P0008-TRFAR,
TRFGB TYPE P0008-TRFGB,
TRFGR TYPE P0008-TRFGR,
ANSAL TYPE P0008-ANSAL,
END OF ITAB.
DATA: D_PERNR TYPE PERNR,
D_NACHN TYPE NACHN,
D_HIRE TYPE PREL-BEGDA,
D_WERKS TYPE P0001-WERKS,
D_BTRTL TYPE P0001-BTRTL,
D_STRAS TYPE P0006-STRAS,
D_ORT01 TYPE P0006-ORT01,
D_ORT02 TYPE P0006-ORT02,
D_PSTLZ TYPE P0006-PSTLZ,
D_TRFAR TYPE P0008-TRFAR,
D_TRFGB TYPE P0008-TRFGB,
D_TRFGR TYPE P0008-TRFGR,
D_ANSAL TYPE P0008-ANSAL.
DATA IT_HIFI TYPE PHIFI OCCURS 0 WITH
HEADER LINE.
DATA IT_UNAME TYPE UNAME_RANGE OCCURS 0
WITH HEADER LINE.
PARAMETER P_FNAME TYPE STRING
OBLIGATORY.
AT SELECTION-SCREEN ON
VALUE-REQUEST FOR P_FNAME.
CALL METHOD CL_RSAN_UT_FILES=>F4
EXPORTING
I_APPLSERV = SPACE
I_TITLE = 'CHOOSE
FILE FOR DOWN LOAD'
I_GUI_EXTENSION = '.TXT'
I_GUI_EXT_FILTER = SPACE
*
I_GUI_INITIAL_DIRECTORY =
*
I_APPLSERV_LOGICAL = 'X'
*
I_APPLSERV_AL11 = 'X'
*
IMPORTING
*
E_CANCELED =
*
E_LOGICAL_FILE =
*
E_AL11_CHOSEN =
CHANGING
C_FILE_NAME = P_FNAME
*
EXCEPTIONS
*
FAILED = 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.
START-OF-SELECTION.
GET PERNR.
RP-READ-ALL-TIME-ITY PN-BEGDA PN-ENDDA.
CALL FUNCTION 'RP_HIRE_FIRE'
EXPORTING
BEG = PN-BEGDA
END = PN-ENDDA
IMPORTING
*
FIRE_DATE =
HIRE_DATE = D_HIRE
TABLES
PPHIFI = IT_HIFI
PP0000 = P0000
PP0001 = P0001
.
REFRESH R_PERNR[].
R_PERNR-SIGN = 'I'.
R_PERNR-OPTION = 'EQ'.
R_PERNR-LOW = PERNR-PERNR.
APPEND R_PERNR.
REFRESH R_INFTY.
R_INFTY-SIGN = 'I'.
R_INFTY-OPTION = 'EQ'.
R_INFTY-LOW = '0000'.
APPEND R_INFTY.
CLEAR R_INFTY.
R_INFTY-SIGN = 'I'.
R_INFTY-OPTION = 'EQ'.
R_INFTY-LOW = '0001'.
APPEND R_INFTY.
CLEAR R_INFTY.
R_INFTY-SIGN = 'I'.
R_INFTY-OPTION = 'EQ'.
R_INFTY-LOW = '0006'.
APPEND R_INFTY.
CLEAR R_INFTY.
R_INFTY-SIGN = 'I'.
R_INFTY-OPTION = 'EQ'.
R_INFTY-LOW = '0008'.
APPEND R_INFTY.
CLEAR R_INFTY.
IT_UNAME-SIGN = 'I'.
IT_UNAME-OPTION = 'EQ'.
IT_UNAME-LOW = 'SAPUSER'.
APPEND IT_UNAME.
CLEAR IT_UNAME.
CALL FUNCTION 'HR_INFOTYPE_LOG_GET_LIST'
EXPORTING
TCLAS = 'A'
BEGDA =
PN-BEGDA
ENDDA =
PN-ENDDA
*
AUTH_CHECK = 'X'
*
USE_ARCHIVE = ' '
* IMPORTING
*
SUBRC =
TABLES
PERNR_TAB = R_PERNR[]
INFTY_TAB =
R_INFTY[]
INFTY_LOGG_KEY_TAB = IT_LOG
*
DATUM_TAB =
UNAME_TAB =
IT_UNAME
.
LOOP AT IT_LOG INTO WA_LOG.
CALL FUNCTION 'HR_INFOTYPE_LOG_GET_DETAIL'
EXPORTING
LOGGED_INFOTYPE = WA_LOG
*
AUTH_CHECK = 'X'
*
USE_ARCHIVE = ' '
* IMPORTING
*
SUBRC =
TABLES
INFTY_TAB_BEFORE =
IT_INFTY_B
INFTY_TAB_AFTER = IT_INFTY_A
FIELDS = IT_FIELDS
.
MOVE: PERNR-PERNR TO
D_PERNR,
P0002-NACHN TO D_NACHN,
P0001-WERKS TO D_WERKS,
P0001-BTRTL TO D_BTRTL,
P0006-STRAS TO D_STRAS,
P0006-ORT01 TO D_ORT01,
P0006-ORT02 TO D_ORT02,
P0006-PSTLZ TO D_PSTLZ,
P0008-TRFAR TO D_TRFAR,
P0008-TRFGB TO D_TRFGB,
P0008-TRFGR TO D_TRFGR,
P0008-ANSAL TO D_ANSAL.
LOOP AT IT_FIELDS.
IF IT_FIELDS-FNAME = 'PERSK' OR IT_FIELDS-FNAME = 'STAT2'
OR IT_FIELDS-FNAME = 'ORT01' OR
IT_FIELDS-FNAME = 'TRFGB'.
IF IT_FIELDS-OLDDT NE IT_FIELDS-NEWDT.
MOVE: IT_FIELDS-FNAME TO
ITAB-FNAME,
IT_FIELDS-OLDDT TO ITAB-OLD,
IT_FIELDS-NEWDT TO ITAB-NEW,
D_PERNR TO ITAB-PERNR,
D_NACHN TO ITAB-NACHN,
D_HIRE TO ITAB-HIRE,
D_WERKS TO ITAB-WERKS,
D_BTRTL TO ITAB-BTRTL,
D_STRAS TO ITAB-STRAS,
D_ORT01 TO ITAB-ORT01,
D_ORT02 TO ITAB-ORT02,
D_PSTLZ TO ITAB-PSTLZ,
D_TRFAR TO ITAB-TRFAR,
D_TRFGB TO ITAB-TRFGB,
D_TRFGR TO ITAB-TRFGR,
D_ANSAL TO ITAB-ANSAL.
APPEND ITAB.
CLEAR ITAB.
ENDIF.
ENDIF.
ENDLOOP.
ENDLOOP.
END-OF-SELECTION.
CALL METHOD
CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
EXPORTING
*
BIN_FILESIZE =
FILENAME =
P_FNAME
FILETYPE = 'ASC'
APPEND = SPACE
WRITE_FIELD_SEPARATOR = 'X'
*
HEADER = '00'
*
TRUNC_TRAILING_BLANKS = SPACE
*
WRITE_LF = 'X'
*
COL_SELECT = SPACE
*
COL_SELECT_MASK = SPACE
DAT_MODE = 'X'
*
CONFIRM_OVERWRITE = SPACE
* NO_AUTH_CHECK = SPACE
*
CODEPAGE = SPACE
*
IGNORE_CERR =
ABAP_TRUE
*
REPLACEMENT = '#'
*
WRITE_BOM = SPACE
*
TRUNC_TRAILING_BLANKS_EOL = 'X'
*
WK1_N_FORMAT = SPACE
*
WK1_N_SIZE = SPACE
*
WK1_T_FORMAT = SPACE
*
WK1_T_SIZE = SPACE
*
IMPORTING
*
FILELENGTH =
CHANGING
DATA_TAB = ITAB[]
*
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
*
NOT_SUPPORTED_BY_GUI = 22
*
ERROR_NO_GUI = 23
*
others = 24
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY
NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3
SY-MSGV4.
ENDIF.