how to create payslip through self service

17
How to Create Pay slip through Employee Self Service 1. create the RDF File: 2. Then create the XML File:

Upload: feras-hamdan

Post on 13-Jan-2017

345 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: How to create payslip through self service

How to Create Pay slip through Employee Self Service

1. create the RDF File:

2. Then create the XML File:

Page 2: How to create payslip through self service

3. Create word RTF file :

4. Upload the RDF to the server 5. And go to xml publisher responsibility and create data definition and template

6. Upload The RTF File

Page 3: How to create payslip through self service

6. Create Function

Function Code: FNDCPSRSSSWA_FNDSCURS

User Function name: View Payslip

Properties : SSWA jsp function

Web HTML Call: OA.jsp?akRegionCode=FNDCPPROGRAMPAGE&akRegionApplicationId=0&programApplName=PER&programName=XXPST_EMP_SLIP

Where PER mean Human Resource Module Name

Page 4: How to create payslip through self service

And XXPST_EMP_SLIP mean Concurrent Program Short Name

7. Assign the function to employee self-service menu. 8. Clear cash from functional administrator responsibility. 9. Log out then log in and go to function View Payslip and click on it.10. Fill the parameters and submit the request.

Then submit the request and press refresh and wait till it’s finished:

Page 5: How to create payslip through self service

Click on Output and see the result:

Page 6: How to create payslip through self service

In my application we have to create the RDF and RTF and XML files using this view:

SELECT ppf.employee_number,PAF.ASSIGNMENT_ID, ppf.last_name || ' ' || ppf.first_name Full_Name, trunc(sysdate) Print_Date, TO_CHAR(TO_DATE( RTRIM(TP.PERIOD_NAME,'Calendar Month'),'MM-YYYY'),'Mon-YYYY') Period, pprs.DATE_START, pp.name Position_Name, (SELECT MEANING FROM FND_LOOKUP_VALUES WHERE lookup_type = 'XX_BANK_DETAILS' AND language = USERENV ('Lang') AND LOOKUP_CODE = pea.segment1) Bank_Name, (SELECT MEANING FROM FND_LOOKUP_VALUES WHERE lookup_type = 'XX_BANK_BRANCHES' AND language = USERENV ('Lang') AND LOOKUP_CODE = pea.segment2) Bank_Branch, pea.segment3 Bank_Account_Number, MAX ( DECODE (ety.element_name, 'Basic Salary', TO_NUMBER (rrv.result_value), 0)) Basic_salary, MAX ( DECODE (ety.element_name, 'Income tax', TO_NUMBER (rrv.result_value), 0)) Income_tax, MAX (

Page 7: How to create payslip through self service

DECODE (ety.element_name, 'Social Security', TO_NUMBER (rrv.result_value), 0)) Social_Security, MAX ( DECODE (ety.element_name, 'Bonus', TO_NUMBER (rrv.result_value), 0)) Bonus, MAX ( DECODE (ety.element_name, 'Other earnings', TO_NUMBER (rrv.result_value), 0)) Other_earnings,(SELECT APPSLINK_HR_PACKAGE.GET_INPUT_VALUE('Other earnings','Description',PAF.ASSIGNMENT_ID) FROM DUAL ) earnings_description, MAX ( DECODE (ety.element_name, 'Per diem', TO_NUMBER (rrv.result_value), 0)) Per_diem, MAX ( DECODE (ety.element_name, 'Refund Insurance claims', TO_NUMBER (rrv.result_value), 0)) Refund_Insurance_claims, MAX ( DECODE (ety.element_name, 'Transportation Allowance', TO_NUMBER (rrv.result_value), 0)) Transportation_Allowance, MAX ( DECODE (ety.element_name, 'Travel allowance', TO_NUMBER (rrv.result_value), 0)) Travel_allowance, MAX ( DECODE ( ety.element_name, 'Exceeded the ceiling permitted Insurance', TO_NUMBER ( rrv.result_value), 0)) Exceede_Insurance, MAX ( DECODE (ety.element_name, 'Loan Payment', TO_NUMBER (rrv.result_value), 0)) Loan_Payment, MAX ( DECODE (ety.element_name, 'Loss of insurance card', TO_NUMBER (rrv.result_value), 0)) Loss_of_insurance_card, MAX ( DECODE (ety.element_name, 'Other deductions', TO_NUMBER (rrv.result_value),

Page 8: How to create payslip through self service

0)) Other_deductions,(SELECT APPSLINK_HR_PACKAGE.GET_INPUT_VALUE('Other deductions','Description',PAF.ASSIGNMENT_ID) FROM DUAL ) Deduction_Description, MAX ( DECODE (ety.element_name, 'family Insurance', TO_NUMBER (rrv.result_value), 0)) Family_Insurance, MAX ( DECODE (ety.element_name, 'Basic Salary', TO_NUMBER (rrv.result_value), 0)) + MAX ( DECODE (ety.element_name, 'Bonus', TO_NUMBER (rrv.result_value), 0)) +MAX ( DECODE (ety.element_name, 'Per diem', TO_NUMBER (rrv.result_value), 0)) + MAX ( DECODE (ety.element_name, 'Transportation Allowance', TO_NUMBER (rrv.result_value), 0)) +MAX ( DECODE (ety.element_name, 'Refund Insurance claims', TO_NUMBER (rrv.result_value), 0)) +MAX ( DECODE (ety.element_name, 'Travel allowance', TO_NUMBER (rrv.result_value), 0)) +MAX ( DECODE (ety.element_name, 'Other earnings', TO_NUMBER (rrv.result_value), 0)) Total_Earnings , MAX ( DECODE (ety.element_name, 'Income tax', TO_NUMBER (rrv.result_value), 0)) +MAX ( DECODE (ety.element_name, 'Social Security', TO_NUMBER (rrv.result_value), 0)) +MAX ( DECODE ( ety.element_name, 'Exceeded the ceiling permitted Insurance', TO_NUMBER ( rrv.result_value), 0)) + MAX ( DECODE (ety.element_name, 'Loan Payment', TO_NUMBER (rrv.result_value),

Page 9: How to create payslip through self service

0)) +MAX ( DECODE (ety.element_name, 'Loss of insurance card', TO_NUMBER (rrv.result_value), 0)) +MAX ( DECODE (ety.element_name, 'family Insurance', TO_NUMBER (rrv.result_value), 0)) +MAX ( DECODE (ety.element_name, 'Other deductions', TO_NUMBER (rrv.result_value), 0)) Total_Deductions , MAX ( DECODE (ety.element_name, 'Total Payments', TO_NUMBER (rrv.result_value), 0)) Total_Payments , (to_char(to_date(MAX ( DECODE (ety.element_name, 'Total Payments', ROUND(TO_NUMBER (rrv.result_value),0), 0)),'j'), 'jsp'))||' & 0'||substr(MAX ( DECODE (ety.element_name, 'Total Payments', TO_NUMBER (rrv.result_value), 0)),instr(MAX ( DECODE (ety.element_name, 'Total Payments', TO_NUMBER (rrv.result_value), 0)),'.'),3)||' Fils' Total_Words, MAX ( DECODE ( ety.element_name, 'Accrual Plan for Jordan Payroll Balance', TO_NUMBER ( rrv.result_value), 0)) Accrual_Plan, MAX ( DECODE ( ety.element_name, 'Accrual Plan for Jordan Payroll Balance', TO_NUMBER ( rrv.result_value), 0))-( (select appslink_hr_package.get_absence_total_days( paf.business_group_id,paf.assignment_id,16044,to_char(sysdate,'YYYY')) from dual)++ROUND((SELECT APPSLINK_HR_PACKAGE.get_abs_dur_sum_count(paf.business_group_id,paf.assignment_id,'Hourly leave','01-JAN-'||TO_CHAR(SYSDATE,'YYYY'),'31-DEC-'||TO_CHAR(SYSDATE,'YYYY'),'N','SUM',2) FROM DUAL),1)) Remaining_Annual_leave_balance , (select appslink_hr_package.get_absence_total_days( paf.business_group_id,paf.assignment_id,16044,to_char(sysdate,'YYYY')) from dual)+ROUND((SELECT APPSLINK_HR_PACKAGE.get_abs_dur_sum_count(paf.business_group_id,paf.assignment_id,'Hourly leave','01-JAN-'||TO_CHAR(SYSDATE,'YYYY'),'31-DEC-'||TO_CHAR(SYSDATE,'YYYY'),'N','SUM',2) FROM DUAL),1) Annual_leave_balance_TakenFROM per_people_x ppf, per_assignments_x paf, pay_assignment_actions pas, pay_payroll_actions ppa,

Page 10: How to create payslip through self service

pay_run_results rr, pay_run_result_values rrv, pay_element_types_f ety, pay_input_values_F I, PER_TIME_PERIODS_v TP, PAY_INPUT_VALUES_F, pay_personal_payment_methods_f pppm, pay_external_accounts pea , PER_PERIODS_OF_SERVICE pprs , per_positions pp WHERE ppf.person_id = paf.person_id and pprs.person_id = ppf.person_id and paf.position_id = pp.position_id AND paf.assignment_id = pas.assignment_id AND pppm.external_account_id = pea.external_account_id AND paf.ASSIGNMENT_ID = pppm.ASSIGNMENT_ID AND pea.id_flex_num = '41' AND pas.assignment_action_id = rr.assignment_action_id AND ppa.payroll_action_id = pas.payroll_action_id AND rr.element_type_id = ety.element_type_id AND i.element_type_id = ety.element_type_id AND rrv.run_result_id = rr.run_result_id AND rrv.input_value_id = i.input_value_id AND TP.TIME_PERIOD_ID = PPA.TIME_PERIOD_ID AND i.name IN ('Pay Value', 'Plan Days') and TO_CHAR(TO_DATE( RTRIM(TP.PERIOD_NAME,'Calendar Month'),'MM-YYYY'),'Mon-YYYY')= :p_period_name and ppf.employee_number = :p_emp_no AND TP.END_DATE BETWEEN PAF.EFFECTIVE_START_DATE AND PAF.EFFECTIVE_END_DATE AND TP.END_DATE BETWEEN PPF.EFFECTIVE_START_DATE AND PPF.EFFECTIVE_END_DATE --AND ppa.EFFECTIVE_DATE BETWEEN :P_FROM_DATE AND :P_TO_DATEGROUP BY ppf.employee_number, ppf.last_name || ' ' || ppf.first_name, trunc(sysdate), TO_CHAR(TO_DATE( RTRIM(TP.PERIOD_NAME,'Calendar Month'),'MM-YYYY'),'Mon-YYYY'), pea.segment1, pea.segment2, pea.segment3, pprs.DATE_START, PAF.ASSIGNMENT_ID, pp.name, paf.business_group_idORDER BY ppf.employee_number ;

Finally:

1. Define value set

Page 11: How to create payslip through self service

Value Set Name: XX_EMPLOYEE_NUMBER

Table : PER_ALL_PEOPLE_F PAPF

Value : PAPF.EMPLOYEE_NUMBER

Where : WHERE SYSDATE BETWEEN PAPF.EFFECTIVE_START_DATE AND PAPF.EFFECTIVE_END_DATE

AND fnd_global.EMPLOYEE_ID = PAPF.PERSON_ID

Page 12: How to create payslip through self service

Value Set Name: XX_PERIODS

Table: XX_PERIOD_NAME

This is the view code :

CREATE OR REPLACE FORCE VIEW APPS.XX_PERIOD_NAME (DATE_EARNED)AS SELECT DISTINCT TO_CHAR (DATE_EARNED, 'Mon-YYYY') Date_earned FROM PAY_PAYROLL_ACTIONS WHERE BUSINESS_GROUP_ID = fnd_profile.VALUE ('PER_BUSINESS_GROUP_ID');

Value: Date_earned

2. Define executable

Page 13: How to create payslip through self service

3. Define the Program

4. Define the parameters and attach the value set

Page 14: How to create payslip through self service

The select statement:

SELECT PAPF.EMPLOYEE_NUMBER

FROM PER_ALL_PEOPLE_F PAPF

WHERE SYSDATE BETWEEN PAPF.EFFECTIVE_START_DATE AND PAPF.EFFECTIVE_END_DATE

AND fnd_global.EMPLOYEE_ID = PAPF.PERSON_ID

Page 15: How to create payslip through self service

The packages and functions