Please enable JavaScript to view this site.

Invantive Estate

Het is eenvoudig mogelijk om vanuit eigen programmatuur de uitvoering van een achtergrondproces aan te vragen bij Invantive Vision. Gebruik hiervoor PL/SQL-code zoals:

begin

 --

 -- Start a job with parameters.

 --

 -- Log on to Invantive.

 --

 bubs_session.set_session_info

 ( 'my_program_name'

 , 'start etl process'

 , 'system'

 , 'no query'

 , coalesce(sys_context('userenv', 'ip_address'), '?')

 , sys_context('userenv', 'host')

 , 'my_url'

 , '$Header: http://svn.invantive.com/repos/p104/trunk/help/nl/manual/Topics/voorbeeld-eigen-achtergrondproces.xml 19891 2012-10-09 13:23:03Z gle3 $' || to_char(sysdate, 'YYYYMMDDHH24MISS')

 );

 --

 -- Submit background job.

 --

 bubs#background_jobs.submit('BUBS_RUN_ETL', sysdate);

 --

 -- Fill parameters (optional).

 --

 bubs#background_jobs.set_parameter('p_etl_file', '../etl/example.kjb');

 bubs#background_jobs.set_parameter('p_log_level', 'BASIC');

 bubs#background_jobs.finish_parameter_entry;

 --

 -- Save to allow job to be picked up by schedulers.

 --

 commit;

 --

 -- Wait till job ends (optional).

 --

 -- Starting release b41, you can substitute this code by:

 --

 -- bubs#background_jobs.wait_for_finish_job

 --

 declare

   l_dummy pls_integer;

 begin

   while true

   loop

     select 1

     into   l_dummy

     from   bubs_background_jobs_v bjb

     where  1=1

     and    bjb.bjb_seq         = bubs#background_jobs.get_bjb_seq_last_submitted

     and    bjb.bjb_datum_einde is null

     ;

   end loop;

 exception

   when no_data_found

   then

     null; -- Job ended.

 end;

end;

Je kunt ook vanuit een job weer andere jobs starten. Je hoeft dan alleen de code vanaf ‘Submit background job’ te gebruiken. Het wachten op de afronding van alle gestarte jobs kan met:

bubs#background_jobs.wait_for_finish_all_child_jobs;