2006 Oct 11 1:02 PM
Hi guys,
Is there any function module where I can pass parameter to run payroll simulation and get RT cluster data or the final amount, before running the actually payroll.
Regards,
Atul
Hi guys,
Is there any function module where I can pass parameter to run payroll simulation and get RT cluster data or the final amount, before running the actually payroll.
Regards,
Atul
2006 Oct 11 1:23 PM
Hi atul,
1. Payroll processing is a huge process.
2. There is no single FM,
to start it.
3. It is started by the program only,
either in test run, or actual run.
regards,
amit m.
2006 Oct 11 5:44 PM
Pl take a look at the following function modules..
HR_PAYROLL &
SIMULATE_PAYROLL_RESULTS.
~Suresh
2006 Oct 12 6:05 AM
Hi Amit,
HR_PAYROLL_SIMULATION
There is a function module but it not given the ouptut.
Atul
2006 Oct 21 8:52 AM
Hi Guys,
I am using function HR_PAYROLL and the result is coming in tbuff tables, can any help me in how to read the data in proper format from cluster.
Atul
2007 Apr 11 8:17 AM
Hi,
An employee left the organisation in the middle of Jan 2007.And the same employee has rejoined in the same organisation for the same position on 15 Feb 2007.
Now when we r running payroll for this employee for FEb month system is giving the error related to function module HR_IN_CALC_MONTHS.Emp ID ..Can anyone pleasesuggest why this error cud be happening..
Regds
2007 Apr 11 8:22 AM
hii check this&----
*& Report ZHR_MONTHLYESI
*&
&----
*&
*& Monthly ESI report
&----
REPORT zhr_monthlyesi NO STANDARD PAGE HEADING LINE-SIZE 200.
TABLES : pa0588,pa0001.
***********DECLARATION OF INTERNAL TABLES**********************
DATA : BEGIN OF it_pa OCCURS 0,
pernr LIKE pa0001-pernr, " PERSONNEL NUMBER
ename LIKE pa0001-ename, " EMPLOYEE NAME
END OF it_pa.
DATA : BEGIN OF it_esi OCCURS 0,
pernr LIKE pa0001-pernr, " PERSONNEL NUMBER
esino LIKE pa0588-esino, " EMPLOYEE ESI ACCOUNT NUMBER
END OF it_esi.
DATA : BEGIN OF it_out OCCURS 0,
pernr LIKE pa0001-pernr, " PERSONNEL NUMBER
ename LIKE pa0001-ename, " EMPLOYEE NAME
esino LIKE pa0588-esino, " EMPLOYEE ESI ACCOUNT NUMBER
END OF it_out.
DATA it_0008 LIKE p0008 OCCURS 0 WITH HEADER LINE.
DATA pay_dir TYPE hrpy_rgdir.
DATA for_period TYPE string.
DATA tot_baspay LIKE q0008-sumbb. "value 0.
DATA s_year TYPE bkpf-gjahr.
DATA: myseqnr LIKE hrpy_rgdir-seqnr. " Field to store sequence number from payroll directory
DATA: myseqnr1 LIKE hrpy_rgdir-seqnr.
DATA : mypy TYPE payin_result. " Field to store payroll result from payroll directory.
DATA : mypy1 TYPE payin_result.
DATA : myrt LIKE TABLE OF pc207 WITH HEADER LINE. " Internal table for RT in payroll results.
DATA : mywpbp LIKE TABLE OF pc205 WITH HEADER LINE. " internal table for WPBP in payroll results.
DATA : myesi LIKE TABLE OF pc2_in08 WITH HEADER LINE.
DATA : BEGIN OF it_display OCCURS 0, "internal table to group and display req fields.
esino LIKE pa0588-esino, " Employee ESI number.
pernr LIKE pa0001-pernr,
ename LIKE pa0001-ename, " Employee name.
asoll LIKE pc205-asoll, " Payable days.
betrg LIKE pc207-betrg, " ESI basis.
eeesic LIKE pc207-betrg, " Employee ESI contribution.
eresic LIKE pc207-betrg, " Employer ESI contribution.
tot_esi LIKE pc207-betrg,
END OF it_display.
*****************************************************************
SELECTION-SCREEN: BEGIN OF BLOCK a WITH FRAME TITLE text-001.
SELECT-OPTIONS:s_pernr FOR pa0001-pernr." default 5.
PARAMETERS : p_mon TYPE t247-ltx MATCHCODE OBJECT zmonth_sh.
PARAMETERS : p_year TYPE bkpf-gjahr.
SELECTION-SCREEN: END OF BLOCK a .
****************************************************************
AT SELECTION-SCREEN.
IF p_mon = ' '.
MESSAGE 'Enter Required month field' TYPE 'E'.
ELSEIF p_year = ' '.
MESSAGE 'Enter Required year field' TYPE 'E'.
ENDIF.
TRANSLATE p_mon TO LOWER CASE.
CASE p_mon.
WHEN 'april'.
CONCATENATE p_year '01' INTO for_period.
WHEN 'may'.
CONCATENATE p_year '02' INTO for_period.
WHEN 'june'.
CONCATENATE p_year '03' INTO for_period.
WHEN 'july'.
CONCATENATE p_year '04' INTO for_period.
WHEN 'august'.
CONCATENATE p_year '05' INTO for_period.
WHEN 'september'.
CONCATENATE p_year '06' INTO for_period.
WHEN 'october'.
CONCATENATE p_year '07' INTO for_period.
WHEN 'november'.
CONCATENATE p_year '08' INTO for_period.
WHEN 'december'.
CONCATENATE p_year '09' INTO for_period.
WHEN 'january'.
s_year = p_year.
s_year = s_year - 1.
CONCATENATE s_year '10' INTO for_period.
WHEN 'february'.
s_year = p_year.
s_year = s_year - 1.
CONCATENATE s_year '11' INTO for_period.
WHEN 'march'.
s_year = p_year.
s_year = s_year - 1.
CONCATENATE s_year '12' INTO for_period.
ENDCASE.
SELECT SINGLE * FROM hrpy_rgdir INTO pay_dir WHERE fpper = for_period AND pernr IN s_pernr.
IF sy-subrc <> 0.
MESSAGE 'No Record Exists For Specified period' TYPE 'E'.
ENDIF.
*****************************************************************
TOP-OF-PAGE.
WRITE :/10'Apollo Health Street Limited.',
/10 'Hyderabad.'.
WRITE :/10 'Monthly PF Statement.'.
WRITE :/10 'Code Number Of Establishment : ESI11.'.
WRITE :/10 'E.S.I Statement For The Month Of ', p_mon, p_year.
WRITE : sy-uline.
FORMAT COLOR COL_HEADING.
WRITE :/1(5) 'S.No',
8(20) 'ESI Number',
31(16) 'Personnel Number',
49(40) 'Employee Name',
85(12) 'Payable Days',
100(14) 'Total Earnings',
140(55) 'Contributions',
173(21) 'Total Contribution'.
WRITE :/131(21) 'Employee',
155(39) 'Employer'.
SKIP.
****************************************************************
START-OF-SELECTION.
SELECT pernr ename FROM pa0001 INTO TABLE it_pa WHERE pernr IN s_pernr.
SELECT pernr esino FROM pa0588 INTO TABLE it_esi WHERE pernr IN s_pernr.
LOOP AT it_pa.
READ TABLE it_esi WITH KEY pernr = it_pa-pernr.
it_out-pernr = it_pa-pernr.
it_out-ename = it_pa-ename.
it_out-esino = it_esi-esino.
APPEND it_out.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM it_out.
LOOP AT it_out.
it_display-esino = it_out-esino.
it_display-pernr = it_out-pernr.
it_display-ename = it_out-ename.
it_display-esino = it_out-esino.
it_display-ename = it_out-ename.
SELECT SINGLE seqnr FROM hrpy_rgdir
INTO myseqnr
WHERE pernr = it_out-pernr
AND fpper = for_period
AND srtza = 'A'.
IF sy-subrc = 0.
***********************TO READ RT IN PAYROLL RESULT***************
CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
EXPORTING
clusterid = 'IN'
employeenumber = it_out-pernr
sequencenumber = myseqnr
CHANGING
payroll_result = mypy
EXCEPTIONS
illegal_isocode_or_clusterid = 1
error_generating_import = 2
import_mismatch_error = 3
subpool_dir_full = 4
no_read_authority = 5
no_record_found = 6
versions_do_not_match = 7
error_reading_archive = 8
error_reading_relid = 9
OTHERS = 10.
myrt[] = mypy-inter-rt.
myesi[] = mypy-nat-esi.
READ TABLE myesi INDEX 1.
mywpbp[] = mypy-inter-wpbp.
READ TABLE mywpbp INDEX 1.
it_display-asoll = mywpbp-asoll.
READ TABLE myrt WITH KEY lgart = '/112'.
it_display-betrg = myrt-betrg.
READ TABLE myrt WITH KEY lgart = '/3E1'.
IF sy-subrc = 0.
it_display-eeesic = myrt-betrg.
ELSE.
it_display-eeesic = 0.
ENDIF.
READ TABLE myrt WITH KEY lgart = '/3E2'.
IF sy-subrc = 0.
it_display-eresic = myrt-betrg.
ELSE.
it_display-eeesic = 0.
ENDIF.
it_display-tot_esi = it_display-eeesic + it_display-eresic..
ENDIF.
*
CALL FUNCTION 'HR_GET_TOTAL_AMOUNT_P0008'
EXPORTING
pernr = it_out-pernr
date = sy-datum
p0008 = it_0008
P0001 =
FREQUENCY = ' '
leave_hourly = 'X'
IMPORTING
amount = tot_baspay
AMOUNT_ORIG =
FREQUENCY_ORIG =
FREQUENCY_ORIG_TEXT =
CURRENCY =
EXCEPTIONS
NO_ENTRY_IN_T001P = 1
NO_ENTRY_IN_T503 = 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.
*
it_display-betrg = tot_baspay.
*
it_display-eeesic = ( tot_baspay * myesi-eecnr ) / 100.
it_display-eresic = ( tot_baspay * myesi-ercnr ) / 100.
it_display-tot_esi = it_display-eeesic + it_display-eresic.
*
APPEND it_display.
CLEAR it_display.
ENDLOOP.
DATA sno TYPE i VALUE 1.
FORMAT COLOR COL_NORMAL.
LOOP AT it_display WHERE tot_esi <> 0.
WRITE :/1(5) sno,
8(20) it_display-esino,
35(8) it_display-pernr,
47(40) it_display-ename,
88(6) it_display-asoll,
92(21) it_display-betrg,
118(21) it_display-eeesic,
142(21) it_display-eresic,
165(21) it_display-tot_esi.
SKIP.
SET LEFT SCROLL-BOUNDARY COLUMN 85.
sno = sno + 1.
ENDLOOP. report
reply if u have any doubts
2007 Apr 11 11:25 AM
Using this code how can i analise the error..Please guide me.this report is used to find the monthly pf status
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |