Escolar Documentos
Profissional Documentos
Cultura Documentos
hrp1007-objid,
hrp1007-status,
hrp1007-begda,
hrp1007-endda,
BEGIN OF t_actions,
pernr TYPE pa0000-pernr,
endda TYPE pa0000-endda,
begda TYPE pa0000-begda,
massn TYPE pa0000-massn,
massg TYPE pa0000-massg,
aedtm TYPE pa0000-aedtm,
stat2 TYPE pa0000-stat2,
END OF t_actions,
"Positions
"Position Status - 0(Open)/2(Filled)
"Begin Date
"End Date
"Personnel Number
"End Date
"Begin date
"Action Type
"Action Reason
"Change Date
"Status
BEGIN OF t_pernr,
pernr TYPE pb4002-pernr,
objid TYPE pb4002-objid,
begda TYPE pb4002-begda,
endda TYPE pb4002-endda,
END OF t_pernr,
"Applicant Number
"Applicant Position ID
"Begin date
"End Date
BEGIN OF t_rep,
applno
TYPE
vacnum
TYPE
vacdesc
TYPE
respo
TYPE
resrf
TYPE
stell
TYPE
eeoct
TYPE
orgeh
TYPE
orgtext
TYPE
persa
TYPE
patext
TYPE
stras
TYPE
ort01
TYPE
regio
TYPE
pstlz
TYPE
addrs(60) TYPE
btrtl
TYPE
trfg1
TYPE
pernr
TYPE
apsta
TYPE
strea
TYPE
persg
TYPE
appgrp(8) TYPE
nachn
TYPE
vorna
TYPE
gesch
TYPE
racky
TYPE
slart
TYPE
slabs
TYPE
edlvl
TYPE
edcert
TYPE
statx
TYPE
reatx
TYPE
int(1)
TYPE
begda
TYPE
END OF t_rep,
BEGIN OF t_out,
vacnum(8) TYPE
vacdesc(40) TYPE
respo(8)
TYPE
resrf(3)
TYPE
eeoct(2)
TYPE
orgtext(40) TYPE
persa(4)
TYPE
patext(30) TYPE
addrs(60) TYPE
btrtl(4)
TYPE
trfg1(8)
TYPE
pernr(8)
TYPE
apsta(1)
TYPE
appgrp(8) TYPE
c,
c,
c,
c,
c,
c,
c,
c,
c,
c,
c,
c,
c,
c,
nachn(40)
vorna(40)
gesch(1)
racky(2)
edlvl(20)
edcert(40)
statx(20)
reatx(30)
int(1)
begda(8)
END OF t_out,
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
BEGIN OF t_file,
line(426) TYPE c,
END OF t_file.
c,
c,
c,
c,
c,
c,
c,
c,
c,
c,
" Download
*----------------------------------------------------------------------*
*
D A T A D E C L A R A T I O N S
*
*----------------------------------------------------------------------*
*
Table Data containing the position details with Postion status
DATA: it_pos TYPE STANDARD TABLE OF t_pos,
st_pos TYPE t_pos,
*
Table Data containing the action data for each pernr
it_actions TYPE STANDARD TABLE OF t_actions,
st_actions TYPE t_actions,
*
Table Data containing the applicant data for vacant positions
it_pernr TYPE STANDARD TABLE OF t_pernr,
st_pernr TYPE t_pernr,
*
Table Data containing the Vacany report details
it_rep TYPE STANDARD TABLE OF t_rep,
st_rep TYPE t_rep,
*
Download Fixed Length File
it_file TYPE TABLE OF t_file,
st_file TYPE t_file,
*
For Header
lst_hdr TYPE t_out,
*
For Interface
st_out TYPE t_out,
it_out TYPE TABLE OF t_out,
*
Events
st_events TYPE zth_events,
*
ALV
*
For Field catalog
it_fieldcat TYPE STANDARD TABLE OF slis_fieldcat_alv,
st_fieldcat TYPE slis_fieldcat_alv,
*
For ALV header display
it_listheader TYPE STANDARD TABLE OF slis_listheader,
st_listheader TYPE slis_listheader,
*
Sort
it_sort
TYPE slis_t_sortinfo_alv,
st_sort
TYPE slis_sortinfo_alv,
*
For ALV Event
it_events TYPE slis_t_event,
*
For Layout structure
st_layout TYPE slis_layout_alv.
*
MACRO used for catlog preparation.
DEFINE f_cat.
st_fieldcat-col_pos
= &1.
st_fieldcat-tabname = 'IT_REP'.
st_fieldcat-fieldname = &2.
if &3 = 'G'.
st_fieldcat-no_out = 'X'.
st_fieldcat-tech = 'X'.
endif.
st_fieldcat-datatype = &3.
st_fieldcat-seltext_s = &4.
st_fieldcat-seltext_l = &5.
append st_fieldcat to it_fieldcat.
clear st_fieldcat.
END-OF-DEFINITION.
*----------------------------------------------------------------------*
*
C O N S T A N T S
*
*----------------------------------------------------------------------*
CONSTANTS:
c_tab(1) TYPE c VALUE cl_abap_char_utilities=>horizontal_tab.
*----------------------------------------------------------------------*
*
G L O B A L D E C L A R A T I O N S
*
*----------------------------------------------------------------------*
DATA: g_repid
TYPE sy-repid,
g_flag(1) TYPE c.
"Flag
*----------------------------------------------------------------------*
*
S E L E C T I O N S C R E E N S
*
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-ss1.
SELECT-OPTIONS s_rdate FOR sy-datum NO-EXTENSION.
SELECTION-SCREEN END OF BLOCK blk1.
SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-ss2.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_cvac RADIOBUTTON GROUP rad1 DEFAULT 'X'
USER-COMMAND f1.
SELECTION-SCREEN COMMENT 5(30) text-015 FOR FIELD p_cvac.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : p_ovac RADIOBUTTON GROUP rad1.
SELECTION-SCREEN COMMENT 5(30) text-016 FOR FIELD p_ovac.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK blk2.
SELECTION-SCREEN BEGIN OF BLOCK blk4 WITH FRAME TITLE text-ss4.
SELECTION-SCREEN BEGIN OF LINE.
* Create File
PARAMETERS: p_creat AS CHECKBOX.
SELECTION-SCREEN COMMENT 5(16) text-ss5 FOR FIELD p_creat.
* Header
PARAMETERS: p_headr AS CHECKBOX.
SELECTION-SCREEN COMMENT 25(23) text-ss6 FOR FIELD p_headr.
* Delimit Character
PARAMETERS: p_dlchr(1) TYPE c.
SELECTION-SCREEN COMMENT 52(27) text-ss7 FOR FIELD p_dlchr.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN SKIP 1.
* Application Server
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_appl RADIOBUTTON GROUP rad2 USER-COMMAND f2
MODIF ID sc1 DEFAULT 'X'.
SELECTION-SCREEN COMMENT 5(30) text-017 FOR FIELD p_appl.
*
*
*
*
*
*----------------------------------------------------------------------*
*
AT SELECTION-SCREEN ON VALUE REQUEST
*
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_prdir.
PERFORM f4_help_directory_browser CHANGING p_prdir.
*----------------------------------------------------------------------*
*
M A I N
P R O C E S S I N G F L O W
*
*----------------------------------------------------------------------*
START-OF-SELECTION.
IF NOT p_creat IS INITIAL.
* Derive the file names
PERFORM z_get_file_names.
ENDIF.
IF p_cvac = 'X'.
* Get the Vacancy data for all closed positions
PERFORM get_new_actions.
* Retrieve data for closed vacancies based on actions
PERFORM process_closed_vac.
ELSEIF p_ovac = 'X'.
* Get the Vacancy data for all closed positions
PERFORM get_vacant_pos.
LOOP AT it_pos INTO st_pos.
* Retrieve data for Open vacancies
PERFORM open_vac_rep_data USING st_pos-plnobjid
st_pos-begda
st_pos-endda.
ENDLOOP.
ENDIF.
*----------------------------------------------------------------------*
*
E N D - O F - S E L E C T I O N
*
*----------------------------------------------------------------------*
END-OF-SELECTION.
SORT it_rep BY vacnum.
IF NOT p_creat IS INITIAL.
REFRESH it_file.
* Move the contents to IT_FILE
PERFORM prepare_output.
* Download the files
*
*
*
*
*
*
*
IF p_pres = c_true .
Onto presentation server
PERFORM z_download_files_to_pre.
ENDIF.
IF p_appl = c_true .
Onto application server
PERFORM z_download_files_to_app.
ENDIF.
DK01- Start of Delete
IF g_ret_code IS INITIAL.
PERFORM update_event.
ENDIF.
DK01- End of Delete
ENDIF.
Display Report
PERFORM zwrite_report.
*&---------------------------------------------------------------------*
*&
Form selection_screen_output
*&---------------------------------------------------------------------*
*
Selection Screen Output
*----------------------------------------------------------------------*
FORM selection_screen_output .
DATA : l_date TYPE d.
l_date = s_rdate-high.
IF sy-ucomm = 'F1' OR
s_rdate[] IS INITIAL.
REFRESH s_rdate.
IF NOT p_cvac IS INITIAL.
SELECT SINGLE * FROM zth_events INTO st_events
WHERE interface = 'R012'
AND filecode = 'C'.
IF sy-subrc EQ 0.
s_rdate-sign = 'I'. s_rdate-option = 'EQ'.
s_rdate-low = st_events-endda + 1.
s_rdate-high = l_date. APPEND s_rdate.
ENDIF.
ENDIF.
IF NOT p_ovac IS INITIAL.
SELECT SINGLE * FROM zth_events INTO st_events
WHERE interface = 'R012'
AND filecode = 'O'.
IF sy-subrc EQ 0.
s_rdate-sign = 'I'. s_rdate-option = 'EQ'.
s_rdate-low = st_events-endda + 1.
s_rdate-high = l_date. APPEND s_rdate.
ENDIF.
ENDIF.
ENDIF.
*
*
LOOP AT SCREEN.
If the application server radiobutton is selected then disable the
Presentation server fields
IF p_appl = c_true.
IF screen-name = 'P_PRDIR'.
screen-input = 0.
CLEAR p_prdir.
ENDIF.
IF screen-name = 'P_PREFN'.
screen-input = 0.
CLEAR p_prefn.
ENDIF.
IF screen-name = 'P_APPDIR'.
screen-input = 0.
ENDIF.
ENDIF.
IF p_pres = c_true.
* If the presentaion server radiobutton is selected then disable the
* application server fields
IF screen-name = 'P_APPDIR'.
screen-input = 0.
ENDIF.
IF screen-name = 'P_APPFN'.
screen-input = 0.
CLEAR p_appfn.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDFORM.
" selection_screen_output
*&---------------------------------------------------------------------*
*&
Form prepare_output
*&---------------------------------------------------------------------*
*
Prepare Output to be Downloaded
*----------------------------------------------------------------------*
FORM prepare_output .
DATA: l_dchar(1) TYPE c.
"Delimit Character
l_dchar = p_dlchr.
IF p_dlchr = 'T'.
" Tab
l_dchar = c_tab.
ENDIF.
* Get the Required Heading
PERFORM get_header.
LOOP AT it_rep INTO st_rep.
IF NOT p_headr IS INITIAL.
AT FIRST.
IF NOT l_dchar IS INITIAL.
*
Delimited Heading
PERFORM concatenate_headr.
ELSE.
st_file-line = lst_hdr.
ENDIF.
APPEND st_file TO it_file. CLEAR st_file.
ENDAT.
ENDIF.
MOVE-CORRESPONDING st_rep TO st_out.
IF NOT l_dchar IS INITIAL.
*
Delimit Record
PERFORM concatenate_out.
ELSE.
st_file-line = st_out.
ENDIF.
APPEND st_file TO it_file. CLEAR st_file.
ENDLOOP.
ENDFORM.
" prepare_output
*&---------------------------------------------------------------------*
*&
Form get_header
*&---------------------------------------------------------------------*
* Fill Column Headings into Structure
*----------------------------------------------------------------------*
FORM get_header .
* Column Header Line
lst_hdr-vacnum = 'VacNum'(101).
lst_hdr-vacdesc = 'VacDesc'(102).
lst_hdr-respo
= 'LineMgr'(103).
lst_hdr-resrf
= 'RespPer'(104).
lst_hdr-eeoct
= 'EEO-1'(105).
lst_hdr-orgtext = 'Dept'(106).
lst_hdr-persa
= 'PA'(107).
lst_hdr-patext = 'PA_Text'(108).
lst_hdr-addrs
= 'PA_Add'(109).
lst_hdr-btrtl
= 'PSA'(110).
lst_hdr-trfg1
= 'PayScGrp'(111).
lst_hdr-pernr
= 'AppNum'(112).
lst_hdr-apsta
= 'AppStat'(113).
lst_hdr-appgrp = 'AppGrp'(114).
lst_hdr-nachn
= 'L_Name'(115).
lst_hdr-vorna
= 'F_Name'(116).
lst_hdr-gesch
= 'Gender'(117).
lst_hdr-racky
= 'EO'(118).
lst_hdr-edlvl
= 'EdLvl'(119).
lst_hdr-edcert = 'EdCert'(120).
lst_hdr-statx
= 'VacAssgSt'(121).
lst_hdr-reatx
= 'VacAssgRea'(122).
lst_hdr-int
= 'I'(123).
lst_hdr-begda
= 'VacFilDat'(124).
ENDFORM.
" get_header
*&---------------------------------------------------------------------*
*&
Form concatenate_headr
*&---------------------------------------------------------------------*
* Get Delimited Header
*----------------------------------------------------------------------*
FORM concatenate_headr .
DATA: l_dchar(1) TYPE c.
"Delimit Character
l_dchar = p_dlchr.
IF p_dlchr = 'T'.
" Tab
l_dchar = c_tab.
ENDIF.
CONCATENATE lst_hdr-vacnum
lst_hdr-vacdesc
lst_hdr-respo
lst_hdr-resrf
lst_hdr-eeoct
lst_hdr-orgtext
lst_hdr-persa
lst_hdr-patext
lst_hdr-addrs
lst_hdr-btrtl
lst_hdr-trfg1
lst_hdr-pernr
lst_hdr-apsta
lst_hdr-appgrp
lst_hdr-nachn
lst_hdr-vorna
lst_hdr-gesch
lst_hdr-racky
lst_hdr-edlvl
lst_hdr-edcert
lst_hdr-statx
lst_hdr-reatx
lst_hdr-int
lst_hdr-begda
INTO st_file-line SEPARATED BY l_dchar.
ENDFORM.
" concatenate_headr
*&---------------------------------------------------------------------*
*&
Form concatenate_out
*&---------------------------------------------------------------------*
*
Record with Delimiter
*----------------------------------------------------------------------*
FORM concatenate_out .
DATA: l_dchar(1) TYPE c.
"Delimit Character
l_dchar = p_dlchr.
IF p_dlchr = 'T'.
" Tab
l_dchar = c_tab.
ENDIF.
CONCATENATE st_out-vacnum
st_out-vacdesc
st_out-respo
st_out-resrf
st_out-eeoct
st_out-orgtext
st_out-persa
st_out-patext
st_out-addrs
st_out-btrtl
st_out-trfg1
st_out-pernr
st_out-apsta
st_out-appgrp
st_out-nachn
st_out-vorna
st_out-gesch
st_out-racky
st_out-edlvl
st_out-edcert
st_out-statx
st_out-reatx
st_out-int
st_out-begda
INTO st_file-line SEPARATED BY l_dchar.
ENDFORM.
" concatenate_out
*&---------------------------------------------------------------------*
*&
Form zwrite_report
*&---------------------------------------------------------------------*
*
Display ALV Report
*----------------------------------------------------------------------*
FORM zwrite_report .
* Prepare ALV field catalog for display
PERFORM create_catalog.
* Sorting
PERFORM create_sort.
* Preparing Layout structure
PERFORM set_layout.
* Prepare ALV Event
PERFORM fill_events.
* Prepare ALV header for display
PERFORM list_header.
* Call ALV
g_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = g_repid
is_layout
= st_layout
it_fieldcat
= it_fieldcat
it_sort
= it_sort
it_events
= it_events
TABLES
t_outtab
= it_rep
EXCEPTIONS
program_error
= 1
OTHERS
= 2.
IF sy-subrc <> 0.
MESSAGE i301(zhhr).
ENDIF.
ENDFORM.
" zwrite_report
*&---------------------------------------------------------------------*
*&
Form z_download_files_to_pre
*&---------------------------------------------------------------------*
*
Download the files into the presentation server
*----------------------------------------------------------------------*
FORM z_download_files_to_pre .
DATA: l_filename TYPE string, "Filename
l_tablename TYPE char20. "Tablename
* Download the processed file
l_filename = g_outp_fn.
l_tablename = 'IT_FILE'(020).
PERFORM z_pre_download USING l_filename l_tablename.
IF NOT g_ret_code IS INITIAL.
MESSAGE i302 WITH g_outp_fn.
ENDIF.
ENDFORM.
" z_download_files_to_pre
*&---------------------------------------------------------------------*
*&
Form z_download_files_to_app
*&---------------------------------------------------------------------*
*
Download all the files to Application server
*----------------------------------------------------------------------*
FORM z_download_files_to_app .
DATA: l_filename TYPE string. "Filename
* Download the processed file
l_filename = g_outp_fn.
PERFORM z_file_download USING l_filename.
IF NOT g_ret_code IS INITIAL.
MESSAGE i302 WITH g_outp_fn.
ENDIF.
ENDFORM.
" z_download_files_to_app
*&---------------------------------------------------------------------*
*&
Form z_file_download
*&---------------------------------------------------------------------*
*
Download file on applicatin server
*----------------------------------------------------------------------*
FORM z_file_download USING pv_filename TYPE any.
* Open the file
OPEN DATASET pv_filename FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc = 0.
LOOP AT it_file INTO st_file.
*
Tranfer the data from the internal table
TRANSFER st_file TO pv_filename LENGTH 426.
ENDLOOP.
* Close the file
CLOSE DATASET pv_filename.
ENDIF.
ENDFORM.
" z_file_download
*&---------------------------------------------------------------------*
*&
Form create_catalog
*&---------------------------------------------------------------------*
*
Prepare Field Catalog for ALV Display
*----------------------------------------------------------------------*
FORM create_catalog .
REFRESH it_fieldcat.
f_cat 01 'VACNUM'
' '
'VacNum'(s01)
'Vacancy Number'(c01).
f_cat 02 'VACDESC' ' '
'VacDesc'(s02)
'Vacancy Description'(c02).
f_cat 03 'RESPO'
' '
'LineMgr'(s03)
'Line Manager'(c03).
f_cat 04 'RESRF'
' '
'RespPer'(s04)
'Responsible Person'(c04).
f_cat 05 'EEOCT'
' '
'EEO-1'(s05)
'EEO-1 Category'(c05).
f_cat 06 'ORGTEXT' ' '
'Dept'(s06)
'Department'(c06).
f_cat 07 'PERSA'
' '
'PersArea'(s07)
'Personnel Area'(c07).
f_cat 08 'PATEXT'
' '
'PA_Text'(s08)
'Personnel Area Text'(c08).
f_cat 09 'ADDRS'
' '
'PA_Add'(s09)
'Personnel Area Address'(c09).
f_cat 10 'BTRTL'
' '
'PersSubArea'(s10) 'Personnel Subarea'(c10).
f_cat 11 'TRFG1'
' '
'PayScGrp'(s11)
'Pay Scale Group'(c11).
f_cat 12 'PERNR'
' '
'AppNum'(s12)
'Applicant Number'(c12).
f_cat 13 'APSTA'
' '
'AppStat'(s13)
'Applicant Status'(c13).
f_cat 14 'APPGRP'
' '
'AppGrp'(s14)
'Applicant Group'(c14).
f_cat 15 'NACHN'
' '
'L_Name'(s15)
'Last Name'(c15).
f_cat 16 'VORNA'
' '
'F_Name'(s16)
'First Name'(c16).
f_cat 17 'GESCH'
' '
'Gender'(s17)
'Gender'(c17).
f_cat 18 'RACKY'
' '
'EthOrg'(s18)
'Ethnic Origin'(c18).
f_cat 19 'EDLVL'
' '
'EdLvl'(s19)
'Educational Level'(c19).
f_cat 20 'EDCERT'
' '
'EdCert'(s20)
'Educational Certificate'(c20)
.
f_cat 21 'STATX'
' '
'VacAssgSt'(s21)
'Vacancy Assignment Status'(c2
1).
f_cat 22 'REATX'
' '
'VacAssgRea'(s22) 'Vacancy Assignment Reason'(c2
2).
f_cat 23 'INT'
' '
'Int'(s23)
'Interviewed'(c23).
f_cat 24 'BEGDA'
'DATS' 'VacFillDte'(s24) 'Vacancy Filled Date'(c24).
f_cat 25 'APPLNO'
'G'
' '
' '.
f_cat 26 'STELL'
'G'
' '
' '.
f_cat 27 'ORGEH'
'G'
' '
' '.
f_cat 28 'STRAS'
'G'
' '
' '.
f_cat 29 'ORT01'
'G'
' '
' '.
f_cat 30 'REGIO'
'G'
' '
' '.
f_cat 31 'PSTLZ'
'G'
' '
' '.
f_cat 32 'STREA'
'G'
' '
' '.
f_cat 33 'PERSG'
'G'
' '
' '.
f_cat 34 'SLART'
'G'
' '
' '.
f_cat 35 'SLABS'
'G'
' '
' '.
ENDFORM.
" create_catalog
*&---------------------------------------------------------------------*
*&
Form set_layout
*&---------------------------------------------------------------------*
*
Set Layout Structure
*----------------------------------------------------------------------*
FORM set_layout .
st_layout-colwidth_optimize = c_true.
" Optimizes Length
st_layout-zebra = c_true.
" Alternate Colors
st_layout-max_linesize = 455.
st_layout-min_linesize = 80.
st_layout-window_titlebar =
'R-HR-020-080-010 Open & Closed Vacancy Report'(l25).
ENDFORM.
" set_layout
*&---------------------------------------------------------------------*
*&
Form fill_events
*&---------------------------------------------------------------------*
*
Fill Events ( Get top_of_page)
*----------------------------------------------------------------------*
FORM fill_events .
DATA: ls_event TYPE slis_alv_event.
* Getting all the related events using the below function module
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0 "simple list REUSE_ALV_LIST_DISPLAY
IMPORTING
et_events = it_events.
* Bulding in Events
READ TABLE it_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE slis_ev_top_of_page TO ls_event-form.
MODIFY it_events FROM ls_event INDEX sy-tabix
TRANSPORTING form.
ENDIF.
ENDFORM.
" fill_events
*---------------------------------------------------------------------*
*
FORM top_of_page
*
*---------------------------------------------------------------------*
* Top of page event for basic list display
*
*---------------------------------------------------------------------*
FORM top_of_page .
"#EC CALLED
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_listheader.
ENDFORM.
" top_of_page
*&---------------------------------------------------------------------*
*&
Form list_header
*&---------------------------------------------------------------------*
*
Get Header for Display
*----------------------------------------------------------------------*
FORM list_header .
DATA : l_char(10) TYPE c,
l_len TYPE i,
l_text TYPE string.
REFRESH it_listheader.
st_listheader-typ = 'H'.
* st_listheader-info = 'Closed Vacancy & Applts by APP Dist.'(h44). "SS01*Begin: SS01+
IF p_ovac = 'X'.
l_text = 'Open Vacancy Report'(h45).
ELSEIF p_cvac = 'X'.
l_text = 'Closed Vacancy Report'(h46).
ENDIF.
st_listheader-info = l_text.
*End: SS01+
APPEND st_listheader TO it_listheader. CLEAR st_listheader.
st_listheader-typ = 'S'.
st_listheader-key = 'Run On:'(h05).
WRITE sy-uzeit TO l_char.
WRITE sy-datum TO st_listheader-info.
CONCATENATE st_listheader-info l_char INTO st_listheader-info
SEPARATED BY space.
APPEND st_listheader TO it_listheader. CLEAR st_listheader.
st_listheader-typ = 'S'.
st_listheader-key = 'Period :'(h07).
WRITE s_rdate-low TO st_listheader-info.
WRITE s_rdate-high TO l_char.
CONCATENATE st_listheader-info 'To: '(h11)
l_char INTO st_listheader-info
SEPARATED BY space.
APPEND st_listheader TO it_listheader. CLEAR st_listheader.
st_listheader-typ = 'S'.
st_listheader-key = 'Recs Processed'(h09).
DESCRIBE TABLE it_rep LINES sy-index.
WRITE sy-index TO st_listheader-info LEFT-JUSTIFIED.
APPEND st_listheader TO it_listheader. CLEAR st_listheader.
IF NOT p_creat IS INITIAL.
l_len = STRLEN( g_outp_fn ).
IF l_len > 60.
st_listheader-typ = 'S'.
st_listheader-key = 'Downloaded File'(h10).
st_listheader-info = g_outp_fn+0(60).
APPEND st_listheader TO it_listheader. CLEAR st_listheader.
l_len = l_len - 60.
st_listheader-typ = 'S'.
*
st_listheader-key = 'Downloaded File'(h10).
st_listheader-info = g_outp_fn+60(l_len).
APPEND st_listheader TO it_listheader. CLEAR st_listheader.
ELSE.
st_listheader-typ = 'S'.
st_listheader-key = 'Downloaded File'(h10).
st_listheader-info = g_outp_fn.
APPEND st_listheader TO it_listheader. CLEAR st_listheader.
ENDIF.
ENDIF.
ENDFORM.
" list_header
*&---------------------------------------------------------------------*
*&
Form get_new_actions
*&---------------------------------------------------------------------*
*
Get the actions data for each PERNR
*----------------------------------------------------------------------*
FORM get_new_actions .
*Get the actions data for all Hire actions
SELECT pernr endda begda massn massg aedtm stat2
FROM pa0000
INTO TABLE it_actions
ENDSELECT.
IF sy-subrc = 0.
l_objid = l_plans.
* DK02- Start of Delete
**
Check if the position exists in HRP1007 table
*
SELECT objid UP TO 1 ROWS FROM hrp1007
*
INTO l_objid
*
WHERE plvar = '01'
*
AND otype = 'S'
**
AND objid = l_plans "SS01*
AND objid = l_objid
"SS01+
*
AND istat = '1'
**
AND begda <= st_actions-begda "SS01**
AND endda >= st_actions-endda. "SS01*
AND begda <= st_actions-endda
"SS01+
*
AND endda >= st_actions-begda. "SS01+
*
ENDSELECT.
*
IF sy-subrc = 0.
* DK02- End of Delete
*
Vacancy found, get the closed vacncy data for the PERNR
PERFORM closed_vac_rep_data USING l_objid
st_actions-begda
st_actions-begda.
*
ENDIF.
" DK02ENDIF.
* Begin: SS01+
CLEAR st_actions.
* End: SS01ENDLOOP.
ENDFORM.
"Process_Closed_Vac
*&---------------------------------------------------------------------*
*&
Form closed_vac_rep_data
*&---------------------------------------------------------------------*
*
Get the closed Vacancy data for all the PERNRs
*----------------------------------------------------------------------*
FORM closed_vac_rep_data USING value(pv_objid) TYPE hrp1001-objid
value(pv_begda) TYPE p0000-begda
value(pv_endda) TYPE p0000-endda.
* SELECT SINGLE pernr FROM pb4005 INTO st_rep-applno
*
WHERE empnr = st_actions-pernr
*
AND begda <= pv_endda
*
AND endda >= pv_begda.
** If no application number is found for the PERNR, exit the block.
* IF sy-subrc NE 0.
SELECT aplno UP TO 1 ROWS FROM pa0139 INTO st_rep-applno
WHERE pernr = st_actions-pernr.
ENDSELECT.
IF sy-subrc NE 0.
*
EXIT.
* Begin : SS01+
CLEAR st_rep-applno.
* End : SS01+
ENDIF.
* ENDIF.
* Get the Position details for the PERNR
PERFORM get_position_details USING pv_objid pv_begda pv_endda.
* Get the Applicant/Personnel Number
st_rep-pernr = st_actions-pernr.
* Begin : SS01+
INTO st_rep-vacdesc
= '01'
= '1'
= 'S'
= pv_objid
<= pv_endda
>= pv_begda.
* Get the line manager ID & Personnel Officer ID for the vacancy
SELECT respo resrf UP TO 1 ROWS FROM t750x
INTO (st_rep-respo,st_rep-resrf)
WHERE otype = 'S'
AND objid = pv_objid
AND begda <= pv_endda
AND endda >= pv_begda.
ENDSELECT.
IF sy-subrc NE 0.
CLEAR : st_rep-respo, st_rep-resrf.
ENDIF.
* Get the Job ID for that position
CLEAR l_sobid.
SELECT sobid UP TO 1 ROWS FROM hrp1001 INTO l_sobid
WHERE plvar = '01'
AND otype = 'S'
AND objid = pv_objid
AND istat = '1'
AND rsign = 'B'
AND relat = '007'
AND sclas = 'C'
AND begda <= pv_endda
AND endda >= pv_begda.
ENDSELECT.
IF sy-subrc = 0.
st_rep-stell = l_sobid.
ENDIF.
*Get the EEO category for the Job
SELECT eeoct UP TO 1 ROWS FROM t5u13 INTO st_rep-eeoct
WHERE stell = l_sobid
AND begda <= pv_endda
AND endda >= pv_begda.
ENDSELECT.
IF sy-subrc NE 0.
CLEAR st_rep-eeoct.
ENDIF.
*Get the Org. Unit ID for department
CLEAR l_sobid.
SELECT sobid UP TO 1 ROWS FROM hrp1001 INTO l_sobid
WHERE plvar = '01'
AND istat = '1'
AND otype = 'S'
AND
AND
AND
AND
AND
AND
objid
rsign
relat
sclas
begda
endda
= pv_objid
= 'A'
= '003'
= 'O'
<= pv_endda
>= pv_begda.
ENDSELECT.
IF sy-subrc EQ 0.
st_rep-orgeh = l_sobid.
ENDIF.
* Get the Org. Unit Text
l_objid = l_sobid .
SELECT stext UP TO 1 ROWS FROM hrp1000 INTO st_rep-orgtext
WHERE plvar = '01'
AND istat = '1'
AND otype = 'O'
AND objid = l_objid
AND begda <= pv_endda
AND endda >= pv_begda.
ENDSELECT.
IF sy-subrc NE 0.
CLEAR st_rep-orgtext.
ENDIF.
* Get Personnel Area for the position
SELECT persa UP TO 1 ROWS FROM hrp1008 INTO st_rep-persa
WHERE plvar = '01'
AND otype = 'S'
AND objid = pv_objid
AND istat = '1'
AND begda <= pv_endda
AND endda >= pv_begda.
ENDSELECT.
IF sy-subrc NE 0.
CLEAR st_rep-persa.
ENDIF.
* Get Personnel Area Text & Address details for the position
SELECT SINGLE name1 stras ort01 regio pstlz
FROM t500p
INTO (st_rep-patext,st_rep-stras,st_rep-ort01,
st_rep-regio,st_rep-pstlz)
WHERE persa = st_rep-persa.
IF sy-subrc NE 0.
CLEAR : st_rep-patext, st_rep-stras, st_rep-ort01,
st_rep-regio, st_rep-pstlz.
ELSE.
* Concatenate the address details
*SS01- Start
*
CONCATENATE st_rep-stras st_rep-ort01 st_rep-regio
*
st_rep-pstlz INTO st_rep-addrs .
*SS01- End
*SS01+ Start
CONCATENATE st_rep-stras st_rep-ort01 st_rep-regio
INTO st_rep-addrs SEPARATED BY ', '.
CONCATENATE st_rep-addrs st_rep-pstlz
INTO st_rep-addrs SEPARATED BY space.
*SS01+ End
ENDIF.
* Get the Personnel Sub Area
l_objid = pv_objid.
SELECT btrtl UP TO 1 ROWS FROM hrp1008 INTO st_rep-btrtl
WHERE plvar = '01'
AND otype = 'S'
AND objid = l_objid
AND istat = '1'
AND begda <= pv_endda
AND endda >= pv_begda.
ENDSELECT.
IF sy-subrc NE 0.
CLEAR st_rep-btrtl.
ENDIF.
* Get the Pay Scale Group
l_objid = st_rep-stell.
SELECT trfg1 UP TO 1 ROWS FROM hrp1005 INTO st_rep-trfg1
WHERE plvar = '01'
AND otype = 'C'
AND objid = l_objid
AND istat = '1'
AND begda <= pv_endda
AND endda >= pv_begda.
ENDSELECT.
IF sy-subrc NE 0.
CLEAR st_rep-trfg1.
ENDIF.
ENDFORM.
"get_position_details
*&---------------------------------------------------------------------*
*&
Form get_applicant_data
*&---------------------------------------------------------------------*
*
Get the applicant details
*----------------------------------------------------------------------*
FORM get_applicant_data USING value(pv_applno) TYPE pb4000-pernr
value(pv_begda) TYPE d
value(pv_endda) TYPE d.
DATA : l_date TYPE d.
* Get the Applicant Status
SELECT apsta strea UP TO 1 ROWS FROM pb4000
INTO (st_rep-apsta,st_rep-strea)
WHERE pernr = pv_applno
AND begda <= pv_endda
AND endda >= pv_begda.
ENDSELECT.
IF sy-subrc NE 0.
CLEAR: st_rep-apsta, st_rep-strea.
ENDIF.
* Get the Employee Group
SELECT persg UP TO 1 ROWS FROM pb0001 INTO
WHERE pernr
AND begda
AND endda
ENDSELECT.
IF sy-subrc NE 0.
CLEAR st_rep-persg.
ENDIF.
* Applicant Group
IF st_rep-persg = '1'.
st_rep-persg
= pv_applno
<= pv_endda
>= pv_begda.
st_rep-appgrp = 'External'(t01).
ELSE.
st_rep-appgrp = 'Internal'(t02).
ENDIF.
* Get the First Name,Last Name and Sex
SELECT nachn vorna gesch UP TO 1 ROWS FROM pb0002
INTO (st_rep-nachn,st_rep-vorna,st_rep-gesch)
WHERE pernr = pv_applno
AND begda <= pv_endda
AND endda >= pv_begda.
ENDSELECT.
IF sy-subrc NE 0.
CLEAR: st_rep-nachn, st_rep-vorna, st_rep-gesch.
ENDIF.
*Get the Etnic Origin
SELECT racky UP TO 1 ROWS FROM pb0077
WHERE pernr
AND begda
AND endda
ENDSELECT.
IF sy-subrc NE 0.
CLEAR st_rep-racky.
ENDIF.
INTO st_rep-racky
= pv_applno
<= pv_endda
>= pv_begda.
*
l_date = st_events-endda + 1.
*
IF s_rdate-low NE l_date.
**
Last file downloaded for open vacancy was up to &.
*
MESSAGE e316(zhhr) WITH st_events-endda.
*
ENDIF.
*
ENDIF.
* ENDIF.
*ENDFORM.
" validate_dates
* DK01- End of Delete
* DK01+ Start of Insert
*&---------------------------------------------------------------------*
*&
Form create_sort
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM create_sort .
REFRESH it_sort.
st_sort-fieldname = 'VACNUM'.
st_sort-tabname = 'IT_REP'.
* st_sort-subtot = c_true.
" Subtotal by Field
st_sort-up = c_true.
APPEND st_sort TO it_sort. CLEAR it_sort.
ENDFORM.
" create_sort
* DK01+ End of Insert