Haz
10
2015

Eski Çalışanı Tekrar İşe Alma Örnek Scripti

Merhaba,

Aşağıdaki örnek procedure ile işten ayrılan çalışanı tekrar işe almak için kullanabilirsiniz.

 
 
CREATE OR REPLACE PROCEDURE apps.re_hire_ex_employee (
   v_person_id                       NUMBER,
   re_hire_date                      DATE,
   p_return_status   IN OUT NOCOPY   VARCHAR2,
   p_message         IN OUT NOCOPY   VARCHAR2
)
IS
   l_batch_run_number            hr_api_batch_message_lines.batch_run_number%TYPE;
   l_dummy_line_id               hr_api_batch_message_lines.line_id%TYPE;
   p_validate                    BOOLEAN                        DEFAULT FALSE;
   p_hire_date                   DATE;
   p_person_id                   NUMBER;
   p_per_object_version_number   NUMBER;
   p_person_type_id              NUMBER;
   p_rehire_reason               VARCHAR2 (100);
   v_object_version_number       NUMBER;
   v_person_type_id              NUMBER;
------------------------------------------------------------------------------------
   p_assignment_id               NUMBER;
   p_asg_object_version_number   NUMBER;
   p_per_effective_start_date    DATE;
   p_per_effective_end_date      DATE;
   p_assignment_sequence         NUMBER;
   p_assignment_number           VARCHAR2 (100);
   p_assign_payroll_warning      BOOLEAN;
 
   CURSOR csr_batch_run_number
   IS
      SELECT NVL (MAX (abm.batch_run_number), 0) + 1
        FROM hr_api_batch_message_lines abm;
BEGIN
   OPEN csr_batch_run_number;
 
   FETCH csr_batch_run_number
    INTO l_batch_run_number;
 
   CLOSE csr_batch_run_number;
 
   SELECT MAX (object_version_number)
     INTO v_object_version_number
     FROM per_all_people_f
    WHERE person_id = v_person_id AND person_type_id = 1123;
 
   SELECT ppt.person_type_id,
          user_person_type
     INTO v_person_type_id
     FROM per_person_types ppt
    WHERE ppt.business_group_id = 81 AND ppt.user_person_type = 'Personel';
 
   hr_employee_api.re_hire_ex_employee
                  (p_validate                       => FALSE,
                   p_hire_date                      => TO_DATE (re_hire_date,
                                                                'DD/MM/RRRR'
                                                               ),
                   p_person_id                      => v_person_id,
                   p_per_object_version_number      => v_object_version_number,
                   p_person_type_id                 => v_person_type_id,
                   p_rehire_reason                  => NULL,
------------------------------------------------------------------------------------------
                   p_assignment_id                  => p_assignment_id,
                   p_asg_object_version_number      => p_asg_object_version_number,
                   p_per_effective_start_date       => p_per_effective_start_date,
                   p_per_effective_end_date         => p_per_effective_end_date,
                   p_assignment_sequence            => p_assignment_sequence,
                   p_assignment_number              => p_assignment_number,
                   p_assign_payroll_warning         => p_assign_payroll_warning
                  );
   p_return_status := fnd_api.g_ret_sts_success;
   p_message := 'Kişi İşe Tekrar Alındı';
   COMMIT;
EXCEPTION
   WHEN OTHERS
   THEN
      p_return_status := fnd_api.g_ret_sts_error;
      p_message :=
            SQLERRM
         || CHR (10)
         || fnd_message.get
         || ' HATA-->Kişi Tekrar İşe Alınamadı--Person_ID:'
         || v_person_id;
      hr_batch_message_line_api.create_message_line
                         (p_batch_run_number            => l_batch_run_number,
                          p_api_name                    => 'hr_employee_api.re_hire_ex_employee',
                          p_status                      => 'F',
                          p_error_number                => SQLCODE,
                          p_error_message               => SQLERRM,
                          p_extended_error_message      => fnd_message.get,
                          p_source_row_information      => v_person_id,
                          p_line_id                     => l_dummy_line_id
                         );
      COMMIT;
END;

Elvan Uysal

1989 Aydın doğumlu.
2007-2008 Doğu Akdeniz Üniversitesi(EMU) Yabancı Dil Eğitimi aldı.
2013 İstanbul Aydın Üniversitesi-Matematik Bilgisayar Bilimlerinden
mezun oldu. Istanbul Aydın Üniversitesi-Master of Business
Administration(MBA) master programına devam etmektedir.
2013 yılından Beri Oracle e-Business Suite Uygulama Geliştirme
Fonksiyonel ve Teknik Danışman olarak DbOptimize bünyesinde
kariyerine devam etmektedir.
Mail: elvanuysal89@gmail.com
Elvan Uysal

İlgili Yazılar



Yorum yapın

*