Kas
20
2017

Performans Değerlendirme Planlarını Güncelleyen Procedure

Performans Değerlendime ya da Hedef Yönetim planlarının bitiş tarihlerinin ötelenmesi için aşağıdaki prosedür kullanılabilir.

Bu procedure compile edildikten sonra, gerekli setupları (Plan Adı ve Plan Bitiş Tarihi parametreleri) içeren bir eşzamanlı tanımlamayı unutmayın 🙂

 
 
CREATE OR REPLACE PROCEDURE update_plan_end_date (
   errbuf       OUT   VARCHAR2,
   retcode      OUT   VARCHAR2,
   p_plan_id          NUMBER,
   p_end_date         VARCHAR2
)
IS
-- Performans planı bitiş tarihini öteleyen eşzamanlıdır. Plan ve plan bitiş tarihi seçildiğinde per_perf_mgmt_plans ve per_appraisal_periods tablolarını update
--eder.
   l_plan_type       VARCHAR2 (500);
   l_plan_end_date   DATE;
   l_end_date        DATE          := fnd_date.canonical_to_date (p_end_date);
   l_err_msg         VARCHAR2 (4000);
BEGIN
   BEGIN
--"Ek Performans Yönetimi Planı Detayları" DFF tanımında attribute2 alanına plan tipi setup'ı yapılır
      SELECT NVL (attribute2, 'XX'), end_date
        INTO l_plan_type, l_plan_end_date
        FROM per_perf_mgmt_plans
       WHERE plan_id = p_plan_id;
   EXCEPTION
      WHEN OTHERS
      THEN
         l_plan_type := NULL;
         l_err_msg := SQLERRM;
         retcode := '2';
         errbuf := l_err_msg;
   END;
 
   IF l_end_date <= l_plan_end_date
   THEN
      retcode := '1';
      errbuf :=
         '**Hata: Seçilen bitiş tarihi, plan bitiş tarihinden küçük olmamalı';
   ELSE
--SCR, sadece hedeflerin güncellendiği plan tiplerini ifade eder
      IF l_plan_type = 'SCR'
      THEN
         BEGIN
            UPDATE per_perf_mgmt_plans
               SET end_date = l_end_date,
                   obj_setting_deadline = l_end_date
             WHERE plan_id = p_plan_id;
         EXCEPTION
            WHEN OTHERS
            THEN
               l_err_msg := SQLERRM;
               retcode := '2';
               errbuf := l_err_msg;
         END;
--APPR, performans puanlamalarının yapıldığı plan tiplerini ifade eder
      ELSIF l_plan_type IN ('APPR')
      THEN
         BEGIN
            UPDATE per_perf_mgmt_plans
               SET end_date = l_end_date
             WHERE plan_id = p_plan_id;
 
            UPDATE per_appraisal_periods
               SET end_date = l_end_date,
                   task_end_date = l_end_date
             WHERE plan_id = p_plan_id;
         EXCEPTION
            WHEN OTHERS
            THEN
               l_err_msg := SQLERRM;
               retcode := '2';
               errbuf := l_err_msg;
         END;
      END IF;
 
      retcode := '0';
      COMMIT;
   END IF;
 
   fnd_file.put_line (fnd_file.LOG, l_end_date || p_plan_id);
EXCEPTION
   WHEN OTHERS
   THEN
      l_err_msg := SQLERRM;
      retcode := '2';
      errbuf := l_err_msg;
END;

şafak bilir

Gazi Üniversitesi Endüstri Mühendisliği bölümünden 2006 yılında mezun
oldu. Medical Park ve Florence Nightingale İnsan Kaynakları birimlerinde
çalıştı. Yaklaşık 2,5 yıl Workcube ERP yazılımı ile İnsan Kaynakları-Bordro
danışmanlığı ve Proje Yöneticiliği görevlerinde bulundu. 2014 yılından bu
yana ise Oracle HR modülü İş Analisti olarak çalışmaktadır.
şafak bilir


Yorum yapın

*