Monday, October 30, 2017

API to Create Jobs

 declare
 l_business_group_id     number;
  l_job_group_id          number;
  l_job_id                number;
  l_object_version_number number;
  l_job_definition_id     number;
  l_job_name              varchar2(200);
  v_error varchar2(500);
  v_name varchar2(100);


begin

  -- get group id and business group id






  begin
    select business_group_id,
           job_group_id
      into l_business_group_id,
           l_job_group_id
      from per_job_groups
     where displayed_name = 'sample'; --  is used for all business group will be changed

  exception
    when others then
      dbms_output.put_line('Unable to get the job group details.Error:'||sqlerrm);
      raise;
  end;

 for i in (
           select
               name,
               date_from,
                vacation_days,
                hr.job_id_nav
                from
               xxx_sample hr where hr.job_id=0


    )
  loop

  v_name:=i.name;

  HR_JOB_API.CREATE_JOB
  (p_validate                      => FALSE
  ,p_business_group_id             => l_business_group_id
  ,p_date_from                     => to_date('01/01/2006','dd/mm/yyyy')
  ,p_comments                      => 'test purpose'
  ,p_date_to                       => NULL
  ,p_job_group_id                  => l_job_group_id
  ,p_concat_segments               => i.name
  --output
  ,p_job_id                        => l_job_id
  ,p_object_version_number         => l_object_version_number
  ,p_job_definition_id             => l_job_definition_id
  ,p_name                          => l_job_name
  ,p_attribute11 => i.vacation_days-- annual vacation days
  );

  DBMS_OUTPUT.PUT_LINE('job id: '||l_job_id);
  DBMS_OUTPUT.PUT_LINE('object_version_number: '||l_object_version_number);
  DBMS_OUTPUT.PUT_LINE('job_definition_id: '||l_job_definition_id);
  DBMS_OUTPUT.PUT_LINE('job_name: '||l_job_name);


 
  end loop; 
  commit;


EXCEPTION
    WHEN OTHERS THEN
      dbms_output.put_line('unable to create a job.error:'||SQLERRM);
     rollback;
      RAISE;
END;

No comments:

Post a Comment