Mar
14
2014

Personel İşten Çıkarma İşlemi Örnek Scripti

Merhaba, aşağıda personelin aktif olan çalışmasını sonlandırılmasını sağlayan  örnek scripti bulabilirsiniz.

 

( Gerekli olan parametreler set edilerek script çalıştırılabilir !)

 
DECLARE
l_last_std_process_date_out DATE;
l_validate_mode BOOLEAN := FALSE;
l_employee_no NUMBER;
l_date1 DATE;
— API Return Variables
l_assignment_id NUMBER;
l_obj_version_number NUMBER;
l_eff_start_date DATE;
l_eff_end_date DATE;
l_final_process_date DATE;
l_org_now_no_manager_warning BOOLEAN;
l_comment_id NUMBER;
l_error_text VARCHAR2 (1000);
l_last_standard_process_date DATE;
l_obj_no1 NUMBER;
l_obj_no2 NUMBER;
l_supervisor_warning BOOLEAN;
l_event_warning BOOLEAN;
l_interview_warning BOOLEAN;
l_review_warning BOOLEAN;
l_recruiter_warning BOOLEAN;
l_asg_future_changes_warning BOOLEAN;
l_entries_changed_warning VARCHAR2 (10);
l_pay_proposal_warning BOOLEAN;
l_dod_warning BOOLEAN;
l_ppos_id NUMBER;
— Constant variables

— Error Handling variables
l_error_message VARCHAR2 (150);
l_error_code VARCHAR2 (30);
l_error_statement VARCHAR2 (50);
— Count Variables
l_count_total NUMBER := 0;
l_count_success NUMBER := 0;
— Total number of successful rows
l_cnt1 NUMBER := 0;
l_errm VARCHAR2 (100);
l_err_at_stmt NUMBER;
–****************************BU PARAMETRELER SET EDİLMELİDİR****************************
l_module_id CONSTANT VARCHAR2 (30) := ‘XXDENEMEXX’;
–> modül adı değiştirişmelidir
l_business_group_id NUMBER;
–> mevcut business group_id verilmelidir !
l_person_type_id NUMBER := 2123;
l_assignment_status_type_id NUMBER := 3;
l_leaving_reason VARCHAR2 (150) := ‘DVMIC’;
l_person_id NUMBER := 5154;

–***********************************************************
CURSOR c_ppos (c_person_id IN NUMBER)
IS
SELECT period_of_service_id, object_version_number
FROM per_periods_of_service
WHERE person_id = c_person_id
AND actual_termination_date IS NULL
AND business_group_id = l_business_group_id;
–> business grup mevcut bu
BEGIN
FOR rec IN c_ppos (l_person_id)
LOOP
l_last_standard_process_date := TRUNC (SYSDATE); –> işten çıkış tarihi
l_supervisor_warning := NULL;
l_event_warning := NULL;
l_interview_warning := NULL;
l_review_warning := NULL;
l_recruiter_warning := NULL;
l_asg_future_changes_warning := NULL;
l_entries_changed_warning := NULL;
l_pay_proposal_warning := NULL;
l_dod_warning := NULL;
hr_ex_employee_api.actual_termination_emp
(p_validate => FALSE,
p_effective_date => TRUNC (SYSDATE),
p_period_of_service_id => rec.period_of_service_id,
p_object_version_number => rec.object_version_number,
p_actual_termination_date => TRUNC (SYSDATE),
p_last_standard_process_date => l_last_standard_process_date,
p_person_type_id => l_person_type_id,
— ex employee id ,
p_assignment_status_type_id => l_assignment_status_type_id,
— Terminate Assignment status
p_leaving_reason => l_leaving_reason,
–> toplu işten çıkartma –rec.leave_cd1
— OUT
— p_attribute6 => ‘H’,
— p_attribute7 => ‘H’,
p_last_std_process_date_out => l_last_std_process_date_out,
p_supervisor_warning => l_supervisor_warning,
p_event_warning => l_event_warning,
p_interview_warning => l_interview_warning,
p_review_warning => l_review_warning,
p_recruiter_warning => l_recruiter_warning,
p_asg_future_changes_warning => l_asg_future_changes_warning,
p_entries_changed_warning => l_entries_changed_warning,
p_pay_proposal_warning => l_pay_proposal_warning,
p_dod_warning => l_dod_warning
);
hr_ex_employee_api.update_term_details_emp
( –p_validate
p_effective_date => TRUNC (SYSDATE),
p_period_of_service_id => rec.period_of_service_id
–,p_termination_accepted_person
–,p_accepted_termination_date
–,p_comments
–,p_leaving_reason
,
p_notified_termination_date => TRUNC (SYSDATE),
p_projected_termination_date => TRUNC (SYSDATE)
— OUT
,
p_object_version_number => rec.object_version_number
);
–> bu işlemdeki l_obj_no1 işten çıkış sonrasındaki object version number olmalıdır.
hr_ex_employee_api.final_process_emp
(p_period_of_service_id => rec.period_of_service_id,
p_object_version_number => rec.object_version_number,
p_final_process_date => l_final_process_date,
p_org_now_no_manager_warning => l_org_now_no_manager_warning,
p_asg_future_changes_warning => l_asg_future_changes_warning,
p_entries_changed_warning => l_entries_changed_warning
);
END LOOP;

COMMIT;
END;

Mustafa Korkmaz


Yorum yapın

*