Thursday, August 28, 2014

Contingent Worker Assignment Activate/Suspend - HRMS APIs

--
declare
   --
   l_mode                      varchar2(10) := 'SUSPEND';--'ACTIVATE'
   --- IN variables
   l_assignment_id             number := 123456;
   --per_assignment_status_types.assignment_status_type_id%TYPE;
   l_assignment_status_type_id number;
   l_ovn_asg                   number := 2;
   -- Out variables
   l_effective_start_date      date;
   l_effective_end_date        date;

   --
begin
    --
    --***Note - look into the user_status and per_system_status of
     -- table per_assignment_status_types

    if l_mode = 'ASG' then

       /* This API updates the status of a contingent worker assignment to an Active
         * status.
         @param p_assignment_status_type_id The new assignment status must have a
         * system assignment status of ACTIVE_CWK. If the assignment status is already
         * a type of ACTIVE_CWK,
       */    
        --
       l_assignment_status_type_id := 76;
       --
       hr_assignment_api.activate_cwk_asg
                    ( P_VALIDATE                    =>  false
                    , P_EFFECTIVE_DATE              =>  trunc(sysdate)
                    , P_DATETRACK_UPDATE_MODE       =>  'CORRECTION'
                    , P_ASSIGNMENT_ID               =>  ln_assignment_id
                    -- In / Out
                    , P_OBJECT_VERSION_NUMBER       =>  l_ovn_asg
                    -- In
                    , P_ASSIGNMENT_STATUS_TYPE_ID   =>  l_assignment_status_type_id
                    -- Out
                    , P_EFFECTIVE_START_DATE        =>  l_effective_start_date
                    , P_EFFECTIVE_END_DATE          =>  l_effective_end_date
                    );
                               
       dbms_output.put_line('Employee Activated ');
     
     
    elsif l_mode = 'SUSPEND' then
   
       /*  * This API changes the status of an contingent worker assignment to a
          *  "Suspended" status.
          * @param p_assignment_status_type_id The new assignment status. The new
          * status must have a system status of SUSP_CWK_ASG.
       */
       --
       l_assignment_status_type_id := 77;
       --
       hr_assignment_api.suspend_cwk_asg
                    ( P_VALIDATE                    =>  false
                    , P_EFFECTIVE_DATE              =>  trunc(sysdate)
                    , P_DATETRACK_UPDATE_MODE       =>  'CORRECTION'
                    , P_ASSIGNMENT_ID               =>  ln_assignment_id
                    -- In / Out
                    , P_OBJECT_VERSION_NUMBER       =>  l_ovn_asg
                    -- In
                    , P_ASSIGNMENT_STATUS_TYPE_ID   =>  l_assignment_status_type_id
                    -- Out
                    , P_EFFECTIVE_START_DATE        =>  l_effective_start_date
                    , P_EFFECTIVE_END_DATE          =>  l_effective_end_date
                    );
     
       dbms_output.put_line('Employee Suspended ');
   
    end if ;
    --
    commit;
    --
exception
   when others then
      dbms_output.put_line('Error: '||sqlerrm);    
      rollback;                    
end;
--                        

Employee Assignment Activate/Suspend - HRMS APIs

--
declare
   --
   l_mode                      varchar2(10) := 'SUSPEND';--'ACTIVATE'
   --- IN variables
   l_assignment_id             number := 123456;
   --per_assignment_status_types.assignment_status_type_id%TYPE;
   l_assignment_status_type_id number;
   l_ovn_asg                   number := 2;
   -- Out variables
   l_effective_start_date      date;
   l_effective_end_date        date;

   --
begin
    --
    --***Note - look into the user_status and per_system_status of table per_assignment_status_types
    if l_mode = 'ASG' then

       /* This API updates the status of an employee assignment to an Active status.
         @param p_assignment_status_type_id The new assignment status must have a
         * system assignment status of ACTIVE_ASSIGN
       */      
        --
       l_assignment_status_type_id := 1;
        --
       hr_assignment_api.activate_emp_asg
                    ( P_VALIDATE                    =>  false
                    , P_EFFECTIVE_DATE              =>  trunc(sysdate)
                    , P_DATETRACK_UPDATE_MODE       =>  'CORRECTION'
                    , P_ASSIGNMENT_ID               =>  ln_assignment_id
                    -- In / Out
                    , P_OBJECT_VERSION_NUMBER       =>  l_ovn_asg
                    -- In
                    , P_ASSIGNMENT_STATUS_TYPE_ID   =>  l_assignment_status_type_id
                    -- Out
                    , P_EFFECTIVE_START_DATE        =>  l_effective_start_date
                    , P_EFFECTIVE_END_DATE          =>  l_effective_end_date
                    );
                               
       dbms_output.put_line('Employee Activated ');
     
     
    elsif l_mode = 'SUSPEND' then
   
       /*  * This API changes the status of an employee assignment to a "Suspended"
          * status.
          * @param p_assignment_status_type_id The new assignment status. The new
          * status must have a system status of SUSP_ASSIGN.
       */
       --
       l_assignment_status_type_id := 2;
       --
       hr_assignment_api.suspend_emp_asg
                    ( P_VALIDATE                    =>  false
                    , P_EFFECTIVE_DATE              =>  trunc(sysdate)
                    , P_DATETRACK_UPDATE_MODE       =>  'CORRECTION'
                    , P_ASSIGNMENT_ID               =>  ln_assignment_id
                    -- In / Out
                    , P_OBJECT_VERSION_NUMBER       =>  l_ovn_asg
                    -- In
                    , P_ASSIGNMENT_STATUS_TYPE_ID   =>  l_assignment_status_type_id
                    -- Out
                    , P_EFFECTIVE_START_DATE        =>  l_effective_start_date
                    , P_EFFECTIVE_END_DATE          =>  l_effective_end_date
                    );
     
       dbms_output.put_line('Employee Suspended ');
   
    end if ;
       
     --
     commit;
     --
exception
   when others then
      dbms_output.put_line('Error: '||sqlerrm);      
      rollback;                  
end;
--                          

Update Contingent Workers Assignment/Criteria

--
declare
   --
   l_mode                      varchar2(10) := 'CRITERIA'; --'ASG'
   --- DECLARE variables for HR_ASSIGNMENT_API.update_emp_asg
   --- IN variables
   l_assignment_id             number := 123456;
   l_normal_hours              number := 37;
   --per_assignment_status_types.assignment_status_type_id%TYPE;
   l_assignment_status_type_id number := 1;
   l_sob_id                    number := 1;
   l_default_expense_ccid      number := 1234;

   --- OUT variables
   l_org_now_no_manager_warning   boolean := false;
   l_no_managers_warning          boolean := false;
   l_other_manager_warning        boolean := false;
   l_hourly_salaried_warning      boolean := false;
   l_comment_id                   number;
   l_effective_start_date         date;
   l_effective_end_date           date;
   l_soft_coding_keyflex_id       number;
   l_concatenated_segments        varchar2(100);

   --- DECLARE variables for HR_ASSIGNMENT_API.update_emp_asg_criteria
   --- IN variables
   l_payroll_id                    number := 125;
   l_organization_id               number := 5678;
   l_position_id                   number := 9904567;
   l_job_id                        number := 3456;
   l_location_id                   number := 12345;
   l_grade_id                      number := 12;

   --- OUT variables
   l_spp_delete_warning           boolean := false;
   l_entries_changed_warning      varchar2(100) default null;
   l_tax_district_changed_warning boolean := false;
   l_people_group_id              number;
   l_people_group_name            varchar2(100);
   --
begin
    --
    if l_mode = 'ASG' then

       /* This API updates contingent worker assignment.
       * The assignment must exist as of the effective date, and must be a contingent
       * worker assignment.
       * updating the record. You must set to either UPDATE, CORRECTION,
       * UPDATE_OVERRIDE or UPDATE_CHANGE_INSERT.
       */
     
       hr_assignment_api.update_cwk_asg
                      (p_validate                     => false --in boolean  default false
                      ,p_effective_date               => trunc(sysdate)            
                      ,p_datetrack_update_mode        => 'CORRECTION'      
                      ,p_assignment_id                => l_assignment_id    
                      ,p_assignment_status_type_id    => l_assignment_status_type_id
                      ,p_default_code_comb_id         => l_default_expense_ccid
                      ,p_set_of_books_id              => l_sob_id
                      ,p_normal_hours                 => l_normal_hours                        
                       --In/Out
                      ,p_object_version_number  => l_asg_object_version_number
                       --Out
                      ,p_org_now_no_manager_warning => l_org_now_no_manager_warning
                      ,p_effective_start_date        => l_effective_start_date      
                      ,p_effective_end_date          => l_effective_end_date        
                      ,p_comment_id                  => l_comment_id                
                      ,p_no_managers_warning         => l_no_managers_warning      
                      ,p_other_manager_warning       => l_other_manager_warning    
                      ,p_soft_coding_keyflex_id      => l_soft_coding_keyflex_id    
                      ,p_concatenated_segments       => l_concatenated_segments    
                      ,p_hourly_salaried_warning     => l_hourly_salaried_warning  
                      );  
     
       if (l_org_now_no_manager_warning= true or l_no_managers_warning = true  or l_other_manager_warning = true or l_hourly_salaried_warning = true) then
           dbms_output.put_line('Warning validating API: hr_assignment_api.update_cwk_asg');
           rollback;
       else
          dbms_output.put_line('Success ');
          commit;
       end if;
     
    elsif l_mode = 'CRITERIA' then
   
       /* This API updates attributes of a contingent worker assignment that may
       * affect the entitlement to element entries - currently Contingent Workers may
       * not have element entries so this API is reserved for future use.
       * The API updates the attributes of assignment.
       */
       hr_assignment_api.update_cwk_asg_criteria
                            ( p_effective_date                =>  trunc(sysdate)
                            , p_datetrack_update_mode         =>  'CORRECTION'
                            , p_assignment_id                 =>  l_assignment_id
                            , p_validate                      =>  false --lb_validate_mode
                            , p_called_from_mass_update       =>  false
                            , p_position_id                   =>  l_position_id
                            , p_job_id                        =>  l_job_id
                            , p_location_id                   =>  l_location_id
                            , p_organization_id               =>  l_organization_id
                            -- In/Out
                            , p_object_version_number =>  l_asg_object_version_number
                            -- Out
                            ,p_people_group_name            => l_people_group_name        
                            ,p_effective_start_date         => l_effective_start_date    
                            ,p_effective_end_date           => l_effective_end_date      
                            ,p_people_group_id              => l_people_group_id          
                            ,p_org_now_no_manager_warning => l_org_now_no_manager_warning
                            ,p_other_manager_warning        => l_other_manager_warning    
                            ,p_spp_delete_warning           => l_spp_delete_warning      
                            ,p_entries_changed_warning      => l_entries_changed_warning  
                            ,p_tax_district_changed_warning => l_tax_district_changed_warning
                           );
     
       if (l_org_now_no_manager_warning= true or l_other_manager_warning = true or l_spp_delete_warning = true
          or l_tax_district_changed_warning= true or l_entries_changed_warning is not null) then
          dbms_output.put_line('Warning validating API: hr_assignment_api.update_cwk_asg_criteria');
          rollback;
       else
          dbms_output.put_line('Success ');
          commit;
       end if;
   
    end if ;
       
exception
   when others then
      dbms_output.put_line('Error: '||sqlerrm);                          
end;
--                          

Update Employee Assignment/Criteria - HRMS APIs

--
declare
   --
   l_mode                      varchar2(10) := 'CRITERIA'; --'ASG'
   --- DECLARE variables for HR_ASSIGNMENT_API.update_emp_asg
   --- IN variables
   l_assignment_id             number := 123456;
   l_normal_hours              number := 37;
   l_probation_period          number := 6;
   l_probation_unit            varchar2(4) := 'M';
   l_contract_id               number := 4;
   --per_assignment_status_types.assignment_status_type_id%TYPE;
   l_assignment_status_type_id number := 1;
   l_sob_id                    number := 1;
   l_default_expense_ccid      number := 1234;
   l_frequency                 varchar2(4) := 'W'; --Weekly
   l_bargaining_unit_code      varchar2(4) := 'FTE';

   --- OUT variables
   l_asg_object_version_number    number := 3;
   l_cagr_grade_def_id            number;
   l_cagr_concatenated_segments   varchar2(300);
   l_concatenated_segments        varchar2(300);
   l_soft_coding_keyflex_id       number;
   l_comment_id                   number;
   l_effective_start_date         date;
   l_effective_end_date           date;
   l_no_managers_warning          boolean := false;
   l_other_manager_warning        boolean := false;
   l_hourly_salaried_warning      boolean := false;
   l_gsp_post_process_warning     varchar2(300);

   --- DECLARE variables for HR_ASSIGNMENT_API.update_emp_asg_criteria
   --- IN variables
   l_payroll_id                    number := 125;
   l_organization_id               number := 5678;
   l_position_id                   number := 9904567;
   l_job_id                        number := 3456;
   l_location_id                   number := 12345;
   l_grade_id                      number := 12;

   --- OUT variables
   ln_ceil_step_id                 number;
   ln_keyflex_id                   number;
   lc_concatenated_segments        varchar2(1000);  
   ln_people_group_id              number;
   lb_org_now_no_manager_warn      boolean;
   lb_other_manager_warning        boolean;
   lc_group_name                   varchar2(1000);
   ld_start_date                   date;
   ld_end_date                     date;
   lb_spp_delete_warning           boolean;
   lb_entries_changed_warning      varchar2(10);
   lb_tax_district_changed_warn    boolean;
   lc_gsp_post_process_warning     varchar2(1000);

begin
    --
    if l_mode = 'ASG' then

       /* This API updates employee assignment details which do not affect entitlement
       * to element entries.
       * The assignment must be an employee assignment. The assignment must exist as
       * of the effective date of the change
       */
     
       hr_assignment_api.update_emp_asg
                      (p_validate                     => false --in boolean  default false
                      ,p_effective_date               => trunc(sysdate)            
                      ,p_datetrack_update_mode        => 'CORRECTION'      
                      ,p_assignment_id                => l_assignment_id    
                      ,p_assignment_status_type_id    => l_assignment_status_type_id
                      ,p_default_code_comb_id         => l_default_expense_ccid
                      ,p_set_of_books_id              => l_sob_id
                      ,p_normal_hours                 => l_normal_hours  
                      ,p_probation_period             => l_probation_period    
                      ,p_probation_unit               => l_probation_unit    
                      ,p_contract_id                  => l_contract_id                      
                      --,p_notice_period                => l_notice_period
                      --,p_notice_period_uom            => l_notice_period_uom
                      ,p_frequency                    => l_frequency                      
                      ,p_bargaining_unit_code         => l_bargaining_unit_code
                      ,p_ass_attribute5               => to_char(sysdate,'YYYY/MM/DD HH:MI:SS')
                       --In/Out
                      ,p_object_version_number        => l_asg_object_version_number              
                      ,p_cagr_grade_def_id            => l_cagr_grade_def_id    
                      ,p_soft_coding_keyflex_id       => l_soft_coding_keyflex_id                      
                       --Out
                      ,p_cagr_concatenated_segments   => l_cagr_concatenated_segments
                      ,p_concatenated_segments        => l_concatenated_segments    
                      ,p_comment_id                   => l_comment_id          
                      ,p_effective_start_date         => l_effective_start_date      
                      ,p_effective_end_date           => l_effective_end_date  
                      ,p_no_managers_warning          => l_no_managers_warning      
                      ,p_other_manager_warning        => l_other_manager_warning  
                      ,p_hourly_salaried_warning      => l_hourly_salaried_warning  
                      ,p_gsp_post_process_warning     => l_gsp_post_process_warning
                      );
                     

       if (l_gsp_post_process_warning is not null or l_no_managers_warning = true
         or l_other_manager_warning = true or l_hourly_salaried_warning = true) then
          dbms_output.put_line('Warning processing API: hr_assignment_api.update_emp_asg');
          rollback;
       else
          dbms_output.put_line('Success ');
          commit;
       end if;  
     
    elsif l_mode = 'CRITERIA' then
   
       /* This API updates attributes of the employee assignment that affect the
       * entitlement criteria for any element entry.
       * The assignment must be an employee assignment. The assignment must exist as
       * of the effective date of the change
       */
       hr_assignment_api.update_emp_asg_criteria
                            ( p_effective_date                =>  trunc(sysdate)
                            , p_datetrack_update_mode         =>  'CORRECTION'
                            , p_assignment_id                 =>  l_assignment_id
                            , p_validate                      =>  false --lb_validate_mode
                            , p_called_from_mass_update       =>  false
                            , p_position_id                   =>  l_position_id
                            , p_job_id                        =>  l_job_id
                            , p_payroll_id                    =>  l_payroll_id
                            , p_grade_id                      =>  l_grade_id
                            , p_location_id                   =>  l_location_id
                            , p_organization_id               =>  l_organization_id
                            -- In/Out
                            , p_object_version_number         =>  l_asg_object_version_number
                            , p_special_ceiling_step_id       =>  ln_ceil_step_id
                            , p_people_group_id               =>  ln_people_group_id
                            , p_soft_coding_keyflex_id        =>  ln_keyflex_id  
                            -- Out
                            , p_group_name                    =>  lc_group_name
                            , p_effective_start_date          =>  ld_start_date
                            , p_effective_end_date            =>  ld_end_date
                            , p_org_now_no_manager_warning =>  lb_org_now_no_manager_warn
                            , p_other_manager_warning         =>  lb_other_manager_warning
                            , p_spp_delete_warning            =>  lb_spp_delete_warning
                            , p_entries_changed_warning       =>  lb_entries_changed_warning
                            , p_tax_district_changed_warning  =>  lb_tax_district_changed_warn
                            , p_concatenated_segments         =>  lc_concatenated_segments
                            , p_gsp_post_process_warning      =>  lc_gsp_post_process_warning
                           );
                         
       if (lb_org_now_no_manager_warn = true or lb_other_manager_warning = true
         or lb_spp_delete_warning = true or lb_entries_changed_warning <> 'N'
         or lb_tax_district_changed_warn = true or lc_gsp_post_process_warning is not null)
       then
         dbms_output.put_line('Error: API update_emp_asg_criteria Failed ');
         rollback;
       else
         dbms_output.put_line('Success ');
         commit;
       end if;
   
    end if ;
       
exception
   when others then
      dbms_output.put_line('Error: '||sqlerrm);                          
end;        
--                 

Thursday, August 7, 2014

Create/Update/Delete Contact Relationships - HRMS APIs

--
declare
   --
   l_action               varchar2(12) := 'CREATE';--'UPDATE' 'DELETE'
   l_eff_date             date := trunc(sysdate);
   l_date_from            date := trunc(sysdate);
   l_date_to              date := hr_general.end_of_time;
   l_business_group_id    per_business_groups.business_group_id%type := 101;
   l_person_id            per_all_people_f.person_id%type := 12345;
   l_primary_contact_flag varchar2(1) := 'Y';
   l_contact_name         per_all_people_f.last_name%type := 'KUMAR';
   l_contact_sequence     per_contact_relationships.sequence_number%type :=1;
   --
   l_contact_relationship_id      number := 678945;
   l_ctr_object_version_number    number := 1;
   l_per_person_id                number default null;
   l_con_object_version_number    number default null;
   l_con_effective_start_date     date;
   l_con_effective_end_date       date;
   l_con_full_name                varchar2( 300 );
   l_con_comment_id               number default null;
   l_con_name_combination_warning boolean := false;
   l_con_orig_hire_warning        boolean := false;
   --
   l_contact_exp   exception;
   --
begin
   --
   --per_contact_relationships
   --
   if l_action = 'CREATE' then
      --
      l_contact_relationship_id   := null;
      l_ctr_object_version_number := null;
      --
      hr_contact_rel_api.create_contact
                            ( p_validate                => false
                             ,p_start_date              => l_eff_date
                             ,p_date_start              => l_date_from
                             ,p_date_end                => l_date_to
                             ,p_business_group_id       => l_business_group_id
                             ,p_person_id               => l_person_id
                             ,p_contact_type            => 'M'
                             ,p_primary_contact_flag    => l_primary_contact_flag
                             ,p_last_name               => l_contact_name
                             ,p_sequence_number         => l_contact_sequence
                             ,p_cont_attribute_category => null
                             ,p_cont_attribute1         => 'Test Contact'
                              --Out
                             ,p_contact_relationship_id   => l_contact_relationship_id
                             ,p_ctr_object_version_number => l_ctr_object_version_number
                             ,p_per_person_id             => l_per_person_id
                             ,p_per_object_version_number => l_con_object_version_number
                             ,p_per_effective_start_date  => l_con_effective_start_date
                             ,p_per_effective_end_date    => l_con_effective_end_date
                             ,p_full_name                 => l_con_full_name
                             ,p_per_comment_id            => l_con_comment_id
                             ,p_name_combination_warning  => l_con_name_combination_warning
                             ,p_orig_hire_warning         => l_con_orig_hire_warning
                            );
       if l_contact_relationship_id is null then
         dbms_output.put_line('Create Contact Relationship failed '||sqlerrm);
          raise l_contact_exp;
       else
         dbms_output.put_line('Contact Relationship Created');        
       end if;
                                   
     elsif l_action = 'UPDATE' then  
        --                          
        hr_contact_rel_api.update_contact_relationship
                          (p_validate                          => false
                          ,p_effective_date                    => l_eff_date
                          ,p_contact_relationship_id           => l_contact_relationship_id
                          ,p_sequence_number                   => l_contact_sequence
                          ,p_primary_contact_flag              => 'N'
                          ,p_cont_attribute_category           => null
                          ,p_cont_attribute1                   => 'Test Contact2'
                           --In/Out
                          ,p_object_version_number             => l_ctr_object_version_number
                          );
        dbms_output.put_line('Contact Relationship Updated');
     elsif l_action = 'DELETE' then    
        --                    
        hr_contact_rel_api.delete_contact_relationship
                          (p_validate                          => false
                          ,p_contact_relationship_id           => l_contact_relationship_id
                          ,p_object_version_number             => l_ctr_object_version_number
                          );
        dbms_output.put_line('Contact Relationship Deleted');
     end if;                        
--
commit;
--
exception
  when l_contact_exp then
     dbms_output.put_line('Create Contact Relationship failed '||sqlerrm);
     rollback;
  when others then
     dbms_output.put_line('hr_organization_api.create_organization API failed with error :'||sqlerrm);
     rollback;
end;                          
--

Tuesday, August 5, 2014

Create/Update/Delete Phone - HRMS APIs

--
declare
   --
   l_action   varchar2(12) := 'CREATE'; --'UPDATE' 'DELETE'
   --- DECLARE variables for HR_PHONE_API.create_or_update_phone
   --- IN variables
   l_ph_date_from date := trunc(sysdate);
   l_ph_date_to   date := hr_general.end_of_time;
    --hr_lookup -- 'PHONE_TYPE'
   l_phone_type   per_phones.phone_type%type := 'M';
   l_phone_number per_phones.phone_number%type := 078623492;
   l_person_id    per_phones.parent_id%type := 234156;
   --- OUT variables
   l_phone_id              per_phones.phone_id%type := 12345;
   l_object_version_number per_phones.object_version_number%type := 1;
 
   --
   l_phone_exp   exception;
   --
begin
   if l_action = 'CREATE' then
      --
      l_phone_id              := null;
      l_object_version_number := null;
      --
      hr_phone_api.create_phone
                  (p_date_from              => l_ph_date_from
                  ,p_date_to                => l_ph_date_to
                  ,p_phone_type             => l_phone_type
                  ,p_phone_number           => l_phone_number              
                  ,p_parent_id              => l_person_id
                  ,p_parent_table           => 'PER_ALL_PEOPLE_F'
                  ,p_validate               => FALSE
                  ,p_effective_date         => sysdate
                  ,p_attribute1             => 'Test Phone'
                   --Out
                  ,p_phone_id               => l_phone_id
                  ,p_object_version_number  => l_object_version_number
                  );
                 
       if l_phone_id is null then
          raise l_phone_exp;
       end if;
 
   elsif l_action = 'UPDATE' then                                  
                                     
      hr_phone_api.update_phone
                  (p_phone_id               => l_phone_id
                  ,p_date_from              => l_ph_date_from
                  ,p_date_to                => l_ph_date_to
                  --,p_phone_type             => l_phone_type
                  ,p_phone_number           => l_phone_number
                --  ,p_parent_id              => l_person_id
                  --,p_parent_table           => 'PER_ALL_PEOPLE_F'
                  ,p_validate               => FALSE
                  ,p_effective_date         => sysdate
                  ,p_attribute1             => 'Test Phone2'
                   --In/OUT
                  ,p_object_version_number  => l_object_version_number
                  );
                 
       if l_object_version_number = 1 then --original version number
          raise l_phone_exp;
       end if;
                 
   elsif l_action = 'DELETE' then
                                     
      hr_phone_api.delete_phone
                  (p_phone_id               => l_phone_id
                  ,p_object_version_number  => l_object_version_number
                  ,p_validate               => FALSE
                  );
                 
   end if;                
--
dbms_output.put_line('Phone '||l_action||'Successful');
commit;
--
exception
  when l_phone_exp then
     dbms_output.put_line('hr_phone_api API failed with error :'||sqlerrm);
     rollback;
  when others then
     dbms_output.put_line('hr_phone_api API failed with error :'||sqlerrm);
     rollback;
end;
--

Monday, August 4, 2014

Update Address - HRMS APIs

--
declare
--
l_validate               boolean := false;
--
l_person_id              per_all_people_f.person_id%type := 123456;
l_primary_flag           per_addresses.primary_flag%type := 'Y';
l_address_style          per_addresses.style%type        := 'GB';
l_begin_date             date                            := trunc(sysdate);
l_end_date               date                    := hr_general.end_of_time;    
l_address_type           per_addresses.address_type%type := 'PHCA';    
l_address_line1          per_addresses.address_line1%type := 'Line 1';
l_address_line2          per_addresses.address_line2%type := 'Line 2';
l_address_line3          per_addresses.address_line3%type := 'Line 3';
l_city                   per_addresses.town_or_city%type  := 'Cumnock';
l_region_code            per_addresses.region_1%type      := 'WA';
l_post_code              per_addresses.postal_code%type   := 'FK7 8BY';
l_country_code           per_addresses.country%type       := 'GB';
l_address_id             per_addresses.address_id%type    := 123456;
--- In/OUT variables
l_add_obj_version_number per_addresses.object_version_number%type :=1;
--
begin
   if l_address_style != 'GB' then --'SP_INT'
      hr_person_address_api.update_person_address
          (p_validate                      => l_validate      
          ,p_address_id                    => l_address_id    
          ,p_effective_date                => trunc(sysdate)
          --,p_party_id                      => l_person_id
          ,p_primary_flag                  => l_primary_flag
          ,p_date_from                     => l_begin_date
          ,p_date_to                       => l_end_date  
          ,p_address_type                  => l_address_type
          ,p_address_line1                 => l_address_line1
          ,p_address_line2                 => l_address_line2
          ,p_address_line3                 => l_address_line3
          ,p_town_or_city                  => l_city            
          ,p_region_1                      => l_region_code      
          ,p_postal_code                   => l_post_code      
          ,p_country                       => l_country_code
           --                
          ,p_object_version_number         => l_add_obj_version_number
          );
     
   else -- address style is GB
     
      hr_person_address_api.update_gb_person_address
           (p_validate                    => l_validate
           ,p_address_id                  => l_address_id
           ,p_effective_date              => trunc(sysdate)
           ,p_date_from                   => l_begin_date      
           ,p_date_to                     => l_end_date          
           ,p_address_type                => l_address_type  
           ,p_address_line1               => l_address_line1
           ,p_address_line2               => l_address_line2
           ,p_address_line3               => l_address_line3
           ,p_town                        => l_city                  
           ,p_county                      => l_region_code
           ,p_postcode                    => l_post_code                
           ,p_country                     => l_country_code
            --                      
           ,p_object_version_number       => l_add_obj_version_number
           );
         
   end if;
--
   if l_add_obj_version_number = 1 then
      dbms_output.put_line('Error : '||sqlerrm);
      rollback;
   else
      dbms_output.put_line('Address updated');
      commit;
   end if;
--
exception
  when others then
     dbms_output.put_line('hr_person_address_api API failed with error :'||sqlerrm);
     rollback;
end;        
--

Create Address - HRMS APIs

--
declare
--
l_validate               boolean := false;
--
l_person_id              per_all_people_f.person_id%type := 123456;
l_primary_flag           per_addresses.primary_flag%type := 'Y';
l_address_style          per_addresses.style%type        := 'GB';
l_begin_date             date                            := trunc(sysdate);
l_end_date               date                    := hr_general.end_of_time;    
l_address_type           per_addresses.address_type%type := 'PHCA';    
l_address_line1          per_addresses.address_line1%type := 'Line 1';
l_address_line2          per_addresses.address_line2%type := 'Line 2';
l_address_line3          per_addresses.address_line3%type := 'Line 3';
l_city                   per_addresses.town_or_city%type  := 'Cumnock';
l_region_code            per_addresses.region_1%type      := 'WA';
l_post_code              per_addresses.postal_code%type   := 'FK7 8BY';
l_country_code           per_addresses.country%type       := 'GB';
--- OUT variables
l_address_id             per_addresses.address_id%type;
l_add_obj_version_number per_addresses.object_version_number%type;
--
begin
   if l_address_style != 'GB' then --'SP_INT'
      hr_person_address_api.create_person_address
          (p_validate                      => l_validate          
          ,p_effective_date                => trunc(sysdate)
          ,p_person_id                     => l_person_id
          ,p_primary_flag                  => l_primary_flag
          ,p_style                         => l_address_style
          ,p_date_from                     => l_begin_date
          ,p_date_to                       => l_end_date  
          ,p_address_type                  => l_address_type
          ,p_address_line1                 => l_address_line1
          ,p_address_line2                 => l_address_line2
          ,p_address_line3                 => l_address_line3
          ,p_town_or_city                  => l_city            
          ,p_region_1                      => l_region_code      
          ,p_postal_code                   => l_post_code      
          ,p_country                       => l_country_code
           --
          ,p_address_id                    => l_address_id    
          ,p_object_version_number         => l_add_obj_version_number
      );
     
   else -- address style is GB
     
      hr_person_address_api.create_gb_person_address
           (p_validate                    => l_validate
           ,p_effective_date              => trunc(sysdate)
           ,p_person_id                   => l_person_id        
           ,p_primary_flag                => l_primary_flag  
           ,p_date_from                   => l_begin_date      
           ,p_date_to                     => l_end_date          
           ,p_address_type                => l_address_type  
           ,p_address_line1               => l_address_line1
           ,p_address_line2               => l_address_line2
           ,p_address_line3               => l_address_line3
           ,p_town                        => l_city                  
           ,p_county                      => l_region_code
           ,p_postcode                    => l_post_code                
           ,p_country                     => l_country_code
            --          
           ,p_address_id                  => l_address_id            
           ,p_object_version_number       => l_add_obj_version_number
        );
         
   end if;
--
   if l_address_id is null or l_add_obj_version_number is null then
      dbms_output.put_line('Error : '||sqlerrm);
      rollback;
   else
      dbms_output.put_line('Address created');
      commit;
   end if;
--
exception
  when others then
     dbms_output.put_line('hr_person_address_api API failed with error :'||sqlerrm);
     rollback;
end;        
--

Friday, August 1, 2014

Create Contingent Worker - HRMS APIs

--
declare
--
   l_validate                 boolean := false;
   --- DECLARE variables for hr_contingent_worker_api.create_cwk
   --- IN variables
   l_hire_date       per_all_people_f.start_date%type           := trunc(sysdate);
   l_last_name       per_all_people_f.last_name%type            := 'Kumar';
   l_first_name      per_all_people_f.first_name%type           := 'Abhay';
   l_middle_names    per_all_people_f.middle_names%type         ;
   l_sex             per_all_people_f.sex%type                  := 'M';
   l_known_as        per_all_people_f.known_as%type             ;
   l_date_of_birth per_all_people_f.date_of_birth%type := to_date('11/11/1999','DD/MM/YYYY');
   --hr_lookups--'MARITAL_STATUS'
   l_marital_status  per_all_people_f.marital_status%type       := 'S';  
   l_ni_number       per_all_people_f.national_identifier%type  := 123456;
   --hr_lookups--'TITLE'
   l_title           per_all_people_f.title%type                := 'MR.';
   l_email    per_all_people_f.email%type  := 'testadd@abhayappssolution.com';
   --hr_lookups--'NATIONALITY'
   l_nationality     per_all_people_f.nationality%type          := 'IN';
   l_employee_number per_all_people_f.employee_number%type      := 567890;
   l_director        varchar2(1) default 'N';
   l_ni_multiple_asg varchar2(1) default 'N';
   l_pensioner       varchar2(1);
   l_business_group_id per_business_groups.business_group_id%type := 101;
   l_person_type_id  per_person_types.person_type_id%type         := 1126;
   --- OUT variables
   l_person_id                 number default null;
   l_assignment_id             number default null;
   l_per_object_version_number number;
   l_pdp_object_version_number number;
   l_asg_object_version_number number;
   l_per_effective_start_date  date;
   l_per_effective_end_date    date;
   l_full_name                 varchar2(300);
   l_comment_id                number;
   l_assignment_sequence       number;
   l_assignment_number         varchar2(10);
   l_name_combination_warning  boolean := false;
--
begin
  --
   hr_contingent_worker_api.create_cwk (
                 p_validate                => l_validate --in     boolean  default false
                ,p_start_date              => l_hire_date         --in     date
                ,p_business_group_id       => l_business_group_id --in     number
                ,p_last_name               => l_last_name         --in     varchar2
                ,p_person_type_id          => l_person_type_id    --in     number   default null
                ,p_npw_number              => l_employee_number   --in out nocopy varchar2
                ,p_background_check_status => NULL     --in     varchar2 default null
                ,p_background_date_check   => NULL     --in     date     default null
                ,p_blood_type              => NULL     --in     varchar2 default null
                ,p_comments                => NULL     --in     varchar2 default null
                ,p_correspondence_language => NULL     --in     varchar2 default null
                ,p_country_of_birth        => NULL     --in     varchar2 default null
                ,p_date_of_birth           => l_date_of_birth  --in     date     default null
                ,p_date_of_death           => NULL             --in     date     default null
                ,p_dpdnt_adoption_date     => NULL             --in     date     default null
                ,p_dpdnt_vlntry_svce_flag  => NULL             --in     varchar2 default null
                ,p_email_address           => l_email          --in     varchar2 default null
                ,p_first_name              => l_first_name     --in     varchar2 default null
                ,p_fte_capacity            => NULL             --in     number   default null
                ,p_honors                  => NULL             --in     varchar2 default null
                ,p_internal_location       => NULL             --in     varchar2 default null
                ,p_known_as                => l_known_as       --in     varchar2 default null
                ,p_last_medical_test_by    => NULL             --in     varchar2 default null
                ,p_last_medical_test_date  => NULL             --in     date     default null
                ,p_mailstop                => NULL             --in     varchar2 default null
                ,p_marital_status          => l_marital_status --in     varchar2 default null
                ,p_middle_names            => l_middle_names   --in     varchar2 default null
                ,p_national_identifier     => l_ni_number      --in     varchar2 default null
                ,p_nationality             => l_nationality    --in     varchar2 default null
                ,p_office_number           => NULL             --in     varchar2 default null
                ,p_on_military_service     => NULL             --in     varchar2 default null
                ,p_party_id                => NULL             --in     number   default null
                ,p_pre_name_adjunct        => NULL             --in     varchar2 default null
                ,p_previous_last_name      => NULL             --in     varchar2 default null
                ,p_projected_placement_end => NULL             --in     date     default null
                ,p_receipt_of_death_cert_date => NULL          --in     date     default null
                ,p_region_of_birth            => NULL          --in     varchar2 default null
                ,p_registered_disabled_flag => NULL            --in     varchar2 default null
                ,p_resume_exists            => NULL            --in     varchar2 default null
                ,p_resume_last_updated      => NULL            --in     date     default null
                ,p_second_passport_exists   => NULL            --in     varchar2 default null
                ,p_sex                      => l_sex           --in     varchar2 default null
                ,p_student_status           => NULL            --in     varchar2 default null
                ,p_suffix                   => NULL            --in     varchar2 default null
                ,p_title                    => l_title         --in     varchar2 default null
                ,p_town_of_birth            => NULL            --in     varchar2 default null
                ,p_uses_tobacco_flag        => NULL            --in     varchar2 default null
                ,p_vendor_id                => NULL            --in     number   default null
                ,p_work_schedule            => NULL            --in     varchar2 default null
                ,p_work_telephone            => NULL           --in     varchar2 default null
                ,p_exp_check_send_to_address => NULL           --in     varchar2 default null
                ,p_hold_applicant_date_until => NULL           --in     date     default null
                ,p_date_employee_data_verified => NULL         --in     date     default null
                ,p_benefit_group_id         => NULL            --in     number   default null
                ,p_coord_ben_med_pln_no     => NULL            --in     varchar2 default null
                ,p_coord_ben_no_cvg_flag    => NULL            --in     varchar2 default null
                ,p_original_date_of_hire    => NULL            --in     date     default null
                ,p_attribute_category         => NULL
                ,p_attribute1                 =>'ATTR1VAL'                                            
                ,p_attribute2                 => 'ATTR2VAL'                
                 -- p_per_information_category - Obsolete parameter, do not use
                ,p_per_information1         => NULL --in     varchar2 default null
                 ---
                ,p_per_information30        => NULL --in     varchar2 default null
                --Out Variables
                ,p_person_id                   => l_person_id    
                ,p_per_object_version_number   => l_per_object_version_number
                ,p_per_effective_start_date    => l_per_effective_start_date
                ,p_per_effective_end_date      => l_per_effective_end_date
                ,p_pdp_object_version_number   => l_pdp_object_version_number
                ,p_full_name                   => l_full_name              
                ,p_comment_id                  => l_comment_id            
                ,p_assignment_id               => l_assignment_id          
                ,p_asg_object_version_number   => l_asg_object_version_number
                ,p_assignment_sequence         => l_assignment_sequence  
                ,p_assignment_number           => l_assignment_number      
                ,p_name_combination_warning    => l_name_combination_warning
                );
    --
    if l_name_combination_warning then
        dbms_output.put_line('Warning validating API: hr_contingent_worker_api.create_cwk');
        rollback;
    else
        dbms_output.put_line('Contingent Worker Created: ');
        commit;
    end if;
  --
exception
  when others then
     dbms_output.put_line('Error: '||sqlerrm);
     rollback;
end;
--