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;
--                        

No comments:

Post a Comment