‎2007 Jun 05 1:51 PM
Hi all,Good evg...
With the above said subject...if anyone have, pls post me here or to my mail-id...since im struggling to get it in sdn search....
I have the infotype calling function...but not the above one...and its also reqd for my client work...
thanks & regards
<Post was moderated>
‎2007 Jun 06 6:22 PM
Please reward points if helpful.
Please check out the code
----
***INCLUDE LHRWPC_PCR_WT_ACTIONSF01 .
----
&----
*& Form run_action_50
&----
text
----
--> p1 text
<-- p2 text
----
FORM run_action_50 .
action = '50'.
Fill proposed values for action infotype(0000)
PERFORM fill_prop_values_action using action.
Fill proposed values for organization assignment infotype(0001)
PERFORM fill_prop_value_org_assign using action.
Fill proposed values for plant working time infotype(0007)
perform fill_prop_value_wrk_time.
Fill proposed values for basic pay infotype(0008)
PERFORM fill_prop_value_basic_pay using action.
Fill proposed values for cost distribution infotype(0027)
*skip this infotype
perform fill_prop_value_cost_dist.
Fill proposed values for internal data infotype(0032)
*skip this infotype
PERFORM fill_prop_value_inter_data.
Fill proposed values for work tax area infotype(0208)
*skip this infotype
PERFORM fill_prop_value_wrk_area.
Fill proposed values for unemployment status infotype(0209)
*skip this infotype
PERFORM fill_prop_value_unemp_stat.
Fill proposed values for compensation programe infotype(0758)
PERFORM fill_prop_value_comp_prog.
Fill proposed values for time recording infotype(0050)
PERFORM fill_prop_value_time_rec.
CALL FUNCTION 'HR_MAINTAIN_MASTERDATA'
EXPORTING
pernr = pernr
massn = massn
actio = 'COP'
begda = v_inrec-eff_date
dialog_mode = '2'
IMPORTING
return1 = return
TABLES
proposed_values = t_proposed_values.
IF NOT return IS INITIAL.
MESSAGE ID return-id TYPE return-type NUMBER return-number
WITH return-message_v1 return-message_v2
return-message_v3 return-message_v4.
RAISE action_stopped.
ELSE.
MESSAGE s054(hrwpc_pcr).
ENDIF.
ENDFORM. " run_action_50
&----
*& Form run_action_52
&----
text
----
--> p1 text
<-- p2 text
----
FORM run_action_52 .
action = '52'.
Fill proposed_values
Fill proposed values for action infotype(0000)
PERFORM fill_prop_values_action using action.
Fill proposed values for organization assignment infotype(0001)
PERFORM fill_prop_value_org_assign using action.
Fill proposed values for plant working time infotype(0007)
perform fill_prop_value_wrk_time using action.
Fill proposed values for basic pay infotype(0008)
PERFORM fill_prop_value_basic_pay using action.
Fill proposed values for cost distribution infotype(0027)
perform fill_prop_value_cost_dist.
Fill proposed values for internal data infotype(0032)
PERFORM fill_prop_value_inter_data.
Fill proposed values for work tax area infotype(0208)
PERFORM fill_prop_value_wrk_area.
Fill proposed values for unemployment status infotype(0209)
PERFORM fill_prop_value_unemp_stat.
Fill proposed values for withholding info infotype(0210)
perform fill_prop_withholding_info.
Fill proposed values for compensation programe infotype(0758)
PERFORM fill_prop_value_comp_prog.
Fill proposed values for time recording infotype(0050)
PERFORM fill_prop_value_time_rec.
CALL FUNCTION 'HR_MAINTAIN_MASTERDATA'
EXPORTING
pernr = pernr
massn = massn
actio = 'COP'
begda = v_inrec-eff_date
dialog_mode = '2'
IMPORTING
return1 = return
TABLES
proposed_values = t_proposed_values.
IF NOT return IS INITIAL.
MESSAGE ID return-id TYPE return-type NUMBER return-number
WITH return-message_v1 return-message_v2
return-message_v3 return-message_v4.
RAISE action_stopped.
ELSE.
MESSAGE s054(hrwpc_pcr).
ENDIF.
ENDFORM. " run_action_52
&----
*& Form run_action_53
&----
text
----
--> p1 text
<-- p2 text
----
FORM run_action_53 .
Set action equal to '53'
action = '53'.
refresh t_proposed_values.
Fill proposed values for action infotype(0000)
PERFORM fill_prop_values_action using action.
Fill proposed values for organization assignment infotype(0001)
PERFORM fill_prop_value_org_assign using action.
Fill proposed values for plant working time infotype(0007)
perform fill_prop_value_wrk_time using action.
Fill proposed values for basic pay infotype(0008)
PERFORM fill_prop_value_basic_pay using action.
Fill proposed values for compensation programe infotype(0758)
PERFORM fill_prop_value_comp_prog.
CALL FUNCTION 'HR_MAINTAIN_MASTERDATA'
EXPORTING
pernr = pernr
massn = massn
actio = 'COP'
begda = v_inrec-eff_date
dialog_mode = '2'
IMPORTING
return1 = return
TABLES
proposed_values = t_proposed_values.
IF NOT return IS INITIAL.
MESSAGE ID return-id TYPE return-type NUMBER return-number
WITH return-message_v1 return-message_v2
return-message_v3 return-message_v4.
RAISE action_stopped.
ELSE.
MESSAGE s054(hrwpc_pcr).
ENDIF.
ENDFORM. " run_action_53
&----
*& Form fill_prop_values_action
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_values_action using p_action.
CLEAR w_proposed_values.
w_proposed_values-infty = '0000'.
w_proposed_values-fname = 'P0000-MASSN'.
w_proposed_values-fval = p_action.
APPEND w_proposed_values TO t_proposed_values.
If p_action = '50' .
CLEAR w_proposed_values.
w_proposed_values-infty = '0000'.
w_proposed_values-fname = 'P0000-MASSG'.
w_proposed_values-fval = '05'.
w_proposed_values-fval = v_inrec-reason_code.
APPEND w_proposed_values TO t_proposed_values.
elseif p_action = '52'.
CLEAR w_proposed_values.
w_proposed_values-infty = '0000'.
w_proposed_values-fname = 'P0000-MASSG'.
w_proposed_values-fval = '04'.
w_proposed_values-fval = v_inrec-reason_code.
APPEND w_proposed_values TO t_proposed_values.
elseif p_action = '53'.
CLEAR w_proposed_values.
w_proposed_values-infty = '0000'.
w_proposed_values-fname = 'P0000-MASSG'.
w_proposed_values-fval = '06'.
w_proposed_values-fval = v_inrec-reason_code.
APPEND w_proposed_values TO t_proposed_values.
endif.
ENDFORM. " fill_prop_values_action
&----
*& Form fill_prop_value_org_assign
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_org_assign using p_action.
if p_action = '50' or p_action = '52'.
CLEAR w_proposed_values.
w_proposed_values-infty = '0001'.
w_proposed_values-fname = 'P0001-PLANS'.
w_proposed_values-fval = v_inrec-pos_num.
APPEND w_proposed_values TO t_proposed_values.
*CLEAR w_proposed_values.
w_proposed_values-infty = '0001'.
APPEND w_proposed_values TO t_proposed_values.
elseif p_action = '53'.
CLEAR w_proposed_values.
w_proposed_values-infty = '0001'.
APPEND w_proposed_values TO t_proposed_values.
endif.
ENDFORM. " fill_prop_value_org_assign
&----
*& Form fill_prop_value_wrk_time
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_wrk_time using p_action .
if p_action = '50' or p_action = '53'.
SELECT * FROM zhr_wrk_schedule WHERE pernr = pernr UPTO 1 row.
ENDSELECT.
*
*
IF sy-subrc EQ 0.
CLEAR w_proposed_values.
w_proposed_values-infty = '0007'.
w_proposed_values-fname = 'P0007-SCHKZ'.
w_proposed_values-fval = zhr_wrk_schedule-z_schkz.
APPEND w_proposed_values TO t_proposed_values.
*
*
IF z_wrk_schedule-z_pa NE 'X'.
*
zhr_wrk_schedule-z_pa = 'X'.
UPDATE z_wrk_schedule FROM zhr_wrk_schedule.
ENDIF.
*
ENDIF.
data: wa_schedule type zhr_wrk_schedule.
SELECT * FROM zhr_wrk_schedule
INTO wa_schedule
UP TO 1 ROWS
WHERE pernr = v_inrec-pernr .
ENDSELECT.
IF syst-subrc = 0.
Updating the proposed value table with work schedule rule
add_value: '0007' 'P0007-SCHKZ' wa_schedule-z_schkz.
w_proposed_values-infty = '0007'.
w_proposed_values-fname = 'P0007-SCHKZ'.
w_proposed_values-fval = wa_schedule-z_schkz.
APPEND w_proposed_values TO t_proposed_values.
v_pte = wa_schedule-z_pte.
If PA indicator in the table is initial the set it else keep it as it is
IF wa_schedule-z_pa IS INITIAL.
wa_schedule-z_pa = 'X'.
UPDATE zhr_wrk_schedule FROM wa_schedule.
ENDIF.
ELSE.
ENDIF.
elseif p_action = '53'.
clear w_proposed_values.
w_proposed_values-infty = '0007'.
APPEND w_proposed_values TO t_proposed_values.
endif.
ENDFORM. " fill_prop_value_wrk_time
&----
*& Form fill_prop_value_basic_pay
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_basic_pay using p_action .
if p_action = '50' or p_action = '53'.
CLEAR w_proposed_values.
w_proposed_values-infty = '0008'.
w_proposed_values-fname = 'P0008-PREAS'.
*check reason
w_proposed_values-fval = pay_change_reason.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0008'.
w_proposed_values-fname = 'P0008-ANSAL'.
w_proposed_values-fval = v_inrec-new_salary.
APPEND w_proposed_values TO t_proposed_values.
elseif p_action = '52'.
CLEAR w_proposed_values.
w_proposed_values-infty = '0008'.
APPEND w_proposed_values TO t_proposed_values.
endif.
ENDFORM. " fill_prop_value_basic_pay
&----
*& Form fill_prop_value_cost_dist
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_cost_dist .
DATA: t_0001 TYPE STANDARD TABLE OF p0001 WITH HEADER LINE,
t_0003 TYPE STANDARD TABLE OF p0003,
last_paydate TYPE sydatum.
DATA: w_0001 TYPE p0001,
w_0003 TYPE p0003.
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
TCLAS = 'A'
pernr = pernr
infty = '0001'
begda = v_inrec-eff_date
TABLES
infty_tab = t_0001[]
EXCEPTIONS
INFTY_NOT_FOUND = 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.
Sort the Employee records based on Begin Date
ENDIF.
SORT t_0001 BY begda DESCENDING.
Read the latest employee records
READ TABLE t_0001 INTO w_0001 INDEX 1.
IF sy-subrc = 0.
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-KSTAR'.
w_proposed_values-fval = '01'.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-KBU01'.
w_proposed_values-fval = w_0001-bukrs.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-KST01'.
w_proposed_values-fval = w_0001-kostl.
APPEND w_proposed_values TO t_proposed_values.
Read the last payroll run date from PCL2
CALL FUNCTION 'HR_MX_LAST_NEXT_PAYROLL_PERIOD'
EXPORTING
pernr = v_inrec-pernr
IN_RGDIR =
IMPORTING
LAST_PAY_PERIOD =
LAST_PAY_YEAR =
LAST_FPPER =
LAST_FPBEG =
LAST_FPEND =
NEXT_PAY_PERIOD =
NEXT_PAY_YEAR =
NEXT_FPPER =
NEXT_FPBEG =
NEXT_FPEND =
last_paydate = last_paydate
OUT_RGDIR =
EXCEPTIONS
no_rgdir_entries = 1
it1_error = 2
t549a_error = 3
t549q_error = 4
OTHERS = 5
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-BEGDA'.
w_proposed_values-fval = last_paydate.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-ENDDA'.
w_proposed_values-fval = v_inrec-eff_date.
APPEND w_proposed_values TO t_proposed_values.
ENDIF.
ENDFORM. " fill_prop_value_cost_dist
&----
*& Form fill_prop_value_wrk_area
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_wrk_area .
CLEAR w_proposed_values.
w_proposed_values-infty = '0208'.
w_proposed_values-fname = 'P0208-WTART'.
w_proposed_values-fval = v_inrec-wrk_state.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0208'.
w_proposed_values-fname = 'P0208-ALLPC'.
w_proposed_values-fval = '100'.
APPEND w_proposed_values TO t_proposed_values.
ENDFORM. " fill_prop_value_wrk_area
&----
*& Form fill_prop_value_inter_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_inter_data .
CLEAR w_proposed_values.
w_proposed_values-infty = '0032'.
w_proposed_values-fname = 'P0032-ZLOCN_TYPE'.
w_proposed_values-fval = v_inrec-loc_type.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0032'.
w_proposed_values-fname = 'P0032-ZLOCN_CODE'.
w_proposed_values-fval = v_inrec-loc_code.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0032'.
w_proposed_values-fname = 'P0032-ZPTE'.
w_proposed_values-fval = V_pte.
APPEND w_proposed_values TO t_proposed_values.
ENDFORM. " fill_prop_value_inter_data
&----
*& Form fill_prop_value_unemp_stat
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_unemp_stat .
Pick work site and location code from ZHCM_MWS
select * from ZHCM_MWS up to 1 rows where CAESAR_CODE = v_inrec-loc_code .
endselect.
CLEAR w_proposed_values.
w_proposed_values-infty = '0209'.
w_proposed_values-fname = 'P0209-TAXAU'.
w_proposed_values-fval = ZHCM_MWS-taxau.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0209'.
w_proposed_values-fname = 'P0209-WKSIT'.
w_proposed_values-fval = ZHCM_MWS-wksit.
APPEND w_proposed_values TO t_proposed_values.
*CLEAR w_proposed_values.
w_proposed_values-infty = '0209'.
w_proposed_values-fname = 'P0209-TAXAU'.
w_proposed_values-fval = v_inrec-wrk_state.
APPEND w_proposed_values TO t_proposed_values.
*
ENDFORM. " fill_prop_value_unemp_stat
&----
*& Form fill_prop_value_comp_prog
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_comp_prog .
CLEAR w_proposed_values.
w_proposed_values-infty = '0758'.
APPEND w_proposed_values TO t_proposed_values.
ENDFORM. " fill_prop_value_comp_prog
&----
*& Form fill_prop_value_withhold_info
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_withhold_info .
CLEAR w_proposed_values.
w_proposed_values-infty = '0210'.
APPEND w_proposed_values TO t_proposed_values.
ENDFORM. " fill_prop_value_withhold_info
&----
*& Form fill_prop_value_time_rec
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_time_rec .
CLEAR w_proposed_values.
w_proposed_values-infty = '0050'.
APPEND w_proposed_values TO t_proposed_values.
ENDFORM. " fill_prop_value_time_rec
&----
*& Form fill_prop_withholding_info
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_withholding_info .
DATA: t_0006 TYPE STANDARD TABLE OF p0006 WITH HEADER LINE.
DATA: w_0006 TYPE p0006,
ls_proposed_values TYPE pprop.
DEFINE add_value.
w_proposed_values-infty = &1.
w_proposed_values-fname = &2.
w_proposed_values-fval = &3.
append w_proposed_values to t_proposed_values.
END-OF-DEFINITION.
Read permant adress of an employee
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
TCLAS = 'A'
pernr = v_inrec-pernr
infty = '0006'
begda = v_inrec-datum
ENDDA = '99991231'
BYPASS_BUFFER = ' '
LEGACY_MODE = ' '
IMPORTING
SUBRC =
TABLES
infty_tab = t_0006[]
EXCEPTIONS
INFTY_NOT_FOUND = 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.
Sort the Employee records based on Begin Date
SORT t_0006 BY begda DESCENDING.
Read the latest employee records
READ TABLE t_0006 INTO w_0006 INDEX 1.
IF syst-subrc = 0.
Update the proposed value table with work tax area and filing status
add_value:
'0210' 'P0210-TAURT' w_0006-state,
'0210' 'P0210-TXSTA' '01'.
ENDIF.
ENDFORM. " fill_prop_withholding_info
&----
*& Form lock_emp
&----
text
----
-->P_PERNR text
----
FORM lock_emp USING l_pernr.
CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
EXPORTING
number = l_pernr.
IMPORTING
RETURN = .
ENDFORM. " lock_emp
&----
*& Form unlock_emp
&----
text
----
-->P_PERNR text
----
FORM unlock_emp USING l_pernr.
CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
EXPORTING
number = l_pernr.
IMPORTING
RETURN = .
ENDFORM. " unlock_emp
&----
*& Form maintain_infotype
&----
text
----
--> p1 text
<-- p2 text
----
FORM maintain_infotype USING l_action .
CALL FUNCTION 'HR_MAINTAIN_MASTERDATA'
EXPORTING
pernr = pernr
massn = l_action
actio = 'COP'
tclas = 'A'
begda = v_inrec-eff_date
endda = '99991231'
OBJPS =
SEQNR =
SPRPS =
SUBTY =
WERKS =
PERSG =
PERSK =
PLANS =
DIALOG_MODE = '2'
LUW_MODE = '1'
NO_EXISTENCE_CHECK = ' '
NO_ENQUEUE = ' '
IMPORTING
RETURN =
RETURN1 =
HR_RETURN =
TABLES
proposed_values = t_proposed_values
MODIFIED_KEYS =
.
ENDFORM. " maintain_infotype
**********************************************************
&----
*& Form create_vacancy
&----
text
----
--> p1 text
<-- p2 text
----
FORM create_vacancy .
DATA: new_date TYPE char10.
DATA: position TYPE pm0d1-seark.
position = v_inrec-oldposition.
position = v_objid.
PERFORM format_date USING v_inrec-vac_eff_dt CHANGING new_date.
IF v_inrec-vacancy_flag EQ '1'.
CALL FUNCTION 'ZOM_CREATE_VACANCY'
EXPORTING
vacancy_code = position
begda = new_date
ENDDA = '12319999'
.
ENDIF.
endform. " create_vacancy
&----
*& Form format_date
&----
text
----
-->U_DATE text
-->C_DATE text
----
FORM format_date USING u_date CHANGING c_date.
c_date0(2) = u_date4.
c_date2(2) = u_date6.
c_date+4(4) = u_date.
ENDFORM. "format_date
&----
*& Form find_position
&----
text
----
--> p1 text
<-- p2 text
----
FORM find_position .
DATA: l_object TYPE hrobject_t,
l_begda TYPE begda,
l_endda TYPE endda,
t_object TYPE p1001tab,
w_object1 TYPE LINE OF p1001tab,
w_object TYPE LINE OF hrobject_t,
new_date TYPE char10.
w_object-plvar = '01'.
w_object-otype = 'P'.
w_object-objid = pernr.
APPEND w_object TO l_object.
CALL FUNCTION 'HR_HCP_GET_POSITION_FOR_EMPL'
EXPORTING
im_objecttab = l_object[]
im_begda = v_inrec-eff_date
im_endda = '99991231'
IMPORTING
ex_1001_tab = t_object[]
EXCEPTIONS
read_1001_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
EXIT.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE t_object INTO w_object1 INDEX 1.
v_objid = w_object1-sobid.
ENDFORM. " find_position
*&----
**& Form fill_prop_value_cost_dist
*&----
text
*----
--> p1 text
<-- p2 text
*----
*FORM fill_prop_value_cost_dist .
*
DATA: t_0001 TYPE STANDARD TABLE OF p0001 WITH HEADER LINE.
DATA: next_paydate TYPE sydatum,
w_0001 TYPE p0001.
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
pernr = pernr
infty = '0001'
begda = eff_date
TABLES
infty_tab = t_0001[]
EXCEPTIONS
infty_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
EXIT.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*
SORT t_0001 BY begda DESCENDING.
*
Read the latest employee records
READ TABLE t_0001 INTO w_0001 INDEX 1.
IF sy-subrc = 0.
*
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-KSTAR'.
w_proposed_values-fval = '01'.
APPEND w_proposed_values TO t_proposed_values.
*
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-KBU01'.
w_proposed_values-fval = w_0001-bukrs.
APPEND w_proposed_values TO t_proposed_values.
*
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-KST01'.
w_proposed_values-fval = w_0001-kostl.
APPEND w_proposed_values TO t_proposed_values.
*
**Get the payroll period
CALL FUNCTION 'HR_MX_LAST_NEXT_PAYROLL_PERIOD'
EXPORTING
pernr = pernr
IMPORTING
last_paydate = next_paydate
EXCEPTIONS
no_rgdir_entries = 1
it1_error = 2
t549a_error = 3
t549q_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
EXIT.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-BEGDA'.
w_proposed_values-fval = next_paydate.
APPEND w_proposed_values TO t_proposed_values.
*
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-ENDDA'.
w_proposed_values-fval = eff_date.
APPEND w_proposed_values TO t_proposed_values.
ENDIF.
*ENDFORM. " fill_prop_value_cost_dist
‎2007 Jun 06 6:22 PM
Please reward points if helpful.
Please check out the code
----
***INCLUDE LHRWPC_PCR_WT_ACTIONSF01 .
----
&----
*& Form run_action_50
&----
text
----
--> p1 text
<-- p2 text
----
FORM run_action_50 .
action = '50'.
Fill proposed values for action infotype(0000)
PERFORM fill_prop_values_action using action.
Fill proposed values for organization assignment infotype(0001)
PERFORM fill_prop_value_org_assign using action.
Fill proposed values for plant working time infotype(0007)
perform fill_prop_value_wrk_time.
Fill proposed values for basic pay infotype(0008)
PERFORM fill_prop_value_basic_pay using action.
Fill proposed values for cost distribution infotype(0027)
*skip this infotype
perform fill_prop_value_cost_dist.
Fill proposed values for internal data infotype(0032)
*skip this infotype
PERFORM fill_prop_value_inter_data.
Fill proposed values for work tax area infotype(0208)
*skip this infotype
PERFORM fill_prop_value_wrk_area.
Fill proposed values for unemployment status infotype(0209)
*skip this infotype
PERFORM fill_prop_value_unemp_stat.
Fill proposed values for compensation programe infotype(0758)
PERFORM fill_prop_value_comp_prog.
Fill proposed values for time recording infotype(0050)
PERFORM fill_prop_value_time_rec.
CALL FUNCTION 'HR_MAINTAIN_MASTERDATA'
EXPORTING
pernr = pernr
massn = massn
actio = 'COP'
begda = v_inrec-eff_date
dialog_mode = '2'
IMPORTING
return1 = return
TABLES
proposed_values = t_proposed_values.
IF NOT return IS INITIAL.
MESSAGE ID return-id TYPE return-type NUMBER return-number
WITH return-message_v1 return-message_v2
return-message_v3 return-message_v4.
RAISE action_stopped.
ELSE.
MESSAGE s054(hrwpc_pcr).
ENDIF.
ENDFORM. " run_action_50
&----
*& Form run_action_52
&----
text
----
--> p1 text
<-- p2 text
----
FORM run_action_52 .
action = '52'.
Fill proposed_values
Fill proposed values for action infotype(0000)
PERFORM fill_prop_values_action using action.
Fill proposed values for organization assignment infotype(0001)
PERFORM fill_prop_value_org_assign using action.
Fill proposed values for plant working time infotype(0007)
perform fill_prop_value_wrk_time using action.
Fill proposed values for basic pay infotype(0008)
PERFORM fill_prop_value_basic_pay using action.
Fill proposed values for cost distribution infotype(0027)
perform fill_prop_value_cost_dist.
Fill proposed values for internal data infotype(0032)
PERFORM fill_prop_value_inter_data.
Fill proposed values for work tax area infotype(0208)
PERFORM fill_prop_value_wrk_area.
Fill proposed values for unemployment status infotype(0209)
PERFORM fill_prop_value_unemp_stat.
Fill proposed values for withholding info infotype(0210)
perform fill_prop_withholding_info.
Fill proposed values for compensation programe infotype(0758)
PERFORM fill_prop_value_comp_prog.
Fill proposed values for time recording infotype(0050)
PERFORM fill_prop_value_time_rec.
CALL FUNCTION 'HR_MAINTAIN_MASTERDATA'
EXPORTING
pernr = pernr
massn = massn
actio = 'COP'
begda = v_inrec-eff_date
dialog_mode = '2'
IMPORTING
return1 = return
TABLES
proposed_values = t_proposed_values.
IF NOT return IS INITIAL.
MESSAGE ID return-id TYPE return-type NUMBER return-number
WITH return-message_v1 return-message_v2
return-message_v3 return-message_v4.
RAISE action_stopped.
ELSE.
MESSAGE s054(hrwpc_pcr).
ENDIF.
ENDFORM. " run_action_52
&----
*& Form run_action_53
&----
text
----
--> p1 text
<-- p2 text
----
FORM run_action_53 .
Set action equal to '53'
action = '53'.
refresh t_proposed_values.
Fill proposed values for action infotype(0000)
PERFORM fill_prop_values_action using action.
Fill proposed values for organization assignment infotype(0001)
PERFORM fill_prop_value_org_assign using action.
Fill proposed values for plant working time infotype(0007)
perform fill_prop_value_wrk_time using action.
Fill proposed values for basic pay infotype(0008)
PERFORM fill_prop_value_basic_pay using action.
Fill proposed values for compensation programe infotype(0758)
PERFORM fill_prop_value_comp_prog.
CALL FUNCTION 'HR_MAINTAIN_MASTERDATA'
EXPORTING
pernr = pernr
massn = massn
actio = 'COP'
begda = v_inrec-eff_date
dialog_mode = '2'
IMPORTING
return1 = return
TABLES
proposed_values = t_proposed_values.
IF NOT return IS INITIAL.
MESSAGE ID return-id TYPE return-type NUMBER return-number
WITH return-message_v1 return-message_v2
return-message_v3 return-message_v4.
RAISE action_stopped.
ELSE.
MESSAGE s054(hrwpc_pcr).
ENDIF.
ENDFORM. " run_action_53
&----
*& Form fill_prop_values_action
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_values_action using p_action.
CLEAR w_proposed_values.
w_proposed_values-infty = '0000'.
w_proposed_values-fname = 'P0000-MASSN'.
w_proposed_values-fval = p_action.
APPEND w_proposed_values TO t_proposed_values.
If p_action = '50' .
CLEAR w_proposed_values.
w_proposed_values-infty = '0000'.
w_proposed_values-fname = 'P0000-MASSG'.
w_proposed_values-fval = '05'.
w_proposed_values-fval = v_inrec-reason_code.
APPEND w_proposed_values TO t_proposed_values.
elseif p_action = '52'.
CLEAR w_proposed_values.
w_proposed_values-infty = '0000'.
w_proposed_values-fname = 'P0000-MASSG'.
w_proposed_values-fval = '04'.
w_proposed_values-fval = v_inrec-reason_code.
APPEND w_proposed_values TO t_proposed_values.
elseif p_action = '53'.
CLEAR w_proposed_values.
w_proposed_values-infty = '0000'.
w_proposed_values-fname = 'P0000-MASSG'.
w_proposed_values-fval = '06'.
w_proposed_values-fval = v_inrec-reason_code.
APPEND w_proposed_values TO t_proposed_values.
endif.
ENDFORM. " fill_prop_values_action
&----
*& Form fill_prop_value_org_assign
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_org_assign using p_action.
if p_action = '50' or p_action = '52'.
CLEAR w_proposed_values.
w_proposed_values-infty = '0001'.
w_proposed_values-fname = 'P0001-PLANS'.
w_proposed_values-fval = v_inrec-pos_num.
APPEND w_proposed_values TO t_proposed_values.
*CLEAR w_proposed_values.
w_proposed_values-infty = '0001'.
APPEND w_proposed_values TO t_proposed_values.
elseif p_action = '53'.
CLEAR w_proposed_values.
w_proposed_values-infty = '0001'.
APPEND w_proposed_values TO t_proposed_values.
endif.
ENDFORM. " fill_prop_value_org_assign
&----
*& Form fill_prop_value_wrk_time
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_wrk_time using p_action .
if p_action = '50' or p_action = '53'.
SELECT * FROM zhr_wrk_schedule WHERE pernr = pernr UPTO 1 row.
ENDSELECT.
*
*
IF sy-subrc EQ 0.
CLEAR w_proposed_values.
w_proposed_values-infty = '0007'.
w_proposed_values-fname = 'P0007-SCHKZ'.
w_proposed_values-fval = zhr_wrk_schedule-z_schkz.
APPEND w_proposed_values TO t_proposed_values.
*
*
IF z_wrk_schedule-z_pa NE 'X'.
*
zhr_wrk_schedule-z_pa = 'X'.
UPDATE z_wrk_schedule FROM zhr_wrk_schedule.
ENDIF.
*
ENDIF.
data: wa_schedule type zhr_wrk_schedule.
SELECT * FROM zhr_wrk_schedule
INTO wa_schedule
UP TO 1 ROWS
WHERE pernr = v_inrec-pernr .
ENDSELECT.
IF syst-subrc = 0.
Updating the proposed value table with work schedule rule
add_value: '0007' 'P0007-SCHKZ' wa_schedule-z_schkz.
w_proposed_values-infty = '0007'.
w_proposed_values-fname = 'P0007-SCHKZ'.
w_proposed_values-fval = wa_schedule-z_schkz.
APPEND w_proposed_values TO t_proposed_values.
v_pte = wa_schedule-z_pte.
If PA indicator in the table is initial the set it else keep it as it is
IF wa_schedule-z_pa IS INITIAL.
wa_schedule-z_pa = 'X'.
UPDATE zhr_wrk_schedule FROM wa_schedule.
ENDIF.
ELSE.
ENDIF.
elseif p_action = '53'.
clear w_proposed_values.
w_proposed_values-infty = '0007'.
APPEND w_proposed_values TO t_proposed_values.
endif.
ENDFORM. " fill_prop_value_wrk_time
&----
*& Form fill_prop_value_basic_pay
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_basic_pay using p_action .
if p_action = '50' or p_action = '53'.
CLEAR w_proposed_values.
w_proposed_values-infty = '0008'.
w_proposed_values-fname = 'P0008-PREAS'.
*check reason
w_proposed_values-fval = pay_change_reason.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0008'.
w_proposed_values-fname = 'P0008-ANSAL'.
w_proposed_values-fval = v_inrec-new_salary.
APPEND w_proposed_values TO t_proposed_values.
elseif p_action = '52'.
CLEAR w_proposed_values.
w_proposed_values-infty = '0008'.
APPEND w_proposed_values TO t_proposed_values.
endif.
ENDFORM. " fill_prop_value_basic_pay
&----
*& Form fill_prop_value_cost_dist
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_cost_dist .
DATA: t_0001 TYPE STANDARD TABLE OF p0001 WITH HEADER LINE,
t_0003 TYPE STANDARD TABLE OF p0003,
last_paydate TYPE sydatum.
DATA: w_0001 TYPE p0001,
w_0003 TYPE p0003.
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
TCLAS = 'A'
pernr = pernr
infty = '0001'
begda = v_inrec-eff_date
TABLES
infty_tab = t_0001[]
EXCEPTIONS
INFTY_NOT_FOUND = 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.
Sort the Employee records based on Begin Date
ENDIF.
SORT t_0001 BY begda DESCENDING.
Read the latest employee records
READ TABLE t_0001 INTO w_0001 INDEX 1.
IF sy-subrc = 0.
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-KSTAR'.
w_proposed_values-fval = '01'.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-KBU01'.
w_proposed_values-fval = w_0001-bukrs.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-KST01'.
w_proposed_values-fval = w_0001-kostl.
APPEND w_proposed_values TO t_proposed_values.
Read the last payroll run date from PCL2
CALL FUNCTION 'HR_MX_LAST_NEXT_PAYROLL_PERIOD'
EXPORTING
pernr = v_inrec-pernr
IN_RGDIR =
IMPORTING
LAST_PAY_PERIOD =
LAST_PAY_YEAR =
LAST_FPPER =
LAST_FPBEG =
LAST_FPEND =
NEXT_PAY_PERIOD =
NEXT_PAY_YEAR =
NEXT_FPPER =
NEXT_FPBEG =
NEXT_FPEND =
last_paydate = last_paydate
OUT_RGDIR =
EXCEPTIONS
no_rgdir_entries = 1
it1_error = 2
t549a_error = 3
t549q_error = 4
OTHERS = 5
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-BEGDA'.
w_proposed_values-fval = last_paydate.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-ENDDA'.
w_proposed_values-fval = v_inrec-eff_date.
APPEND w_proposed_values TO t_proposed_values.
ENDIF.
ENDFORM. " fill_prop_value_cost_dist
&----
*& Form fill_prop_value_wrk_area
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_wrk_area .
CLEAR w_proposed_values.
w_proposed_values-infty = '0208'.
w_proposed_values-fname = 'P0208-WTART'.
w_proposed_values-fval = v_inrec-wrk_state.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0208'.
w_proposed_values-fname = 'P0208-ALLPC'.
w_proposed_values-fval = '100'.
APPEND w_proposed_values TO t_proposed_values.
ENDFORM. " fill_prop_value_wrk_area
&----
*& Form fill_prop_value_inter_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_inter_data .
CLEAR w_proposed_values.
w_proposed_values-infty = '0032'.
w_proposed_values-fname = 'P0032-ZLOCN_TYPE'.
w_proposed_values-fval = v_inrec-loc_type.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0032'.
w_proposed_values-fname = 'P0032-ZLOCN_CODE'.
w_proposed_values-fval = v_inrec-loc_code.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0032'.
w_proposed_values-fname = 'P0032-ZPTE'.
w_proposed_values-fval = V_pte.
APPEND w_proposed_values TO t_proposed_values.
ENDFORM. " fill_prop_value_inter_data
&----
*& Form fill_prop_value_unemp_stat
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_unemp_stat .
Pick work site and location code from ZHCM_MWS
select * from ZHCM_MWS up to 1 rows where CAESAR_CODE = v_inrec-loc_code .
endselect.
CLEAR w_proposed_values.
w_proposed_values-infty = '0209'.
w_proposed_values-fname = 'P0209-TAXAU'.
w_proposed_values-fval = ZHCM_MWS-taxau.
APPEND w_proposed_values TO t_proposed_values.
CLEAR w_proposed_values.
w_proposed_values-infty = '0209'.
w_proposed_values-fname = 'P0209-WKSIT'.
w_proposed_values-fval = ZHCM_MWS-wksit.
APPEND w_proposed_values TO t_proposed_values.
*CLEAR w_proposed_values.
w_proposed_values-infty = '0209'.
w_proposed_values-fname = 'P0209-TAXAU'.
w_proposed_values-fval = v_inrec-wrk_state.
APPEND w_proposed_values TO t_proposed_values.
*
ENDFORM. " fill_prop_value_unemp_stat
&----
*& Form fill_prop_value_comp_prog
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_comp_prog .
CLEAR w_proposed_values.
w_proposed_values-infty = '0758'.
APPEND w_proposed_values TO t_proposed_values.
ENDFORM. " fill_prop_value_comp_prog
&----
*& Form fill_prop_value_withhold_info
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_withhold_info .
CLEAR w_proposed_values.
w_proposed_values-infty = '0210'.
APPEND w_proposed_values TO t_proposed_values.
ENDFORM. " fill_prop_value_withhold_info
&----
*& Form fill_prop_value_time_rec
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_value_time_rec .
CLEAR w_proposed_values.
w_proposed_values-infty = '0050'.
APPEND w_proposed_values TO t_proposed_values.
ENDFORM. " fill_prop_value_time_rec
&----
*& Form fill_prop_withholding_info
&----
text
----
--> p1 text
<-- p2 text
----
FORM fill_prop_withholding_info .
DATA: t_0006 TYPE STANDARD TABLE OF p0006 WITH HEADER LINE.
DATA: w_0006 TYPE p0006,
ls_proposed_values TYPE pprop.
DEFINE add_value.
w_proposed_values-infty = &1.
w_proposed_values-fname = &2.
w_proposed_values-fval = &3.
append w_proposed_values to t_proposed_values.
END-OF-DEFINITION.
Read permant adress of an employee
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
TCLAS = 'A'
pernr = v_inrec-pernr
infty = '0006'
begda = v_inrec-datum
ENDDA = '99991231'
BYPASS_BUFFER = ' '
LEGACY_MODE = ' '
IMPORTING
SUBRC =
TABLES
infty_tab = t_0006[]
EXCEPTIONS
INFTY_NOT_FOUND = 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.
Sort the Employee records based on Begin Date
SORT t_0006 BY begda DESCENDING.
Read the latest employee records
READ TABLE t_0006 INTO w_0006 INDEX 1.
IF syst-subrc = 0.
Update the proposed value table with work tax area and filing status
add_value:
'0210' 'P0210-TAURT' w_0006-state,
'0210' 'P0210-TXSTA' '01'.
ENDIF.
ENDFORM. " fill_prop_withholding_info
&----
*& Form lock_emp
&----
text
----
-->P_PERNR text
----
FORM lock_emp USING l_pernr.
CALL FUNCTION 'BAPI_EMPLOYEE_ENQUEUE'
EXPORTING
number = l_pernr.
IMPORTING
RETURN = .
ENDFORM. " lock_emp
&----
*& Form unlock_emp
&----
text
----
-->P_PERNR text
----
FORM unlock_emp USING l_pernr.
CALL FUNCTION 'BAPI_EMPLOYEE_DEQUEUE'
EXPORTING
number = l_pernr.
IMPORTING
RETURN = .
ENDFORM. " unlock_emp
&----
*& Form maintain_infotype
&----
text
----
--> p1 text
<-- p2 text
----
FORM maintain_infotype USING l_action .
CALL FUNCTION 'HR_MAINTAIN_MASTERDATA'
EXPORTING
pernr = pernr
massn = l_action
actio = 'COP'
tclas = 'A'
begda = v_inrec-eff_date
endda = '99991231'
OBJPS =
SEQNR =
SPRPS =
SUBTY =
WERKS =
PERSG =
PERSK =
PLANS =
DIALOG_MODE = '2'
LUW_MODE = '1'
NO_EXISTENCE_CHECK = ' '
NO_ENQUEUE = ' '
IMPORTING
RETURN =
RETURN1 =
HR_RETURN =
TABLES
proposed_values = t_proposed_values
MODIFIED_KEYS =
.
ENDFORM. " maintain_infotype
**********************************************************
&----
*& Form create_vacancy
&----
text
----
--> p1 text
<-- p2 text
----
FORM create_vacancy .
DATA: new_date TYPE char10.
DATA: position TYPE pm0d1-seark.
position = v_inrec-oldposition.
position = v_objid.
PERFORM format_date USING v_inrec-vac_eff_dt CHANGING new_date.
IF v_inrec-vacancy_flag EQ '1'.
CALL FUNCTION 'ZOM_CREATE_VACANCY'
EXPORTING
vacancy_code = position
begda = new_date
ENDDA = '12319999'
.
ENDIF.
endform. " create_vacancy
&----
*& Form format_date
&----
text
----
-->U_DATE text
-->C_DATE text
----
FORM format_date USING u_date CHANGING c_date.
c_date0(2) = u_date4.
c_date2(2) = u_date6.
c_date+4(4) = u_date.
ENDFORM. "format_date
&----
*& Form find_position
&----
text
----
--> p1 text
<-- p2 text
----
FORM find_position .
DATA: l_object TYPE hrobject_t,
l_begda TYPE begda,
l_endda TYPE endda,
t_object TYPE p1001tab,
w_object1 TYPE LINE OF p1001tab,
w_object TYPE LINE OF hrobject_t,
new_date TYPE char10.
w_object-plvar = '01'.
w_object-otype = 'P'.
w_object-objid = pernr.
APPEND w_object TO l_object.
CALL FUNCTION 'HR_HCP_GET_POSITION_FOR_EMPL'
EXPORTING
im_objecttab = l_object[]
im_begda = v_inrec-eff_date
im_endda = '99991231'
IMPORTING
ex_1001_tab = t_object[]
EXCEPTIONS
read_1001_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
EXIT.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE t_object INTO w_object1 INDEX 1.
v_objid = w_object1-sobid.
ENDFORM. " find_position
*&----
**& Form fill_prop_value_cost_dist
*&----
text
*----
--> p1 text
<-- p2 text
*----
*FORM fill_prop_value_cost_dist .
*
DATA: t_0001 TYPE STANDARD TABLE OF p0001 WITH HEADER LINE.
DATA: next_paydate TYPE sydatum,
w_0001 TYPE p0001.
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
pernr = pernr
infty = '0001'
begda = eff_date
TABLES
infty_tab = t_0001[]
EXCEPTIONS
infty_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
EXIT.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*
SORT t_0001 BY begda DESCENDING.
*
Read the latest employee records
READ TABLE t_0001 INTO w_0001 INDEX 1.
IF sy-subrc = 0.
*
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-KSTAR'.
w_proposed_values-fval = '01'.
APPEND w_proposed_values TO t_proposed_values.
*
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-KBU01'.
w_proposed_values-fval = w_0001-bukrs.
APPEND w_proposed_values TO t_proposed_values.
*
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-KST01'.
w_proposed_values-fval = w_0001-kostl.
APPEND w_proposed_values TO t_proposed_values.
*
**Get the payroll period
CALL FUNCTION 'HR_MX_LAST_NEXT_PAYROLL_PERIOD'
EXPORTING
pernr = pernr
IMPORTING
last_paydate = next_paydate
EXCEPTIONS
no_rgdir_entries = 1
it1_error = 2
t549a_error = 3
t549q_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
EXIT.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-BEGDA'.
w_proposed_values-fval = next_paydate.
APPEND w_proposed_values TO t_proposed_values.
*
CLEAR w_proposed_values.
w_proposed_values-infty = '0027'.
w_proposed_values-fname = 'P0027-ENDDA'.
w_proposed_values-fval = eff_date.
APPEND w_proposed_values TO t_proposed_values.
ENDIF.
*ENDFORM. " fill_prop_value_cost_dist
‎2007 Jun 11 9:55 AM