You are on page 1of 6

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

**& Report Z_CURRENT_HIRES


**&
**&---------------------------------------------------------------------*
**&
**&
**&---------------------------------------------------------------------*
*
REPORT Z_CURRENT_HIRES.
TYPE-POOLS: SLIS.
TABLES: PERNR,
PA0000,
PA0001,
HRP1001.
TYPES: BEGIN
PERNR
MASSN
END
BEGIN
PERNR
GESCH
GBDAT
END
BEGIN
OTYPE
OBJID
SOBID
END

OF
TYPE
TYPE
OF
OF
TYPE
TYPE
TYPE
OF

TY_PA0000,
PA0000-PERNR,
PA0000-MASSN,
TY_PA0000,

OF
TYPE
TYPE
TYPE
OF

TY_PA0002,
PA0002-PERNR,
PA0002-GESCH,
PA0002-GBDAT,
TY_PA0002,
TY_HRP1001,
HRP1001-OTYPE,
HRP1001-OBJID,
HRP1001-SOBID,
TY_HRP1001,

BEGIN OF
TY_HRP_SOBID,
PERNR TYPE HRP1001-SOBID,
END
OF
TY_HRP_SOBID,
BEGIN OF
TY_PA0006,
PERNR TYPE PA0006-PERNR,
TELNR TYPE PA0006-TELNR,
END OF TY_PA0006,
BEGIN
PERNR
OBJID
GESCH
GBDAT
ICNUM
TELNR
END

OF
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
OF

TY_OUTPUT,
PA0000-PERNR,
HRP1001-OBJID, " Object ID
PA0002-GESCH, " Gender
PA0002-GBDAT, "DOB
PA0185-ICNUM,
PA0006-TELNR,
TY_OUTPUT,

BEGIN OF
TY_DATA,
PERNR TYPE PA0001-PERNR,

WERKS TYPE PA0001-WERKS,


END
OF
TY_DATA..
DATA: IT_PA0000 TYPE STANDARD TABLE OF TY_PA0000,
WA_PA0000 TYPE TY_PA0000,
IT_HRP1001 TYPE STANDARD TABLE OF TY_HRP1001,
WA_HRP1001 TYPE TY_HRP1001,
IT_DATA TYPE STANDARD TABLE OF TY_DATA,
WA_DATA TYPE TY_DATA,
IT_OUTPUT TYPE STANDARD TABLE OF TY_OUTPUT,
WA_OUTPUT TYPE TY_OUTPUT.
DATA: BEGIN
PERNR
ICNUM
END

OF
TYPE
TYPE
OF

WA_PA0185,
PA0185-PERNR,
PA0185-ICNUM,
WA_PA0185,

IT_PA0185
LIKE STANDARD TABLE OF WA_PA0185,
IT_TEMP_PA0185 LIKE STANDARD TABLE OF WA_PA0185,
IT_HRP_SOBID TYPE STANDARD TABLE OF TY_HRP_SOBID,
WA_HRP_SOBID TYPE TY_HRP_SOBID,
BEGIN
PERNR
GESCH
GBDAT
END

OF
TYPE
TYPE
TYPE
OF

WA_PA0002,
PA0002-PERNR,
PA0002-GESCH,
PA0002-GBDAT,
WA_PA0002,

IT_PA0002 LIKE STANDARD TABLE OF WA_PA0002,


IT_PA0006 TYPE STANDARD TABLE OF TY_PA0006,
WA_PA0006 TYPE TY_PA0006,
LV_FILE_OBJ_ID TYPE STRING.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.


SELECT-OPTIONS: S_PERNR FOR PA0000-PERNR,
S_MASSN FOR PA0000-MASSN , " Action Code
S_WERKS FOR PA0001-WERKS. " Personal Area
PARAMETERS: ST_DATE TYPE SY-DATUM DEFAULT SY-DATUM.
SELECTION-SCREEN END OF BLOCK B1.
INITIALIZATION.
S_MASSN-LOW = 'X0'.
S_MASSN-SIGN = 'I'.
S_MASSN-OPTION = 'EQ'.
APPEND S_MASSN.

S_MASSN-LOW = 'Y0'.
S_MASSN-SIGN = 'I'.
S_MASSN-OPTION = 'EQ'.
APPEND S_MASSN.
S_MASSN-LOW = 'X2'.
S_MASSN-SIGN = 'I'.
S_MASSN-OPTION = 'EQ'.
APPEND S_MASSN.
S_MASSN-LOW = 'Y2'.
S_MASSN-SIGN = 'I'.
S_MASSN-OPTION = 'EQ'.
APPEND S_MASSN.
S_MASSN-LOW = 'X6'.
S_MASSN-SIGN = 'I'.
S_MASSN-OPTION = 'EQ'.
APPEND S_MASSN.
S_MASSN-LOW = 'Y6'.
S_MASSN-SIGN = 'I'.
S_MASSN-OPTION = 'EQ'.
APPEND S_MASSN.
S_WERKS-LOW = '6800'.
S_WERKS-SIGN = 'I'.
S_WERKS-OPTION = 'BT'.
S_WERKS-HIGH = '6899'.
APPEND S_WERKS.
START-OF-SELECTION.
SELECT PERNR
MASSN
FROM PA0000
INTO TABLE IT_PA0000
WHERE PERNR IN S_PERNR
AND MASSN IN S_MASSN
AND BEGDA EQ ST_DATE
AND ENDDA GE SY-DATUM.
IF SY-SUBRC = 0.
SORT IT_PA0000 BY PERNR.
SELECT PERNR
WERKS
FROM PA0001
INTO TABLE IT_DATA
FOR ALL ENTRIES IN IT_PA0000
WHERE PERNR = IT_PA0000-PERNR
AND WERKS IN S_WERKS.

IF SY-SUBRC = 0.
SORT IT_DATA BY PERNR.
ENDIF.
ENDIF.

IF IT_DATA IS NOT INITIAL.


LOOP AT IT_DATA INTO WA_DATA.
WA_HRP_SOBID-PERNR = WA_DATA-PERNR.
APPEND WA_HRP_SOBID TO IT_HRP_SOBID.
ENDLOOP.
*
GET EMPLOYEE CP NUMBER
SELECT OTYPE
OBJID
SOBID
FROM HRP1001
INTO TABLE IT_HRP1001
FOR ALL ENTRIES IN IT_HRP_SOBID
WHERE OTYPE = 'CP'
AND SOBID = IT_HRP_SOBID-PERNR.
IF SY-SUBRC = 0.
SORT IT_HRP1001 BY SOBID.
ENDIF.
* Get Gender & DOB
SELECT PERNR
GESCH "Gender
GBDAT "DOB
FROM PA0002
INTO TABLE IT_PA0002
FOR ALL ENTRIES IN IT_DATA
WHERE PERNR = IT_DATA-PERNR
AND BEGDA EQ SY-DATUM
AND ENDDA GE SY-DATUM.
IF SY-SUBRC = 0.
SORT IT_PA0002 BY PERNR.
ENDIF.
* Get PAN Card number
SELECT PERNR
ICNUM "PAN CARD Number
FROM PA0185
INTO TABLE IT_PA0185
FOR ALL ENTRIES IN IT_DATA
WHERE PERNR = IT_DATA-PERNR
AND ICTYP = '02'
AND BEGDA LE SY-DATUM
AND ENDDA GE SY-DATUM.
IF SY-SUBRC = 0.
SORT IT_PA0185 BY PERNR.
ENDIF.
* Get Cell Phone number

SELECT PERNR
TELNR "Telephone Number
FROM PA0006
INTO TABLE IT_PA0006
FOR ALL ENTRIES IN IT_DATA
WHERE PERNR = IT_DATA-PERNR
*
AND SUBTY EQ '1'
AND BEGDA LE SY-DATUM
AND ENDDA GE SY-DATUM.
IF SY-SUBRC = 0.
SORT IT_PA0006 BY PERNR.
ENDIF.
ENDIF.
IF IT_DATA IS NOT INITIAL.
LOOP AT IT_DATA INTO WA_DATA.
WA_OUTPUT-PERNR = WA_DATA-PERNR.
READ TABLE IT_HRP1001 INTO WA_HRP1001 WITH KEY
SOBID = WA_DATA-PERNR
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_OUTPUT-OBJID = WA_HRP1001-OBJID.
ENDIF.
READ TABLE IT_PA0002 INTO WA_PA0002 WITH KEY PERNR = WA_DATA-PERNR
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_OUTPUT-GESCH = WA_PA0002-GESCH.
WA_OUTPUT-GBDAT = WA_PA0002-GBDAT.
ENDIF.
READ TABLE IT_PA0185 INTO WA_PA0185 WITH KEY PERNR = WA_DATA-PERNR
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_OUTPUT-ICNUM = WA_PA0185-ICNUM.
ENDIF.
READ TABLE IT_PA0006 INTO WA_PA0006 WITH KEY PERNR = WA_DATA-PERNR
BINARY SEARCH.
IF SY-SUBRC = 0.
WA_OUTPUT-TELNR = WA_PA0006-TELNR.
ENDIF.
APPEND WA_OUTPUT TO IT_OUTPUT.
ENDLOOP.
ENDIF.

IF IT_OUTPUT IS NOT INITIAL.


Save the file and encrypt
LV_FILE_OBJ_ID = 'Test File'.
CALL FUNCTION 'Z_HR_SAVE_TABLE_AS_FLAT_FILE'
EXPORTING

INTERFACE_ID = 'ID2TP'
OBJ_ID
= LV_FILE_OBJ_ID
ENCRYPT
= 'X'
ORG_ARC_ID
= 'ID2DA'
ENC_ARC_ID
= 'ID2EA'
ENC_PRC_ID
= 'ID2EP'
ENC_MIS_ID
= 'ID2MS'
TABLES
OUTPUT
= IT_OUTPUT
EXCEPTIONS
FILE_CREA
= 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.
ELSE.
MESSAGE 'File saved Successfully' TYPE 'S'.
ENDIF.
ENDIF.

You might also like