0% found this document useful (0 votes)
73 views11 pages

Yk HCM Personnel Profile

This document defines a report that retrieves personnel profile information from various infotypes for a specified employee number. It includes forms to retrieve data from infotypes such as name, birthplace, political status, education details, work experience, family, and leader. The report output is formatted and printed for the user.

Uploaded by

nstomar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
73 views11 pages

Yk HCM Personnel Profile

This document defines a report that retrieves personnel profile information from various infotypes for a specified employee number. It includes forms to retrieve data from infotypes such as name, birthplace, political status, education details, work experience, family, and leader. The report output is formatted and printed for the user.

Uploaded by

nstomar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 11

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

*& Report YK_HCM_PERSONNEL_PROFILE


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT YK_HCM_PERSONNEL_PROFILE.
*&---------------------------------------------------------------------*
*& Infotypes
*&---------------------------------------------------------------------*
INFOTYPES: 0001,
0002,
0021,
0022,
0023,
0041,
0185,
0529,
0534.
TYPES: BEGIN OF TS_PINFO,
PERNR TYPE PA0002-PERNR,
NAME TYPE ZHR_NAME,
"Name
GESCH TYPE PA0002-GESCH, "Gender
GBDAT TYPE PA0002-GBDAT, "Date of Birth
GBORT TYPE PA0002-GBORT, "Birthplace
PTEXT TYPE T7CN5R-PTEXT, "Political status
LTEXT TYPE T505S-LTEXT,
"Ethnic group
WORK TYPE ZHR_WORK,
"work time
CONGYE TYPE ZHR_CONGYE,
"congye
STEXT TYPE T519T-STEXT,
"Certificate
MAJOR TYPE ZHR_MAJOR,
"school & major
IDCARD TYPE PA0185-ICNUM, "ID Card
PASSPORT TYPE PA0185-ICNUM,"Passport
STLTX TYPE T513S-STLTX,
"Job
ORGTX TYPE T527X-ORGTX,
"Organizational Unit
LEADER TYPE ZHR_LEADER,
"leader
END OF TS_PINFO.
TYPES: BEGIN OF TS_FAMILY,
SUBTY TYPE PA0021-SUBTY,
GUANXI TYPE T591S-STEXT,
FANAM TYPE PA0021-FANAM,
FAVOR TYPE PA0021-FAVOR,
NAME TYPE ZHR_NAME,
FGBDT TYPE PA0021-FGBDT,
AGE
TYPE ZHR_AGE,
FANAT TYPE PA0021-FANAT,
NATION TYPE NATIO50,
FGBOT TYPE PA0021-FGBOT,
END OF TS_FAMILY.

"Subtype
"Relation
"Last Name
"First Name
"Name
"Date of Birth
"Age
"Nationality
"Nationality
"job

TYPES: BEGIN OF TS_CV,


ARBGB TYPE PA0023-ARBGB,
BEGDA TYPE PA0023-BEGDA,
ENDDA TYPE PA0023-ENDDA,
TAETE TYPE PA0023-TAETE,

"employer
"begin date
"end date
"job

LTEXT TYPE T513C-LTEXT,


END OF TS_CV.
DATA:
DATA:
DATA:
DATA:
DATA:

GS_PINFO
GT_FAMILY
GS_FAMILY
GT_CV
GS_CV

TYPE
TYPE
LIKE
TYPE
LIKE

"job text

TS_PINFO.
TABLE OF TS_FAMILY.
LINE OF GT_FAMILY.
TABLE OF TS_CV.
LINE OF GT_CV.

CONSTANTS: G_TIME TYPE T VALUE '000000'.


*&---------------------------------------------------------------------*
*& Selection screen
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK BK1 WITH FRAME.
*Personnel
PARAMETER: P_PERNR TYPE PA0001-PERNR OBLIGATORY.
SELECTION-SCREEN END OF BLOCK BK1.
*----------------------------------------------------------------------*
* START-OF-SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM GET_INFO.
PERFORM PRINT_OUT.
*&---------------------------------------------------------------------*
*&
Form GET_INFO
*&---------------------------------------------------------------------*
*
Get personnel info.
*----------------------------------------------------------------------*
FORM GET_INFO .
perform get_pa0002.
perform get_pa0534.
perform get_pa0529.
perform get_pa0041.
perform get_pa0022.
perform get_pa0185.
perform get_pa0001.
perform get_leader.
perform get_pa0023.
perform get_pa0021.
ENDFORM.
" GET_INFO
*&---------------------------------------------------------------------*
*&
Form GET_PA0002
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM GET_PA0002 .
DATA: L_NACHN TYPE PA0002-NACHN,
L_VORNA TYPE PA0002-VORNA.
SELECT single
PERNR
NACHN
VORNA
GBORT
GBDAT
GESCH
INTO (GS_PINFO-PERNR,
L_NACHN,

"personnel no.
"Last Name
"First Name
"Birthplace
"Date of Birth
"Gender Key

FROM
WHERE
AND
AND

L_VORNA,
GS_PINFO-GBORT,
GS_PINFO-GBDAT,
GS_PINFO-GESCH)
PA0002
PERNR = P_PERNR
BEGDA <= SY-DATUM
ENDDA >= SY-DATUM.

CONCATENATE L_NACHN L_VORNA INTO GS_PINFO-NAME SEPARATED BY SPACE.


ENDFORM.
" GET_PA0001
*&---------------------------------------------------------------------*
*&
Form GET_PA0534
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM GET_PA0534 .
DATA: L_PCODE TYPE PA0534-PCODE.
SELECT
INTO
FROM
WHERE
AND
AND

SINGLE PCODE
L_PCODE
PA0534
PERNR = P_PERNR
BEGDA <= SY-DATUM
ENDDA >= SY-DATUM.

SELECT
INTO
FROM
WHERE
AND

SINGLE PTEXT
GS_PINFO-PTEXT
T7CN5R
PCODE = L_PCODE
LANGU = SY-LANGU.

"Political status

ENDFORM.
" GET_PA0534
*&---------------------------------------------------------------------*
*&
Form GET_PA0529
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM GET_PA0529 .
DATA: L_RACKY TYPE PA0529-RACKY.
SELECT
INTO
FROM
WHERE
AND
AND

SINGLE RACKY
L_RACKY
PA0529
PERNR = P_PERNR
BEGDA <= SY-DATUM
ENDDA >= SY-DATUM.

SELECT
INTO
FROM
WHERE
AND
AND

SINGLE LTEXT
GS_PINFO-LTEXT
T505S
RACKY = L_RACKY
MOLGA = '28'
SPRSL = SY-LANGU.

"Ethnic group

ENDFORM.
" GET_PA0529
*&---------------------------------------------------------------------*

*&
Form GET_PA0041
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM GET_PA0041 .
DATA:
DATA:
DATA:
DATA:
DATA:
SELECT
INTO
FROM
WHERE

LS_PA0041 TYPE PA0041.


L_TIME_WORK TYPE DATUM.
L_TIME_CONGYE TYPE DATUM.
L_TIME_1 TYPE TVRO-FAHZTD.
L_TIME_2 TYPE TVRO-FAHZTD.
SINGLE *
LS_PA0041
PA0041
PERNR = P_PERNR.

IF LS_PA0041-DAR01 = 'D2'.
L_TIME_WORK = LS_PA0041-DAT01.
ELSEIF LS_PA0041-DAR01 = 'D4'.
L_TIME_CONGYE = LS_PA0041-DAT01.
ENDIF.
IF LS_PA0041-DAR02 = 'D2'.
L_TIME_WORK = LS_PA0041-DAT02.
ELSEIF LS_PA0041-DAR02 = 'D4'.
L_TIME_CONGYE = LS_PA0041-DAT02.
ENDIF.
IF LS_PA0041-DAR03 = 'D2'.
L_TIME_WORK = LS_PA0041-DAT03.
ELSEIF LS_PA0041-DAR03 = 'D4'.
L_TIME_CONGYE = LS_PA0041-DAT03.
ENDIF.
IF LS_PA0041-DAR04 = 'D2'.
L_TIME_WORK = LS_PA0041-DAT04.
ELSEIF LS_PA0041-DAR04 = 'D4'.
L_TIME_CONGYE = LS_PA0041-DAT04.
ENDIF.
IF LS_PA0041-DAR05 = 'D2'.
L_TIME_WORK = LS_PA0041-DAT05.
ELSEIF LS_PA0041-DAR05 = 'D4'.
L_TIME_CONGYE = LS_PA0041-DAT05.
ENDIF.
IF LS_PA0041-DAR06 = 'D2'.
L_TIME_WORK = LS_PA0041-DAT06.
ELSEIF LS_PA0041-DAR06 = 'D4'.
L_TIME_CONGYE = LS_PA0041-DAT06.
ENDIF.
IF LS_PA0041-DAR07 = 'D2'.
L_TIME_WORK = LS_PA0041-DAT07.
ELSEIF LS_PA0041-DAR07 = 'D4'.
L_TIME_CONGYE = LS_PA0041-DAT07.
ENDIF.
IF LS_PA0041-DAR08 = 'D2'.

L_TIME_WORK = LS_PA0041-DAT08.
ELSEIF LS_PA0041-DAR08 = 'D4'.
L_TIME_CONGYE = LS_PA0041-DAT08.
ENDIF.
IF LS_PA0041-DAR09 = 'D2'.
L_TIME_WORK = LS_PA0041-DAT09.
ELSEIF LS_PA0041-DAR09 = 'D4'.
L_TIME_CONGYE = LS_PA0041-DAT09.
ENDIF.
IF LS_PA0041-DAR10 = 'D2'.
L_TIME_WORK = LS_PA0041-DAT10.
ELSEIF LS_PA0041-DAR10 = 'D4'.
L_TIME_CONGYE = LS_PA0041-DAT10.
ENDIF.
IF LS_PA0041-DAR11 = 'D2'.
L_TIME_WORK = LS_PA0041-DAT11.
ELSEIF LS_PA0041-DAR11 = 'D4'.
L_TIME_CONGYE = LS_PA0041-DAT11.
ENDIF.
IF LS_PA0041-DAR12 = 'D2'.
L_TIME_WORK = LS_PA0041-DAT12.
ELSEIF LS_PA0041-DAR12 = 'D4'.
L_TIME_CONGYE = LS_PA0041-DAT12.
ENDIF.
CALL FUNCTION 'SD_CALC_DURATION_FROM_DATETIME'
EXPORTING
I_DATE1
= SY-DATUM
I_TIME1
= G_TIME
I_DATE2
= L_TIME_WORK
I_TIME2
= G_TIME
IMPORTING
E_TDIFF
= L_TIME_1
*
E_DATE2_EARLY
=
EXCEPTIONS
INVALID_DATETIME
= 1
OTHERS
= 2
.
IF SY-SUBRC <> 0.
*Implement suitable error handling here
ENDIF.
GS_PINFO-WORK = L_TIME_1 / ( 24 * 365 * 10000 ).
CALL FUNCTION 'SD_CALC_DURATION_FROM_DATETIME'
EXPORTING
I_DATE1
= SY-DATUM
I_TIME1
= G_TIME
I_DATE2
= L_TIME_CONGYE
I_TIME2
= G_TIME
IMPORTING
E_TDIFF
= L_TIME_2
*
E_DATE2_EARLY
=
EXCEPTIONS
INVALID_DATETIME
= 1
OTHERS
= 2

.
IF SY-SUBRC <> 0.
*Implement suitable error handling here
ENDIF.
GS_PINFO-CONGYE = L_TIME_2 / ( 24 * 365 * 10000 ).
ENDFORM.
" GET_PA0041
*&---------------------------------------------------------------------*
*&
Form GET_PA0022
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM GET_PA0022 .
DATA: L_SLABS
L_AUSBI
L_INSTI
L_ATEXT

TYPE
TYPE
TYPE
TYPE

PA0022-SLABS,
PA0022-AUSBI,
PA0022-INSTI,
T518B-ATEXT.

SELECT SINGLE SLABS


AUSBI
INSTI
INTO (L_SLABS,
L_AUSBI,
L_INSTI)
FROM PA0022
WHERE PERNR = P_PERNR.
SELECT
INTO
FROM
WHERE
AND

SINGLE STEXT
GS_PINFO-STEXT
T519T
SLABS = L_SLABS
SPRSL = SY-LANGU.

SELECT
INTO
FROM
WHERE
AND

SINGLE ATEXT
L_ATEXT
T518B
AUSBI = L_AUSBI
LANGU = SY-LANGU.

"Certificate
"major
"school

CONCATENATE L_INSTI L_ATEXT INTO GS_PINFO-MAJOR SEPARATED BY SPACE.


ENDFORM.
" GET_PA0022
*&---------------------------------------------------------------------*
*&
Form GET_PA0185
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM GET_PA0185 .
SELECT
INTO
FROM
WHERE
AND
AND
AND

SINGLE ICNUM
GS_PINFO-IDCARD
PA0185
PERNR = P_PERNR
SUBTY = '01'
BEGDA <= SY-DATUM
ENDDA >= SY-DATUM.

SELECT SINGLE ICNUM


INTO GS_PINFO-PASSPORT

"ID Crad

"passport

FROM
WHERE
AND
AND
AND

PA0185
PERNR =
SUBTY =
BEGDA <=
ENDDA >=

P_PERNR
'02'
SY-DATUM
SY-DATUM.

ENDFORM.
" GET_PA0185
*&---------------------------------------------------------------------*
*&
Form GET_PA0001
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM GET_PA0001 .
DATA: L_STELL TYPE PA0001-STELL,
L_ORGEH TYPE PA0001-ORGEH.
SELECT SINGLE STELL
ORGEH
INTO (L_STELL,
L_ORGEH)
FROM PA0001
WHERE PERNR = P_PERNR
AND BEGDA <= SY-DATUM
AND ENDDA >= SY-DATUM.
SELECT
INTO
FROM
WHERE
AND

SINGLE STLTX
GS_PINFO-STLTX
T513S
STELL = L_STELL
SPRSL = SY-LANGU.

SELECT
INTO
FROM
WHERE
AND

SINGLE ORGTX
GS_PINFO-ORGTX
T527X
ORGEH = L_ORGEH
SPRSL = SY-LANGU.

"Job
"Organizational Unit

ENDFORM.
" GET_PA0001
*&---------------------------------------------------------------------*
*&
Form GET_LEADER
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM GET_LEADER .
DATA: LT_LEADER TYPE TSWHACTOR,
LS_LEADER LIKE LINE OF LT_LEADER,
L_OBJID TYPE HRSOBID-SOBID,
L_NACHN TYPE PA0002-NACHN,
L_VORNA TYPE PA0002-VORNA.
L_OBJID = P_PERNR.
CALL FUNCTION 'HR_ASR_GET_LEADER'
EXPORTING
OTYPE
= 'P'
OBJID
= L_OBJID
*
KEYDATE
= SY-DATUM
LEVEL
= '01'

IMPORTING
LEADER_TAB
EXCEPTIONS
WRONG_INPUT
NOTHING_FOUND
NO_ACTIVE_PLVAR
OTHERS
.
IF SY-SUBRC <> 0.
* Implement suitable error
ENDIF.

= LT_LEADER
=
=
=
=

1
2
3
4

handling here

LOOP AT LT_LEADER INTO LS_LEADER.


SELECT SINGLE NACHN
VORNA
INTO (L_NACHN,
L_VORNA)
FROM PA0002
WHERE PERNR = LS_LEADER-OBJID
AND BEGDA <= SY-DATUM
AND ENDDA >= SY-DATUM.

"Last Name
"First Name

CONCATENATE LS_LEADER-OBJID L_NACHN L_VORNA INTO GS_PINFO-LEADER


SEPARATED BY SPACE.
ENDLOOP.
ENDFORM.
" GET_LEADER
*&---------------------------------------------------------------------*
*&
Form GET_PA0023
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM GET_PA0023 .
SELECT ARBGB
BEGDA
ENDDA
TAETE
INTO CORRESPONDING FIELDS
FROM PA0023
WHERE PERNR = P_PERNR.

"Name of employer
"Start Date
"End Date
"Job at former employer(s)
OF TABLE GT_CV

LOOP AT GT_CV INTO GS_CV.


SELECT SINGLE LTEXT
INTO GS_CV-LTEXT
FROM T513C
WHERE SPRAS = SY-LANGU
AND TAETE = GS_CV-TAETE.
MODIFY GT_CV FROM GS_CV TRANSPORTING LTEXT
WHERE ARBGB = GS_CV-ARBGB
AND BEGDA = GS_CV-BEGDA
AND ENDDA = GS_CV-ENDDA.
ENDLOOP.
ENDFORM.
" GET_PA0023
*&---------------------------------------------------------------------*
*&
Form GET_PA0021
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*

FORM GET_PA0021 .
DATA: L_TIME TYPE TVRO-FAHZTD.
SELECT SUBTY
"subtype
FANAM
"Last name
FAVOR
"First name
FGBDT
"Date of Birth
FANAT
"Nationality
FGBOT
"Job
INTO CORRESPONDING FIELDS OF TABLE GT_FAMILY
FROM PA0021
WHERE PERNR = P_PERNR
AND BEGDA <= SY-DATUM
AND ENDDA >= SY-DATUM.
LOOP AT GT_FAMILY INTO GS_FAMILY.
SELECT
INTO
FROM
WHERE
AND
AND

SINGLE STEXT
GS_FAMILY-GUANXI
T591S
INFTY = '0021'
SUBTY = GS_FAMILY-SUBTY
SPRSL = SY-LANGU.

CONCATENATE GS_FAMILY-FANAM GS_FAMILY-FAVOR INTO GS_FAMILY-NAME SEPARATED BY


SPACE.
CALL FUNCTION 'SD_CALC_DURATION_FROM_DATETIME'
EXPORTING
I_DATE1
= SY-DATUM
I_TIME1
= G_TIME
I_DATE2
= GS_FAMILY-FGBDT
I_TIME2
= G_TIME
IMPORTING
E_TDIFF
= L_TIME
*
E_DATE2_EARLY
=
EXCEPTIONS
INVALID_DATETIME
= 1
OTHERS
= 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
GS_FAMILY-AGE = L_TIME / ( 24 * 365 * 10000 ).
SELECT
INTO
FROM
WHERE
AND

SINGLE NATIO50
GS_FAMILY-NATION
T005T
SPRAS = SY-LANGU
LAND1 = GS_FAMILY-FANAT.

MODIFY GT_FAMILY FROM GS_FAMILY TRANSPORTING GUANXI NAME AGE NATION


WHERE SUBTY = GS_FAMILY-SUBTY
AND FANAM = GS_FAMILY-FANAM
AND FAVOR = GS_FAMILY-FAVOR.
ENDLOOP.
ENDFORM.
" GET_PA0021
*&---------------------------------------------------------------------*

*&
Form PRINT_OUT
*&---------------------------------------------------------------------*
*
Print out
*----------------------------------------------------------------------*
FORM PRINT_OUT.
DATA: LC_FORM_ZH TYPE TDSFNAME VALUE 'YKCN_HR_PERSONNEL_PROFILE_ZH'.
DATA: LC_FORM_EN TYPE TDSFNAME VALUE 'YKCN_HR_PERSONNEL_PROFILE_EN'.
DATA: LV_NAME
TYPE RS38L_FNAM,
"FUNCTION NAME
LV_TITLE TYPE SSFCOMPOP-TDCOVTITLE, "Text for Cover Page
LS_OUTOP TYPE SSFCOMPOP,
"Output Option
LS_CONTROL TYPE SSFCTRLOP.
"Control Parameters
DATA: LC_PRINTER TYPE SSFCTRLOP-DEVICE VALUE 'PRINTER'.

*
*

*
*

IF SY-LANGU = '1'.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME
= LC_FORM_ZH
"YKCN_HR_PERSONNEL_PROFILE_ZH
VARIANT
= ' '
DIRECT_CALL
= ' '
IMPORTING
FM_NAME
= LV_NAME
EXCEPTIONS
NO_FORM
= 1
NO_FUNCTION_MODULE = 2
OTHERS
= 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ELSE.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME
= LC_FORM_EN
"YKCN_HR_PERSONNEL_PROFILE_EN
VARIANT
= ' '
DIRECT_CALL
= ' '
IMPORTING
FM_NAME
= LV_NAME
EXCEPTIONS
NO_FORM
= 1
NO_FUNCTION_MODULE = 2
OTHERS
= 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
LS_OUTOP-TDIMMED
LS_OUTOP-TDNEWID
LS_OUTOP-TDCOVTITLE
LS_CONTROL-NO_DIALOG
LS_CONTROL-PREVIEW
LS_CONTROL-DEVICE

=
=
=
=
=
=

CALL FUNCTION LV_NAME


EXPORTING
CONTROL_PARAMETERS
OUTPUT_OPTIONS
USER_SETTINGS
IV_PERNR

'X'.
'X'.
LV_TITLE.
'X'.
'X'.
LC_PRINTER.

"Print Immidiately
"New Print Spool
"Text for Cover Page
"No Preview Dialog
"Print preview
"Printer

=
=
=
=

"Control setting
"Output setting

LS_CONTROL
LS_OUTOP
SPACE
GS_PINFO-PERNR

"personnel no.

IS_PINFO
TABLES
IT_CV
IT_FAMILY
EXCEPTIONS
FORMATTING_ERROR
INTERNAL_ERROR
SEND_ERROR
USER_CANCELED
OTHERS
ENDFORM.

= GS_PINFO

"Personnel info.

= GT_CV
= GT_FAMILY

"CV
"Family

=
=
=
=
=

1
2
3
4
5.

You might also like