Sunday, January 24, 2021

Per_all_people_f Create Api - hr_employee_api.create_employee

 /* Formatted on 10/7/2020 2:59:50 PM (QP5 v5.277) */

DECLARE


   ln_person_id                  PER_ALL_PEOPLE_F.PERSON_ID%TYPE;

   ln_assignment_id              PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_ID%TYPE;

   ln_object_ver_number          PER_ALL_ASSIGNMENTS_F.OBJECT_VERSION_NUMBER%TYPE;

   ln_asg_ovn                    NUMBER;


   ld_per_effective_start_date   PER_ALL_PEOPLE_F.EFFECTIVE_START_DATE%TYPE;

   ld_per_effective_end_date     PER_ALL_PEOPLE_F.EFFECTIVE_END_DATE%TYPE;

   lc_full_name                  PER_ALL_PEOPLE_F.FULL_NAME%TYPE;

   ln_per_comment_id             PER_ALL_PEOPLE_F.COMMENT_ID%TYPE;

   ln_assignment_sequence        PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_SEQUENCE%TYPE;

   lc_assignment_number          PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_NUMBER%TYPE;


   lb_name_combination_warning   BOOLEAN;

   lb_assign_payroll_warning     BOOLEAN;

   lb_orig_hire_warning          BOOLEAN;



   CURSOR l_data

   IS

      SELECT person_id,

             (SELECT person_type_id

                FROM PER_PERSON_TYPES

               WHERE USER_PERSON_TYPE = xpc.PERSON_TYPE_NAME)

                person_type_id,

             (SELECT assignment_id

                FROM per_all_assignments_f

               WHERE     person_id = xpc.person_id

                     AND effective_end_date > SYSDATE)

                assignment_id,                

             employee_number,

             first_name,

             last_name,

             full_name,

             date_of_birth,

             start_date,

             EFFECTIVE_START_DATE,

             EFFECTIVE_END_DATE,

             SEX,

             EMAIL_ADDRESS,

             ORIGINAL_DATE_OF_HIRE,

             context_value,

             banka_kodu,

             sube_kodu,

             hesap_no,

             iban_no,

             global_name,

             local_name,

             party_id,

             new_person_id

        FROM XX.XX_PERSON_CREATE_TMP xpc

       WHERE  new_person_id is  null;

       

BEGIN

   FOR n_data IN l_data

   LOOP

      hr_employee_api.create_employee (                 -- Input data elements

         -- ------------------------------

         p_hire_date                   => n_data.EFFECTIVE_START_DATE,

         p_business_group_id           => fnd_profile.value_specific (

                                            'PER_BUSINESS_GROUP_ID'),

         p_last_name                   => n_data.last_name,

         p_first_name                  => n_data.first_name,

         p_middle_names                => NULL,

         p_sex                         => NVL(n_data.sex,'M'),

         p_employee_number             => n_data.employee_number,

         p_date_of_birth               => n_data.date_of_birth,

         p_person_type_id              => n_data.person_type_id,

         p_email_address               => n_data.email_address,

         p_attribute_category          => n_data.context_value,

         p_attribute1                  => NVL(n_data.banka_kodu,hr_api.g_varchar2),--

         p_attribute2                  => NVL(n_data.sube_kodu,hr_api.g_varchar2),

         p_attribute3                  => NVL(n_data.hesap_no,hr_api.g_varchar2),

         p_attribute4                  => NVL(n_data.iban_no,hr_api.g_varchar2),

         -- Output data elements

         -- --------------------------------

         p_person_id                   => ln_person_id,

         p_assignment_id               => ln_assignment_id,

         p_per_object_version_number   => ln_object_ver_number,

         p_asg_object_version_number   => ln_asg_ovn,

         p_per_effective_start_date    => ld_per_effective_start_date,

         p_per_effective_end_date      => ld_per_effective_end_date,

         p_full_name                   => lc_full_name,

         p_per_comment_id              => ln_per_comment_id,

         p_assignment_sequence         => ln_assignment_sequence,

         p_assignment_number           => lc_assignment_number,

         p_name_combination_warning    => lb_name_combination_warning,

         p_assign_payroll_warning      => lb_assign_payroll_warning,

         p_orig_hire_warning           => lb_orig_hire_warning);


        IF ln_person_id is not null THEN


      DBMS_OUTPUT.PUT_LINE (

            ln_person_id

         || ','

         || ln_assignment_id

         || ','

         || ln_object_ver_number

         || ','

         || ln_asg_ovn

         || ','

         || ld_per_effective_start_date

         || ','

         || ld_per_effective_end_date

         || ','

         || lc_full_name);


      UPDATE XX.XX_PERSON_CREATE_TMP

         SET new_person_id = ln_person_id,

             new_assignment_id = ln_assignment_id

       WHERE person_id = n_data.person_id;


      COMMIT;

      

      END IF;

      

   END LOOP;

EXCEPTION

   WHEN OTHERS

   THEN

      ROLLBACK;

      DBMS_OUTPUT.put_line (SQLERRM);

END;

/

No comments:

Post a Comment