Friday, 28 November 2014

Script to import a user as a CRM resource

DECLARE
 lc_user_name                 FND_USER.USER_NAME%TYPE           := 'GK0714';
 lc_sex                       PER_ALL_PEOPLE_F.SEX%TYPE         := 'M';
 lc_first_name                PER_ALL_PEOPLE_F.FIRST_NAME%TYPE  := 'Gaurav';
 lc_last_name                 PER_ALL_PEOPLE_F.LAST_NAME%TYPE   := 'Kumar';
 lc_employee_number           PER_ALL_PEOPLE_F.EMPLOYEE_NUMBER%TYPE;
 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;
 ln_user_id                   FND_USER.USER_ID%TYPE;
 lc_return_status             VARCHAR2(1);
 ln_msg_count                 NUMBER;
 lc_msg_data                  VARCHAR2(5000);
 lc_msg_dummy                 VARCHAR2(5000);
 lc_output                    VARCHAR2(5000);
 ln_resource_id               JTF_RS_RESOURCE_EXTNS.RESOURCE_ID%TYPE;
 lc_resource_number           JTF_RS_RESOURCE_EXTNS.RESOURCE_NUMBER%TYPE;
 ln_responsibility_id         NUMBER;
 ln_application_id            NUMBER;
BEGIN
      BEGIN
           hr_employee_api.create_employee
           (   p_hire_date                       => SYSDATE,
               p_business_group_id               => fnd_profile.value_specific('PER_BUSINESS_GROUP_ID'),
               p_last_name                       => lc_last_name,
               p_first_name                      => lc_first_name,
               p_sex                             => lc_sex,
               p_employee_number                 => lc_employee_number,
               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
        );
             DBMS_OUTPUT.PUT_LINE ('Person has created with Name :'||lc_full_name);
      EXCEPTION
      WHEN OTHERS THEN
       DBMS_OUTPUT.PUT_LINE ('Error While creating the Employee :'||SQLERRM);
      END;     
  IF (ln_person_id IS NOT NULL) THEN
      BEGIN
           fnd_user_pkg.updateuser
           (   x_user_name                       => lc_user_name,
               x_owner                           => '',
               x_employee_id                     => ln_person_id
           );
      EXCEPTION
      WHEN OTHERS THEN
       DBMS_OUTPUT.PUT_LINE ('Error While updating the User Name :'||SQLERRM);
       ROLLBACK;
      END;
    BEGIN
    SELECT user_id
    INTO ln_user_id
    FROM fnd_user
    WHERE user_name = lc_user_name;
    SELECT responsibility_id, application_id
    INTO ln_responsibility_id, ln_application_id
    FROM fnd_responsibility_vl
    WHERE responsibility_name = 'CRM Administrator';
    END;
    BEGIN
       fnd_global. apps_initialize (ln_user_id, ln_responsibility_id, ln_application_id);
           jtf_rs_resource_pub.create_resource
           (   p_api_version                 => 1.0,
               p_category                     => 'EMPLOYEE',
               p_start_date_active             => SYSDATE,
               p_source_id                    => ln_person_id,
               p_user_id                    => ln_user_id,
               p_user_name                  => lc_user_name,
               p_resource_name              => lc_full_name,
               p_source_number              => lc_employee_number,
               p_source_name                => lc_full_name,
               p_source_first_name          => lc_first_name,
               p_source_last_name           => lc_last_name,
               p_source_business_grp_id        => fnd_profile.value_specific('PER_BUSINESS_GROUP_ID'),  
               x_return_status                 => lc_return_status,
               x_msg_count                     => ln_msg_count,
               x_msg_data                     => lc_msg_data,
               x_resource_id                 => ln_resource_id,
               x_resource_number             => lc_resource_number
           );
         IF (lc_return_status <> 'S') THEN
            BEGIN
               FOR i IN 1 .. ln_msg_count
               LOOP
                  fnd_msg_pub.get (i, fnd_api.g_false, lc_msg_data, lc_msg_dummy);
                  lc_output := (TO_CHAR (i) || ': ' || lc_msg_data);
               END LOOP;
                  dbms_output.put_line('Error :'||lc_output);
            END;
            ROLLBACK;
         ELSE
         dbms_output.put_line('Resource imported sucessfully.');
         COMMIT;
         END IF;
    EXCEPTION
      WHEN OTHERS THEN
       DBMS_OUTPUT.PUT_LINE ('Error While importing the Resource :'||SQLERRM);
       ROLLBACK;
      END;
  END IF;
END;
/

No comments:

Post a Comment