CREATE OR REPLACE PACKAGE sy_process IS ---------- Debug Levels nodebug CONSTANT dtype.name %TYPE := 'NO'; onlydebug CONSTANT dtype.name %TYPE := 'DEBUG'; onlytrace CONSTANT dtype.name %TYPE := 'TRACE'; allinfo CONSTANT dtype.name %TYPE := 'ALL'; ---------- Message Types information CONSTANT dtype.tag %TYPE := 'I'; warning CONSTANT dtype.tag %TYPE := 'W'; error CONSTANT dtype.tag %TYPE := 'E'; fatalerror CONSTANT dtype.tag %TYPE := 'F'; debug CONSTANT dtype.tag %TYPE := 'D'; trace CONSTANT dtype.tag %TYPE := 'O'; timing CONSTANT dtype.tag %TYPE := 'T'; unitask CONSTANT dtype.tag %TYPE := 'U'; multytask CONSTANT dtype.tag %TYPE := 'M'; securityalert CONSTANT dtype.tag %TYPE := 'S'; ---------- Uniqueness Types --------------- uniunique CONSTANT dtype.tag %TYPE := 'Y'; -- Fail when start the same uninotunique CONSTANT dtype.tag %TYPE := 'N'; -- Allow to start the same uniclose CONSTANT dtype.tag %TYPE := 'S'; -- Reject previous when start the same unisessclose CONSTANT dtype.tag %TYPE := 'C'; -- Reject previous when start the same in the same session ---------- Process Statuses --------------- statusactive CONSTANT dtype.tag %TYPE := 'A'; -- In progress statussuspended CONSTANT dtype.tag %TYPE := 'P'; -- Temporary paused statusstopped CONSTANT dtype.tag %TYPE := 'I'; -- Sent a termination command statusclosed CONSTANT dtype.tag %TYPE := 'C'; -- Finished normally statusrejected CONSTANT dtype.tag %TYPE := 'J'; -- Finished abnormally ---------- Aux Session Statuses auxsessionscheduled CONSTANT dtype.tag %TYPE := 'Q'; auxsessionactive CONSTANT dtype.tag %TYPE := 'A'; auxsessionfinished CONSTANT dtype.tag %TYPE := 'C'; auxsessionspawned CONSTANT dtype.tag %TYPE := 'S'; TYPE tprocessinfo IS RECORD( processid dtype.recordid %TYPE, sessionid dtype.recordid %TYPE, sessionrole dtype.name %TYPE, isgrp dtype.tag %TYPE, processname dtype.name %TYPE, processnameext dtype.name %TYPE, objecttype dtype.name %TYPE, objectid dtype.recordid %TYPE, sysinstanceid dtype.recordid %TYPE, procauxid dtype.recordid %TYPE, dbmsspec dtype.longstr %TYPE); PROCEDURE schedule_proc_aux ( processid IN dtype.recordid %TYPE, sessionid IN dtype.recordid %TYPE, sessionrole IN dtype.name %TYPE, indbmsspec IN dtype.longstr %TYPE ); FUNCTION curr_debug_level ( permdebuglevel IN dtype.name %TYPE, tmpdebuglevel IN dtype.name %TYPE, tmpdebuglevelto IN dtype.currentdate %TYPE, currtime IN dtype.currentdate %TYPE ) RETURN dtype.tag %TYPE; PRAGMA RESTRICT_REFERENCES(curr_debug_level, WNDS, WNPS, RNDS); FUNCTION get_debug_level RETURN dtype.name %TYPE; PRAGMA RESTRICT_REFERENCES(get_debug_level, WNDS, WNPS); PROCEDURE set_debug_level(level_in IN dtype.name %TYPE); PRAGMA RESTRICT_REFERENCES(set_debug_level, WNDS, RNDS); FUNCTION get_current_process RETURN dtype.recordid %TYPE; PRAGMA RESTRICT_REFERENCES(get_current_process, WNDS, WNPS); FUNCTION get_current_process_name RETURN dtype.name %TYPE; PRAGMA RESTRICT_REFERENCES(get_current_process_name, WNDS, WNPS); FUNCTION get_current_object_type RETURN dtype.name %TYPE; PRAGMA RESTRICT_REFERENCES(get_current_object_type, WNDS, WNPS); FUNCTION get_current_object_id RETURN dtype.name %TYPE; PRAGMA RESTRICT_REFERENCES(get_current_object_id, WNDS, WNPS); FUNCTION get_last_process RETURN dtype.recordid %TYPE; PRAGMA RESTRICT_REFERENCES(get_last_process, WNDS, WNPS); FUNCTION get_process_parameter ( processid IN dtype.recordid %TYPE, incachedparameters IN dtype.longstr %TYPE, iniscacheincomplete IN dtype.tag %TYPE, parametername IN dtype.name %TYPE, defaultvalue IN dtype.name %TYPE ) RETURN dtype.xmlstring %TYPE; FUNCTION get_current_prm_string RETURN dtype.name %TYPE; FUNCTION get_current_parameter ( parametername IN dtype.name %TYPE, defaultvalue IN dtype.name %TYPE ) RETURN dtype.xmlstring %TYPE; FUNCTION get_proc_prm_template ( processname IN dtype.name %TYPE, objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE, prmcode IN dtype.name %TYPE ) RETURN dtype.longstr %TYPE; PROCEDURE start_process_v5 ( processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE, isunique IN dtype.tag %TYPE, parentprocessid IN dtype.recordid %TYPE, objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE, processidt IN dtype.name %TYPE, filledprocessparms OUT dtype.longstr %TYPE, processid OUT dtype.recordid %TYPE ); PROCEDURE start_process_v3 ( processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE, isunique IN dtype.tag %TYPE, parentprocessid IN dtype.recordid %TYPE, objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE, filledprocessparms OUT dtype.longstr %TYPE, processid OUT dtype.recordid %TYPE ); PROCEDURE start_process ( processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE, isunique IN dtype.tag %TYPE, processid OUT dtype.recordid %TYPE ); PROCEDURE start_simple_process ( processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE, processid OUT dtype.recordid %TYPE ); FUNCTION find_process ( processname IN dtype.name %TYPE, processparams IN dtype.name %TYPE, objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE ) RETURN dtype.recordid %TYPE; PROCEDURE find_or_start_process_v2 ( processname IN dtype.name %TYPE, processparams IN dtype.name %TYPE, parentprocessid IN dtype.recordid %TYPE, objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE, defaultparameters IN dtype.longstr %TYPE, processid OUT dtype.recordid %TYPE, isprocessnew OUT dtype.tag %TYPE ); PROCEDURE find_or_start_process ( processname IN dtype.name %TYPE, processparams IN dtype.name %TYPE, parentprocessid IN dtype.recordid %TYPE, objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE, processid OUT dtype.recordid %TYPE, isprocessnew OUT dtype.tag %TYPE ); PROCEDURE finish_process_v3 ( processid IN dtype.recordid %TYPE, isok IN dtype.tag %TYPE, parentprocessid OUT dtype.recordid %TYPE ); PROCEDURE finish_process ( processid IN dtype.recordid %TYPE, isok IN dtype.tag %TYPE ); PROCEDURE start_current_v6 ( processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE, isunique IN dtype.tag %TYPE, tostartsub IN dtype.tag %TYPE, isgrp IN dtype.tag %TYPE, objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE, processidt IN dtype.name %TYPE, defaultparameters IN dtype.longstr %TYPE, isactive OUT dtype.tag %TYPE ); PROCEDURE start_current_v4 ( processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE, isunique IN dtype.tag %TYPE, tostartsub IN dtype.tag %TYPE, isgrp IN dtype.tag %TYPE, objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE, isactive OUT dtype.tag %TYPE ); PROCEDURE start_current_v3 ( processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE, isunique IN dtype.tag %TYPE, tostartsub IN dtype.tag %TYPE, objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE, isactive OUT dtype.tag %TYPE ); PROCEDURE start_current ( processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE, isunique IN dtype.tag %TYPE, isactive OUT dtype.tag %TYPE ); PROCEDURE start_simple ( processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE ); PROCEDURE start_current_if_need_obj ( objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE, processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE, isunique IN dtype.tag %TYPE, isactive OUT dtype.tag %TYPE, wasstarted OUT dtype.tag %TYPE ); PROCEDURE start_current_if_need ( processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE, isunique IN dtype.tag %TYPE, isactive OUT dtype.tag %TYPE, wasstarted OUT dtype.tag %TYPE ); PROCEDURE start_simple_if_need ( processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE, wasstarted OUT dtype.tag %TYPE ); PROCEDURE finish_current_if_need ( wasstarted IN dtype.tag %TYPE, isok IN dtype.tag %TYPE ); PROCEDURE finish_current(isok IN dtype.tag %TYPE); PROCEDURE start_button_process_obj ( objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE, processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE, wasstarted OUT dtype.tag %TYPE ); PROCEDURE start_button_process ( processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE, wasstarted OUT dtype.tag %TYPE ); FUNCTION finish_button_process ( wasstarted IN dtype.tag %TYPE, errmsg IN dtype.errormessage %TYPE ) RETURN dtype.errormessage %TYPE; FUNCTION finish_button_process_obj ( objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE, wasstarted IN dtype.tag %TYPE, errmsg IN dtype.errormessage %TYPE ) RETURN dtype.errormessage %TYPE; FUNCTION finish_button_process_exc(wasstarted IN dtype.tag %TYPE) RETURN dtype.errormessage %TYPE; FUNCTION finish_button_process_obj_exc ( objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE, wasstarted IN dtype.tag %TYPE ) RETURN dtype.errormessage %TYPE; PROCEDURE update_process_parameters ( processid IN dtype.recordid %TYPE, newprocessprms IN dtype.name %TYPE, isunique IN dtype.tag %TYPE, waschanged OUT dtype.tag %TYPE ); PROCEDURE update_current_parameters ( newprocessprms IN dtype.name %TYPE, isunique IN dtype.tag %TYPE, waschanged OUT dtype.tag %TYPE ); PROCEDURE process_start1 ( processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE, isunique IN dtype.tag %TYPE, processid OUT dtype.recordid %TYPE, retcode OUT dtype.counter %TYPE ); FUNCTION process_start ( processname IN dtype.name %TYPE, processparms IN dtype.name %TYPE, isunique IN dtype.tag %TYPE ) RETURN dtype.counter %TYPE; PROCEDURE process_end1(processid IN dtype.recordid %TYPE); PROCEDURE process_end; PROCEDURE process_reject1(processid IN dtype.recordid %TYPE); PROCEDURE process_reject; -- - legacy interface PROCEDURE detach_process_v2(auxsessionstatus IN dtype.tag %TYPE); PROCEDURE detach_process; FUNCTION is_current_right_sys RETURN dtype.tag %TYPE; FUNCTION have_other_auxes_finished RETURN dtype.tag %TYPE; PROCEDURE set_last_process(processid IN dtype.recordid %TYPE); PROCEDURE get_process_info ( processid IN dtype.recordid %TYPE, sessionid IN dtype.recordid %TYPE, sessionrole IN dtype.name %TYPE, processinfo OUT tprocessinfo ); PROCEDURE attach_process_r(processinfo IN tprocessinfo); PROCEDURE attach_process_v3(processid IN dtype.recordid %TYPE - 03.39.30 dbk - 592 * /); PROCEDURE attach_process_v2 ( processid IN dtype.recordid %TYPE, inprocessname IN dtype.name %TYPE, inprocessparameters IN dtype.name %TYPE ); PROCEDURE attach_process ( processid IN dtype.recordid %TYPE, inprocessname IN dtype.name %TYPE ); FUNCTION get_curr_proc_aux_dbms_spec RETURN dtype.longstr %TYPE; PROCEDURE set_total_number1 ( processid IN dtype.recordid %TYPE, n IN dtype.counter %TYPE ); PROCEDURE set_total_number(n IN dtype.counter %TYPE); PROCEDURE renew_process_status ( processid IN dtype.recordid %TYPE, processstatus IN OUT dtype.tag %TYPE ); FUNCTION is_process_to_continue(processid IN dtype.recordid %TYPE) RETURN dtype.tag %TYPE; FUNCTION is_current_to_continue RETURN dtype.tag %TYPE; FUNCTION add_current_number1 ( processid IN dtype.recordid %TYPE, n IN dtype.counter %TYPE ) RETURN dtype.counter %TYPE; FUNCTION add_current_number(n IN dtype.counter %TYPE) RETURN dtype.counter %TYPE; FUNCTION suspend_process(processid IN dtype.recordid %TYPE) RETURN dtype.errormessage %TYPE; FUNCTION resume_process(processid IN dtype.recordid %TYPE) RETURN dtype.errormessage %TYPE; FUNCTION process_stop(processid IN dtype.recordid %TYPE) RETURN dtype.errormessage %TYPE; FUNCTION stop_and_clear_process(processid IN dtype.recordid %TYPE) RETURN dtype.errormessage %TYPE; FUNCTION change_process_debug_level(processid IN dtype.recordid %TYPE) RETURN dtype.errormessage %TYPE; FUNCTION process_stop_periodic ( processid IN dtype.recordid %TYPE, isok IN dtype.tag %TYPE ) RETURN dtype.errormessage %TYPE; FUNCTION terminate_job_process(processid IN dtype.recordid %TYPE) RETURN dtype.errormessage %TYPE; FUNCTION process_clear(processid IN dtype.recordid %TYPE) RETURN dtype.errormessage %TYPE; FUNCTION clear_process_lc RETURN dtype.errormessage %TYPE; PROCEDURE process_clear1(processid IN dtype.recordid %TYPE); FUNCTION set_lc_date_to_default RETURN dtype.errormessage %TYPE; FUNCTION clear_old_processes_lc RETURN dtype.errormessage %TYPE; FUNCTION lock_process_status1(processid IN dtype.recordid %TYPE) RETURN dtype.tag %TYPE; FUNCTION lock_process_status RETURN dtype.tag %TYPE; FUNCTION get_process_error_level1(processid IN dtype.recordid %TYPE) RETURN dtype.tag %TYPE; FUNCTION get_process_error_level RETURN dtype.tag %TYPE; PROCEDURE process_object_message1 ( processid IN dtype.recordid %TYPE, objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE, messagetype IN dtype.tag %TYPE, messagetext IN dtype.errormessage %TYPE ); PROCEDURE process_object_message ( objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE, messagetype IN dtype.tag %TYPE, messagetext IN dtype.errormessage %TYPE ); PROCEDURE process_doc_message1 ( processid IN dtype.recordid %TYPE, docid IN dtype.recordid %TYPE, messagetype IN dtype.tag %TYPE, messagetext IN dtype.errormessage %TYPE ); PROCEDURE process_doc_message ( docid IN dtype.recordid %TYPE, messagetype IN dtype.tag %TYPE, messagetext IN dtype.errormessage %TYPE ); PROCEDURE process_message1 ( processid IN dtype.recordid %TYPE, messagetype IN dtype.tag %TYPE, messagetext IN dtype.errormessage %TYPE ); PROCEDURE process_message ( messagetype IN dtype.tag %TYPE, messagetext IN dtype.errormessage %TYPE ); PROCEDURE process_file_message1 ( processid IN dtype.recordid %TYPE, messagetype IN dtype.tag %TYPE, messagetext IN dtype.errormessage %TYPE, fileinfoid IN dtype.recordid %TYPE, filerecordparams IN dtype.name %TYPE ); PROCEDURE process_file_message ( messagetype IN dtype.tag %TYPE, messagetext IN dtype.errormessage %TYPE, fileinfoid IN dtype.recordid %TYPE, filerecordparams IN dtype.name %TYPE ); PROCEDURE process_exception_message; PROCEDURE start_export_file ( filename IN dtype.name %TYPE, filetype IN dtype.name %TYPE, fileid IN dtype.name %TYPE, params IN dtype.name %TYPE, fileinfoid OUT dtype.recordid %TYPE ); PROCEDURE finish_export_file ( fileinfoid IN dtype.recordid %TYPE, recordsexported IN dtype.counter %TYPE ); FUNCTION get_reject_message(processid IN dtype.recordid %TYPE) RETURN dtype.longstr %TYPE; PRAGMA RESTRICT_REFERENCES(get_reject_message, WNDS, WNPS); PROCEDURE set_process_buffered ( processid IN dtype.recordid %TYPE, buffered IN dtype.tag %TYPE ); PROCEDURE set_current_buffered(buffered IN dtype.tag %TYPE); PROCEDURE flush_buffered_messages ( processid IN dtype.recordid %TYPE, objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE ); PROCEDURE flush_current_messages ( objecttype IN dtype.name %TYPE, objectid IN dtype.recordid %TYPE ); PROCEDURE wait_for_v2 ( processid IN dtype.recordid %TYPE, waitingtimeout IN dtype.counter %TYPE, processstatus OUT dtype.tag %TYPE, processednumber OUT dtype.counter %TYPE ); FUNCTION wait_for(processid IN dtype.recordid %TYPE) RETURN dtype.tag %TYPE; PROCEDURE wait_for_last_v1 ( processstatus OUT dtype.tag %TYPE, processednumber OUT dtype.counter %TYPE, errmsg OUT dtype.errormessage %TYPE ); FUNCTION wait_for_last RETURN dtype.errormessage %TYPE; PROCEDURE wait_for_name(processname IN dtype.name %TYPE); FUNCTION from_module(processid IN dtype.recordid %TYPE) RETURN dtype.tag %TYPE; FUNCTION get_stored_parameter ( processid IN dtype.recordid %TYPE, prmname IN dtype.name %TYPE ) RETURN dtype.xmlstring %TYPE; PROCEDURE set_stored_parameter ( processid IN dtype.recordid %TYPE, prmname IN dtype.name %TYPE, prmvalue IN dtype.xmlstring %TYPE ); FUNCTION get_curr_stored_parameter(prmname IN dtype.name %TYPE) RETURN dtype.xmlstring %TYPE; PROCEDURE set_curr_stored_parameter ( prmname IN dtype.name %TYPE, prmvalue IN dtype.xmlstring %TYPE ); END sy_process; /