JobScheduler: API - Software- und Organisations

Transcription

JobScheduler: API - Software- und Organisations
Job Automation
Job Scheduling
JOBSCHEDULER
API Documentation
März 2015
Software- und Organisations-Service GmbH
Giesebrechtstr. 15
10629 Berlin Germany
Telephone +49 30 86 47 90-0
JobScheduler: API
2
Impressum
Software- and Organisations-Service GmbH
Giesebrechtstr. 15
D-10629 Berlin
Telefon +49 (30) 86 47 90-0
Telefax +49 (30) 8 61 33 35
Mail info@sos-berlin.com
Web www.sos-berlin.com
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
3
Inhaltsverzeichnis
1 Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2 Java API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1 Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
2.1.1 code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
2.1.2 is_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.3 text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2 Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.1 clear_delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.2 clear_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.3 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
2.2.4 delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.5 delay_order_after_setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.6 folder_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.7 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
2.2.8 max_order_setbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
2.2.9 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.10 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.11 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2.12 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
2.2.13 setback_max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.2.14 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2.15 start_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.17 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
2.2.18 wake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3 Job_chain - Jobkette zur Auftragsverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3.1 add_end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
2.3.2 add_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3.3 add_or_replace_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3.4 add_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3.5 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3.6 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3.7 order_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3.8 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
2.3.9 orders_recoverable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3.10 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
2.3.11 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4 Job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.1 action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.4.2 error_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4.3 error_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
2.4.4 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4.5 next_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.4.6 next_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.4.7 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
2.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.5.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.5.2 spooler_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
2.5.3 spooler_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5.4 spooler_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5.5 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5.6 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
4
2.5.7 spooler_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.5.8 spooler_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.5.9 spooler_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.5.10 spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
2.5.11 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
2.6 Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.6.1 max_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
2.6.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.6.3 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.7 Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
2.7.1 add_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.7.2 create_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.7.3 lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.7.4 lock_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.8 Log - Protokollierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.8.1 debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.8.2 debug1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.8.3 debug2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.8.4 debug3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.8.5 debug4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.8.6 debug5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.8.7 debug6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.8.8 debug7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.8.9 debug8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.8.10 debug9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
2.8.11 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
2.8.12 filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
2.8.13 info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
2.8.14 last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
2.8.15 last_error_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.8.16 level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
2.8.17 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.8.18 log_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.8.19 mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.8.20 mail_it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
2.8.21 mail_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.8.22 mail_on_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.8.23 mail_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.8.24 mail_on_warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.8.25 new_filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.8.26 start_new_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.8.27 warn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.9 Mail - eMail-Versand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.9.1 add_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
2.9.2 add_header_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.9.3 bcc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.9.4 body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
2.9.5 cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.9.6 dequeue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
2.9.7 dequeue_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.9.8 from . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.9.9 queue_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.9.10 smtp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.9.11 subject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.9.12 to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.9.13 xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
5
2.9.14 xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.10.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.10.2 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
2.10.3 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
2.10.4 spooler_process_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.10.5 spooler_process_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.10.6 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.10.7 spooler_task_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
2.10.8 spooler_task_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.11 Order - Auftrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.11.1 at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.11.2 end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.11.3 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
2.11.4 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
2.11.5 job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.11.6 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.11.7 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.11.8 payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.11.9 payload_is_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.11.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.11.11 remove_from_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.11.12 run_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.11.13 setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.11.14 setback_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65
2.11.15 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.11.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.11.17 string_next_start_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.11.18 suspended . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.11.19 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
2.11.20 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
2.11.21 web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.11.22 web_service_operation_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.11.23 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
2.11.24 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
2.11.25 xml_payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
2.12.1 length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.13 Process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.13.1 max_processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.13.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
2.13.3 remote_scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.13.4 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71
2.14 Process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.14.1 add_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.14.2 create_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.14.3 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.14.4 process_class_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.15 Run_time - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.15.1 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.15.2 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
2.16 Schedule - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.16.1 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73
2.17 Spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
2.17.1 abort_immediately . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.17.2 abort_immediately_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
6
2.17.3 add_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
2.17.4 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.17.5 create_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.17.6 create_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.17.7 create_variable_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
2.17.8 create_xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.17.9 db_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.17.10 db_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .76
2.17.11 db_order_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.17.12 db_orders_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.17.13 db_tasks_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.17.14 db_variables_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.17.15 directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.17.16 execute_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
2.17.17 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
2.17.18 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
2.17.19 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.17.20 ini_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.17.21 is_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.17.22 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.17.23 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.17.24 job_chain_exists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.17.25 let_run_terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.17.26 locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.17.27 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.17.28 log_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.17.29 param . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81
2.17.30 process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
2.17.31 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
2.17.32 supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
2.17.33 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
2.17.34 terminate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
2.17.35 terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
2.17.36 udp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
2.17.37 var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
2.17.38 variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
2.18 Spooler_program - Für den Java-Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
2.19 Subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
2.19.1 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
2.19.2 env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
2.19.3 environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
2.19.4 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
2.19.5 ignore_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
2.19.6 ignore_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.19.7 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
2.19.8 own_process_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.19.9 pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.19.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.19.11 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.19.12 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
2.19.13 terminated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
2.19.14 termination_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
2.19.15 timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
2.19.16 wait_for_termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91
2.20 Supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
2.20.1 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
7
2.20.2 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
2.21 Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91
2.21.1 add_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
2.21.2 call_me_again_when_locks_available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
2.21.3 changed_directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
2.21.4 create_subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
2.21.5 delay_spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
2.21.6 end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
2.21.7 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
2.21.8 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
2.21.9 history_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.21.10 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.21.11 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.21.12 order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95
2.21.13 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.21.14 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
2.21.15 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
2.21.16 remove_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
2.21.17 repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
2.21.18 stderr_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
2.21.19 stderr_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
2.21.20 stdout_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
2.21.21 stdout_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
2.21.22 trigger_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
2.21.23 try_hold_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99
2.21.24 try_hold_lock_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
2.21.25 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
2.21.26 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
2.22 Variable_set - Variablenmenge zur Übergabe von Parametern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
2.22.1 count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
2.22.2 merge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
2.22.3 names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
2.22.4 substitute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
2.22.5 value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
2.22.6 var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
2.22.7 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.23 Web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.23.1 forward_xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.23.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
2.23.3 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
2.24 Web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
2.24.1 peer_hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
2.24.2 peer_ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
2.24.3 request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
2.24.4 response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106
2.24.5 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
2.25 Web_service_request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
2.25.1 binary_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
2.25.2 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107
2.25.3 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
2.25.4 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
2.25.5 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
2.25.6 url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
2.26 Web_service_response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108
2.26.1 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108
2.26.2 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
8
2.26.3 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
2.26.4 send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
2.26.5 status_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
2.26.6 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
2.27 Xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
2.27.1 apply_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
2.27.2 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
2.27.3 load_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
2.27.4 load_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3 Javascript API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.1 Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.1.1 code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.1.2 is_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112
3.1.3 text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112
3.2 Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.2.1 clear_delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.2.2 clear_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
3.2.3 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113
3.2.4 delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.2.5 delay_order_after_setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
3.2.6 folder_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
3.2.7 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115
3.2.8 max_order_setbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
3.2.9 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115
3.2.10 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
3.2.11 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
3.2.12 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116
3.2.13 setback_max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
3.2.14 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117
3.2.15 start_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
3.2.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
3.2.17 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118
3.2.18 wake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
3.3 Job_chain - Jobkette zur Auftragsverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
3.3.1 add_end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
3.3.2 add_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
3.3.3 add_or_replace_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
3.3.4 add_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
3.3.5 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
3.3.6 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
3.3.7 order_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
3.3.8 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
3.3.9 orders_recoverable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
3.3.10 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
3.3.11 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
3.4 Job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
3.4.1 action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
3.4.2 error_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
3.4.3 error_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
3.4.4 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
3.4.5 next_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
3.4.6 next_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
3.4.7 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
3.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
3.5.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.5.2 spooler_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
9
3.5.3 spooler_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.5.4 spooler_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
3.5.5 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
3.5.6 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
3.5.7 spooler_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.5.8 spooler_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127
3.5.9 spooler_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127
3.5.10 spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
3.5.11 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
3.6 Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
3.6.1 max_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
3.6.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
3.6.3 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
3.7 Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
3.7.1 add_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
3.7.2 create_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
3.7.3 lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
3.7.4 lock_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
3.8 Log - Protokollierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
3.8.1 debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
3.8.2 debug1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130
3.8.3 debug2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
3.8.4 debug3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
3.8.5 debug4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
3.8.6 debug5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
3.8.7 debug6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
3.8.8 debug7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
3.8.9 debug8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
3.8.10 debug9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
3.8.11 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
3.8.12 filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
3.8.13 info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
3.8.14 last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
3.8.15 last_error_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133
3.8.16 level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
3.8.17 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
3.8.18 log_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
3.8.19 mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
3.8.20 mail_it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
3.8.21 mail_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
3.8.22 mail_on_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
3.8.23 mail_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
3.8.24 mail_on_warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
3.8.25 new_filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
3.8.26 start_new_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
3.8.27 warn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
3.9 Mail - eMail-Versand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
3.9.1 add_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
3.9.2 add_header_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
3.9.3 bcc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
3.9.4 body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
3.9.5 cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
3.9.6 dequeue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
3.9.7 dequeue_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
3.9.8 from . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139
3.9.9 queue_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
10
3.9.10 smtp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
3.9.11 subject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
3.9.12 to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
3.9.13 xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
3.9.14 xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141
3.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
3.10.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142
3.10.2 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
3.10.3 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
3.10.4 spooler_process_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143
3.10.5 spooler_process_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
3.10.6 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
3.10.7 spooler_task_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
3.10.8 spooler_task_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
3.11 Order - Auftrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
3.11.1 at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
3.11.2 end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
3.11.3 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
3.11.4 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
3.11.5 job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
3.11.6 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
3.11.7 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148
3.11.8 payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
3.11.9 payload_is_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
3.11.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
3.11.11 remove_from_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
3.11.12 run_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
3.11.13 setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
3.11.14 setback_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
3.11.15 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
3.11.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
3.11.17 string_next_start_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151
3.11.18 suspended . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
3.11.19 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
3.11.20 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
3.11.21 web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152
3.11.22 web_service_operation_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153
3.11.23 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
3.11.24 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
3.11.25 xml_payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
3.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
3.12.1 length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
3.13 Process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155
3.13.1 max_processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
3.13.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
3.13.3 remote_scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
3.13.4 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
3.14 Process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
3.14.1 add_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156
3.14.2 create_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
3.14.3 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157
3.14.4 process_class_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157
3.15 Run_time - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157
3.15.1 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
3.15.2 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
3.16 Schedule - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
11
3.16.1 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
3.17 Spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
3.17.1 abort_immediately . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159
3.17.2 abort_immediately_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
3.17.3 add_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
3.17.4 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
3.17.5 create_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
3.17.6 create_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
3.17.7 create_variable_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
3.17.8 create_xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160
3.17.9 db_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161
3.17.10 db_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
3.17.11 db_order_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
3.17.12 db_orders_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162
3.17.13 db_tasks_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162
3.17.14 db_variables_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
3.17.15 directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
3.17.16 execute_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
3.17.17 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
3.17.18 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
3.17.19 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
3.17.20 ini_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
3.17.21 is_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164
3.17.22 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
3.17.23 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
3.17.24 job_chain_exists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
3.17.25 let_run_terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
3.17.26 locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
3.17.27 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
3.17.28 log_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
3.17.29 param . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
3.17.30 process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
3.17.31 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167
3.17.32 supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
3.17.33 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167
3.17.34 terminate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
3.17.35 terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168
3.17.36 udp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
3.17.37 variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169
3.18 Spooler_program - Für den Java-Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
3.19 Subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
3.19.1 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171
3.19.2 env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
3.19.3 environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171
3.19.4 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
3.19.5 ignore_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172
3.19.6 ignore_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172
3.19.7 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
3.19.8 own_process_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173
3.19.9 pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
3.19.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
3.19.11 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174
3.19.12 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
3.19.13 terminated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
3.19.14 termination_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
3.19.15 timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
12
3.19.16 wait_for_termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
3.20 Supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
3.20.1 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
3.20.2 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
3.21 Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
3.21.1 add_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
3.21.2 call_me_again_when_locks_available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
3.21.3 changed_directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177
3.21.4 create_subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
3.21.5 delay_spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
3.21.6 end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
3.21.7 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
3.21.8 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
3.21.9 history_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
3.21.10 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
3.21.11 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
3.21.12 order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
3.21.13 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
3.21.14 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
3.21.15 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181
3.21.16 remove_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
3.21.17 repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
3.21.18 stderr_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
3.21.19 stderr_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
3.21.20 stdout_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
3.21.21 stdout_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
3.21.22 trigger_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
3.21.23 try_hold_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
3.21.24 try_hold_lock_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
3.21.25 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
3.21.26 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
3.22 Variable_set - Variablenmenge zur Übergabe von Parametern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
3.22.1 count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
3.22.2 merge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186
3.22.3 names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
3.22.4 set_var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
3.22.5 substitute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
3.22.6 value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
3.22.7 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
3.23 Web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
3.23.1 forward_xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
3.23.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
3.23.3 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
3.24 Web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
3.24.1 peer_hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
3.24.2 peer_ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
3.24.3 request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
3.24.4 response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
3.24.5 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
3.25 Web_service_request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
3.25.1 binary_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
3.25.2 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
3.25.3 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
3.25.4 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
3.25.5 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
3.25.6 url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
13
3.26 Web_service_response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192
3.26.1 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192
3.26.2 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
3.26.3 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
3.26.4 send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
3.26.5 status_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
3.26.6 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
3.27 Xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
3.27.1 apply_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
3.27.2 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
3.27.3 load_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
3.27.4 load_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
4 Perl API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
4.1 Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
4.1.1 code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
4.1.2 is_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196
4.1.3 text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196
4.2 Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196
4.2.1 clear_delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
4.2.2 clear_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
4.2.3 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
4.2.4 delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
4.2.5 delay_order_after_setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
4.2.6 folder_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
4.2.7 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
4.2.8 max_order_setbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
4.2.9 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199
4.2.10 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
4.2.11 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
4.2.12 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
4.2.13 setback_max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200
4.2.14 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201
4.2.15 start_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
4.2.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
4.2.17 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
4.2.18 wake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202
4.3 Job_chain - Jobkette zur Auftragsverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .203
4.3.1 add_end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
4.3.2 add_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
4.3.3 add_or_replace_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
4.3.4 add_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
4.3.5 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204
4.3.6 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
4.3.7 order_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
4.3.8 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
4.3.9 orders_recoverable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
4.3.10 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
4.3.11 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .206
4.4 Job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
4.4.1 action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
4.4.2 error_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
4.4.3 error_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
4.4.4 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
4.4.5 next_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208
4.4.6 next_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
4.4.7 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
14
4.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
4.5.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
4.5.2 spooler_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
4.5.3 spooler_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
4.5.4 spooler_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209
4.5.5 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210
4.5.6 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210
4.5.7 spooler_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
4.5.8 spooler_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
4.5.9 spooler_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211
4.5.10 spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211
4.5.11 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
4.6 Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212
4.6.1 max_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
4.6.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212
4.6.3 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212
4.7 Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
4.7.1 add_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
4.7.2 create_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213
4.7.3 lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
4.7.4 lock_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
4.8 Log - Protokollierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
4.8.1 debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
4.8.2 debug1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214
4.8.3 debug2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215
4.8.4 debug3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215
4.8.5 debug4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215
4.8.6 debug5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215
4.8.7 debug6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215
4.8.8 debug7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215
4.8.9 debug8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .216
4.8.10 debug9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
4.8.11 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
4.8.12 filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
4.8.13 info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
4.8.14 last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
4.8.15 last_error_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217
4.8.16 level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
4.8.17 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
4.8.18 log_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
4.8.19 mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
4.8.20 mail_it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
4.8.21 mail_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
4.8.22 mail_on_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
4.8.23 mail_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .219
4.8.24 mail_on_warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
4.8.25 new_filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
4.8.26 start_new_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
4.8.27 warn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
4.9 Mail - eMail-Versand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
4.9.1 add_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
4.9.2 add_header_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
4.9.3 bcc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221
4.9.4 body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
4.9.5 cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
4.9.6 dequeue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
15
4.9.7 dequeue_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
4.9.8 from . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223
4.9.9 queue_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
4.9.10 smtp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
4.9.11 subject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
4.9.12 to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
4.9.13 xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
4.9.14 xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225
4.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
4.10.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .226
4.10.2 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
4.10.3 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
4.10.4 spooler_process_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227
4.10.5 spooler_process_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
4.10.6 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
4.10.7 spooler_task_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
4.10.8 spooler_task_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229
4.11 Order - Auftrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229
4.11.1 at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
4.11.2 end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
4.11.3 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
4.11.4 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
4.11.5 job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
4.11.6 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
4.11.7 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232
4.11.8 payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
4.11.9 payload_is_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
4.11.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
4.11.11 remove_from_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
4.11.12 run_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
4.11.13 setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
4.11.14 setback_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
4.11.15 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
4.11.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
4.11.17 string_next_start_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235
4.11.18 suspended . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
4.11.19 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
4.11.20 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
4.11.21 web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .236
4.11.22 web_service_operation_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .237
4.11.23 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
4.11.24 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
4.11.25 xml_payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
4.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
4.12.1 length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
4.13 Process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239
4.13.1 max_processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
4.13.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
4.13.3 remote_scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
4.13.4 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
4.14 Process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
4.14.1 add_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240
4.14.2 create_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
4.14.3 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241
4.14.4 process_class_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241
4.15 Run_time - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
16
4.15.1 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
4.15.2 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
4.16 Schedule - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
4.16.1 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
4.17 Spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
4.17.1 abort_immediately . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243
4.17.2 abort_immediately_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
4.17.3 add_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
4.17.4 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
4.17.5 create_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
4.17.6 create_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
4.17.7 create_variable_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
4.17.8 create_xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244
4.17.9 db_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245
4.17.10 db_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
4.17.11 db_order_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
4.17.12 db_orders_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246
4.17.13 db_tasks_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246
4.17.14 db_variables_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
4.17.15 directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
4.17.16 execute_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
4.17.17 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
4.17.18 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
4.17.19 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
4.17.20 ini_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
4.17.21 is_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248
4.17.22 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249
4.17.23 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
4.17.24 job_chain_exists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
4.17.25 let_run_terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249
4.17.26 locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250
4.17.27 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250
4.17.28 log_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
4.17.29 param . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
4.17.30 process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
4.17.31 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251
4.17.32 supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
4.17.33 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251
4.17.34 terminate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
4.17.35 terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252
4.17.36 udp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
4.17.37 var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253
4.17.38 variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253
4.18 Spooler_program - Für den Java-Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
4.19 Subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
4.19.1 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255
4.19.2 env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
4.19.3 environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256
4.19.4 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
4.19.5 ignore_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256
4.19.6 ignore_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257
4.19.7 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
4.19.8 own_process_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257
4.19.9 pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
4.19.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
4.19.11 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
17
4.19.12 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
4.19.13 terminated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
4.19.14 termination_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
4.19.15 timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
4.19.16 wait_for_termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
4.20 Supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
4.20.1 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
4.20.2 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
4.21 Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
4.21.1 add_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
4.21.2 call_me_again_when_locks_available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
4.21.3 changed_directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261
4.21.4 create_subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
4.21.5 delay_spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
4.21.6 end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
4.21.7 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
4.21.8 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
4.21.9 history_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
4.21.10 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
4.21.11 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
4.21.12 order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
4.21.13 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
4.21.14 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
4.21.15 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265
4.21.16 remove_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
4.21.17 repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
4.21.18 stderr_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
4.21.19 stderr_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
4.21.20 stdout_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
4.21.21 stdout_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .267
4.21.22 trigger_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
4.21.23 try_hold_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
4.21.24 try_hold_lock_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
4.21.25 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
4.21.26 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
4.22 Variable_set - Variablenmenge zur Übergabe von Parametern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
4.22.1 count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
4.22.2 merge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271
4.22.3 names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
4.22.4 set_var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271
4.22.5 substitute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
4.22.6 value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272
4.22.7 var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
4.22.8 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
4.23 Web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
4.23.1 forward_xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
4.23.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
4.23.3 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
4.24 Web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
4.24.1 peer_hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
4.24.2 peer_ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
4.24.3 request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
4.24.4 response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275
4.24.5 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
4.25 Web_service_request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
4.25.1 binary_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
18
4.25.2 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276
4.25.3 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
4.25.4 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
4.25.5 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
4.25.6 url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
4.26 Web_service_response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277
4.26.1 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277
4.26.2 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
4.26.3 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
4.26.4 send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
4.26.5 status_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
4.26.6 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
4.27 Xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
4.27.1 apply_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
4.27.2 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279
4.27.3 load_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279
4.27.4 load_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
5 VBScript API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281
5.1 Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
5.1.1 code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
5.1.2 is_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281
5.1.3 text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281
5.2 Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281
5.2.1 clear_delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
5.2.2 clear_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
5.2.3 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
5.2.4 delay_after_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
5.2.5 delay_order_after_setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283
5.2.6 folder_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
5.2.7 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
5.2.8 max_order_setbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
5.2.9 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284
5.2.10 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
5.2.11 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
5.2.12 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
5.2.13 setback_max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285
5.2.14 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286
5.2.15 start_when_directory_changed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
5.2.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
5.2.17 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
5.2.18 wake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287
5.3 Job_chain - Jobkette zur Auftragsverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .288
5.3.1 add_end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
5.3.2 add_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
5.3.3 add_or_replace_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
5.3.4 add_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
5.3.5 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .289
5.3.6 node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
5.3.7 order_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
5.3.8 order_queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
5.3.9 orders_recoverable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
5.3.10 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
5.3.11 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .291
5.4 Job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
5.4.1 action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
5.4.2 error_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
19
5.4.3 error_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
5.4.4 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
5.4.5 next_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293
5.4.6 next_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
5.4.7 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
5.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
5.5.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
5.5.2 spooler_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
5.5.3 spooler_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
5.5.4 spooler_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .294
5.5.5 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .295
5.5.6 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .295
5.5.7 spooler_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
5.5.8 spooler_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296
5.5.9 spooler_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296
5.5.10 spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
5.5.11 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
5.6 Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297
5.6.1 max_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
5.6.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297
5.6.3 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297
5.7 Locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
5.7.1 add_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
5.7.2 create_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298
5.7.3 lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
5.7.4 lock_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
5.8 Log - Protokollierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
5.8.1 debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
5.8.2 debug1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299
5.8.3 debug2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300
5.8.4 debug3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300
5.8.5 debug4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300
5.8.6 debug5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300
5.8.7 debug6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300
5.8.8 debug7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300
5.8.9 debug8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301
5.8.10 debug9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
5.8.11 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
5.8.12 filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
5.8.13 info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
5.8.14 last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
5.8.15 last_error_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302
5.8.16 level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
5.8.17 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
5.8.18 log_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
5.8.19 mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
5.8.20 mail_it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
5.8.21 mail_on_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
5.8.22 mail_on_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
5.8.23 mail_on_success . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .304
5.8.24 mail_on_warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
5.8.25 new_filename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
5.8.26 start_new_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
5.8.27 warn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
5.9 Mail - eMail-Versand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
5.9.1 add_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
20
5.9.2 add_header_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
5.9.3 bcc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306
5.9.4 body . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
5.9.5 cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
5.9.6 dequeue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
5.9.7 dequeue_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
5.9.8 from . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308
5.9.9 queue_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
5.9.10 smtp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
5.9.11 subject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
5.9.12 to . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
5.9.13 xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
5.9.14 xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310
5.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
5.10.1 spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .311
5.10.2 spooler_job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
5.10.3 spooler_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
5.10.4 spooler_process_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .312
5.10.5 spooler_process_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
5.10.6 spooler_task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
5.10.7 spooler_task_after . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
5.10.8 spooler_task_before . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314
5.11 Order - Auftrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314
5.11.1 at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
5.11.2 end_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
5.11.3 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
5.11.4 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
5.11.5 job_chain_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
5.11.6 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
5.11.7 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317
5.11.8 payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
5.11.9 payload_is_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
5.11.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
5.11.11 remove_from_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
5.11.12 run_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
5.11.13 setback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
5.11.14 setback_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
5.11.15 state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
5.11.16 state_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
5.11.17 string_next_start_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .320
5.11.18 suspended . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
5.11.19 title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
5.11.20 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
5.11.21 web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .321
5.11.22 web_service_operation_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322
5.11.23 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
5.11.24 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
5.11.25 xml_payload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
5.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
5.12.1 length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
5.13 Process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324
5.13.1 max_processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
5.13.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
5.13.3 remote_scheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
5.13.4 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
5.14 Process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
21
5.14.1 add_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .325
5.14.2 create_process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
5.14.3 process_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326
5.14.4 process_class_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326
5.15 Run_time - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326
5.15.1 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
5.15.2 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
5.16 Schedule - Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
5.16.1 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
5.17 Spooler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
5.17.1 abort_immediately . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .328
5.17.2 abort_immediately_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
5.17.3 add_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
5.17.4 configuration_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
5.17.5 create_job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
5.17.6 create_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
5.17.7 create_variable_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
5.17.8 create_xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329
5.17.9 db_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330
5.17.10 db_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
5.17.11 db_order_history_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
5.17.12 db_orders_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331
5.17.13 db_tasks_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331
5.17.14 db_variables_table_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
5.17.15 directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
5.17.16 execute_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
5.17.17 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
5.17.18 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
5.17.19 include_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
5.17.20 ini_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
5.17.21 is_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333
5.17.22 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334
5.17.23 job_chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
5.17.24 job_chain_exists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
5.17.25 let_run_terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334
5.17.26 locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334
5.17.27 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335
5.17.28 log_dir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
5.17.29 param . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
5.17.30 process_classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
5.17.31 schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336
5.17.32 supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
5.17.33 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336
5.17.34 terminate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
5.17.35 terminate_and_restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337
5.17.36 udp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
5.17.37 var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338
5.17.38 variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338
5.18 Spooler_program - Für den Java-Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
5.19 Subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
5.19.1 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340
5.19.2 env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
5.19.3 environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341
5.19.4 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
5.19.5 ignore_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341
5.19.6 ignore_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
22
5.19.7 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
5.19.8 own_process_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342
5.19.9 pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
5.19.10 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
5.19.11 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343
5.19.12 start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
5.19.13 terminated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
5.19.14 termination_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
5.19.15 timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
5.19.16 wait_for_termination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
5.20 Supervisor_client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
5.20.1 hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
5.20.2 tcp_port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
5.21 Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
5.21.1 add_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
5.21.2 call_me_again_when_locks_available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
5.21.3 changed_directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .346
5.21.4 create_subprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
5.21.5 delay_spooler_process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
5.21.6 end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
5.21.7 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
5.21.8 exit_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
5.21.9 history_field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
5.21.10 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
5.21.11 job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
5.21.12 order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
5.21.13 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
5.21.14 priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
5.21.15 priority_class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350
5.21.16 remove_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
5.21.17 repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
5.21.18 stderr_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
5.21.19 stderr_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
5.21.20 stdout_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
5.21.21 stdout_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .352
5.21.22 trigger_files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
5.21.23 try_hold_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
5.21.24 try_hold_lock_non_exclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
5.21.25 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
5.21.26 web_service_or_null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
5.22 Variable_set - Variablenmenge zur Übergabe von Parametern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
5.22.1 count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
5.22.2 merge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .355
5.22.3 names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
5.22.4 set_var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .356
5.22.5 substitute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
5.22.6 value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .356
5.22.7 var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
5.22.8 xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
5.23 Web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
5.23.1 forward_xslt_stylesheet_path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
5.23.2 name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
5.23.3 params . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
5.24 Web_service_operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
5.24.1 peer_hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
5.24.2 peer_ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Software- and Organisations-Service GmbH
März 2015
JobScheduler: API
23
5.24.3 request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
5.24.4 response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .360
5.24.5 web_service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
5.25 Web_service_request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
5.25.1 binary_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
5.25.2 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .360
5.25.3 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
5.25.4 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
5.25.5 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
5.25.6 url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
5.26 Web_service_response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362
5.26.1 charset_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362
5.26.2 content_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
5.26.3 header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
5.26.4 send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
5.26.5 status_code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
5.26.6 string_content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
5.27 Xslt_stylesheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
5.27.1 apply_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
5.27.2 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .364
5.27.3 load_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .364
5.27.4 load_xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Stichwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Software- and Organisations-Service GmbH
März 2015
Übersicht
24
1 Übersicht
Unterstützte Sprachen:
Java
<script
Dient zum Schreiben von Jobs in Java.
language="Jav
a">
java:Jav <script
Dient zum Schreiben von Jobs in JavaScript. Verwendet die "Rhino with Beans"
aScript language="jav Implementation.
a:JavaScript">
javax.sc <script
ript:rhino language="jav
ax.script:rhino"
>
Unterstützt die Script-Sprache Rhino, welche die "javax.script" scripting API
implementiert. Andere Script-Sprachen, welche die "javax.script" scripting API
implementieren können mit <script language="javax.script:language"> verwendet
werden.
Spiderm <script
Dient zum Schreiben von Jobs in JavaScript. Verwendet die "spidermonkey"
onkey
language="Spi Implementation. Steht nur unter 32 bit zur Verfügung.
(32bit)
dermonkey">
PowerS
hell
<script
language="Po
werShell">
VBScript <script
language="VB
Script">
Perl
Dient zum Schreiben von Jobs in PowerShell. Steht nur unter Windows zur Verfügung.
Dient zum Schreiben von Jobs in VBScript. Steht nur unter Windows zur Verfügung.
<script
Dient zum Schreiben von Jobs in Perl.
language="Per
l">
Jobs, die die Programmschnittstelle des JobSchedulers nutzen, können in den Sprachen Java, JavaScript (Mozilla)
und Perl implementiert werden (beachten Sie die Installationsvoraussetzungen). Unter Microsoft Windows stehen
auch JScript, VBScript und Powershell zur Verfügung.
Ab JobScheduler Version 1.3.10 wird das javax.script package unterstützt. Mit diesem Paket sind
Implementierungen für eine Reihe verschiedener Scriptsprachen wie javascript (Rhino implementation), groovy und
python verfügbar. Die Spidermonkey implementation von javascript wird mit dieser Version als "deprecated"
markiert.
JavaScript unter 64 bit:
Ab JobScheduler Version 1.5 steht die Spidermonkey Implementation von javascript nur unter 32 bit zur Verfügung.
Um javascript unter 64 bit zu benutzen, kann die "Rhino with Beans" Implementation verwendet werden. Diese
steht sowohl unter 32 bit als auch unter 64 bit zur Verfügung. Die "Rhino with Beans" Implementation ist eine
Erweiterung von Rhino und ersetzt die Spidermonkey Implementation. Die "Rhino with Beans" Implementation
dient dazu, bestehende javascript-jobs mit geringem Änderungsaufwand auf 64 bit zu portieren. Bei der Benutzung
gibt es zwischen beiden Implementationen leichte unterschiede: Differences between the spidermonkey and "rhino
with beans" engines
Die folgende Tabelle zeigt eine Übersicht der verwendeten engine in Abhängigkeit des language-Attributs in <script
language="...">
Spidermonkey
Software- and Organisations-Service GmbH
Spidermonkey
---
März 2015
Übersicht
java:JavaScript
25
Rhino with Beans
Rhino with Beans
Die Werte "Spidermonkey" und "JavaScript" des language-Attributs sind äquivalent (Spidermonkey engine).
Ebenso sind die Werte "java:JavaScript", "java:Rhino" und "java:ECMAScript" des language-Attributs äquivalent
("Rhino with Beans" engine).
Um die API in Powershell nutzen zu können, muss der JobScheduler Powershell Adapter separat heruntergeladen
und installiert werden. Siehe http://sourceforge.net/apps/mediawiki/jobscheduler/index.php?title=JSApi_Powershell
Ein Job wird gemäß der Schnittstelle Job_impl implementiert. Die Objekte des JobSchedulers sind direkt oder
indirekt über diese Schnittstelle zugreifbar.
Software- and Organisations-Service GmbH
März 2015
Java API
26
2 Java API
Für Java stehen die folgenden Klassen zur Verfügung:
2.1 Error
2.1.1 code
Der Fehlercode
Syntax: String error. code ()
2.1.2 is_error
true, wenn ein Fehler vorliegt
Syntax: boolean error. is_error ()
2.1.3 text
Fehlertext (mit Fehlercode)
Syntax: String error. text ()
2.2 Job
Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen.
2.2.1 clear_delay_after_error
Nimmt alle delay_after_error zurück
Syntax: void spooler_job. clear_delay_after_error ()
2.2.2 clear_when_directory_changed
Nimmt alle start_when_directory_changed() zurück
Software- and Organisations-Service GmbH
März 2015
Java API
27
Syntax: void spooler_job. clear_when_directory_changed ()
2.2.3 configuration_directory
Verzeichnis der Konfigurationsdatei des Jobs
Syntax: String spooler_job. configuration_directory ()
"", wenn der Job nicht aus einem Konfigurationsverzeichnis stammt.
2.2.4 delay_after_error
Verzögert erneuten Jobstart nach Fehler
Syntax: void spooler_job.set_delay_after_error ( int error_steps, double seconds )
Syntax: void spooler_job.set_delay_after_error ( int error_steps, String hhmm_ss )
Beispiel:
spooler_job.set_delay_after_error( 2, 10 );
aufeinanderfolgenden Fehler um 10 Sekunden verzögern
spooler_job.set_delay_after_error( 5, "00:01" );
aufeinanderfolgenden Fehler um eine Minute verzögern
spooler_job.set_delay_after_error( 10, "24:00" );
aufeinanderfolgenden Fehler um einen Tag verzögern
spooler_job.set_delay_after_error( 20, "STOP" );
Fehler den Job stoppen
// Ab dem 2.
// Ab dem 5.
// Ab dem 10.
// Beim 20. aufeinanderfolgenden
Nach einem Fehler wiederholt der JobScheduler den Job sofort.
Nach dem zweiten bis zum vierten Fehler verzögert der JobScheduler den Job um 10 Sekunden,
nach dem fünften bis zum neunten Fehler um eine Minute,
nach dem zehnten bis zum neunzehnten um 24 Stunden,
nach dem zwanzigsten aufeinanderfolgenden Fehler schließlich stoppt der Job.
Für verschiedene Anzahlen aufeinanderfolgender Fehler kann eine Verzögerung eingestellt werden. Der Job wird
dann nicht gestoppt, sondern die angegebene Zeit verzögert und erneut gestartet.
Der Aufruf kann für verschiedene Anzahlen wiederholt werden. Man wird jeweils eine längere Verzögerung
angeben.
Wenn Sie den Parameter seconds_or_hhmm_ss als String übergeben, können Sie auch "STOP" angeben. Der Job
stoppt, wenn er die angegebene Anzahl aufeinanderfolgende Fehler erreicht hat.
Eine gute Stelle für die Aufrufe ist spooler_init() .
Siehe <delay_after_error> .
Parameter:
error_steps
Anzahl der aufeinanderfolgenden Jobfehler, ab der die Verzögerung gilt
Software- and Organisations-Service GmbH
März 2015
Java API
28
seconds_or_hhmm_ss
Frist, nach der der Job wiederholt wird
2.2.5 delay_order_after_setback
Stellt Aufträge nach Fehler zurück
Syntax: void spooler_job.set_delay_order_after_setback ( int setback_count, double seconds )
Syntax: void spooler_job.set_delay_order_after_setback ( int setback_count, String hhmm_ss )
Beispiel: in javascript
spooler_job.delay_order_after_setback( 1 ) = 60;
Rückstellung desselben Auftrags:
// 1. bis 2. aufeinderfolgende
// Auftrag um 60s verzögern.
spooler_job.delay_order_after_setback( 3 ) = "01:00";
Rückstellung desselben Auftrags:
// Ab 3. aufeinanderfolgender
// Auftrag um eine Stunde
verzögern.
spooler_job.max_order_setbacks = 5;
versetzt den Auftrag in den Fehlerzustand
// Die 5. Rückstellung
Ein Auftragsjob kann einen Auftrag, den er gerade ausführt, mit Order.setback() zurückstellen. Er wird dann an
eine hintere Stelle der Auftragswarteschlange des Jobs eingereiht und kommt nach der eingestellten Zeit erneut
zur Ausführung.
Die aufeinanderfolgenden Rückstellungen eines Auftrags werden gezählt. Mit delay_order_after_setback
können Sie verschiedene Fristen für wiederholte Rückstellungen festlegen.
Siehe <delay_order_after_setback> , Order.setback() , Job.max_order_setbacks , Job_chain.add_job() ,
Job.delay_after_error() .
Parameter:
setback_coun
t
Für die 1., 2. usw. aufeinanderfolgende Rückstellung desselben Auftrags können verschiedene
Fristen eingestellt werden.
seconds_or_h
hmm_ss
Frist für die Rückstellung. Nach Ablauf der Frist kommt der Auftrag erneut in diesem Job zur
Ausführung.
2.2.6 folder_path
Pfad des Ordners, in dem der Job sich befindet.
Syntax: String spooler_job. folder_path ()
"", wenn der Job nicht aus dem lokalen Konfigurationsverzeichnis ( <config configuration_directory=""> )
stammt.
Software- and Organisations-Service GmbH
März 2015
Java API
29
Liefert den Pfad des Jobs relativ zum Live-Directory. Der Pfad beginnt mit einem "/", alle Bestandteile eines Pfads
sind durch "/" getrennt
Beispiele:
•
•
•
für einen Job c:\scheduler\config\live\somewhere\excel\sample.job.xml wird "/somewhere/excel"
zurückgeliefert
für einen Job c:\scheduler\config\live\sample.xml wird "/" zurückgeliefert
für einen Job außerhalb des Live-Verzeichnisses wird "" (Leerstring) zurückgeliefert
2.2.7 include_path
Wert der Option -include-path=
Syntax: String spooler_job. include_path ()
Siehe -include-path .
2.2.8 max_order_setbacks
Begrenzt die Anzahl der Rückstellungen eines Auftrags
Syntax: void spooler_job.set_max_order_setbacks ( int )
Wenn derselbe Auftrag mehr als hier angegeben aufeinderfolgend zurückgesetzt worden ist (s. Order.setback()
), gerät er in den Fehlerzustand (s. Job_chain_node.error_state ).
Siehe Job.delay_order_after_setback und <delay_order_after_setback is_maximum="yes"> .
2.2.9 name
Pfad des Jobs ohne beginnenden Schrägstrich
Syntax: String spooler_job. name ()
Siehe <job name=""> .
2.2.10 order_queue
Auftragswarteschlange des Jobs
Syntax: Order_queue spooler_job. order_queue ()
Beispiel: in javascript
spooler_log.info( 'order=' + ( spooler_job.order_queue ? "yes" : "no" ) );
Software- and Organisations-Service GmbH
März 2015
Java API
30
Ein Auftragsjob ( <job order="yes"> ) hat eine Auftragswarteschlange. Die Auftragswarteschlange wird über eine
Jobkette, in der der Job eingetragen ist, gefüllt.
Siehe Job_chain.add_order() , Job_chain.add_job() .
Rückgabe:
Order_queue null, wenn der Job keine Auftragswarteschlange hat (bei <job order="no"> ).
2.2.11 process_class
Die Prozessklasse
Syntax: Process_class spooler_job. process_class ()
Siehe <job process_class=""> .
Rückgabe:
Process_class 2.2.12 remove
Entfernt den Job
Syntax: void spooler_job. remove ()
Der Job wird gestoppt, d.h. laufende Tasks werden beendet, keine neuen werden gestartet. Sobald keine Task
mehr läuft, wird der Job entfernt.
Tasks in der Warteschlange werden ignoriert.
Wenn keine Task des Jobs läuft, entfernt remove() den Job sofort.
Auftragsjobs ( <job order="yes"> ) können nicht entfernt werden.
Siehe <modify_job cmd="remove"> .
2.2.13 setback_max
Wie oft kann ein Auftrag zurückgestellt werden?
Syntax: void spooler_job.set_setback_max ( int )
Syntax: int spooler_job. setback_max ()
Siehe <delay_order_after_setback is_maximum="yes"> .
Software- and Organisations-Service GmbH
März 2015
Java API
31
2.2.14 start
Erzeugt eine neue Task und reiht sie in die Task-Warteschlange ein
Syntax: Task spooler_job. start ( Variable_set variables (optional) )
Beispiel:
spooler.job( "job_a" ).start();
sos.spooler.Variable_set parameters = spooler.create_variable_set();
parameter.set_var( "my_parameter", "my_value" );
parameter.set_var( "other_parameter", "other_value" );
spooler.job( "job_a" ).start( parameters );
Die Parameter stehen der Task mit Task.params zur Verfügung. Zwei besondere Parameter können angegeben
werden:
"spooler_task gibt der Task einen Namen, der in den Statusanzeigen erscheint.
_name"
"spooler_star gibt eine Zeit in Sekunden (reelle Zahl) an, nach deren Ablauf die Task zu starten ist. Dabei wird
t_after"
<run_time> nicht beachtet.
Siehe Spooler.create_variable_set() , Spooler.job , Variable_set.value .
Rückgabe:
Task 2.2.15 start_when_directory_changed
Überwacht ein Verzeichnis und lässt bei Änderung eine Task starten
Syntax: void spooler_job. start_when_directory_changed ( java.io.File directory_path, String
filename_pattern (optional) )
Syntax: void spooler_job. start_when_directory_changed ( java.io.File directory_path, String
filename_pattern (optional) )
Syntax: void spooler_job. start_when_directory_changed ( String directory_path )
Syntax: void spooler_job.
start_when_directory_changed
filename_pattern (optional) )
(
String
directory_path,
String
Beispiel: in javascript
spooler_job.start_when_directory_changed( "c:/tmp" );
// Nur Dateien beachten, deren Name nicht auf "~" endet.
spooler_job.start_when_directory_changed( "c:/tmp", "^.*[^~]$" );
Software- and Organisations-Service GmbH
März 2015
Java API
32
Wenn keine Task des Jobs läuft und sich das Verzeichnis geändert hat (eine Datei hinzukommt, umbenannt oder
entfernt wird), startet der JobScheduler innerhalb der <run_time> eine Task.
Um mehrere Verzeichnisse zu überwachen, kann der Aufruf wiederholt werden. Ein Aufruf mit einem bereits
angegebenen Verzeichnis erneuert die Überwachung.
Der Aufruf kann im Scheduler-Skript oder in spooler_init() des Jobs codiert werden. Im letzteren Fall muss der
Job zu Beginn einmal starten, damit der Aufruf wirksam wird. Verwenden Sie dazu die Einstellung <run_time
once="yes"> .
Der Job sollte mit <run_time repeat=""> periodisch gestartet und mit <delay_after_error> versehen werden.
Dieselbe Einstellung können Sie auch in der XML-Konfiguration mit <start_when_directory_changed>
vornehmen.
Siehe auch JobScheduler Dokumentation.
Parameter:
directory_path
Pfad des zu überwachenden Verzeichnisses
filename_patter Beschränkt die Überwachung auf Dateinamen, die dem Regulären Ausdruck entsprechen.
n
2.2.16 state_text
Freier Text für den Zustand des Jobs
Syntax: void spooler_job.set_state_text ( String )
Beispiel:
spooler_job.set_state_text( "Step C succeeded" );
Der Text wird in der HTML-Oberfläche gezeigt.
Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen.
2.2.17 title
Titel des Jobs
Syntax: String spooler_job. title ()
Beispiel:
spooler_log.info( "Job title=" + spooler_job.title() );
Siehe <job title=""> .
Software- and Organisations-Service GmbH
März 2015
Java API
33
2.2.18 wake
Veranlasst den Start einer Task
Syntax: void spooler_job. wake ()
Wenn der Job im Zustand pending oder stopped ist (also keine Task läuft), startet der Aufruf eine Task.
Siehe Job.start() .
2.3 Job_chain - Jobkette zur Auftragsverarbeitung
Eine Jobkette (Job_chain) ist eine Kette von Jobs (Jobkettenknoten oder Stellen). Diese Kette wird von Aufträgen (
Order ) durchlaufen.
Jeder Stelle in der Jobkette ist ein Zustand und ein Job zugeordnet. Wenn ein Auftrag der Jobkette hinzugefügt
wird, setzt der JobScheduler ihn an die seinem Zustand entsprechende Stelle. Der dieser Stelle zugeordnete Job
führt den Auftrag aus.
Jede Stelle hat außerdem einen Folgezustand und einen Fehlerzustand. Nach der Verarbeitung eines Auftrags
durch einen Jobschritt ändert der JobScheduler den Zustand des Auftrags. Wenn der Jobschritt (spooler_process)
true liefert, stellt der JobScheduler den Folgezustand, sonst den Fehlerzustand ein. Der Auftrag rutscht damit an
eine andere Stelle der Jobkette, die dem neuen Zustand zugeordnet ist. Das gilt nicht, wenn der Zustand während
der Ausführung mit Order.state verändert worden ist.
Sie erzeugen eine Jobkette mit Spooler.create_job_chain() , füllen sie mit Job_chain.add_job() und
Job_chain.add_end_state() und machen sie schließlich mit Spooler.add_job_chain() bekannt.
Jeder Knoten ist eindeutig einem Zustand zugeordnet. Für jeden Zustand muss genau einmal
Job_chain.add_job() oder Job_chain.add_end_state() aufgerufen werden.
Beispiel:
Job_chain my_job_chain = spooler.create_job_chain();
my_job_chain.set_name( "Jobkette" );
my_job_chain.add_job( "job_100", 100, 200, 999 );
my_job_chain.add_job( "job_200", 200, 1000, 999 );
my_job_chain.add_end_state( 999 );
my_job_chain.add_end_state( 1000 );
spooler.add_job_chain( my_job_chain );
2.3.1 add_end_state
Fügt der Jobkette einen Endknoten hinzu
Syntax: void job_chain. add_end_state ( String state )
Diesem Knoten ist kein Job zugeordnet. Ein Auftrag, der einen Endknoten erreicht, hat die Jobkette durchlaufen
und wird vom JobScheduler aus ihr entfernt.
Software- and Organisations-Service GmbH
März 2015
Java API
34
2.3.2 add_job
Erweitert die Jobkette um einen Job
Syntax: void job_chain. add_job ( String job_name, String input_state, String output_state,
String error_state )
2.3.3 add_or_replace_order
Gibt einen Auftrag in die Jobkette und ersetzt ggfs. einen mit gleicher Kennung
Syntax: void job_chain. add_or_replace_order ( Order order )
Hat die Jobkette bereits einen Auftrag mit gleicher Kennung, dann wird dieser ersetzt. Genauer: Er wird aus der
Jobkette entfernt, und der neue Auftrag wird hinzugefügt.
Solange eine Task den vorhandenen Auftrag ausführt, sind im JobScheduler zwei Aufträge mit gleicher Kennung
vorhanden. Allerdings ist der vorhandene Auftrag aus der Jobkette und aus der Datenbank bereits entfernt. Er ist
nur noch für die Task nutzbar und verschwindet nach der Ausführung.
In diesem Fall wartet der JobScheduler die Ausführung des neuen Auftrags ab, bis die Ausführung des alten
Auftrags beendet ist.
Siehe Job_chain.add_order() und Order.remove_from_job_chain()
2.3.4 add_order
Gibt einen Auftrag in die Jobkette
Syntax: void job_chain. add_order ( Order order )
Wenn der Auftrag in einer anderen Jobkette enthalten ist, entfernt der JobScheduler ihn daraus.
Der Auftrag wird in die Auftragswarteschlange des Jobs, der seinem Zustand entspricht, gemäß seiner Priorität
eingeordnet.
Die Jobkette mit muss <job_chain> oder Spooler.add_job_chain() dem JobScheduler bekannt gemacht
worden sein.
Wenn die Jobkette bereits einen Auftrag mit gleicher Order.id enthält, wird eine Exception mit Fehlercode
SCHEDULER-186 geliefert. Siehe aber Job_chain.add_or_replace_order() .
Rückgabe:
Order 2.3.5 name
Name der Jobkette
Software- and Organisations-Service GmbH
März 2015
Java API
35
Syntax: void job_chain.set_name ( String )
Syntax: String job_chain. name ()
Beispiel:
Job_chain job_chain = spooler.create_job_chain();
job_chain.set_name( "Jobkette" );
2.3.6 node
Der Jobkettenknoten zum angegebenen Zustand
Syntax: Job_chain_node job_chain. node ( String state )
Rückgabe:
Job_chain_node 2.3.7 order_count
Anzahl der Aufträge in der Jobkette
Syntax: int job_chain. order_count ()
2.3.8 order_queue
= node(state).job().order_queue()
Syntax: Order_queue job_chain. order_queue ( String state )
Liefert die Auftragswarteschlange des Jobs, der dem angegebenen Zustand zugeordnet ist.
Rückgabe:
Order_queue 2.3.9 orders_recoverable
Syntax: void job_chain.set_orders_recoverable ( boolean )
Syntax: boolean job_chain. orders_recoverable ()
Siehe <job_chain orders_recoverable=""> .
Software- and Organisations-Service GmbH
März 2015
Java API
36
2.3.10 remove
Entfernt die Jobkette
Syntax: void job_chain. remove ()
Wenn gerade Aufträge der Jobkette verarbeitet werden (in spooler_process() ), dann entfernt der JobScheduler
die Jobkette, sobald der letzte Auftrag verarbeitet worden ist.
Die Aufträge bleiben in der Datenbank erhalten. Wenn später eine Jobkette mit gleichen Namen hinzugefügt wird (
Spooler.add_job_chain() ), dann lädt der JobScheduler diese Aufträge erneut. Die Zustände der Aufträge
müssen in der erneuerten Jobkette vorhanden sein.
2.3.11 title
Syntax: void job_chain.set_title ( String )
Syntax: String job_chain. title ()
Siehe <job_chain title=""> .
2.4 Job_chain_node
Ein Jobkettenknoten beschreibt eine Stelle in einer Jobkette ( Job_chain ). Einem Jobkettenknoten sind
zugeordnet: ein Zustand, ein Job, ein Folgezustand und ein Fehlerzustand.
Ein Jobkettenknoten wird mit Job_chain.add_job() oder mit Job_chain.add_end_state() erzeugt.
2.4.1 action
Jobkettenknoten stoppen oder überspringen
Syntax: void node.set_action ( String )
Syntax: String node. action ()
Beispiel:
Job_chain_node job_chain_node = spooler.job_chain( "my_job_chain" ).node( 100 );
job_chain_node.set_action( Job_chain_node.ACTION_NEXT_STATE );
Für eine verteilte Jobkette nicht möglich.
Mögliche Angaben sind
action="process"
Das ist die Voreinstellung. Aufträge werden ausgeführt.
Software- and Organisations-Service GmbH
März 2015
Java API
37
action="stop"
Aufträge werden nicht ausgeführt, sie sammeln sich in der Auftragswarteschlange an.
action="next_state"
Aufträge werden sofort dem mit next_state bestimmten Folgeknoten übergeben.
Siehe auch <job_chain_node.modify action=""> .
In Java sind für Zeichenketten Konstanten definiert:
•
•
•
Job_chain_node.ACTION_PROCESS
Job_chain_node.ACTION_STOP
Job_chain_node.ACTION_NEXT_STATE
2.4.2 error_node
Nächster Knoten in der Jobkette für den Fehlerfall
Syntax: Job_chain_node node. error_node ()
Beispiel:
Job_chain_node job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 );
spooler_log.debug( "error state=" + job_chain_node.error_node().state() );
//
"state=999"
Rückgabe:
Job_chain_node null, wenn es keinen Fehler-Knoten gibt (Fehlerzustand ist nicht angegeben)
2.4.3 error_state
Zustand in der Jobkette für den Fehlerfall
Syntax: String node. error_state ()
Beispiel:
Job_chain_node job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 );
spooler_log.debug( "error state=" + job_chain_node.error_node().state() );
// "error
state=999"
2.4.4 job
Job, der dem Knoten zugeordnet ist
Syntax: Job node. job ()
Software- and Organisations-Service GmbH
März 2015
Java API
38
Beispiel:
Job_chain_node job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 );
spooler_log.debug( "job=" + job_chain_node.job().name() );
//
"job=job_100"
Rückgabe:
Job 2.4.5 next_node
Syntax: Job_chain_node node. next_node ()
Rückgabe:
Job_chain_node 2.4.6 next_state
Zustand in der Jobkette für den Erfolgsfall
Syntax: String node. next_state ()
Beispiel:
Job_chain_node job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 );
spooler_log.debug( "next state=" + job_chain_node.next_state() );
//
"state=200"
2.4.7 state
Zustand, für den dieser Jobkettenknoten gilt
Syntax: String node. state ()
Beispiel:
Job_chain_node job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 );
spooler_log.info( "state=" + job_chain_node.state() );
//
"state=100"
Software- and Organisations-Service GmbH
März 2015
Java API
39
2.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript
Der Methoden eines Jobs werden in folgender Reihenfolge aufgerufen.
spooler_init()
spooler_open()
spooler_process()
spooler_process()
...
spooler_close()
spooler_on_success() oder spooler_on_error()
spooler_exit()
Keine dieser Methoden muss implementiert werden. In der Regel wird wenigstens spooler_process()
implementiert.
Ein Fehler beim Ausführen des Job-Skripts während des Ladens oder in spooler_init() führt zum Aufruf von
spooler_on_error() . Der Job wird gestoppt. spooler_exit() wird gerufen (obwohl spooler_init() nicht
gerufen worden ist!) und das Skript entladen.
spooler_on_error() muss also auch mit Fehlern umgehen, die beim Laden oder in spooler_init() auftreten.
spooler_exit() wird gerufen, auch wenn spooler_init() nicht gerufen worden ist.
2.5.1 spooler
Das allgemeine Objekt des Schedulers
Syntax: Spooler spooler
Beispiel:
spooler_log.debug( "The working directory of the JobScheduler is " +
spooler.directory() );
Rückgabe:
Spooler 2.5.2 spooler_close
Task-Ende
Syntax: void spooler_close ()
Wird am Ende eines Joblaufs gerufen. Gegenstück zu spooler_open() .
Software- and Organisations-Service GmbH
März 2015
Java API
40
2.5.3 spooler_exit
Destruktor
Syntax: void spooler_exit ()
Wird als allerletzte Methode gerufen, bevor das Skript entladen wird. Hier kann z.B. eine Datenbank-Verbindung
geschlossen werden.
2.5.4 spooler_init
Initialisierung
Syntax: boolean spooler_init ()
Der JobScheduler ruft diese Methode nach dem Konstruktor und vor spooler_open() genau einmal auf.
Gegenstück ist spooler_exit() . Die Methode ist geeignet, um die Task zu initialisieren (z.B. um eine
Datenbank-Verbindung aufzubauen).
Rückgabe:
boolean false beendet die Task. Der JobScheduler setzt mit spooler_exit() fort. Wenn die Task einen Auftrag
verarbeiten soll, wird die Task mit Fehler beendet, was den Job stoppt (wenn nicht Job.delay_after_error
gesetzt ist).
2.5.5 spooler_job
Das Objekt des Jobs
Syntax: Job spooler_job
Beispiel:
spooler_log.info( "The name of this job is " + spooler_job.name() );
Rückgabe:
Job 2.5.6 spooler_log
Zum Protokollieren
Syntax: Log spooler_log
Beispiel:
spooler_log.info( "Something has happend" );
Software- and Organisations-Service GmbH
März 2015
Java API
41
Rückgabe:
Log 2.5.7 spooler_on_error
Bei Task-Ende im Fehlerfall
Syntax: void spooler_on_error ()
Wird als letzte Funktion eines Joblaufs gerufen, wenn ein Fehler aufgetreten ist (nach spooler_close() und vor
spooler_exit() ).
2.5.8 spooler_on_success
Bei Task-Ende im Erfolgsfall
Syntax: void spooler_on_success ()
Wird nach spooler_close() , vor spooler_exit() aufgerufen, wenn kein Fehler aufgetreten ist.
2.5.9 spooler_open
Task-Beginn
Syntax: boolean spooler_open ()
Wird zu Beginn einer Task gerufen. Die Methode wird direkt nach spooler_init() gerufen, es gibt derzeit keinen
Unterschied. Gegenstück ist spooler_close() .
2.5.10 spooler_process
Jobschritt oder Ausführung eines Auftrags
Syntax: boolean spooler_process ()
Führt einen Jobschritt aus.
Ein Auftragsjob erhält in Task.order den auszuführenden Auftrag.
Die Default-Implementierung gibt false zurück. Ein Auftragsjob versetzt aber einen Auftrag in den Folgezustand.
Rückgabe:
Software- and Organisations-Service GmbH
März 2015
Java API
42
boolean Bei <job order="no"> : false beendet den Joblauf.
Bei <job order="yes"> : false versetzt den Auftrag in den Fehlerzustand (s. Job_chain_node und <
job_chain_node> ). Das gilt nicht, wenn der Zustand während der Ausführung mit Order.state verändert worden
ist.
2.5.11 spooler_task
Das Objekt der Task
Syntax: Task spooler_task
Beispiel:
spooler_log.info( "The task id is " + spooler_task.id() );
Rückgabe:
Task 2.6 Lock
Siehe auch <lock name=""> .
Beispiel: in javascript
var locks = spooler.locks;
var lock = locks.create_lock();
lock.name = "my_lock";
locks.add_lock( lock );
2.6.1 max_non_exclusive
Begrenzung der nicht-exklusiven Belegungen
Syntax: void lock.set_max_non_exclusive ( int )
Syntax: int lock. max_non_exclusive ()
Die Voreinstellung ist unbegrenzt (231-1), es können also mit <lock.use exclusive="no"> beliebig viele
nicht-exklusive Tasks gestartet werden (aber nur eine exklusive).
Die Zahl kann nicht kleiner sein als die Zahl der nicht-exklusiven Belegungen.
Siehe auch <lock max_non_exclusive=""> .
Software- and Organisations-Service GmbH
März 2015
Java API
43
2.6.2 name
Name der Sperre
Syntax: void lock.set_name ( String )
Syntax: String lock. name ()
Der Name kann nur einmal gesetzt und nicht geändert werden.
Siehe auch <lock name=""> .
2.6.3 remove
Entfernt die Sperre
Syntax: void lock. remove ()
Beispiel: in javascript
spooler.locks.lock( "my_lock" ).remove();
Die Sperre kann nur gelöscht werden, wenn sie von keiner Task belegt und von keinem Job gebraucht ( <lock.use
> ) wird.
Siehe auch <lock.remove> .
2.7 Locks
2.7.1 add_lock
Fügt dem JobScheduler eine Sperre hinzu
Syntax: void locks. add_lock ( Lock lck )
2.7.2 create_lock
Richtet eine neue Sperre ein
Syntax: Lock locks. create_lock ()
Liefert eine neues Lock . Diese Sperre kann mit Locks.add_lock() dem JobScheduler hinzugefügt werden.
Rückgabe:
Software- and Organisations-Service GmbH
März 2015
Java API
44
Lock 2.7.3 lock
Liefert eine Sperre
Syntax: Lock locks. lock ( String lock_name )
Wenn die Sperre nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Lock 2.7.4 lock_or_null
Liefert eine Sperre
Syntax: Lock locks. lock_or_null ( String lock_name )
Rückgabe:
Lock null, wenn die Sperre nicht bekannt ist.
2.8 Log - Protokollierung
In einem Job oder im Scheduler-Skript stellt spooler_log die hier beschriebenen Methoden bereit.
eMail-Versand
Am Ende einer Task kann der JobScheduler das Task-Protokoll per eMail versenden. In es versendet werden soll,
geben diese Eigenschaften an:
•
•
•
•
•
Log.mail_on_error ,
Log.mail_on_warning ,
Log.mail_on_process ,
Log.mail_on_success und
Log.mail_it
Nur das Ende der Task, nicht das Ende einer Auftragsausführung (also spooler_process() ) führt zum
eMail-Versand. Siehe aber Task.end() .
Log.mail stellt ein Mail -Objekt bereit, das die Adressierung übernimmt.
Software- and Organisations-Service GmbH
März 2015
Java API
45
Beispiel:
spooler_log.info( "Something for the Log" );
spooler_log.set_mail_on_warning( true );
spooler_log.mail().set_from
( "scheduler@company.com" );
spooler_log.mail().set_to
( "admin@company.com" );
spooler_log.mail().set_subject( "Task ended" );
2.8.1 debug
Debug-Meldung (Level -1)
Syntax: void spooler_log. debug ( String line )
2.8.2 debug1
Debug-Meldung (Level -1)
Syntax: void spooler_log. debug1 ( String line )
2.8.3 debug2
Debug-Meldung (Level -2)
Syntax: void spooler_log. debug2 ( String line )
2.8.4 debug3
Debug-Meldung (Level -3)
Syntax: void spooler_log. debug3 ( String line )
2.8.5 debug4
Debug-Meldung (Level -4)
Syntax: void spooler_log. debug4 ( String line )
Software- and Organisations-Service GmbH
März 2015
Java API
46
2.8.6 debug5
Debug-Meldung (Level -5)
Syntax: void spooler_log. debug5 ( String line )
2.8.7 debug6
Debug-Meldung (Level -6)
Syntax: void spooler_log. debug6 ( String line )
2.8.8 debug7
Debug-Meldung (Level -7)
Syntax: void spooler_log. debug7 ( String line )
2.8.9 debug8
Debug-Meldung (Level -8)
Syntax: void spooler_log. debug8 ( String line )
2.8.10 debug9
Debug-Meldung (Level -9)
Syntax: void spooler_log. debug9 ( String line )
2.8.11 error
Fehlermeldung (Level 1)
Syntax: void spooler_log. error ( String line )
Wenn die Fehlermeldung ins Task-Protokoll ( spooler_log ) geschrieben wird und nicht <job
stop_on_error="no"> eingestellt ist, stoppt der Job nach Ende der Task.
Software- and Organisations-Service GmbH
März 2015
Java API
47
2.8.12 filename
Dateiname des Protokolls
Syntax: String spooler_log. filename ()
2.8.13 info
Informationsmeldung (Level 0)
Syntax: void spooler_log. info ( String line )
2.8.14 last
Letzte Ausgabe des angegebenen Levels
Syntax: String spooler_log. last ( int level )
Syntax: String spooler_log. last ( String level )
2.8.15 last_error_line
Die zuletzt mit Level 2 (error) ausgegebene Zeile
Syntax: String spooler_log. last_error_line ()
2.8.16 level
Protokollausgaben beschränken
Syntax: void spooler_log.set_level ( int )
Syntax: int spooler_log. level ()
Legt fest, ab welcher Stufe der JobScheduler Protokollzeilen ausgibt. Jede Protokollzeile ist auf einer der
folgenden Stufen: error, warn, info, debug1 bis debug9 (debug1 ist dasselbe wie debug).
Nur Meldungen ab dem Level werden ausgegeben.
Dabei bedeutet die numerische Angabe:
-9 bis -2:
Software- and Organisations-Service GmbH
debug9 bis debug2
März 2015
Java API
48
-1:
debug
0:
info
1:
warn
2:
error
Die Option -log-level hat Vorrang.
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_level=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_level=…) wird damit überschrieben.
Nur Meldungen ab dem Level werden ausgegeben.
Dabei bedeutet die numerische Angabe:
-9 bis -2:
debug9 bis debug2
-1:
debug
0:
info
1:
warn
2:
error
2.8.17 log
Syntax: void spooler_log. log ( int level, String line )
2.8.18 log_file
Protokolliert den Inhalt der Datei
Syntax: void spooler_log. log_file ( java.io.File path )
Syntax: void spooler_log. log_file ( String path )
Protokolliert den Inhalt der Datei mit Level 0 (info). Ein Fehler beim Zugriff auf die Datei wird als Warnung
protokolliert.
Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wird die Datei vom
Dateisystem des Schedulers, nicht der Task, gelesen.
2.8.19 mail
Im Mail-Objekt können Sie Einstellungen zur eMail vornehmen
Syntax: void spooler_log.set_mail ( Mail )
Software- and Organisations-Service GmbH
März 2015
Java API
49
Syntax: Mail spooler_log. mail ()
Rückgabe:
Mail 2.8.20 mail_it
Versand erzwingen
Syntax: void spooler_log.set_mail_it ( boolean )
Bei true wird das Protokoll bei Task-Ende verschickt unabhängig von den Einstellungen Log.mail_on_error ,
Log.mail_on_warning , Log.mail_on_success , Log.mail_on_process und Log.mail_on_error .
2.8.21 mail_on_error
Mit Fehler beendete Task verschickt eMail
Syntax: void spooler_log.set_mail_on_error ( boolean )
Syntax: boolean spooler_log. mail_on_error ()
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_error=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_error=…) wird damit überschrieben.
2.8.22 mail_on_process
Task mit spooler_process() verschickt eMail
Syntax: void spooler_log.set_mail_on_process ( int )
Syntax: int spooler_log. mail_on_process ()
Veranlasst den Versand des Task-Protokolls, wenn die Task wenigstens die angegebene Anzahl Schritte, also
Aufrufe von spooler_process() , ausgeführt hat. Weil Nicht-API-Tasks keine Schritte haben, zählt der
JobScheduler für sie immer einen Schritt.
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_process=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_process=…) wird damit überschrieben.
Software- and Organisations-Service GmbH
März 2015
Java API
50
2.8.23 mail_on_success
Erfolgreich gelaufende Task verschickt eMail
Syntax: void spooler_log.set_mail_on_success ( boolean )
Syntax: boolean spooler_log. mail_on_success ()
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_success=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_success=…) wird damit überschrieben.
2.8.24 mail_on_warning
Wenn eine Warnung ausgegeben worden ist, wird am Task-Ende eine eMail verschickt
Syntax: void spooler_log.set_mail_on_warning ( boolean )
Syntax: boolean spooler_log. mail_on_warning ()
Damit im Fehlerfall eine Mail verschickt wird, ist mail_on_error=yes explizit zu setzen.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_warning=…) wird damit überschrieben.
2.8.25 new_filename
Neuer Dateiname fürs Protokoll
Syntax: void spooler_log.set_new_filename ( String )
Syntax: String spooler_log. new_filename ()
Setzt den Dateinamen fürs Protokoll. Wenn das Protokoll geschlossen wird, kopiert der JobScheduler es in diese
Datei. Die Datei steht dann der Anwendung zur Verfügung.
2.8.26 start_new_file
Nur fürs Hauptprotokoll: Schließt das bisherige und beginnt ein neues Protokoll
Syntax: void spooler_log. start_new_file ()
Software- and Organisations-Service GmbH
März 2015
Java API
51
2.8.27 warn
Warnung (Level 2)
Syntax: void spooler_log. warn ( String line )
2.9 Mail - eMail-Versand
Siehe Log.mail .
2.9.1 add_file
Fügt einen Anhang hinzu
Syntax: void mail. add_file ( String path, String filename_for_mail (optional) , String
content_type (optional) , String enconding (optional) )
Beispiel:
spooler_log.mail().add_file( "c:/tmp/1.txt", "1.txt", "text/plain", "quoted-printable"
);
Parameter:
path
Pfadname der anzuhängenden Datei
filename_for_mail
Dateiname, der in der Nachricht erscheinen soll
content_type
"text/plain" ist voreingestellt.
enconding
Z.B. "quoted-printable"
2.9.2 add_header_field
Fügt dem eMail-Kopf ein Feld hinzu
Syntax: void mail. add_header_field ( String field_name, String value )
2.9.3 bcc
Unsichtbarer Empfänger einer Kopie der Nachricht, blind carbon copy
Syntax: void mail.set_bcc ( String )
Syntax: String mail. bcc ()
Software- and Organisations-Service GmbH
März 2015
Java API
52
Beispiel:
spooler_log.mail().set_bcc( "hans@company.com" );
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_bcc=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_bcc=…) wird damit überschrieben.
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
2.9.4 body
Inhalt der Nachricht
Syntax: void mail.set_body ( String )
Syntax: String mail. body ()
Beispiel:
spooler_log.mail().set_body( "Job succeeded" );
Codieren Sie Zeilenwechsel mit \n (in VBScript mit chr(10)).
2.9.5 cc
Empfänger einer Kopie der Nachricht, carbon copy
Syntax: void mail.set_cc ( String )
Syntax: String mail. cc ()
Beispiel:
spooler_log.mail().set_cc( "hans@company.com" );
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
Software- and Organisations-Service GmbH
März 2015
Java API
53
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_cc=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_cc=…) wird damit überschrieben.
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
2.9.6 dequeue
Nachrichten aus dem Verzeichnis queue_dir erneut versuchen zu versenden
Syntax: int mail. dequeue ()
Siehe Mail.dequeue_log , factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…).
Rückgabe:
int Zahl der versandten Nachrichten
2.9.7 dequeue_log
Protokoll von dequeue()
Syntax: String mail. dequeue_log ()
Beispiel: in javascript
var count = spooler_log.mail.dequeue();
spooler_log.info( count + " messages from mail queue sent" );
spooler_log.info( spooler_log.mail.dequeue_log );
Siehe Mail.dequeue() .
2.9.8 from
Absender
Syntax: void mail.set_from ( String )
Syntax: String mail. from ()
Beispiel:
spooler_log.mail().set_from( "scheduler@company.com" );
Software- and Organisations-Service GmbH
März 2015
Java API
54
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_from=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_from=…) wird damit überschrieben.
2.9.9 queue_dir
Verzeichnis der nicht versendbaren eMails
Syntax: void mail.set_queue_dir ( String path )
Syntax: String mail. queue_dir ()
eMails, die der JobScheduler nicht verschicken kann (weil z.B. der SMTP-Server nicht erreichbar ist), werden hier
abgelegt.
Um diese eMails später zu verschicken, muss ein Job geschrieben werden, der die Methode Mail.dequeue()
aufruft.
Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag queue_dir=…).
Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen).
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_queue_dir=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…) wird damit überschrieben.
Die Einstellung sos.ini (Abschnitt [mail], Eintrag queue_dir=…) wird damit überschrieben.
2.9.10 smtp
Name des SMTP-Servers
Syntax: void mail.set_smtp ( String )
Syntax: String mail. smtp ()
Beispiel:
spooler_log.mail().set_smtp( "mail.company.com" );
Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag smtp=…).
Die Einstellung factory.ini (Abschnitt [job], Eintrag smtp=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag smtp=…) wird damit überschrieben.
Software- and Organisations-Service GmbH
März 2015
Java API
55
Die Einstellung sos.ini (Abschnitt [mail], Eintrag smtp=…) wird damit überschrieben.
2.9.11 subject
Betreff
Syntax: void mail.set_subject ( String )
Syntax: String mail. subject ()
Beispiel:
spooler_log.mail().set_subject( "Job succeeded" );
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_subject=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_subject=…) wird damit überschrieben.
2.9.12 to
Empfänger
Syntax: void mail.set_to ( String )
Syntax: String mail. to ()
Beispiel:
spooler_log.mail().set_to( "admin@company.com" );
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_to=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_to=…) wird damit überschrieben.
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
Software- and Organisations-Service GmbH
März 2015
Java API
56
2.9.13 xslt_stylesheet
XSLT-Stylesheet für eMail-Aufbereitung
Syntax: Xslt_stylesheet mail. xslt_stylesheet ()
Rückgabe:
Xslt_stylesheet Das XSLT-Stylesheet als String
2.9.14 xslt_stylesheet_path
XSLT-Stylesheet für eMail-Aufbereitung
Syntax: void mail.set_xslt_stylesheet_path ( java.io.path path )
Syntax: void mail.set_xslt_stylesheet_path ( String path )
Beispiel:
spooler_log.mail().set_xslt_stylesheet_path( "c:/stylesheets/mail.xslt" );
Der Pfad eines XSLT-Stylesheets. Der JobScheduler verwendet das XSLT-Stylesheet zum Aufbereiten der eMails.
(Die Dokumentation hierzu ist noch nicht geschrieben.)
<config mail_xslt_stylesheet="…">
Parameter:
path
Der Pfad der Datei, die das XSLT-Stylesheet enthält
2.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs
Mit <monitor> können Sie einem Job einen Monitor geben.
Ein Monitor kann folgende Methoden bereitstellen:
Monitor_impl.spooler_task_before()
Vor dem Start der Task, kann den Start verhindern.
Monitor_impl.spooler_task_after()
Nach dem Ende der Task.
Monitor_impl.spooler_process_before()
Vor spooler_process() , kann diesen Aufruf verhinden.
Software- and Organisations-Service GmbH
März 2015
Java API
57
Monitor_impl.spooler_process_after()
Nach spooler_process() , kann dessen Rückgabewert ändern.
2.10.1 spooler
Das allgemeine Objekt des Schedulers
Syntax: Spooler spooler
Beispiel:
spooler_log.debug( "The working directory of the JobScheduler is " +
spooler.directory() );
Wie dasselbe Objekt in der Klasse Job_impl: spooler .
Rückgabe:
Spooler 2.10.2 spooler_job
Das Objekt des Jobs
Syntax: Job spooler_job
Beispiel:
spooler_log.info( "The name of this job is " + spooler_job.name() );
Wie dasselbe Objekt in der Klasse Job_impl: spooler_job .
Rückgabe:
Job 2.10.3 spooler_log
Zum Protokollieren
Syntax: Log spooler_log
Beispiel:
spooler_log.info( "Something has happend" );
Wie dasselbe Objekt in der Klasse Job_impl: spooler_log .
Rückgabe:
Log Software- and Organisations-Service GmbH
März 2015
Java API
58
2.10.4 spooler_process_after
Nach spooler_process()
Syntax: boolean spooler_process_after ( boolean spooler_process_result )
Beispiel:
public boolean spooler_task_after( boolean spooler_process_result ) throws Exception
{
spooler_log.info( "SPOOLER_TASK_BEFORE()" );
spooler_log.info( "spooler_process() didn't throw an exception and delivered " +
spooler_process_result );
return spooler_process_result;
// Unchanged result
}
Der JobScheduler ruft diese Methode nach jedem spooler_process() auf.
Parameter:
spooler_process_
result
Rückgabewert von spooler_process() oder false, wenn spooler_process() mit einer
Exception geendet hat.
Rückgabe:
boolean Ersetzt den Rückgabewert von spooler_process() .
2.10.5 spooler_process_before
Vor spooler_process()
Syntax: boolean spooler_process_before ()
Beispiel:
public boolean spooler_process_before() throws Exception
{
spooler_log.info( "SPOOLER_PROCESS_BEFORE()" );
return true;
// spooler_process() will be executed
}
Software- and Organisations-Service GmbH
März 2015
Java API
59
Beispiel:
public boolean spooler_process_before() throws Exception
{
boolean continue_with_spooler_process = true;
if( !are_needed_ressources_available() )
{
spooler_task.order().setback();
continue_with_spooler_process = false;
}
return continue_with_spooler_process;
}
Der JobScheduler ruft diese Methode vor jedem spooler_process() auf.
Rückgabe:
boolean false verhindert den folgenden Aufruf von spooler_process() . Der JobScheduler setzt fort, als hätte
spooler_process() false geliefert.
2.10.6 spooler_task
Das Objekt der Task
Syntax: Task spooler_task
Beispiel:
spooler_log.info( "The task id is " + spooler_task.id() );
Wie dasselbe Objekt in der Klasse Job_impl: spooler_task .
Rückgabe:
Task 2.10.7 spooler_task_after
Nach dem Ende der Task
Syntax: void spooler_task_after ()
Beispiel:
public void spooler_task_after() throws Exception
{
spooler_log.info( "SPOOLER_TASK_AFTER()" );
}
Software- and Organisations-Service GmbH
März 2015
Java API
60
Der JobScheduler ruft diese Methode, nachdem die Task geendet hat.
2.10.8 spooler_task_before
Vor Start der Task
Syntax: boolean spooler_task_before ()
Beispiel:
public boolean spooler_task_before() throws Exception
{
spooler_log.info( "SPOOLER_TASK_BEFORE()" );
return true;
// Task will be started
//return false; // Task will not be started
}
Vor dem Laden der Task ruft der JobScheduler diese Methode auf.
Rückgabe:
boolean false lässt die Task nicht starten. Monitor_impl.spooler_task_after() wird nicht gerufen.
2.11 Order - Auftrag
Siehe JobScheduler Dokumentation, Spooler.create_order() , Job_chain.add_order() , Task.order .
Dateiauftrag
Ein Dateiauftrag ist ein Auftrag mit dem Parameter scheduler_file_path: Order.params .
Variable_set.value() .
Siehe JobScheduler Dokumentation.
Software- and Organisations-Service GmbH
März 2015
Java API
61
Beispiel: Auftrag mit einfacher Nutzlast, in javascript
// Create order:
{
var order = spooler.create_order();
order.id
= 1234;
order.title
= "This is my order";
order.state_text = "This is my state text";
order.payload
= "This is my payload";
spooler.job_chain( "my_job_chain" ).add_order( order );
}
...
// Process order:
function spooler_process()
{
var order = spooler_task.order;
spooler_log.info( "order.payload=" + order.payload );
return true;
}
Beispiel: Erzeugen eines Auftrags mit Variable_set als Nutzlast, in javascript
// Create order:
{
var variable_set = spooler.create_variable_set();
variable_set.value( "param_one" ) = "11111";
variable_set.value( "param_two" ) = "22222";
var order = spooler.create_order();
order.id
= 1234;
order.payload = variable_set;
spooler.job_chain( "my_job_chain" ).add_order( order );
}
...
// Process order:
function spooler_process()
{
var order = spooler_task.order;
var variable_set = order.payload;
spooler_log.info( "param_one=" + variable_set.value( "param_one" ) );
spooler_log.info( "param_two=" + variable_set.value( "param_two" ) );
return true;
}
2.11.1 at
Start-Zeitpunkt des Auftrags
Syntax: void order.set_at ( String|DATE )
Beispiel:
order.set_at( "now+60" );
order.set_at( new Date( new Date().getTime() + 60 * 1000 ) );
java.util.Date )
spooler.job_chain( "my_job_chain" ).add_order( order );
Software- and Organisations-Service GmbH
// set_at( String )
// set_at(
März 2015
Java API
62
Setzt den Start-Zeitpunkt bevor der Auftrag in eine Auftragswarteschlange eingereiht wird. Als String kann
angegeben werden:
•
•
•
•
"now"
"yyyy-mm-dd HH:MM[:SS]"
"now + HH:MM[:SS]"
"now + seconds"
Die Einstellung ändert die von Order.run_time oder Order.setback() vorgegebene Startzeit.
Siehe <add_order at=""> .
2.11.2 end_state
Zustand, vor dessen erfolgreichen Verlassen der Auftrag enden soll
Syntax: void order.set_end_state ( String )
Syntax: String order. end_state ()
Wenn ein Auftrag einen eigenen End-Zustand hat (end_state ungleich ""), endet der Auftrag, bevor er diesen
Zustand erfolgreich verlassen würde, also nach Ausführung des dem End-Zustand zugeordneten Jobs (siehe <
job_chain_node> ).
Der Zustand muss in der Jobkette bekannt sein.
2.11.3 id
Kennung des Auftrags
Syntax: void order.set_id ( String )
Syntax: String order. id ()
Jeder Auftrag hat eine (innerhalb der Jobkette oder der Auftragswarteschlange des Jobs eindeutige) Kennung.
Diese Kennung sollte den zu verarbeitenden Daten entsprechen. Üblicherweise wird der Schlüssel eines
Datenbanksatzes verwendet.
Wenn Sie die id nicht setzen, vergibt Job_chain.add_order() eine Kennung.
2.11.4 job_chain
Jobkette, in der der Auftrag enthalten ist
Syntax: Job_chain order. job_chain ()
Rückgabe:
Software- and Organisations-Service GmbH
März 2015
Java API
63
Job_chain 2.11.5 job_chain_node
Jobkettenknoten, der dem Zustand des Auftrags entspricht
Syntax: Job_chain_node order. job_chain_node ()
Rückgabe:
Job_chain_node 2.11.6 log
Auftragsprotokoll
Syntax: Log order. log ()
Beispiel:
spooler_task.order.log.info( "Only for order log, not for task log" );
spooler_log.info( "For both order log and task log" );
Rückgabe:
Log 2.11.7 params
Parameter des Auftrags
Syntax: void order.set_params ( Variable_set )
Syntax: Variable_set order. params ()
params wird in Order.payload gehalten, letzteres kann also nicht zusammen mit params verwendet werden.
Siehe <add_order> .
Rückgabe:
Variable_set 2.11.8 payload
Nutzlast, also Parameter des Auftrags.
Software- and Organisations-Service GmbH
März 2015
Java API
64
Syntax: void order.set_payload ( Object payload )
Syntax: Object order. payload ()
Statt dieser Eigenschaft wird die Verwendung von Order.params empfohlen (was (Variable_set)order.payload
entspricht).
Neben der Auftragskennung Order.id , die den Auftrag identifiziert, können Sie hier zusätzliche Angaben machen.
Siehe Order.params und Order.xml_payload .
Parameter:
payload
Kann ein String oder ein Variable_set sein.
Rückgabe:
Object Kann ein String oder ein Variable_set sein.
2.11.9 payload_is_type
Prüft den COM-Typ der Nutzlast
Syntax: boolean order. payload_is_type ( String type_name )
Parameter:
type_name
"Spooler.Variable_set", "Hostware.Dyn_obj" oder "Hostware.Record".
2.11.10 priority
Aufträge mit höherer Priorität werden zuerst verarbeitet
Syntax: void order.set_priority ( int )
Syntax: int order. priority ()
2.11.11 remove_from_job_chain
Syntax: void order. remove_from_job_chain ()
Wenn der Auftrag gerade von einer Task ausgeführt wird, liefert die Eigenschaft Order.job_chain weiterhin die
Jobkette, aus der der Auftrag mit diesem Aufruf entfernt worden ist. Erst wenn die Ausführung beendet ist, liefert
die Eigenschaft null (außer der Auftrag ist wieder in eine Jobkette eingetragen worden). Damit bleibt die
Eigenschaft job_chain während der Ausführung durch die Task stabil.
Software- and Organisations-Service GmbH
März 2015
Java API
65
2.11.12 run_time
<run_time> zur periodischen Wiederholung des Auftrags
Syntax: Run_time order. run_time ()
Beispiel: in javascript
order.run_time.xml = "<run_time><at at='2006-05-23 11:43:00'/></run_time>";
Siehe <run_time> .
Das Kommando <modify_order at="now"> lässt einen wegen run_time wartenden Auftrag sofort anlaufen.
Rückgabe:
Run_time 2.11.13 setback
Stellt den Auftrag eine Zeitlang zurück
Syntax: void order. setback ()
Der
Auftrag wird zurückgestellt und nach der mit <delay_order_after_setback> oder
Job.delay_order_after_setback eingestellten Frist wiederholt. Bei einer Wiederholung wird nur die Funktion
spooler_process() des Jobs wiederholt. Wenn in spooler_process() die Funktion order.setback()
aufgerufen wurde, bleibt der Rückgabewert von spooler_process() ohne Wirkung.
Der Auftrag zählt aufeinander folgende Aufrufe dieser Methode, was von <delay_order_after_setback>
berücksichtigt wird. Der Zähler wird auf 0 gestellt, wenn spooler_process() ohne diesen Aufruf zu Ende
ausgeführt worden ist. Beim Start des Schedulers sind alle Zähler 0.
Das Kommando <modify_order at="now"> lässt einen zugestellten Auftrag sofort anlaufen.
2.11.14 setback_count
Wie oft ist der Auftrag zurückgestellt worden?
Syntax: int order. setback_count ()
Siehe <delay_order_after_setback> .
2.11.15 state
Zustand des Auftrags
Syntax: void order.set_state ( String )
Software- and Organisations-Service GmbH
März 2015
Java API
66
Syntax: String order. state ()
Wenn der Auftrag in einer Jobkette ist, muss der Zustand in der Jobkette vorhanden sein.
Wenn der Auftrag gerade von einem Job ausgeführt wird, wird der in der Jobkette festgelegte Folgezustand ( <
job_chain_node next_state=""> ) wirkungslos. Die Rückgabewerte von spooler_process() und
Monitor_impl.spooler_process_after() sind ohne Bedeutung. Mit Order.state kann also ein Job den
Folgezustand frei bestimmen.
Der Auftrag wird in die Auftragswarteschlange des Jobs eingereiht, der dem Zustand zugeordnet ist (s. <
job_chain_node> ). Die Ausführung durch diesen Job wird solange verzögert, bis der jetzt ausführende Job den
Auftrag ausgeführt hat.
2.11.16 state_text
Freier Text für den Zustand des Auftrags
Syntax: void order.set_state_text ( String )
Syntax: String order. state_text ()
Der Text wird auf der HTML-Oberfläche gezeigt.
Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen.
2.11.17 string_next_start_time
Nächste Startzeit des Auftrags bei Verwendung von <run_time>
Syntax: String order. string_next_start_time ()
Rückgabe:
String "yyyy-mm-dd HH:MM:SS.MMM" oder "now" oder "never".
2.11.18 suspended
Ausgesetzer Auftrag
Syntax: void order.set_suspended ( boolean )
Syntax: boolean order. suspended ()
Ein ausgesetzter Auftrag wird nicht ausgeführt.
Wenn der Auftrag gerade von einer Task ausgeführt wird, wird der Schritt ( spooler_process() ) noch zu Ende
ausgeführt und der Auftrag nach den gewohnten Regeln in den Folgezustand versetzt, bevor er tatsächlich
ausgesetzt wird.
Software- and Organisations-Service GmbH
März 2015
Java API
67
Damit kann ein Auftrag in einen Endzustand ausgesetzt werden, womit verhindet wird, dass er entfernt wird. Erst
wenn die Aussetzung eines solchen Auftrags aufgehoben wird, ( order.suspended=false), entfernt der
JobScheduler den Auftrag.
Ein ausgesetzter Auftrag im Endzustand kann mit Order.state in einen Zustand versetzt werden, der einem Job
zugeordnet ist. Der Auftrag bleibt dennoch ausgesetzt.
2.11.19 title
Der Titel ist ein Klartext, der den Auftrag bezeichnet
Syntax: void order.set_title ( String )
Syntax: String order. title ()
2.11.20 web_service
Der Webdienst, der dem Auftrag zugeordnet ist
Syntax: Web_service order. web_service ()
Wenn der Auftrag keinem Webdienst zugeordnet ist, liefert der Aufruf den Fehler SCHEDULER-240 .
Siehe auch Order.web_service_or_null .
Rückgabe:
Web_service 2.11.21 web_service_operation
Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist
Syntax: Web_service_operation order. web_service_operation ()
Software- and Organisations-Service GmbH
März 2015
Java API
68
Beispiel:
public boolean spooler_process() throws Exception
{
Order
order
= spooler_task.order();
Web_service_operation web_service_operation = order.web_service_operation();
Web_service_request
request
= web_service_operation.request();
// Decode request data
String request_string = new String( request.binary_content(),
request.charset_name() );
process request_string ...;
String
response_string = "This is my response";
String
charset_name
= "UTF-8";
ByteArrayOutputStream byos
= new ByteArrayOutputStream();
// Encode response data
Writer writer = new OutputStreamWriter( byos, charset_name );
writer.write( response_string );
writer.close();
// Respond
Web_service_response response = web_service_operation.response();
response.set_content_type( "text/plain" );
response.set_charset_name( charset_name );
response.set_binary_content( byos.toByteArray() );
response.send();
// Web service operation has finished
return true;
}
Siehe <web_service> , Web_service_operation und Order.web_service_operation_or_null ,
Rückgabe:
Web_service_operation 2.11.22 web_service_operation_or_null
Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist, oder null
Syntax: Web_service_operation order. web_service_operation_or_null ()
Siehe Order.web_service_operation , Web_service_operation und <web_service> .
Rückgabe:
Web_service_operation Software- and Organisations-Service GmbH
März 2015
Java API
69
2.11.23 web_service_or_null
Der Web-Dienst, der dem Auftrag zugeordnet ist, oder null.
Syntax: Web_service order. web_service_or_null ()
Siehe auch Order.web_service .
Rückgabe:
Web_service 2.11.24 xml
Auftrag in XML: <order>...</order>
Syntax: String order. xml ()
Rückgabe:
String Siehe <order>
2.11.25 xml_payload
XML-Nutzlast, also Parameter des Auftrags.
Syntax: void order.set_xml_payload ( String xml )
Syntax: String order. xml_payload ()
Zusätzlich zur Eigenschaft Order.params kann diese Eigenschaft ein XML-Dokument aufnehmen.
<xml_payload> enthält das Wurzelelement des XML-Dokuments (statt in #PCDATA-codierter Form).
2.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs
Ein auftragsgesteuerter Job ( <job order="yes"> hat eine Auftragswarteschlange, die die vom Job zu
verarbeitenden Aufträge aufnimmt. Die Aufträge sind nach Priorität und Zeitpunkt des Eintreffens geordnet.
Verarbeiten bedeutet, dass der JobScheduler die Methode spooler_process() einer Task des Jobs aufruft. Die
Methode kann über Task.order auf den Auftrag zugreifen. Endet spooler_process() ohne Fehler (ohne
Exception), entfernt der JobScheduler den Auftrag aus der Auftragswarteschlange. Ist der Auftrag in einer Jobkette,
dann rückt der Auftrag an die nächste Position der Jobkette.
Software- and Organisations-Service GmbH
März 2015
Java API
70
2.12.1 length
Anzahl der Aufträge in der Auftragswarteschlange
Syntax: int q. length ()
2.13 Process_class
Siehe auch <process_class name=""> .
Beispiel: in javascript
var process_classs = spooler.process_classs;
var process_class = process_classs.create_process_class();
process_class.name = "my_process_class";
process_classs.add_process_class( process_class );
2.13.1 max_processes
Anzahl der Prozesse
Syntax: void process_class.set_max_processes ( int )
Syntax: int process_class. max_processes ()
Die Voreinstellung ist 10.
Siehe auch <process_class max_processes=""> .
2.13.2 name
Name der Prozessklasse
Syntax: void process_class.set_name ( String )
Syntax: String process_class. name ()
Der Name kann nur einmal gesetzt und nicht geändert werden.
Siehe auch <process_class name=""> .
2.13.3 remote_scheduler
Adresse des fernen Schedulers, der die Prozesse ausführen soll
Syntax: void process_class.set_remote_scheduler ( String )
Software- and Organisations-Service GmbH
März 2015
Java API
71
Syntax: String process_class. remote_scheduler ()
Beispiel: in javascript
spooler.process_classes.process_class( "my_process_class" ).remote_scheduler =
"host:4444";
Siehe auch <process_class remote_scheduler=""> .
Parameter:
Die Adresse wird als " host : portnumber" angegeben.
Beim Lesen wird (derzeit) zusätzlich die IP-Nummer
geliefert: " hostname / ipnumber : portnumber"
Rückgabe:
String Die Adresse wird als " host : portnumber" angegeben.
Beim Lesen wird (derzeit) zusätzlich die IP-Nummer geliefert: " hostname / ipnumber : portnumber"
2.13.4 remove
Entfernt die Prozessklasse
Syntax: void process_class. remove ()
Beispiel: in javascript
spooler.process_classs.process_class( "my_process_class" ).remove();
Wenn noch Tasks in der Prozessklasse laufen, verzögert der JobScheduler das Löschen bis die letzte Task
geendet hat. Solange werden keine neuen Tasks gestartet.
Siehe auch <process_class.remove> .
2.14 Process_classes
2.14.1 add_process_class
Fügt dem JobScheduler eine Prozessklasse hinzu
Syntax: void process_classs. add_process_class ( Process_class pc )
Software- and Organisations-Service GmbH
März 2015
Java API
72
2.14.2 create_process_class
Legt eine neue Prozesklasse ein
Syntax: Process_class process_classs. create_process_class ()
Liefert eine neues Process_class . Diese Prozessklasse kann mit Process_classes.add_process_class() dem
JobScheduler hinzugefügt werden.
Rückgabe:
Process_class 2.14.3 process_class
Liefert eine Prozessklasse
Syntax: Process_class process_classs. process_class ( String process_class_name )
Wenn die Prozessklasse nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Process_class 2.14.4 process_class_or_null
Liefert eine Prozessklasse
Syntax: Process_class process_classs. process_class_or_null ( String process_class_name )
Rückgabe:
Process_class null, wenn die Prozessklasse nicht bekannt ist.
2.15 Run_time - Laufzeit
Siehe <run_time> , Order , Schedule .
Beispiel: in javascript
var order = spooler_task.order;
// Repeat order daily at 15:00
order.run_time.xml = "<run_time><period single_start='15:00'/></run_time>";
Software- and Organisations-Service GmbH
März 2015
Java API
73
2.15.1 schedule
<schedule>
Syntax: Schedule run_time. schedule ()
Rückgabe:
Schedule 2.15.2 xml
<run_time>
Syntax: void run_time.set_xml ( String )
Verwirft die bisherige Einstellung und setzt Run_time neu.
Parameter:
XML-Dokument als String
2.16 Schedule - Laufzeit
Siehe <schedule> , <run_time> , Spooler.schedule , Run_time .
Beispiel: in javascript
spooler.schedule( "my_schedule" ).xml = "<schedule><period single_start='15:00'/><
/schedule>";
2.16.1 xml
<schedule>
Syntax: void schedule.set_xml ( String )
Syntax: String schedule. xml ()
Verwirft die bisherige Einstellung und setzt Schedule neu.
Parameter:
XML-Dokument als String
Rückgabe:
String XML-Dokument als String
Software- and Organisations-Service GmbH
März 2015
Java API
74
2.17 Spooler
Von dieser Klasse gibt es nur ein Objekt: spooler .
2.17.1 abort_immediately
Bricht den JobScheduler augenblicklich ab
Syntax: void spooler. abort_immediately ()
Bricht den JobScheduler augenblicklich ab. Kein Job hat Gelegenheit, darauf zu reagieren. Der JobScheduler bricht zuvor alle gestarteten Prozesse ab. Das sind die Tasks und die Prozesse von
Task.create_subprocess() und Task.add_pid() . Siehe <modify_spooler cmd="abort_immediately"> und JobScheduler Dokumentation. 2.17.2 abort_immediately_and_restart
Bricht den JobScheduler augenblicklich ab und startet ihn neu. Syntax: void spooler. abort_immediately_and_restart ()
Wie Spooler.abort_immediately() , nur dass der JobScheduler sich erneut startet. Dabei verwendet er die
Kommandozeilenparameter wieder. Siehe <modify_spooler cmd="abort_immediately_and_restart"> und JobScheduler Dokumentation. 2.17.3 add_job_chain
Syntax: void spooler. add_job_chain ( Job_chain chain )
Bei Job_chain.orders_recoverable =true lädt der JobScheduler die Aufträge der Jobkette aus der Datenbank.
Siehe Spooler.create_job_chain() und <job_chain> .
Software- and Organisations-Service GmbH
März 2015
Java API
75
2.17.4 configuration_directory
Pfad des Konfigurationsverzeichnisses
Syntax: String spooler. configuration_directory ()
<config configuration_directory="…">
2.17.5 create_job_chain
Syntax: Job_chain spooler. create_job_chain ()
Liefert eine neue Job_chain . Diese Jobkette kann, nachdem sie mit Jobs gefüllt worden ist, mit
Spooler.add_job_chain() dem JobScheduler hinzugefügt werden
Siehe <job_chain> .
Rückgabe:
Job_chain 2.17.6 create_order
Syntax: Order spooler. create_order ()
Erzeugt einen neuen Auftrag. Dieser Auftrag kann mit Job_chain.add_order() einer Jobkette übergeben werden.
Rückgabe:
Order 2.17.7 create_variable_set
Syntax: Variable_set spooler. create_variable_set ()
Rückgabe:
Variable_set 2.17.8 create_xslt_stylesheet
Syntax: Xslt_stylesheet spooler. create_xslt_stylesheet ()
Syntax: Xslt_stylesheet spooler. create_xslt_stylesheet ( java.io.path path )
Syntax: Xslt_stylesheet spooler. create_xslt_stylesheet ( String path )
Software- and Organisations-Service GmbH
März 2015
Java API
76
Parameter:
xml
XSLT-Stylesheet als XML-String
Rückgabe:
Xslt_stylesheet Xslt_stylesheet Xslt_stylesheet 2.17.9 db_history_table_name
Name der Datenbanktabelle für die Historie
Syntax: String spooler. db_history_table_name ()
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) wird damit überschrieben.
2.17.10 db_name
Hostware-Pfad der Datenbank
Syntax: String spooler. db_name ()
Verbindungszeichenfolge der Datenbank für die Historienführung. Der JobScheduler unterstützt ODBC (Windows)
und JDBC für den Zugriff auf Datenbanken. Ohne Eintrag werden Dateien im .csv-Format erzeugt, siehe
factory.ini (Abschnitt [spooler], Eintrag history_file=…).
Unter Windows kann ein einfacher Dateiname angegebenen werden, der auf .mdb endet (z.B. scheduler.mdb).
Der JobScheduler verwendet dann eine Microsoft MS-Access Datenbank dieses Namens, die im
Protokollverzeichnis (s. Option -log-dir ) liegt. Der JobScheduler richtet die Datei ein, wenn sie fehlt.
Der JobScheduler richtet die Tabellen selbständig ein.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db=…) wird damit überschrieben.
2.17.11 db_order_history_table_name
Name der Datenbanktabelle für die Auftragshistorie
Syntax: String spooler. db_order_history_table_name ()
Die Einstellung factory.ini
überschrieben.
Software- and Organisations-Service GmbH
(Abschnitt [spooler], Eintrag db_order_history_table=…) wird damit
März 2015
Java API
77
2.17.12 db_orders_table_name
Name der Datenbanktabelle für die Aufträge
Syntax: String spooler. db_orders_table_name ()
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_orders_table=…) wird damit überschrieben.
2.17.13 db_tasks_table_name
Name der Datenbanktabelle für die Tasks
Syntax: String spooler. db_tasks_table_name ()
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_tasks_table=…) wird damit überschrieben.
2.17.14 db_variables_table_name
Name der Datenbanktabelle für interne Variablen des Schedulers
Syntax: String spooler. db_variables_table_name ()
Der JobScheduler hält in dieser Tabelle interne Zähler, zum Beispiel für die nächste freie Task-ID.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_variables_table=…) wird damit überschrieben.
2.17.15 directory
Das Arbeitsverzeichnis beim Start des Schedulers
Syntax: String spooler. directory ()
Ändert das Arbeitsverzeichnis.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Software- and Organisations-Service GmbH
März 2015
Java API
78
Die Option -cd hat Vorrang.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Rückgabe:
String Der Pfad endet unter Unix mit "/" und unter Windows mit "\".
2.17.16 execute_xml
Führt ein XML-Kommando aus
Syntax: String spooler. execute_xml ( String xml )
Beispiel: in javascript
spooler_log.info( spooler.execute_xml( "<show_state/>" ) );
Fehler werden als XML-Antwort <ERROR> geliefert.
Parameter:
xml
Siehe JobScheduler Dokumentation.
Rückgabe:
String Liefert die XML-Antwort des ausgeführten Kommandos.
2.17.17 hostname
Name des Rechners, auf dem der JobScheduler läuft.
Syntax: String spooler. hostname ()
2.17.18 id
Wert der Kommandozeilenoption -id=
Syntax: String spooler. id ()
Der JobScheduler wählt nur die Elemente der XML-Konfiguration aus, deren Attribut spooler_id leer ist oder
denselben Wert wie in dieser Einstellung enthält.
Software- and Organisations-Service GmbH
März 2015
Java API
79
Wenn die Scheduler-ID nicht angegeben ist, beachtet der JobScheduler das XML-Attribut spooler_id= nicht und
wählt alle Elemente der XML-Konfiguration aus.
Siehe z.B. <config> .
Die Option -id hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag id=…) wird damit überschrieben.
2.17.19 include_path
Liefert die Kommandozeilenoption -include-path=.
Syntax: String spooler. include_path ()
Verzeichnis der Dateien, die mit <include> eingezogen werden.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen).
Die Option -include-path hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag include_path=…) wird damit überschrieben.
<config include_path="…">
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
2.17.20 ini_path
Wert der Option -ini= (Dateiname der factory.ini)
Syntax: String spooler. ini_path ()
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Siehe -ini , JobScheduler Dokumentation
2.17.21 is_service
Syntax: boolean spooler. is_service ()
Software- and Organisations-Service GmbH
März 2015
Java API
80
Rückgabe:
boolean true, genau dann wenn der JobScheduler als Dienst (in Windows) oder als Daemon (in Unix) läuft.
2.17.22 job
Liefert einen Job
Syntax: Job spooler. job ( String job_name )
Wenn der Jobname nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Job 2.17.23 job_chain
Liefert eine Jobkette
Syntax: Job_chain spooler. job_chain ( String name )
Wenn der Name der Jobkette nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Job_chain 2.17.24 job_chain_exists
Syntax: boolean spooler. job_chain_exists ( String name )
2.17.25 let_run_terminate_and_restart
Syntax: void spooler. let_run_terminate_and_restart ()
Sobald alle Aufträge abgearbeitet sind, beendet der JobScheduler alle Tasks (durch Aufruf von Job_impl ) und
beendet dann sich selbst. Ein neuer JobScheduler mit unveränderten Kommandozeilenparametern wird gestartet.
Siehe <modify_spooler cmd="let_run_terminate_and_restart"> und JobScheduler Dokumentation.
Software- and Organisations-Service GmbH
März 2015
Java API
81
2.17.26 locks
Liefert die Locks
Syntax: Locks spooler. locks ()
Rückgabe:
Locks 2.17.27 log
Das Hauptprotokoll
Syntax: Log spooler. log ()
Normalerweise wird man spooler_log() verwenden.
Rückgabe:
Log 2.17.28 log_dir
Verzeichnis der Protokolle
Syntax: String spooler. log_dir ()
In dieses Verzeichnis schreibt der JobScheduler seine Protokolle.
log_dir= *stderr lässt den JobScheduler die Protokollausgabe nach stderr (auf den Bildschirm) schreiben.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen).
Die Option -log-dir hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_dir=…) wird damit überschrieben.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
2.17.29 param
Kommandozeilenoption -param=
Software- and Organisations-Service GmbH
März 2015
Java API
82
Syntax: String spooler. param ()
Zur freien Verwendung. Der Parameter ist in den Skripten über spooler.param lesbar.
Die Option -param hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag param=…) wird damit überschrieben.
2.17.30 process_classes
Liefert die Prozessklassen
Syntax: Process_classes spooler. process_classes ()
Rückgabe:
Process_classes 2.17.31 schedule
Liefert den benannten Schedule oder null
Syntax: Schedule spooler. schedule ( String path )
Rückgabe:
Schedule 2.17.32 supervisor_client
Liefert den Supervisor_client oder null
Syntax: Supervisor_client spooler. supervisor_client ()
Rückgabe:
Supervisor_client 2.17.33 tcp_port
HTTP- und TCP-Port für Kommandos an den JobScheduler
Syntax: int spooler. tcp_port ()
Software- and Organisations-Service GmbH
März 2015
Java API
83
Der JobScheduler kann auf einem TCP-Port während des Betriebs Kommandos entgegennehmen. Hier kann eine
Portnummer eingestellt werden. Die Portnummer ist eine Zahl zwischen 2048 (betriebssystemabhängig) und
65535. Die Voreinstellung lautet 4444.
Über denselben Port betreibt der JobScheduler einen HTTP/HTML-Server, so dass er über einen Browser
ansprechbar ist, z.B. http://localhost:4444.
Bei tcp_port=0 (voreingestellt) ist der JobScheduler nicht über TCP oder HTTP ansprechbar. Damit kann die
Steuerung des JobSchedulers per TCP-Kommando, z.B. über eine Web-Seite, unterbunden werden.
Die Option -tcp-port hat Vorrang.
<config tcp_port="…">
Rückgabe:
int 0, wenn kein Port geöffnet ist.
2.17.34 terminate
JobScheduler mit allen Tasks ordentlich beenden
Syntax: void spooler. terminate ( int timeout (optional) , boolean restart (optional) ,
boolean all_schedulers (optional) , boolean continue_exclusive_operation (optional) )
Beendet alle Tasks (durch Aufruf von spooler_close() ) und schließlich sich selbst.
Wenn eine Frist angegeben ist, bricht der JobScheduler nach Ablauf alle noch laufenden Prozesse ab (das sind
Tasks, die zulange in einem Aufruf wie spooler_process() verharren).
Siehe <modify_spooler cmd="terminate"> und JobScheduler Dokumentation.
Parameter:
timeout
Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der
JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen
Parameter wartet der JobScheduler endlos auf die Tasks.
restart
restart=true lässt den JobScheduler nach Beendigung neu starten.
all_schedu all_schedulers=true beendet alle JobScheduler im Cluster (s. -exclusive ) Das kann eine
lers
Minute dauern.
continue_e continue_exclusive_operation=true lässt einen anderen Scheuler im Cluster (s. -exclusive )
xclusive_o den Betrieb fortsetzen.
peration
2.17.35 terminate_and_restart
JobScheduler mit allen Tasks ordentlich beenden und erneut starten
Syntax: void spooler. terminate_and_restart ( int timeout (optional) )
Software- and Organisations-Service GmbH
März 2015
Java API
84
Wie Spooler.terminate() , aber der JobScheduler startet sich neu.
Siehe <modify_spooler cmd="terminate_and_restart"> und JobScheduler Dokumentation.
Parameter:
time Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der
out JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen Parameter
wartet der JobScheduler endlos auf die Tasks.
2.17.36 udp_port
UDP-Port für Kommandos an den JobScheduler
Syntax: int spooler. udp_port ()
Auch über UDP kann der JobScheduler Kommandos entgegennehmen. Hier wird die Portnummer angegeben. Ein
Kommando muss in eine Nachricht passen. Der JobScheduler schickt keine Antwort.
Bei udp_port=0 (voreingestellt) öffnet der JobScheduler keinen UDP-Port.
Die Option -udp-port hat Vorrang.
<config udp_port="…">
Rückgabe:
int 0, wenn kein Port geöffnet ist.
2.17.37 var
Zugriff auf Scheduler-weite Variablen
Syntax: void spooler.set_var ( String name, String )
Syntax: String spooler. var ( String name )
Die Variablen sind überall im JobScheduler benutzbar.
2.17.38 variables
Die Scheduler-weiten Variablen als Variable_set
Syntax: Variable_set spooler. variables ()
Die Variablen können in der Konfigurationsdatei eingestellt werden mit <config> .
Software- and Organisations-Service GmbH
März 2015
Java API
85
Rückgabe:
Variable_set 2.18 Spooler_program - Für den Java-Debugger
Startet den JobScheduler über Java, so dass in Java geschriebene Jobs debuggt werden können (z.B. mit
Eclipse). Zu den Methoden siehe Javadoc.
Der JobScheduler wird als Windows-Applikation, nicht als Konsol-Programm gestartet. Ausgaben nach stderr
gehen verloren. -log-dir liefert keine Ausgabe.
Siehe JobScheduler Dokumentation.
Beispiel:
C:\>java -Djava.library.path=… -classpath …\sos.spooler.jar sos.spooler.Spooler_program
configuration.scheduler -log-dir=c:\tmp\scheduler
Mit -Djava.library.path=… geben Sie das Verzeichnis der scheduler.dll an, wenn es nicht bereits in %PATH%
aufgeführt ist.
2.19 Subprocess
Ein Subprozess ist irgendein Prozess, der mit Task.create_subprocess() oder Subprocess.start() gestartet
werden kann.
Beispiel: system() - Einfache Ausführung eines Kommandos, in javascript
exit_code = my_system( "backup /" );
function system( cmd, timeout )
{
var subprocess = spooler_task.create_subprocess();
try
{
if( timeout ) subprocess.timeout = timeout;
subprocess.start( cmd );
subprocess.wait_for_termination();
return subprocess.exit_code;
}
finally
{
subprocess.close();
}
}
Software- and Organisations-Service GmbH
März 2015
Java API
86
Beispiel: in javascript
var subprocess = spooler_task.create_subprocess();
subprocess.environment( "test1" ) = "one";
subprocess.environment( "test2" ) = "two";
subprocess.ignore_error = true;
subprocess.start( "sleep 20" );
spooler_log.info( "pid=" + subprocess.pid );
subprocess.timeout = 10;
spooler_log.info( "wait_for_termination ..." );
var ok = subprocess.wait_for_termination( 10 );
spooler_log.info( "wait_for_termination ok=" + ok );
if( subprocess.terminated )
{
spooler_log.info( "exit code=" + subprocess.exit_code );
spooler_log.info( "termination signal=" + subprocess.termination_signal );
}
2.19.1 close
Gibt die System-Ressourcen frei
Syntax: void subprocess. close ()
Sollte in Sprachen mit Garbage Collector (Java, JavaScript) gerufen werden, außer die Task beendet sich sofort.
Der Subprocess ist danach unbrauchbar.
2.19.2 env
Umgebungsvariablen als Variable_set
Syntax: Variable_set subprocess. env ()
Beispiel: in javascript
var subprocess = spooler_task.create_subprocess();
subprocess.start( subprocess.env.substitute( "${MY_HOME}/my_program" ) );
subprocess.wait_for_termination();
Liefert ein Variable_set der Umgebungsvariablen.
Anfänglich ist die Umgebung mit den Umgebungsvariablen des startenden Prozesses gefüllt. Umgebungsvariablen
können entfernt werden, indem sie auf "" gesetzt werden. Der Aufruf Subprocess.start() übergibt die
Umgebungsvariablen dem Subprozess.
Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden.
Software- and Organisations-Service GmbH
März 2015
Java API
87
Nach dem Start des Subprozesses haben Änderungen an den Umgebungsvariablen keine Wirkung. Auch können
vom Prozess geänderte Umgebungsvariablen nicht gelesen werden.
Das Objekt lässt sich nicht anderen Objekten übergeben (denn es befindet sich im Prozess der Task, während die
meisten anderen Objekte sich im Prozess des Schedulers befinden).
Rückgabe:
Variable_set 2.19.3 environment
Umgebungsvariablen
Syntax: void subprocess.set_environment ( String name, String value )
Beispiel:
// The following two statements have the same effect
subprocess.set_environment( "my_variable", "my_value" )
subprocess.env().set_value( "my_variable" ) = "my_value"
Die hier gesetzten Variablen werden zusammen mit den übrigen Umgebungsvariablen des laufenden Prozesses
dem neuen Subprozess übergeben.
Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden.
Siehe auch Subprocess.env .
2.19.4 exit_code
Syntax: int subprocess. exit_code ()
Erst aufrufen, wenn Subprocess.terminated == true.
2.19.5 ignore_error
Verhindert, dass bei exit_code != 0 der Job stoppt
Syntax: void subprocess.set_ignore_error ( boolean )
Syntax: boolean subprocess. ignore_error ()
Verhindert, dass der Job stoppt, wenn der Subprozess bei Task-Ende mit Subprocess.exit_code != 0 geendet
hat.
Wenn das Ende des Subprocesses nicht mit Subprocess.wait_for_termination abgewartet worden ist, tut das
der JobScheduler bei Task-Ende. Wenn dann der Subprocess mit Subprocess.exit_code != 0 endet, stoppt der
Job mit Fehler.
Software- and Organisations-Service GmbH
März 2015
Java API
88
Mit ignore_error kann das verhindert werden.
2.19.6 ignore_signal
Verhindert, dass bei einem Abbruch des Prozesses mit Signal der Job stoppt
Syntax: void subprocess.set_ignore_signal ( int )
Syntax: int subprocess. ignore_signal ()
Wirkt nicht unter Windows, weil es hier keine Signale gibt.
2.19.7 kill
Bricht den Subprozess ab
Syntax: void subprocess. kill ( int signal (optional) )
Parameter:
signal Nur unter Unix: Das Signal für kill(). 0 wird als 9 (SIGKILL, sofortiges Ende) interpretiert.
2.19.8 own_process_group
Subprozess als Prozessgruppe
Syntax: void subprocess.set_own_process_group ( boolean )
Syntax: boolean subprocess. own_process_group ()
Nur unter Unix.
Der Default kann mit factory.ini (Abschnitt [spooler], Eintrag subprocess.own_process_group=…) eingestellt
werden.
own_process_group lässt den Subprozess in einer eigenen Prozessgruppe starten, indem der Systemaufruf
setpgid(0,0) ausgeführt wird. Wenn der JobScheduler den Subprozess abbricht, bricht er die ganze
Prozessgruppe ab.
2.19.9 pid
Prozesskennung
Syntax: int subprocess. pid ()
Software- and Organisations-Service GmbH
März 2015
Java API
89
2.19.10 priority
Prozess-Priorität
Syntax: void subprocess.set_priority ( int )
Syntax: int subprocess. priority ()
Beispiel: in javascript
subprocess.priority = +5;
// Unix: Priorität etwas verschlechtern
Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht
werden.
Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13
"high" (andere Werte werden abgerundet). Siehe auch Task.priority_class .
Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Subprocess.priority_class . Siehe auch
Task.priority .
2.19.11 priority_class
Prioritätsklasse
Syntax: void subprocess.set_priority_class ( String )
Syntax: String subprocess. priority_class ()
Beispiel: in javascript
subprocess.priority_class = "below_normal";
Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix
entsprechen:
Prioritätsklasse
Windows
Unix
"idle"
4
16
"below_normal"
6
6
"normal"
8
0
"above_normal"
10
-6
"high"
13
-16
Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelndem Recht, führt das nicht zu einem Fehler.
Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Software- and Organisations-Service GmbH
März 2015
Java API
90
Siehe auch Subprocess.priority , Task.priority_class und Microsoft® Windows® Scheduling Priorities.
2.19.12 start
Startet den Prozess
Syntax: void subprocess. start ( String command_line )
Syntax: void subprocess. start ( String filename_and_arguments )
Windows erkennt sofort, wenn das Programm nicht ausführbar ist. Die Methode liefert dann einen Fehler.
Unter Unix wird stattdessen Subprocess.exit_code auf 99 gesetzt. Vorher muss das Ende des Prozesses
abgewartet werden mit Subprocess.wait_for_termination() .
Shell-Operatoren wie |, && und > werden nicht interpretiert. Verwenden Sie dazu die Programme /bin/sh bzw.
c:\windows\system32\cmd.exe (das Verzeichnis ist installations-abhängig).
Der Prozess wird unter Unix mit execvp() und unter Windows mit CreateProcess() gestartet.
2.19.13 terminated
Syntax: boolean subprocess. terminated ()
Prüft, ob der Prozess geendet hat. Wenn er geendet hat, kann anschließend Subprocess.exit_code und
Subprocess.termination_signal gerufen werden.
2.19.14 termination_signal
Signal, mit dem sich der Prozess beendet hat (nur Unix)
Syntax: int subprocess. termination_signal ()
Erst aufrufen, wenn Subprocess.terminated == true.
2.19.15 timeout
Frist für den Subprozess
Syntax: void subprocess.set_timeout ( double seconds )
Nach Ablauf der Zeit bricht der JobScheduler den Subprozess ab (Unix: mit SIGKILL).
Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht.
Software- and Organisations-Service GmbH
März 2015
Java API
91
2.19.16 wait_for_termination
Syntax: void subprocess. wait_for_termination ()
Syntax: boolean subprocess. wait_for_termination ( double seconds )
Parameter:
seconds
Wartezeit. Fehlt der Parameter, dann wartet der Aufruf bis der Subprozess geendet hat.
Rückgabe:
boolean true, wenn der Subprozess geendet hat.
false, wenn der Subprozess nach Ablauf der Wartezeit noch läuft.
2.20 Supervisor_client
Spooler.supervisor_client liefert dieses Objekt.
Beispiel: in javascript
var supervisor_hostname = spooler.supervisor_client.hostname;
2.20.1 hostname
Name oder IP-Nummer des Rechners, auf dem der Supervisor läuft
Syntax: String supervisor_client. hostname ()
Siehe auch <config supervisor=""> .
2.20.2 tcp_port
TCP-Port des Supervisors
Syntax: int supervisor_client. tcp_port ()
Siehe auch <config supervisor=""> .
2.21 Task
Eine Task ist eine laufende Instanz eines Jobs.
Software- and Organisations-Service GmbH
März 2015
Java API
92
Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen.
Implementiert wird eine Task mit Job_impl .
2.21.1 add_pid
Macht dem JobScheduler einen abhängigen, befristeten Prozess bekannt
Syntax: void spooler_task. add_pid ( int pid )
Syntax: void spooler_task. add_pid ( int pid, double timeout_seconds )
Mit dem Aufruf kann die Laufzeit von abhängigen Prozessen eingeschränkt werden. Bei Task-Ende bricht der
JobScheduler noch laufende abhängigen Prozesse in jedem Fall ab.
Wenn der JobScheduler einen Prozess abbricht, gibt es einen Eintrag ins Protokoll. Die Task erfährt davon nichts.
Der Aufruf <kill_task> bricht alle mit add_pid() bekannt gemachten Prozesse ab.
Unter Unix kann eine Prozessgruppen-Id als negative pid übergeben werden. Ein kill bricht dann die ganze
Prozessgruppe ab.
Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht.
2.21.2 call_me_again_when_locks_available
Wiederholt spooler_open() oder spooler_process(), sobald Sperren verfügbar
Syntax: void spooler_task. call_me_again_when_locks_available ()
Ve r a n l a s s t
den
S c h e d u l e r,
nach
erfolglosem
Task.try_hold_lock()
oder
Task.try_hold_lock_non_exclusive() den Aufruf von spooler_open() bzw. spooler_process() zu
wiederholen, sobald die angeforderten Sperren verfügbar sind. Der JobScheduler wiederholt dann den Aufruf mit
gehaltenen Sperren, so dass die erstgenannten Aufrufe Erfolg haben werden.
Nach dem Aufruf hat der Rückgabewert von spooler_open() bzw. spooler_process() (true/false) keine
Wirkung. Einen Auftrag Task.order belässt der JobScheduler in seinem Zustand.
2.21.3 changed_directories
Die Verzeichnisse, deren Änderung den Start der Task veranlasst haben
Syntax: String spooler_task. changed_directories ()
Siehe Job.start_when_directory_changed() , Task.trigger_files .
Rückgabe:
String Die Verzeichnisnamen sind durch Semikolon getrennt.
Software- and Organisations-Service GmbH
März 2015
Java API
93
"", wenn kein Verzeichnis geändert ist.
2.21.4 create_subprocess
Start eines überwachten Subprozesses
Syntax: Subprocess spooler_task. create_subprocess ()
Syntax: Subprocess spooler_task. create_subprocess ( String command_line )
Syntax: Subprocess spooler_task. create_subprocess ( String filename_and_arguments )
Rückgabe:
Subprocess Subprocess Subprocess 2.21.5 delay_spooler_process
Verzögert den nächsten Aufruf von spooler_process()
Syntax: void spooler_task.set_delay_spooler_process ( double )
Syntax: void spooler_task.set_delay_spooler_process ( String hhmm_ss )
Wirkt nur in spooler_process() .
2.21.6 end
Beendet die Task
Syntax: void spooler_task. end ()
Der JobScheduler ruft nicht mehr spooler_process() auf. Statt dessen ruft er spooler_close() auf.
Der Aufruf kann verwendet werden, um beim Task-Ende den Versand des Task-Protokolls zu veranlassen, siehe
Log .
2.21.7 error
Setzt einen Fehler und stoppt den Job
Syntax: void spooler_task.set_error ( String )
Syntax: Error spooler_task. error ()
Der lesende Aufruf liefert den letzten Fehler dieser Task. Wenn kein Fehler vorliegt, wird ein Error -Objekt
zurückgeliefert, dessen Eigenschaft is_error false liefert.
Software- and Organisations-Service GmbH
März 2015
Java API
94
Sie können eine Fehlermeldung auch mit Log.error() ins Task-Protokoll schreiben.
Rückgabe:
String Error 2.21.8 exit_code
Exit-Code
Syntax: void spooler_task.set_exit_code ( int )
Syntax: int spooler_task. exit_code ()
Beispiel: in javascript
spooler_log.error( "This call of spooler_log.error() sets the exit code to 1" );
spooler_task.exit_code = 0;
// Reset the exit code
Der Exit-Code ist anfänglich 0 und wird bei einem Fehler auf 1 gesetzt. Das ist, wenn der JobScheduler eine Zeile
mit [ERROR] ins Task-Protokoll schreibt:
•
•
•
Aufruf von Log.error()
Setzen von Task.error
Das Skript liefert eine Exception.
Der Job kann anschließend, z.B. in spooler_on_error() , den Task.exit_code neu setzen.
Der Exit-Code des (Betriebssystem-)Prozesses, der die Task ausführt, ist ohne Belang und wird nicht
übernommen, im Gegensatz zu Jobs mit <process> oder <script language="shell"> .
Der Exit-Code entscheidet über die anschließend auszuführenden Kommandos. Siehe hierzu <job> <commands
on_exit_code=""> .
Der Exit-Code hat keinen Einfluss darauf, ob der Job gestoppt wird (eine Fehlermeldung der Task lässt den Job
stoppen).
2.21.9 history_field
Ein Feld in der Task-Historie
Syntax: void spooler_task.set_history_field ( String name, String value )
Beispiel: in javascript
spooler_task.history_field( "extra" ) = 4711;
Die Datenbanktabelle (s. factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) muss eine Spalte mit
dem Namen haben und diese Spalte muss in der Datei factory.ini (Abschnitt [job], Eintrag
history_columns=…) deklariert sein.
Software- and Organisations-Service GmbH
März 2015
Java API
95
2.21.10 id
Die Task-Kennung
Syntax: int spooler_task. id ()
Jede Task hat eine Scheduler-weit eindeutige numerische Kennung.
2.21.11 job
Der Job, zu dem die Task gehört
Syntax: Job spooler_task. job ()
Rückgabe:
Job 2.21.12 order
Der zu verarbeitende Auftrag
Syntax: Order spooler_task. order ()
Beispiel:
Order order = spooler_task.order();
spooler_log.info( "order.id=" + order.id() + ", order.title=" + order.title() );
Rückgabe:
Order null, wenn kein Auftrag vorliegt.
2.21.13 params
Die Parameter der Task
Syntax: Variable_set spooler_task. params ()
Beispiel:
String value = spooler_task.params().var( "parameter3" );
Software- and Organisations-Service GmbH
März 2015
Java API
96
Beispiel:
Variable_set parameters = spooler_task.params();
if( parameters.count() > 0 ) spooler_log.info( "Parameters given" );
String value1 = parameters.var( "parameter1" );
vorhanden ist
String value2 = parameters.var( "parameter2" );
// "", wenn die Variable nicht
Eine Task kann Parameter haben. Die Parameter können gesetzt werden mit
•
•
•
In der Konfigurationsdatei im Element <job> mit <params> ,
Job.start() und
<start_job> .
Rückgabe:
Variable_set != null
2.21.14 priority
Priorität der laufenden Task
Syntax: void spooler_task.set_priority ( int )
Syntax: int spooler_task. priority ()
Beispiel: in javascript
spooler_task.priority = +5;
// Unix: Priorität etwas verschlechtern
Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht
werden.
Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13
"high" (andere Werte werden abgerundet). Siehe auch Task.priority_class .
Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Task.priority_class .
2.21.15 priority_class
Prioritätsklasse der laufenden Task
Syntax: void spooler_task.set_priority_class ( String )
Syntax: String spooler_task. priority_class ()
Software- and Organisations-Service GmbH
März 2015
Java API
97
Beispiel: in javascript
spooler_task.priority_class = "below_normal";
Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix
entsprechen:
Prioritätsklasse
Windows
Unix
"idle"
4
16
"below_normal"
6
6
"normal"
8
0
"above_normal"
10
-6
"high"
13
-16
Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelnden Rechts, führt das nicht zu einem Fehler.
Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Siehe auch Task.priority , Subprocess.priority_class und Microsoft® Windows® Scheduling Priorities.
2.21.16 remove_pid
Gegenstück zu add_pid()
Syntax: void spooler_task. remove_pid ( int pid )
Es gibt keinen Fehler, wenn die Pid nicht mit Task hinzugefügt worden ist.
Siehe Task.add_pid() .
2.21.17 repeat
Startet erneut eine Task nach der eingestellten Zeit
Syntax: void spooler_task.set_repeat ( double )
(Diese Methode gehört eigentlich in die Klasse Job . Sie hat nichts mit der gerade laufenden Task zu tun.)
Wenn nach Ablauf der angegebenen Zeit keine Task des Jobs läuft, startet der JobScheduler eine Task. Dabei wird
die <run_time> berücksichtigt. <period repeat=""> der aktuellen Periode wird vorläufig außer Kraft gesetzt.
Job.delay_after_error hat Vorrang, wenn die Task einen Fehler liefert.
Software- and Organisations-Service GmbH
März 2015
Java API
98
2.21.18 stderr_path
Der Pfadname der stderr-Ausgabe der Task
Syntax: String spooler_task. stderr_path ()
Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Rückgabe:
String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
2.21.19 stderr_text
Der bisher vom Prozess der Task nach stderr geschriebene Text
Syntax: String spooler_task. stderr_text ()
Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Rückgabe:
String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
2.21.20 stdout_path
Der Pfadname der stdout-Ausgabe der Task
Syntax: String spooler_task. stdout_path ()
Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Rückgabe:
String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
2.21.21 stdout_text
Der bisher vom Prozess der Task nach stdout geschriebene Text
Syntax: String spooler_task. stdout_text ()
Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Rückgabe:
Software- and Organisations-Service GmbH
März 2015
Java API
99
String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
2.21.22 trigger_files
Pfade der Dateien in mit regex überwachten Verzeichnissen
Syntax: String spooler_task. trigger_files ()
Liefert die Pfade der Dateien aus überwachten Verzeichnissen ( Job.start_when_directory_changed() oder <
start_when_directory_changed> ) zum Zeitpunkt des Starts der Task. Nur die Verzeichnisse, für die ein
Regulärer Ausdruck (regex) angegeben ist, werden berücksichtigt.
Die Pfade werden aus dem Verzeichnispfad, wie er in Job.start_when_directory_changed() oder <
start_when_directory_changed> angegeben ist und dem Dateinamen zusammengesetzt.
Nicht-API-Jobs ( <process> und <script language="shell"> ) steht der Inhalt von Task.trigger_files in der
Umgebungsvariablen SCHEDULER_TASK_TRIGGER_FILES zur Verfügung.
Siehe Job.start_when_directory_changed() , Task.changed_directories() .
Rückgabe:
String Die Dateipfade durch Semikolon getrennt.
"" sonst
2.21.23 try_hold_lock
Versucht, eine Sperre zu halten
Syntax: boolean spooler_task. try_hold_lock ( String lock_path )
Software- and Organisations-Service GmbH
März 2015
Java API
100
Beispiel: in javascript
function spooler_process()
{
var result = false;
if( spooler_task.try_hold_lock( "Georgien" ) &&
spooler_task.try_hold_lock_non_exlusive( "Venezuela" ) )
{
// Task is holding the two locks. Insert processing code here.
result = ...
}
else
{
spooler_task.call_me_again_when_locks_available();
}
return result;
}
try_lock_hold() versucht, die angegebene Sperre ( Lock ) zu halten, und kann aufgerufen werden
•
•
in spooler_open() : die Sperre wird für die Task gehalten und erst nach Beendigung freigegeben,
in spooler_process() : die Sperre wird für nur für diesen Jobschritt gehalten und nach dessen Beendigung
freigegeben, also beim Verlassen von spooler_process().
Wenn die Sperre nicht verfügbar ist, ein Aufruf also false liefert, kann entweder
•
•
•
mit Task.call_me_again_when_locks_available() der JobScheduler veranlasst werden, den Aufruf
spooler_open() bzw. spooler_process() zu wiederholen, sobald die Sperren verfügbar sind, oder
spooler_open() bzw. spooler_process() ohne vorgenannten Aufruf mit false beendet werden, mit der
üblichen Wirkung,
aber nicht mit true beendet werden, das wird als Fehler angesehen und führt zur Warnung SCHEDULER-469 .
Siehe auch <lock.use> .
Rückgabe:
boolean true, wenn die Task die Sperre hält.
2.21.24 try_hold_lock_non_exclusive
Versucht, eine Sperre nicht-exklusiv zu halten
Syntax: boolean spooler_task. try_hold_lock_non_exclusive ( String lock_path )
Es gelten dieselben Bedingungen wie für Task.try_hold_lock() .
Siehe auch <lock.use exclusive="no"> .
Rückgabe:
boolean true, wenn die Task die Sperre hält.
Software- and Organisations-Service GmbH
März 2015
Java API
101
2.21.25 web_service
Der Webdienst, der der Task zugeordnet ist
Syntax: Web_service spooler_task. web_service ()
Wenn die Task keinem Webdienst zugeordnet ist, liefert der Aufruf eine Exception.
Siehe auch Task.web_service_or_null .
Rückgabe:
Web_service 2.21.26 web_service_or_null
Der Webdienst, der der Task zugeordnet ist, oder null.
Syntax: Web_service spooler_task. web_service_or_null ()
Siehe auch Task.web_service .
Rückgabe:
Web_service 2.22 Variable_set - Variablenmenge zur Übergabe von Parametern
Variablenmengen werden gebraucht für die Scheduler-weiten Variablen und Task-Parameter. Eine neue
Variablenmenge wird mit Spooler.create_variable_set() angelegt.
Die Großschreibung der Variablennamen ist nicht relevant.
In COM (JavaScript, VBScript, Perl) ist ein Variablenwert ein Variant. Weil die Variablen in der Regel in die
Scheduler-Datenbank geschrieben werden, sollten nur nach String konvertierbare Variant-Werte verwendet werden
(d.h. es sollten keine Objekte verwendet werden).
In Java ist ein Variablenwert ein String. Wenn die Variable mit COM als Variant gesetzt worden ist, wird beim Lesen
der nach String konvertierte Wert zurückgegeben. Null und Empty werden als null zurückgeliefert. Wenn ein
Variant-Wert nicht konvertierbar ist, wird eine Exception ausgelöst.
Siehe auch <params> und <sos.spooler.variable_set> .
2.22.1 count
Anzahl der Variablen
Syntax: int variable_set. count ()
Software- and Organisations-Service GmbH
März 2015
Java API
102
2.22.2 merge
Mischt eine andere Variablenmenge ein
Syntax: void variable_set. merge ( Variable_set vs )
Gleichnamige Variablen werden überschrieben.
2.22.3 names
Alle Variablennamen durch Semikolon getrennt
Syntax: String variable_set. names ()
Beispiel:
Variable_set variable_set = spooler.create_variable_set();
spooler_log.info( "\"" + variable_set.names() + "\"" );
// ==> ""
variable_set.set_var( "variable_1", "edno" );
variable_set.set_var( "variable_2", "dwa" );
spooler_log.info( "\"" + variable_set.names() + "\"" );
"variable_1;variable_2"
// ==>
java.util.StringTokenizer t = new java.util.StringTokenizer( variable_set.names(), ";"
);
while( t.hasMoreTokens() )
{
String name = t.nextToken();
spooler_log.info( name + "=" + variable_set.var( name ) );
}
Rückgabe:
String Die Namen aller Variablen durch Semikolon getrennt.
2.22.4 substitute
Ersetzt $-Variablen in einem String
Syntax: String variable_set. substitute ( String sustitution_string )
Beispiel: in javascript
subprocess.start( subprocess.env.substitute( "${MY_HOME}/my_program" ) );
Software- and Organisations-Service GmbH
März 2015
Java API
103
Im Beispiel wird Subprocess.env verwendet.
Referenzen der Form $ name und ${ name } im String werden durch Variablenwerte ersetzt, siehe auch .
Rückgabe:
String Die Zeichenkette mit den ersetzten $-Variablen
2.22.5 value
Eine Variable
Syntax: void variable_set.set_value ( String name, String value )
Syntax: String variable_set. value ( String name )
Parameter:
name
value
empty, wenn die Variable nicht vorhanden ist.
Rückgabe:
String empty, wenn die Variable nicht vorhanden ist.
2.22.6 var
Eine Variable
Syntax: void variable_set.set_var ( String name, String value )
Syntax: String variable_set. var ( String name )
Verwenden Sie Variable_set.value , das ist in allen Sprachen verfügbar.
Parameter:
name
value
empty, wenn die Variable nicht vorhanden ist.
Rückgabe:
String empty, wenn die Variable nicht vorhanden ist.
Software- and Organisations-Service GmbH
März 2015
Java API
104
2.22.7 xml
Variable_set als XML-Dokument
Syntax: void variable_set.set_xml ( String )
Syntax: String variable_set. xml ()
Beispiel: in javascript
var variable_set = spooler.create_variable_set();
spooler_log.info( variable_set.xml );
// Liefert <?xml version='1.0'?><
sos.spooler.variable_set/>
variable_set.xml= "<?xml version='1.0'?>" +
"<params>" +
"<param name='nachname' value='Meier'/>" +
"<param name='vorname' value='Hans'/>" +
"</params>";
spooler_log.info( variable_set.xml );
spooler_log.info( "nachname=" + variable_set.value( "nachname" ) );
spooler_log.info( "vorname =" + variable_set.value( "vorname" ) );
Siehe <sos.spooler.variable_set> , <params> .
Parameter:
XML-Dokument als String. Liefert <
sos.spooler.variable_set> . Beim Setzen wird der
Name des Wurzelelements nicht beachtet, <params>
oder <sos.spooler.variable_set> kann übergeben
werden.
Rückgabe:
String XML-Dokument als String. Liefert <sos.spooler.variable_set> . Beim Setzen wird der Name des
Wurzelelements nicht beachtet, <params> oder <sos.spooler.variable_set> kann übergeben werden.
2.23 Web_service
Siehe auch <web_service>
2.23.1 forward_xslt_stylesheet_path
Pfad des XSLT-Stylesheets fürs Forwarding
Syntax: String web_service. forward_xslt_stylesheet_path ()
Siehe auch <web_service forward_xslt_stylesheet="">
Software- and Organisations-Service GmbH
März 2015
Java API
105
2.23.2 name
Name des Web-Dienstes im Scheduler
Syntax: String web_service. name ()
Siehe auch <web_service name="">
2.23.3 params
Parameter zur freien Verwendung
Syntax: Variable_set web_service. params ()
Die Parameter des Web-Services können mit <web_service> eingestellt werden.
Rückgabe:
Variable_set 2.24 Web_service_operation
Siehe auch <web_service>
2.24.1 peer_hostname
Hostname der Gegenstelle
Syntax: String web_service_operation. peer_hostname ()
Rückgabe:
String "", wenn der Name nicht ermittelt werden kann.
2.24.2 peer_ip
IP-Adresse der Gegenstelle
Syntax: String web_service_operation. peer_ip ()
Software- and Organisations-Service GmbH
März 2015
Java API
106
2.24.3 request
Anforderung
Syntax: Web_service_request web_service_operation. request ()
Rückgabe:
Web_service_request 2.24.4 response
Antwort
Syntax: Web_service_response web_service_operation. response ()
Rückgabe:
Web_service_response 2.24.5 web_service
Syntax: Web_service web_service_operation. web_service ()
Rückgabe:
Web_service 2.25 Web_service_request
Siehe Web_service_operation .
2.25.1 binary_content
Nutzdaten als Byte-Array (nur Java)
Syntax: byte[] web_service_request. binary_content ()
Die Eigenschaft steht nur unter Java zur Verfügung.
Wie der binäre Inhalt zu interpretieren ist, sollte der Client in im Header-Feld Content-Type mitgeteilt haben (siehe
HTTP/1.1 14.17 Content-Type und Web_service_request.charset_name ).
Software- and Organisations-Service GmbH
März 2015
Java API
107
2.25.2 charset_name
Zeichencodierung
Syntax: String web_service_request. charset_name ()
Beispiel: in javascript
var request = spooler_task.order.web_service_operation.request;
spooler_log.info( request.header( "Content-Type" ) );
spooler_log.info( request.content_type );
spooler_log.info( request.charset_name );
// ==> text/xml; charset=utf-8
// ==> text/xml
// ==> utf-8
Liefert den Parameter charset= aus dem Kopfeintrag Content-Type:.
2.25.3 content_type
Content-Type (ohne Parameter)
Syntax: String web_service_request. content_type ()
Liefert den Kopfeintrag Content-Type: ohne Parameter, z.B. "text/plain".
2.25.4 header
Eintrag im Kopf
Syntax: String web_service_request. header ( String name )
Beispiel: in javascript
spooler_log.info( "Content-Type: " +
spooler_task.order.web_service_operation.request.header( "Content-Type" ) );
Parameter:
name
Die Großschreibung spielt keine Rolle.
Rückgabe:
String Für einen unbekannten Eintrag wird "" geliefert
2.25.5 string_content
Nutzdaten als Text
Software- and Organisations-Service GmbH
März 2015
Java API
108
Syntax: String web_service_request. string_content ()
Die Zeichen-Codierung wird dem Parameter charset aus headers( "Content-Type" ) entnommen (siehe
HTTP/1.1 14.17 Content-Type). Fehlt der Parameter, wird ISO-8859-1 angenommen.
Folgende Zeichen-Codierungen (Charset) werden erkannt:
•
•
ISO-8859-1
UTF-8 (nur Windows und beschränkt auf den Zeichenvorrat von ISO-8859-1)
Siehe auch Web_service_request.binary_content .
2.25.6 url
Uniform Resource Locator
Syntax: String web_service_request. url ()
url = "http://" + header( "Host" ) + url_pfad
2.26 Web_service_response
Die Eigenschaft binary_content steht nur unter Java zur Verfügung.
Siehe auch <web_service>
2.26.1 charset_name
Zeichencodierung
Syntax: String web_service_response. charset_name ()
Beispiel: in javascript
var request = spooler_task.order.web_service_operation.request;
spooler_log.info( request.header( "Content-Type" ) );
spooler_log.info( request.content_type );
spooler_log.info( request.charset_name );
// ==> text/xml; charset=utf-8
// ==> text/xml
// ==> utf-8
Zugriff auf den Parameter charset= aus dem Kopfeintrag Content-Type:.
2.26.2 content_type
Content-Type (ohne Parameter)
Software- and Organisations-Service GmbH
März 2015
Java API
109
Syntax: String web_service_response. content_type ()
Zugriff auf den Kopfeintrag Content-Type: ohne dazugehörige Parameter (z.B. charset=).
2.26.3 header
Eintrag im Kopf
Syntax: void web_service_response.set_header ( String value, String name )
Syntax: String web_service_response. header ( String name )
Beispiel: in javascript
spooler_log.info( "Content-Type: " + spooler_task.order.web_service_operation.header(
"Content-Type" ) );
Parameter:
value
Für einen umbekannten Eintrag wird "" verwendet
name
Die Großschreibung spielt keine Rolle.
Rückgabe:
String Für einen umbekannten Eintrag wird "" verwendet
2.26.4 send
Antwort senden
Syntax: void web_service_response. send ()
2.26.5 status_code
HTTP-Status-Code
Syntax: void web_service_response.set_status_code ( int )
Voreingestellt ist 200 (OK).
Software- and Organisations-Service GmbH
März 2015
Java API
110
2.26.6 string_content
Nutzdaten als Text
Syntax: void web_service_response.set_string_content ( String text )
Beispiel: in javascript
var response = spooler_task.order.web_service_operation.response;
response.content_type = "text/plain";
response.charset_name = "iso-8859-1";
response.string_content = "This is the answer";
response.send();
Zuvor muss header( "Content-Type" ) mit dem Parameter charset gesetzt sein, zum Beispiel
header( "Content-Type" ) = "text/plain; charset=iso-8859-1";
Der Text wird nach dem Parameter charset codiert. Fehlt der Parameter, wird ISO-8859-1 angenommen.
Zu den hier zulässigen Zeichen-Codierungen (Charset) siehe Web_service_request.string_content
Siehe Web_service_response.charset_name .
2.27 Xslt_stylesheet
Mit einem XSLT-Stylesheet wird die Konvertierung eines XML-Dokuments in ein anderes beschrieben.
Der XSLT-Prozessor ist mit libxslt implementiert.
2.27.1 apply_xml
Wendet das Stylesheet auf ein XML-Dokument an.
Syntax: String x. apply_xml ( String xml )
2.27.2 close
Gibt die Ressourcen des Stylesheets frei
Syntax: void x. close ()
2.27.3 load_file
Lädt das Stylesheet aus einer XML-Datei
Software- and Organisations-Service GmbH
März 2015
Java API
111
Syntax: void x. load_file ( java.io.File path )
Syntax: void x. load_file ( String path )
2.27.4 load_xml
Lädt das Stylesheet aus einem XML-Dokument
Syntax: void x. load_xml ( String xml )
Software- and Organisations-Service GmbH
März 2015
Javascript API
112
3 Javascript API
Für Javascript stehen die folgenden Klassen zur Verfügung:
3.1 Error
3.1.1 code
Der Fehlercode
Syntax: string error. code
3.1.2 is_error
true, wenn ein Fehler vorliegt
Syntax: boolean error. is_error
3.1.3 text
Fehlertext (mit Fehlercode)
Syntax: string error. text
3.2 Job
Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen.
3.2.1 clear_delay_after_error
Nimmt alle delay_after_error zurück
Syntax: spooler_job. clear_delay_after_error ()
3.2.2 clear_when_directory_changed
Nimmt alle start_when_directory_changed() zurück
Software- and Organisations-Service GmbH
März 2015
Javascript API
113
Syntax: spooler_job. clear_when_directory_changed ()
3.2.3 configuration_directory
Verzeichnis der Konfigurationsdatei des Jobs
Syntax: string spooler_job. configuration_directory
"", wenn der Job nicht aus einem Konfigurationsverzeichnis stammt.
3.2.4 delay_after_error
Verzögert erneuten Jobstart nach Fehler
Syntax: spooler_job. delay_after_error ( int error_steps ) = double|int|string seconds_or_hhmm_ss
Beispiel:
spooler_job.delay_after_error( 2
Fehler um 10 Sekunden verzögern
spooler_job.delay_after_error( 5
Fehler um eine Minute verzögern
spooler_job.delay_after_error( 10
Fehler um einen Tag verzögern
spooler_job.delay_after_error( 20
Fehler den Job stoppen
) = 10;
// Ab dem 2. aufeinanderfolgenden
) = "00:01";
// Ab dem 5. aufeinanderfolgenden
) = "24:00";
// Ab dem 10. aufeinanderfolgenden
) = "STOP";
// Beim 20. aufeinanderfolgenden
Nach einem Fehler wiederholt der JobScheduler den Job sofort.
Nach dem zweiten bis zum vierten Fehler verzögert der JobScheduler den Job um 10 Sekunden,
nach dem fünften bis zum neunten Fehler um eine Minute,
nach dem zehnten bis zum neunzehnten um 24 Stunden,
nach dem zwanzigsten aufeinanderfolgenden Fehler schließlich stoppt der Job.
Für verschiedene Anzahlen aufeinanderfolgender Fehler kann eine Verzögerung eingestellt werden. Der Job wird
dann nicht gestoppt, sondern die angegebene Zeit verzögert und erneut gestartet.
Der Aufruf kann für verschiedene Anzahlen wiederholt werden. Man wird jeweils eine längere Verzögerung
angeben.
Wenn Sie den Parameter seconds_or_hhmm_ss als String übergeben, können Sie auch "STOP" angeben. Der Job
stoppt, wenn er die angegebene Anzahl aufeinanderfolgende Fehler erreicht hat.
Eine gute Stelle für die Aufrufe ist spooler_init() .
Siehe <delay_after_error> .
Parameter:
error_steps
Anzahl der aufeinanderfolgenden Jobfehler, ab der die Verzögerung gilt
seconds_or_hhmm_ss
Frist, nach der der Job wiederholt wird
Software- and Organisations-Service GmbH
März 2015
Javascript API
114
3.2.5 delay_order_after_setback
Stellt Aufträge nach Fehler zurück
Syntax: spooler_job.
delay_order_after_setback
(
int
setback_count
) = double|int|string
seconds_or_hhmm_ss
Beispiel:
spooler_job.delay_order_after_setback( 1 ) = 60;
Rückstellung desselben Auftrags:
// 1. bis 2. aufeinderfolgende
// Auftrag um 60s verzögern.
spooler_job.delay_order_after_setback( 3 ) = "01:00";
Rückstellung desselben Auftrags:
// Ab 3. aufeinanderfolgender
// Auftrag um eine Stunde
verzögern.
spooler_job.max_order_setbacks = 5;
versetzt den Auftrag in den Fehlerzustand
// Die 5. Rückstellung
Ein Auftragsjob kann einen Auftrag, den er gerade ausführt, mit Order.setback() zurückstellen. Er wird dann an
eine hintere Stelle der Auftragswarteschlange des Jobs eingereiht und kommt nach der eingestellten Zeit erneut
zur Ausführung.
Die aufeinanderfolgenden Rückstellungen eines Auftrags werden gezählt. Mit delay_order_after_setback
können Sie verschiedene Fristen für wiederholte Rückstellungen festlegen.
Siehe <delay_order_after_setback> , Order.setback() , Job.max_order_setbacks , Job_chain.add_job() ,
Job.delay_after_error() .
Parameter:
setback_coun
t
Für die 1., 2. usw. aufeinanderfolgende Rückstellung desselben Auftrags können verschiedene
Fristen eingestellt werden.
seconds_or_h
hmm_ss
Frist für die Rückstellung. Nach Ablauf der Frist kommt der Auftrag erneut in diesem Job zur
Ausführung.
3.2.6 folder_path
Pfad des Ordners, in dem der Job sich befindet.
Syntax: string spooler_job. folder_path
"", wenn der Job nicht aus dem lokalen Konfigurationsverzeichnis ( <config configuration_directory=""> )
stammt.
Liefert den Pfad des Jobs relativ zum Live-Directory. Der Pfad beginnt mit einem "/", alle Bestandteile eines Pfads
sind durch "/" getrennt
Beispiele:
Software- and Organisations-Service GmbH
März 2015
Javascript API
•
•
•
115
für einen Job c:\scheduler\config\live\somewhere\excel\sample.job.xml wird "/somewhere/excel"
zurückgeliefert
für einen Job c:\scheduler\config\live\sample.xml wird "/" zurückgeliefert
für einen Job außerhalb des Live-Verzeichnisses wird "" (Leerstring) zurückgeliefert
3.2.7 include_path
Wert der Option -include-path=
Syntax: string spooler_job. include_path
Siehe -include-path .
3.2.8 max_order_setbacks
Begrenzt die Anzahl der Rückstellungen eines Auftrags
Syntax: spooler_job. max_order_setbacks = int
Wenn derselbe Auftrag mehr als hier angegeben aufeinderfolgend zurückgesetzt worden ist (s. Order.setback()
), gerät er in den Fehlerzustand (s. Job_chain_node.error_state ).
Siehe Job.delay_order_after_setback und <delay_order_after_setback is_maximum="yes"> .
3.2.9 name
Pfad des Jobs ohne beginnenden Schrägstrich
Syntax: string spooler_job. name
Siehe <job name=""> .
3.2.10 order_queue
Auftragswarteschlange des Jobs
Syntax: Order_queue spooler_job. order_queue
Beispiel:
spooler_log.info( 'order=' + ( spooler_job.order_queue ? "yes" : "no" ) );
Ein Auftragsjob ( <job order="yes"> ) hat eine Auftragswarteschlange. Die Auftragswarteschlange wird über eine
Jobkette, in der der Job eingetragen ist, gefüllt.
Software- and Organisations-Service GmbH
März 2015
Javascript API
116
Siehe Job_chain.add_order() , Job_chain.add_job() .
Rückgabe:
Order_queue null, wenn der Job keine Auftragswarteschlange hat (bei <job order="no"> ).
3.2.11 process_class
Die Prozessklasse
Syntax: Process_class spooler_job. process_class
Siehe <job process_class=""> .
Rückgabe:
Process_class 3.2.12 remove
Entfernt den Job
Syntax: spooler_job. remove ()
Der Job wird gestoppt, d.h. laufende Tasks werden beendet, keine neuen werden gestartet. Sobald keine Task
mehr läuft, wird der Job entfernt.
Tasks in der Warteschlange werden ignoriert.
Wenn keine Task des Jobs läuft, entfernt remove() den Job sofort.
Auftragsjobs ( <job order="yes"> ) können nicht entfernt werden.
Siehe <modify_job cmd="remove"> .
3.2.13 setback_max
Wie oft kann ein Auftrag zurückgestellt werden?
Syntax: spooler_job. setback_max = int
Syntax: int spooler_job. setback_max
Siehe <delay_order_after_setback is_maximum="yes"> .
Software- and Organisations-Service GmbH
März 2015
Javascript API
117
3.2.14 start
Erzeugt eine neue Task und reiht sie in die Task-Warteschlange ein
Syntax: Task spooler_job. start ( Variable_set variables (optional) )
Beispiel:
spooler.job( "job_a" ).start();
var parameters = spooler.create_variable_set();
parameters.value( "my_parameter" ) = "my_value";
parameters.value( "other_parameter" ) = "other_value";
spooler.job( "job_a" ).start( parameters );
Die Parameter stehen der Task mit Task.params zur Verfügung. Zwei besondere Parameter können angegeben
werden:
"spooler_task gibt der Task einen Namen, der in den Statusanzeigen erscheint.
_name"
"spooler_star gibt eine Zeit in Sekunden (reelle Zahl) an, nach deren Ablauf die Task zu starten ist. Dabei wird
t_after"
<run_time> nicht beachtet.
Siehe Spooler.create_variable_set() , Spooler.job , Variable_set.value .
Rückgabe:
Task 3.2.15 start_when_directory_changed
Überwacht ein Verzeichnis und lässt bei Änderung eine Task starten
Syntax: spooler_job.
start_when_directory_changed
filename_pattern (optional) )
(
string
directory_path,
string
Beispiel:
spooler_job.start_when_directory_changed( "c:/tmp" );
// Nur Dateien beachten, deren Name nicht auf "~" endet.
spooler_job.start_when_directory_changed( "c:/tmp", "^.*[^~]$" );
Wenn keine Task des Jobs läuft und sich das Verzeichnis geändert hat (eine Datei hinzukommt, umbenannt oder
entfernt wird), startet der JobScheduler innerhalb der <run_time> eine Task.
Um mehrere Verzeichnisse zu überwachen, kann der Aufruf wiederholt werden. Ein Aufruf mit einem bereits
angegebenen Verzeichnis erneuert die Überwachung.
Der Aufruf kann im Scheduler-Skript oder in spooler_init() des Jobs codiert werden. Im letzteren Fall muss der
Job zu Beginn einmal starten, damit der Aufruf wirksam wird. Verwenden Sie dazu die Einstellung <run_time
once="yes"> .
Der Job sollte mit <run_time repeat=""> periodisch gestartet und mit <delay_after_error> versehen werden.
Software- and Organisations-Service GmbH
März 2015
Javascript API
118
Dieselbe Einstellung können Sie auch in der XML-Konfiguration mit <start_when_directory_changed>
vornehmen.
Siehe auch JobScheduler Dokumentation.
Parameter:
directory_path
Pfad des zu überwachenden Verzeichnisses
filename_patter Beschränkt die Überwachung auf Dateinamen, die dem Regulären Ausdruck entsprechen.
n
3.2.16 state_text
Freier Text für den Zustand des Jobs
Syntax: spooler_job. state_text = string
Beispiel:
spooler_job.state_text = "Step C succeeded";
Der Text wird in der HTML-Oberfläche gezeigt.
Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen.
3.2.17 title
Titel des Jobs
Syntax: string spooler_job. title
Beispiel:
spooler_log.info( "Job title=" + spooler_job.title );
Siehe <job title=""> .
3.2.18 wake
Veranlasst den Start einer Task
Syntax: spooler_job. wake ()
Wenn der Job im Zustand pending oder stopped ist (also keine Task läuft), startet der Aufruf eine Task.
Siehe Job.start() .
Software- and Organisations-Service GmbH
März 2015
Javascript API
119
3.3 Job_chain - Jobkette zur Auftragsverarbeitung
Eine Jobkette (Job_chain) ist eine Kette von Jobs (Jobkettenknoten oder Stellen). Diese Kette wird von Aufträgen (
Order ) durchlaufen.
Jeder Stelle in der Jobkette ist ein Zustand und ein Job zugeordnet. Wenn ein Auftrag der Jobkette hinzugefügt
wird, setzt der JobScheduler ihn an die seinem Zustand entsprechende Stelle. Der dieser Stelle zugeordnete Job
führt den Auftrag aus.
Jede Stelle hat außerdem einen Folgezustand und einen Fehlerzustand. Nach der Verarbeitung eines Auftrags
durch einen Jobschritt ändert der JobScheduler den Zustand des Auftrags. Wenn der Jobschritt (spooler_process)
true liefert, stellt der JobScheduler den Folgezustand, sonst den Fehlerzustand ein. Der Auftrag rutscht damit an
eine andere Stelle der Jobkette, die dem neuen Zustand zugeordnet ist. Das gilt nicht, wenn der Zustand während
der Ausführung mit Order.state verändert worden ist.
Sie erzeugen eine Jobkette mit Spooler.create_job_chain() , füllen sie mit Job_chain.add_job() und
Job_chain.add_end_state() und machen sie schließlich mit Spooler.add_job_chain() bekannt.
Jeder Knoten ist eindeutig einem Zustand zugeordnet. Für jeden Zustand muss genau einmal
Job_chain.add_job() oder Job_chain.add_end_state() aufgerufen werden.
Beispiel:
var my_job_chain = spooler.create_job_chain();
my_job_chain.name = "Jobkette";
my_job_chain.add_job( "job_100", 100, 200, 999 );
my_job_chain.add_job( "job_200", 200, 1000, 999 );
my_job_chain.add_end_state( 999 );
my_job_chain.add_end_state( 1000 );
spooler.add_job_chain( my_job_chain );
3.3.1 add_end_state
Fügt der Jobkette einen Endknoten hinzu
Syntax: job_chain. add_end_state ( var state )
Diesem Knoten ist kein Job zugeordnet. Ein Auftrag, der einen Endknoten erreicht, hat die Jobkette durchlaufen
und wird vom JobScheduler aus ihr entfernt.
3.3.2 add_job
Erweitert die Jobkette um einen Job
Syntax: job_chain. add_job ( string job_name, var input_state, var output_state, var error_state
)
Software- and Organisations-Service GmbH
März 2015
Javascript API
120
3.3.3 add_or_replace_order
Gibt einen Auftrag in die Jobkette und ersetzt ggfs. einen mit gleicher Kennung
Syntax: job_chain. add_or_replace_order ( Order order )
Hat die Jobkette bereits einen Auftrag mit gleicher Kennung, dann wird dieser ersetzt. Genauer: Er wird aus der
Jobkette entfernt, und der neue Auftrag wird hinzugefügt.
Solange eine Task den vorhandenen Auftrag ausführt, sind im JobScheduler zwei Aufträge mit gleicher Kennung
vorhanden. Allerdings ist der vorhandene Auftrag aus der Jobkette und aus der Datenbank bereits entfernt. Er ist
nur noch für die Task nutzbar und verschwindet nach der Ausführung.
In diesem Fall wartet der JobScheduler die Ausführung des neuen Auftrags ab, bis die Ausführung des alten
Auftrags beendet ist.
Siehe Job_chain.add_order() und Order.remove_from_job_chain()
3.3.4 add_order
Gibt einen Auftrag in die Jobkette
Syntax: Order job_chain. add_order ( Order |string order_or_payload )
Wenn der Auftrag in einer anderen Jobkette enthalten ist, entfernt der JobScheduler ihn daraus.
Der Auftrag wird in die Auftragswarteschlange des Jobs, der seinem Zustand entspricht, gemäß seiner Priorität
eingeordnet.
Die Jobkette mit muss <job_chain> oder Spooler.add_job_chain() dem JobScheduler bekannt gemacht
worden sein.
Wenn die Jobkette bereits einen Auftrag mit gleicher Order.id enthält, wird eine Exception mit Fehlercode
SCHEDULER-186 geliefert. Siehe aber Job_chain.add_or_replace_order() .
Rückgabe:
Order 3.3.5 name
Name der Jobkette
Syntax: job_chain. name = string
Syntax: string job_chain. name
Beispiel:
var job_chain = spooler.create_job_chain();
job_chain.name = "Jobkette";
Software- and Organisations-Service GmbH
März 2015
Javascript API
121
3.3.6 node
Der Jobkettenknoten zum angegebenen Zustand
Syntax: Job_chain_node job_chain. node ( var state )
Rückgabe:
Job_chain_node 3.3.7 order_count
Anzahl der Aufträge in der Jobkette
Syntax: int job_chain. order_count
3.3.8 order_queue
= node(state).job().order_queue()
Syntax: Order_queue job_chain. order_queue ( var state )
Liefert die Auftragswarteschlange des Jobs, der dem angegebenen Zustand zugeordnet ist.
Rückgabe:
Order_queue 3.3.9 orders_recoverable
Syntax: job_chain. orders_recoverable = boolean
Syntax: boolean job_chain. orders_recoverable
Siehe <job_chain orders_recoverable=""> .
3.3.10 remove
Entfernt die Jobkette
Syntax: job_chain. remove ()
Wenn gerade Aufträge der Jobkette verarbeitet werden (in spooler_process() ), dann entfernt der JobScheduler
die Jobkette, sobald der letzte Auftrag verarbeitet worden ist.
Software- and Organisations-Service GmbH
März 2015
Javascript API
122
Die Aufträge bleiben in der Datenbank erhalten. Wenn später eine Jobkette mit gleichen Namen hinzugefügt wird (
Spooler.add_job_chain() ), dann lädt der JobScheduler diese Aufträge erneut. Die Zustände der Aufträge
müssen in der erneuerten Jobkette vorhanden sein.
3.3.11 title
Syntax: job_chain. title = string
Syntax: string job_chain. title
Siehe <job_chain title=""> .
3.4 Job_chain_node
Ein Jobkettenknoten beschreibt eine Stelle in einer Jobkette ( Job_chain ). Einem Jobkettenknoten sind
zugeordnet: ein Zustand, ein Job, ein Folgezustand und ein Fehlerzustand.
Ein Jobkettenknoten wird mit Job_chain.add_job() oder mit Job_chain.add_end_state() erzeugt.
3.4.1 action
Jobkettenknoten stoppen oder überspringen
Syntax: node. action = string
Syntax: string node. action
Beispiel:
var job_chain_node = spooler.job_chain( "my_job_chain" ).node( 100 );
job_chain_node.action = "next_state";
Für eine verteilte Jobkette nicht möglich.
Mögliche Angaben sind
action="process"
Das ist die Voreinstellung. Aufträge werden ausgeführt.
action="stop"
Aufträge werden nicht ausgeführt, sie sammeln sich in der Auftragswarteschlange an.
action="next_state"
Aufträge werden sofort dem mit next_state bestimmten Folgeknoten übergeben.
Siehe auch <job_chain_node.modify action=""> .
In Java sind für Zeichenketten Konstanten definiert:
Software- and Organisations-Service GmbH
März 2015
Javascript API
•
•
•
123
Job_chain_node.ACTION_PROCESS
Job_chain_node.ACTION_STOP
Job_chain_node.ACTION_NEXT_STATE
3.4.2 error_node
Nächster Knoten in der Jobkette für den Fehlerfall
Syntax: Job_chain_node node. error_node
Beispiel:
var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 );
spooler_log.debug( "error state=" + job_chain_node.error_node.state );
"state=999"
//
Rückgabe:
Job_chain_node null, wenn es keinen Fehler-Knoten gibt (Fehlerzustand ist nicht angegeben)
3.4.3 error_state
Zustand in der Jobkette für den Fehlerfall
Syntax: var node. error_state
Beispiel:
var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 );
spooler_log.debug( "error state=" + job_chain_node.error_node.state );
state=999"
// "error
3.4.4 job
Job, der dem Knoten zugeordnet ist
Syntax: Job node. job
Beispiel:
var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 );
spooler_log.debug( "job=" + job_chain_node.job.name );
"job=job_100"
//
Rückgabe:
Job Software- and Organisations-Service GmbH
März 2015
Javascript API
124
3.4.5 next_node
Syntax: Job_chain_node node. next_node
Rückgabe:
Job_chain_node 3.4.6 next_state
Zustand in der Jobkette für den Erfolgsfall
Syntax: var node. next_state
Beispiel:
var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 );
spooler_log.debug( "next_state=" + job_chain_node.next_state );
"state=200"
//
3.4.7 state
Zustand, für den dieser Jobkettenknoten gilt
Syntax: var node. state
Beispiel:
var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 );
spooler_log.info( "state=" + job_chain_node.state );
"state=100"
//
3.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript
Der Methoden eines Jobs werden in folgender Reihenfolge aufgerufen.
spooler_init()
spooler_open()
spooler_process()
spooler_process()
...
spooler_close()
spooler_on_success() oder spooler_on_error()
spooler_exit()
Software- and Organisations-Service GmbH
März 2015
Javascript API
125
Keine dieser Methoden muss implementiert werden. In der Regel wird wenigstens spooler_process()
implementiert.
Ein Fehler beim Ausführen des Job-Skripts während des Ladens oder in spooler_init() führt zum Aufruf von
spooler_on_error() . Der Job wird gestoppt. spooler_exit() wird gerufen (obwohl spooler_init() nicht
gerufen worden ist!) und das Skript entladen.
spooler_on_error() muss also auch mit Fehlern umgehen, die beim Laden oder in spooler_init() auftreten.
spooler_exit() wird gerufen, auch wenn spooler_init() nicht gerufen worden ist.
3.5.1 spooler
Das allgemeine Objekt des Schedulers
Syntax: Spooler spooler
Beispiel:
spooler_log.debug( "The working directory of the JobScheduler is " + spooler.directory
);
Rückgabe:
Spooler 3.5.2 spooler_close
Task-Ende
Syntax: spooler_close ()
Wird am Ende eines Joblaufs gerufen. Gegenstück zu spooler_open() .
3.5.3 spooler_exit
Destruktor
Syntax: spooler_exit ()
Wird als allerletzte Methode gerufen, bevor das Skript entladen wird. Hier kann z.B. eine Datenbank-Verbindung
geschlossen werden.
3.5.4 spooler_init
Initialisierung
Syntax: boolean spooler_init ()
Software- and Organisations-Service GmbH
März 2015
Javascript API
126
Der JobScheduler ruft diese Methode nach dem Konstruktor und vor spooler_open() genau einmal auf.
Gegenstück ist spooler_exit() . Die Methode ist geeignet, um die Task zu initialisieren (z.B. um eine
Datenbank-Verbindung aufzubauen).
Rückgabe:
boolean false beendet die Task. Der JobScheduler setzt mit spooler_exit() fort. Wenn die Task einen Auftrag
verarbeiten soll, wird die Task mit Fehler beendet, was den Job stoppt (wenn nicht Job.delay_after_error
gesetzt ist).
3.5.5 spooler_job
Das Objekt des Jobs
Syntax: Job spooler_job
Beispiel:
spooler_log.info( "The name of this job is " + spooler_job.name );
Rückgabe:
Job 3.5.6 spooler_log
Zum Protokollieren
Syntax: Log spooler_log
Beispiel: in java
spooler_log.info( "Something has happend" );
Rückgabe:
Log 3.5.7 spooler_on_error
Bei Task-Ende im Fehlerfall
Syntax: spooler_on_error ()
Wird als letzte Funktion eines Joblaufs gerufen, wenn ein Fehler aufgetreten ist (nach spooler_close() und vor
spooler_exit() ).
Software- and Organisations-Service GmbH
März 2015
Javascript API
127
3.5.8 spooler_on_success
Bei Task-Ende im Erfolgsfall
Syntax: spooler_on_success ()
Wird nach spooler_close() , vor spooler_exit() aufgerufen, wenn kein Fehler aufgetreten ist.
3.5.9 spooler_open
Task-Beginn
Syntax: boolean spooler_open ()
Wird zu Beginn einer Task gerufen. Die Methode wird direkt nach spooler_init() gerufen, es gibt derzeit keinen
Unterschied. Gegenstück ist spooler_close() .
3.5.10 spooler_process
Jobschritt oder Ausführung eines Auftrags
Syntax: boolean spooler_process ()
Führt einen Jobschritt aus.
Ein Auftragsjob erhält in Task.order den auszuführenden Auftrag.
Die Default-Implementierung gibt false zurück. Ein Auftragsjob versetzt aber einen Auftrag in den Folgezustand.
Rückgabe:
boolean Bei <job order="no"> : false beendet den Joblauf.
Bei <job order="yes"> : false versetzt den Auftrag in den Fehlerzustand (s. Job_chain_node und <
job_chain_node> ). Das gilt nicht, wenn der Zustand während der Ausführung mit Order.state verändert worden
ist.
3.5.11 spooler_task
Das Objekt der Task
Syntax: Task spooler_task
Beispiel:
spooler_log.info( "The task id is " + spooler_task.id );
Software- and Organisations-Service GmbH
März 2015
Javascript API
128
Rückgabe:
Task 3.6 Lock
Siehe auch <lock name=""> .
Beispiel:
var locks = spooler.locks;
var lock = locks.create_lock();
lock.name = "my_lock";
locks.add_lock( lock );
3.6.1 max_non_exclusive
Begrenzung der nicht-exklusiven Belegungen
Syntax: lock. max_non_exclusive = int
Syntax: int lock. max_non_exclusive
Die Voreinstellung ist unbegrenzt (231-1), es können also mit <lock.use exclusive="no"> beliebig viele
nicht-exklusive Tasks gestartet werden (aber nur eine exklusive).
Die Zahl kann nicht kleiner sein als die Zahl der nicht-exklusiven Belegungen.
Siehe auch <lock max_non_exclusive=""> .
3.6.2 name
Name der Sperre
Syntax: lock. name = string
Syntax: string lock. name
Der Name kann nur einmal gesetzt und nicht geändert werden.
Siehe auch <lock name=""> .
3.6.3 remove
Entfernt die Sperre
Syntax: lock. remove ()
Software- and Organisations-Service GmbH
März 2015
Javascript API
129
Beispiel:
spooler.locks.lock( "my_lock" ).remove();
Die Sperre kann nur gelöscht werden, wenn sie von keiner Task belegt und von keinem Job gebraucht ( <lock.use
> ) wird.
Siehe auch <lock.remove> .
3.7 Locks
3.7.1 add_lock
Fügt dem JobScheduler eine Sperre hinzu
Syntax: locks. add_lock ( Lock lck )
3.7.2 create_lock
Richtet eine neue Sperre ein
Syntax: Lock locks. create_lock ()
Liefert eine neues Lock . Diese Sperre kann mit Locks.add_lock() dem JobScheduler hinzugefügt werden.
Rückgabe:
Lock 3.7.3 lock
Liefert eine Sperre
Syntax: Lock locks. lock ( string lock_name )
Wenn die Sperre nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Lock Software- and Organisations-Service GmbH
März 2015
Javascript API
130
3.7.4 lock_or_null
Liefert eine Sperre
Syntax: Lock locks. lock_or_null ( string lock_name )
Rückgabe:
Lock null, wenn die Sperre nicht bekannt ist.
3.8 Log - Protokollierung
In einem Job oder im Scheduler-Skript stellt spooler_log die hier beschriebenen Methoden bereit.
eMail-Versand
Am Ende einer Task kann der JobScheduler das Task-Protokoll per eMail versenden. In es versendet werden soll,
geben diese Eigenschaften an:
•
•
•
•
•
Log.mail_on_error ,
Log.mail_on_warning ,
Log.mail_on_process ,
Log.mail_on_success und
Log.mail_it
Nur das Ende der Task, nicht das Ende einer Auftragsausführung (also spooler_process() ) führt zum
eMail-Versand. Siehe aber Task.end() .
Log.mail stellt ein Mail -Objekt bereit, das die Adressierung übernimmt.
Beispiel:
spooler_log.info( "Something for the Log" );
spooler_log.mail_on_warning = true;
spooler_log.mail.from
= "scheduler@company.com";
spooler_log.mail.to
= "admin@company.com";
spooler_log.mail.subject = "ended";
3.8.1 debug
Debug-Meldung (Level -1)
Syntax: spooler_log. debug ( string line )
3.8.2 debug1
Debug-Meldung (Level -1)
Software- and Organisations-Service GmbH
März 2015
Javascript API
131
Syntax: spooler_log. debug1 ( string line )
3.8.3 debug2
Debug-Meldung (Level -2)
Syntax: spooler_log. debug2 ( string line )
3.8.4 debug3
Debug-Meldung (Level -3)
Syntax: spooler_log. debug3 ( string line )
3.8.5 debug4
Debug-Meldung (Level -4)
Syntax: spooler_log. debug4 ( string line )
3.8.6 debug5
Debug-Meldung (Level -5)
Syntax: spooler_log. debug5 ( string line )
3.8.7 debug6
Debug-Meldung (Level -6)
Syntax: spooler_log. debug6 ( string line )
3.8.8 debug7
Debug-Meldung (Level -7)
Syntax: spooler_log. debug7 ( string line )
Software- and Organisations-Service GmbH
März 2015
Javascript API
132
3.8.9 debug8
Debug-Meldung (Level -8)
Syntax: spooler_log. debug8 ( string line )
3.8.10 debug9
Debug-Meldung (Level -9)
Syntax: spooler_log. debug9 ( string line )
3.8.11 error
Fehlermeldung (Level 1)
Syntax: spooler_log. error ( string line )
Wenn die Fehlermeldung ins Task-Protokoll ( spooler_log ) geschrieben wird und nicht <job
stop_on_error="no"> eingestellt ist, stoppt der Job nach Ende der Task.
3.8.12 filename
Dateiname des Protokolls
Syntax: string spooler_log. filename
3.8.13 info
Informationsmeldung (Level 0)
Syntax: spooler_log. info ( string line )
3.8.14 last
Letzte Ausgabe des angegebenen Levels
Syntax: string spooler_log. last ( int|string level )
Software- and Organisations-Service GmbH
März 2015
Javascript API
133
3.8.15 last_error_line
Die zuletzt mit Level 2 (error) ausgegebene Zeile
Syntax: string spooler_log. last_error_line
3.8.16 level
Protokollausgaben beschränken
Syntax: spooler_log. level = int
Syntax: int spooler_log. level
Legt fest, ab welcher Stufe der JobScheduler Protokollzeilen ausgibt. Jede Protokollzeile ist auf einer der
folgenden Stufen: error, warn, info, debug1 bis debug9 (debug1 ist dasselbe wie debug).
Nur Meldungen ab dem Level werden ausgegeben.
Dabei bedeutet die numerische Angabe:
-9 bis -2:
debug9 bis debug2
-1:
debug
0:
info
1:
warn
2:
error
Die Option -log-level hat Vorrang.
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_level=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_level=…) wird damit überschrieben.
Nur Meldungen ab dem Level werden ausgegeben.
Dabei bedeutet die numerische Angabe:
-9 bis -2:
debug9 bis debug2
-1:
debug
0:
info
1:
warn
2:
error
Software- and Organisations-Service GmbH
März 2015
Javascript API
134
3.8.17 log
Syntax: spooler_log. log ( int level, string line )
3.8.18 log_file
Protokolliert den Inhalt der Datei
Syntax: spooler_log. log_file ( string path )
Protokolliert den Inhalt der Datei mit Level 0 (info). Ein Fehler beim Zugriff auf die Datei wird als Warnung
protokolliert.
Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wird die Datei vom
Dateisystem des Schedulers, nicht der Task, gelesen.
3.8.19 mail
Im Mail-Objekt können Sie Einstellungen zur eMail vornehmen
Syntax: spooler_log. mail = Mail
Syntax: Mail spooler_log. mail
Rückgabe:
Mail 3.8.20 mail_it
Versand erzwingen
Syntax: spooler_log. mail_it = boolean
Bei true wird das Protokoll bei Task-Ende verschickt unabhängig von den Einstellungen Log.mail_on_error ,
Log.mail_on_warning , Log.mail_on_success , Log.mail_on_process und Log.mail_on_error .
3.8.21 mail_on_error
Mit Fehler beendete Task verschickt eMail
Syntax: spooler_log. mail_on_error = boolean
Syntax: boolean spooler_log. mail_on_error
Software- and Organisations-Service GmbH
März 2015
Javascript API
135
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_error=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_error=…) wird damit überschrieben.
3.8.22 mail_on_process
Task mit spooler_process() verschickt eMail
Syntax: spooler_log. mail_on_process = int
Syntax: int spooler_log. mail_on_process
Veranlasst den Versand des Task-Protokolls, wenn die Task wenigstens die angegebene Anzahl Schritte, also
Aufrufe von spooler_process() , ausgeführt hat. Weil Nicht-API-Tasks keine Schritte haben, zählt der
JobScheduler für sie immer einen Schritt.
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_process=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_process=…) wird damit überschrieben.
3.8.23 mail_on_success
Erfolgreich gelaufende Task verschickt eMail
Syntax: spooler_log. mail_on_success = boolean
Syntax: boolean spooler_log. mail_on_success
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_success=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_success=…) wird damit überschrieben.
3.8.24 mail_on_warning
Wenn eine Warnung ausgegeben worden ist, wird am Task-Ende eine eMail verschickt
Syntax: spooler_log. mail_on_warning = boolean
Syntax: boolean spooler_log. mail_on_warning
Damit im Fehlerfall eine Mail verschickt wird, ist mail_on_error=yes explizit zu setzen.
Software- and Organisations-Service GmbH
März 2015
Javascript API
136
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_warning=…) wird damit überschrieben.
3.8.25 new_filename
Neuer Dateiname fürs Protokoll
Syntax: spooler_log. new_filename = string
Syntax: string spooler_log. new_filename
Setzt den Dateinamen fürs Protokoll. Wenn das Protokoll geschlossen wird, kopiert der JobScheduler es in diese
Datei. Die Datei steht dann der Anwendung zur Verfügung.
3.8.26 start_new_file
Nur fürs Hauptprotokoll: Schließt das bisherige und beginnt ein neues Protokoll
Syntax: spooler_log. start_new_file ()
3.8.27 warn
Warnung (Level 2)
Syntax: spooler_log. warn ( string line )
3.9 Mail - eMail-Versand
Siehe Log.mail .
3.9.1 add_file
Fügt einen Anhang hinzu
Syntax: mail. add_file ( string path, string filename_for_mail (optional) , string content_type
(optional) , string enconding (optional) )
Beispiel:
spooler_log.mail.add_file( "c:/tmp/1.txt", "1.txt", "text/plain", "quoted-printable" );
Parameter:
path
Pfadname der anzuhängenden Datei
Software- and Organisations-Service GmbH
März 2015
Javascript API
137
filename_for_mail
Dateiname, der in der Nachricht erscheinen soll
content_type
"text/plain" ist voreingestellt.
enconding
Z.B. "quoted-printable"
3.9.2 add_header_field
Fügt dem eMail-Kopf ein Feld hinzu
Syntax: mail. add_header_field ( string field_name, string value )
3.9.3 bcc
Unsichtbarer Empfänger einer Kopie der Nachricht, blind carbon copy
Syntax: mail. bcc = string
Syntax: string mail. bcc
Beispiel:
spooler_log.mail.bcc = "hans@company.com";
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_bcc=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_bcc=…) wird damit überschrieben.
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
3.9.4 body
Inhalt der Nachricht
Syntax: mail. body = string
Syntax: string mail. body
Beispiel:
spooler_log.mail.body = "Job succeeded";
Software- and Organisations-Service GmbH
März 2015
Javascript API
138
Codieren Sie Zeilenwechsel mit \n (in VBScript mit chr(10)).
3.9.5 cc
Empfänger einer Kopie der Nachricht, carbon copy
Syntax: mail. cc = string
Syntax: string mail. cc
Beispiel:
spooler_log.mail.cc = "hans@company.com";
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_cc=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_cc=…) wird damit überschrieben.
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
3.9.6 dequeue
Nachrichten aus dem Verzeichnis queue_dir erneut versuchen zu versenden
Syntax: int mail. dequeue ()
Siehe Mail.dequeue_log , factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…).
Rückgabe:
int Zahl der versandten Nachrichten
3.9.7 dequeue_log
Protokoll von dequeue()
Syntax: string mail. dequeue_log
Software- and Organisations-Service GmbH
März 2015
Javascript API
139
Beispiel:
var count = spooler_log.mail.dequeue();
spooler_log.info( count + " messages from mail queue sent" );
spooler_log.info( spooler_log.mail.dequeue_log );
Siehe Mail.dequeue() .
3.9.8 from
Absender
Syntax: mail. from = string
Syntax: string mail. from
Beispiel:
spooler_log.mail.from = "scheduler@company.com";
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_from=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_from=…) wird damit überschrieben.
3.9.9 queue_dir
Verzeichnis der nicht versendbaren eMails
Syntax: mail. queue_dir = string path
Syntax: string mail. queue_dir
eMails, die der JobScheduler nicht verschicken kann (weil z.B. der SMTP-Server nicht erreichbar ist), werden hier
abgelegt.
Um diese eMails später zu verschicken, muss ein Job geschrieben werden, der die Methode Mail.dequeue()
aufruft.
Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag queue_dir=…).
Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen).
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_queue_dir=…) wird damit überschrieben.
Software- and Organisations-Service GmbH
März 2015
Javascript API
140
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…) wird damit überschrieben.
Die Einstellung sos.ini (Abschnitt [mail], Eintrag queue_dir=…) wird damit überschrieben.
3.9.10 smtp
Name des SMTP-Servers
Syntax: mail. smtp = string
Syntax: string mail. smtp
Beispiel:
spooler_log.mail.smtp = "mail.company.com";
Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag smtp=…).
Die Einstellung factory.ini (Abschnitt [job], Eintrag smtp=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag smtp=…) wird damit überschrieben.
Die Einstellung sos.ini (Abschnitt [mail], Eintrag smtp=…) wird damit überschrieben.
3.9.11 subject
Betreff
Syntax: mail. subject = string
Syntax: string mail. subject
Beispiel:
spooler_log.mail.subject = "Job succeeded";
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_subject=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_subject=…) wird damit überschrieben.
Software- and Organisations-Service GmbH
März 2015
Javascript API
141
3.9.12 to
Empfänger
Syntax: mail. to = string
Syntax: string mail. to
Beispiel:
spooler_log.mail.to = "admin@company.com";
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_to=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_to=…) wird damit überschrieben.
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
3.9.13 xslt_stylesheet
XSLT-Stylesheet für eMail-Aufbereitung
Syntax: Xslt_stylesheet mail. xslt_stylesheet
Rückgabe:
Xslt_stylesheet Das XSLT-Stylesheet als String
3.9.14 xslt_stylesheet_path
XSLT-Stylesheet für eMail-Aufbereitung
Syntax: mail. xslt_stylesheet_path = string path
Beispiel:
spooler_log.mail.xslt_stylesheet_path = "c:/stylesheets/mail.xslt";
Software- and Organisations-Service GmbH
März 2015
Javascript API
142
Der Pfad eines XSLT-Stylesheets. Der JobScheduler verwendet das XSLT-Stylesheet zum Aufbereiten der eMails.
(Die Dokumentation hierzu ist noch nicht geschrieben.)
<config mail_xslt_stylesheet="…">
Parameter:
path
Der Pfad der Datei, die das XSLT-Stylesheet enthält
3.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs
Mit <monitor> können Sie einem Job einen Monitor geben.
Ein Monitor kann folgende Methoden bereitstellen:
Monitor_impl.spooler_task_before()
Vor dem Start der Task, kann den Start verhindern.
Monitor_impl.spooler_task_after()
Nach dem Ende der Task.
Monitor_impl.spooler_process_before()
Vor spooler_process() , kann diesen Aufruf verhinden.
Monitor_impl.spooler_process_after()
Nach spooler_process() , kann dessen Rückgabewert ändern.
3.10.1 spooler
Das allgemeine Objekt des Schedulers
Syntax: Spooler spooler
Beispiel:
spooler_log.debug( "The working directory of the JobScheduler is " + spooler.directory
);
Wie dasselbe Objekt in der Klasse Job_impl: spooler .
Rückgabe:
Spooler 3.10.2 spooler_job
Das Objekt des Jobs
Syntax: Job spooler_job
Software- and Organisations-Service GmbH
März 2015
Javascript API
143
Beispiel:
spooler_log.info( "The name of this job is " + spooler_job.name );
Wie dasselbe Objekt in der Klasse Job_impl: spooler_job .
Rückgabe:
Job 3.10.3 spooler_log
Zum Protokollieren
Syntax: Log spooler_log
Beispiel: in java
spooler_log.info( "Something has happend" );
Wie dasselbe Objekt in der Klasse Job_impl: spooler_log .
Rückgabe:
Log 3.10.4 spooler_process_after
Nach spooler_process()
Syntax: boolean spooler_process_after ( boolean spooler_process_result )
Beispiel: in java
public boolean spooler_task_after( boolean spooler_process_result ) throws Exception
{
spooler_log.info( "SPOOLER_TASK_BEFORE()" );
spooler_log.info( "spooler_process() didn't throw an exception and delivered " +
spooler_process_result );
return spooler_process_result;
// Unchanged result
}
Der JobScheduler ruft diese Methode nach jedem spooler_process() auf.
Parameter:
spooler_process_
result
Rückgabewert von spooler_process() oder false, wenn spooler_process() mit einer
Exception geendet hat.
Rückgabe:
Software- and Organisations-Service GmbH
März 2015
Javascript API
144
boolean Ersetzt den Rückgabewert von spooler_process() .
3.10.5 spooler_process_before
Vor spooler_process()
Syntax: boolean spooler_process_before ()
Beispiel: in java
public boolean spooler_process_before() throws Exception
{
spooler_log.info( "SPOOLER_PROCESS_BEFORE()" );
return true;
// spooler_process() will be executed
}
Beispiel: in java
public boolean spooler_process_before() throws Exception
{
boolean continue_with_spooler_process = true;
if( !are_needed_ressources_available() )
{
spooler_task.order().setback();
continue_with_spooler_process = false;
}
return continue_with_spooler_process;
}
Der JobScheduler ruft diese Methode vor jedem spooler_process() auf.
Rückgabe:
boolean false verhindert den folgenden Aufruf von spooler_process() . Der JobScheduler setzt fort, als hätte
spooler_process() false geliefert.
3.10.6 spooler_task
Das Objekt der Task
Syntax: Task spooler_task
Beispiel:
spooler_log.info( "The task id is " + spooler_task.id );
Software- and Organisations-Service GmbH
März 2015
Javascript API
145
Wie dasselbe Objekt in der Klasse Job_impl: spooler_task .
Rückgabe:
Task 3.10.7 spooler_task_after
Nach dem Ende der Task
Syntax: spooler_task_after ()
Beispiel: in java
public void spooler_task_after() throws Exception
{
spooler_log.info( "SPOOLER_TASK_AFTER()" );
}
Der JobScheduler ruft diese Methode, nachdem die Task geendet hat.
3.10.8 spooler_task_before
Vor Start der Task
Syntax: boolean spooler_task_before ()
Beispiel: in java
public boolean spooler_task_before() throws Exception
{
spooler_log.info( "SPOOLER_TASK_BEFORE()" );
return true;
// Task will be started
//return false; // Task will not be started
}
Vor dem Laden der Task ruft der JobScheduler diese Methode auf.
Rückgabe:
boolean false lässt die Task nicht starten. Monitor_impl.spooler_task_after() wird nicht gerufen.
3.11 Order - Auftrag
Siehe JobScheduler Dokumentation, Spooler.create_order() , Job_chain.add_order() , Task.order .
Software- and Organisations-Service GmbH
März 2015
Javascript API
146
Dateiauftrag
Ein Dateiauftrag ist ein Auftrag mit dem Parameter scheduler_file_path: Order.params .
Variable_set.value() .
Siehe JobScheduler Dokumentation.
Beispiel: Auftrag mit einfacher Nutzlast
// Create order:
{
var order = spooler.create_order();
order.id
= 1234;
order.title
= "This is my order";
order.state_text = "This is my state text";
order.payload
= "This is my payload";
spooler.job_chain( "my_job_chain" ).add_order( order );
}
...
// Process order:
function spooler_process()
{
var order = spooler_task.order;
spooler_log.info( "order.payload=" + order.payload );
return true;
}
Beispiel: Erzeugen eines Auftrags mit Variable_set als Nutzlast
// Create order:
{
var variable_set = spooler.create_variable_set();
variable_set.value( "param_one" ) = "11111";
variable_set.value( "param_two" ) = "22222";
var order = spooler.create_order();
order.id
= 1234;
order.payload = variable_set;
spooler.job_chain( "my_job_chain" ).add_order( order );
}
...
// Process order:
function spooler_process()
{
var order = spooler_task.order;
var variable_set = order.payload;
spooler_log.info( "param_one=" + variable_set.value( "param_one" ) );
spooler_log.info( "param_two=" + variable_set.value( "param_two" ) );
return true;
}
3.11.1 at
Start-Zeitpunkt des Auftrags
Syntax: order. at = string|DATE
Software- and Organisations-Service GmbH
März 2015
Javascript API
147
Beispiel:
order.at = "now+65";
spooler.job_chain( "my_job_chain" ).add_order( order );
Setzt den Start-Zeitpunkt bevor der Auftrag in eine Auftragswarteschlange eingereiht wird. Als String kann
angegeben werden:
•
•
•
•
"now"
"yyyy-mm-dd HH:MM[:SS]"
"now + HH:MM[:SS]"
"now + seconds"
Die Einstellung ändert die von Order.run_time oder Order.setback() vorgegebene Startzeit.
Siehe <add_order at=""> .
3.11.2 end_state
Zustand, vor dessen erfolgreichen Verlassen der Auftrag enden soll
Syntax: order. end_state = var
Syntax: var order. end_state
Wenn ein Auftrag einen eigenen End-Zustand hat (end_state ungleich ""), endet der Auftrag, bevor er diesen
Zustand erfolgreich verlassen würde, also nach Ausführung des dem End-Zustand zugeordneten Jobs (siehe <
job_chain_node> ).
Der Zustand muss in der Jobkette bekannt sein.
3.11.3 id
Kennung des Auftrags
Syntax: order. id = var
Syntax: var order. id
Jeder Auftrag hat eine (innerhalb der Jobkette oder der Auftragswarteschlange des Jobs eindeutige) Kennung.
Diese Kennung sollte den zu verarbeitenden Daten entsprechen. Üblicherweise wird der Schlüssel eines
Datenbanksatzes verwendet.
Wenn Sie die id nicht setzen, vergibt Job_chain.add_order() eine Kennung.
3.11.4 job_chain
Jobkette, in der der Auftrag enthalten ist
Software- and Organisations-Service GmbH
März 2015
Javascript API
148
Syntax: Job_chain order. job_chain
Rückgabe:
Job_chain 3.11.5 job_chain_node
Jobkettenknoten, der dem Zustand des Auftrags entspricht
Syntax: Job_chain_node order. job_chain_node
Rückgabe:
Job_chain_node 3.11.6 log
Auftragsprotokoll
Syntax: Log order. log
Beispiel:
spooler_task.order.log.info( "Only for order log, not for task log" );
spooler_log.info( "For both order log and task log" );
Rückgabe:
Log 3.11.7 params
Parameter des Auftrags
Syntax: order. params = Variable_set
Syntax: Variable_set order. params
params wird in Order.payload gehalten, letzteres kann also nicht zusammen mit params verwendet werden.
Siehe <add_order> .
Rückgabe:
Variable_set Software- and Organisations-Service GmbH
März 2015
Javascript API
149
3.11.8 payload
Nutzlast, also Parameter des Auftrags.
Syntax: order. payload = Variable_set |string|int|… payload
Syntax: Variable_set |string|int|… order. payload
Statt dieser Eigenschaft wird die Verwendung von Order.params empfohlen (was (Variable_set)order.payload
entspricht).
Neben der Auftragskennung Order.id , die den Auftrag identifiziert, können Sie hier zusätzliche Angaben machen.
Siehe Order.params und Order.xml_payload .
Parameter:
payload
Kann ein String oder ein Variable_set sein.
Rückgabe:
Variable_set |string|int|… Kann ein String oder ein Variable_set sein.
3.11.9 payload_is_type
Prüft den COM-Typ der Nutzlast
Syntax: boolean order. payload_is_type ( string type_name )
Parameter:
type_name
"Spooler.Variable_set", "Hostware.Dyn_obj" oder "Hostware.Record".
3.11.10 priority
Aufträge mit höherer Priorität werden zuerst verarbeitet
Syntax: order. priority = int
Syntax: int order. priority
3.11.11 remove_from_job_chain
Syntax: order. remove_from_job_chain ()
Wenn der Auftrag gerade von einer Task ausgeführt wird, liefert die Eigenschaft Order.job_chain weiterhin die
Jobkette, aus der der Auftrag mit diesem Aufruf entfernt worden ist. Erst wenn die Ausführung beendet ist, liefert
Software- and Organisations-Service GmbH
März 2015
Javascript API
150
die Eigenschaft null (außer der Auftrag ist wieder in eine Jobkette eingetragen worden). Damit bleibt die
Eigenschaft job_chain während der Ausführung durch die Task stabil.
3.11.12 run_time
<run_time> zur periodischen Wiederholung des Auftrags
Syntax: Run_time order. run_time
Beispiel:
order.run_time.xml = "<run_time><at at='2006-05-23 11:43:00'/></run_time>";
Siehe <run_time> .
Das Kommando <modify_order at="now"> lässt einen wegen run_time wartenden Auftrag sofort anlaufen.
Rückgabe:
Run_time 3.11.13 setback
Stellt den Auftrag eine Zeitlang zurück
Syntax: order. setback ()
Der
Auftrag
wird
zurückgestellt und nach der mit <delay_order_after_setback> oder
Job.delay_order_after_setback eingestellten Frist wiederholt. Bei einer Wiederholung wird nur die Funktion
spooler_process() des Jobs wiederholt. Wenn in spooler_process() die Funktion order.setback()
aufgerufen wurde, bleibt der Rückgabewert von spooler_process() ohne Wirkung.
Der Auftrag zählt aufeinander folgende Aufrufe dieser Methode, was von <delay_order_after_setback>
berücksichtigt wird. Der Zähler wird auf 0 gestellt, wenn spooler_process() ohne diesen Aufruf zu Ende
ausgeführt worden ist. Beim Start des Schedulers sind alle Zähler 0.
Das Kommando <modify_order at="now"> lässt einen zugestellten Auftrag sofort anlaufen.
3.11.14 setback_count
Wie oft ist der Auftrag zurückgestellt worden?
Syntax: int order. setback_count
Siehe <delay_order_after_setback> .
Software- and Organisations-Service GmbH
März 2015
Javascript API
151
3.11.15 state
Zustand des Auftrags
Syntax: order. state = var
Syntax: var order. state
Wenn der Auftrag in einer Jobkette ist, muss der Zustand in der Jobkette vorhanden sein.
Wenn der Auftrag gerade von einem Job ausgeführt wird, wird der in der Jobkette festgelegte Folgezustand ( <
job_chain_node next_state=""> ) wirkungslos. Die Rückgabewerte von spooler_process() und
Monitor_impl.spooler_process_after() sind ohne Bedeutung. Mit Order.state kann also ein Job den
Folgezustand frei bestimmen.
Der Auftrag wird in die Auftragswarteschlange des Jobs eingereiht, der dem Zustand zugeordnet ist (s. <
job_chain_node> ). Die Ausführung durch diesen Job wird solange verzögert, bis der jetzt ausführende Job den
Auftrag ausgeführt hat.
3.11.16 state_text
Freier Text für den Zustand des Auftrags
Syntax: order. state_text = string
Syntax: string order. state_text
Der Text wird auf der HTML-Oberfläche gezeigt.
Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen.
3.11.17 string_next_start_time
Nächste Startzeit des Auftrags bei Verwendung von <run_time>
Syntax: string order. string_next_start_time
Rückgabe:
string "yyyy-mm-dd HH:MM:SS.MMM" oder "now" oder "never".
3.11.18 suspended
Ausgesetzer Auftrag
Syntax: order. suspended = boolean
Syntax: boolean order. suspended
Software- and Organisations-Service GmbH
März 2015
Javascript API
152
Ein ausgesetzter Auftrag wird nicht ausgeführt.
Wenn der Auftrag gerade von einer Task ausgeführt wird, wird der Schritt ( spooler_process() ) noch zu Ende
ausgeführt und der Auftrag nach den gewohnten Regeln in den Folgezustand versetzt, bevor er tatsächlich
ausgesetzt wird.
Damit kann ein Auftrag in einen Endzustand ausgesetzt werden, womit verhindet wird, dass er entfernt wird. Erst
wenn die Aussetzung eines solchen Auftrags aufgehoben wird, ( order.suspended=false), entfernt der
JobScheduler den Auftrag.
Ein ausgesetzter Auftrag im Endzustand kann mit Order.state in einen Zustand versetzt werden, der einem Job
zugeordnet ist. Der Auftrag bleibt dennoch ausgesetzt.
3.11.19 title
Der Titel ist ein Klartext, der den Auftrag bezeichnet
Syntax: order. title = string
Syntax: string order. title
3.11.20 web_service
Der Webdienst, der dem Auftrag zugeordnet ist
Syntax: Web_service order. web_service
Wenn der Auftrag keinem Webdienst zugeordnet ist, liefert der Aufruf den Fehler SCHEDULER-240 .
Siehe auch Order.web_service_or_null .
Rückgabe:
Web_service 3.11.21 web_service_operation
Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist
Syntax: Web_service_operation order. web_service_operation
Software- and Organisations-Service GmbH
März 2015
Javascript API
153
Beispiel: in java
public boolean spooler_process() throws Exception
{
Order
order
= spooler_task.order();
Web_service_operation web_service_operation = order.web_service_operation();
Web_service_request
request
= web_service_operation.request();
// Decode request data
String request_string = new String( request.binary_content(),
request.charset_name() );
process request_string ...;
String
response_string = "This is my response";
String
charset_name
= "UTF-8";
ByteArrayOutputStream byos
= new ByteArrayOutputStream();
// Encode response data
Writer writer = new OutputStreamWriter( byos, charset_name );
writer.write( response_string );
writer.close();
// Respond
Web_service_response response = web_service_operation.response();
response.set_content_type( "text/plain" );
response.set_charset_name( charset_name );
response.set_binary_content( byos.toByteArray() );
response.send();
// Web service operation has finished
return true;
}
Siehe <web_service> , Web_service_operation und Order.web_service_operation_or_null ,
Rückgabe:
Web_service_operation 3.11.22 web_service_operation_or_null
Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist, oder null
Syntax: Web_service_operation order. web_service_operation_or_null
Siehe Order.web_service_operation , Web_service_operation und <web_service> .
Rückgabe:
Web_service_operation Software- and Organisations-Service GmbH
März 2015
Javascript API
154
3.11.23 web_service_or_null
Der Web-Dienst, der dem Auftrag zugeordnet ist, oder null.
Syntax: Web_service order. web_service_or_null
Siehe auch Order.web_service .
Rückgabe:
Web_service 3.11.24 xml
Auftrag in XML: <order>...</order>
Syntax: string order. xml
Rückgabe:
string Siehe <order>
3.11.25 xml_payload
XML-Nutzlast, also Parameter des Auftrags.
Syntax: order. xml_payload = string xml
Syntax: string order. xml_payload
Zusätzlich zur Eigenschaft Order.params kann diese Eigenschaft ein XML-Dokument aufnehmen.
<xml_payload> enthält das Wurzelelement des XML-Dokuments (statt in #PCDATA-codierter Form).
3.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs
Ein auftragsgesteuerter Job ( <job order="yes"> hat eine Auftragswarteschlange, die die vom Job zu
verarbeitenden Aufträge aufnimmt. Die Aufträge sind nach Priorität und Zeitpunkt des Eintreffens geordnet.
Verarbeiten bedeutet, dass der JobScheduler die Methode spooler_process() einer Task des Jobs aufruft. Die
Methode kann über Task.order auf den Auftrag zugreifen. Endet spooler_process() ohne Fehler (ohne
Exception), entfernt der JobScheduler den Auftrag aus der Auftragswarteschlange. Ist der Auftrag in einer Jobkette,
dann rückt der Auftrag an die nächste Position der Jobkette.
Software- and Organisations-Service GmbH
März 2015
Javascript API
155
3.12.1 length
Anzahl der Aufträge in der Auftragswarteschlange
Syntax: int q. length
3.13 Process_class
Siehe auch <process_class name=""> .
Beispiel:
var process_classs = spooler.process_classs;
var process_class = process_classs.create_process_class();
process_class.name = "my_process_class";
process_classs.add_process_class( process_class );
3.13.1 max_processes
Anzahl der Prozesse
Syntax: process_class. max_processes = int
Syntax: int process_class. max_processes
Die Voreinstellung ist 10.
Siehe auch <process_class max_processes=""> .
3.13.2 name
Name der Prozessklasse
Syntax: process_class. name = string
Syntax: string process_class. name
Der Name kann nur einmal gesetzt und nicht geändert werden.
Siehe auch <process_class name=""> .
3.13.3 remote_scheduler
Adresse des fernen Schedulers, der die Prozesse ausführen soll
Syntax: process_class. remote_scheduler = string
Software- and Organisations-Service GmbH
März 2015
Javascript API
156
Syntax: string process_class. remote_scheduler
Beispiel:
spooler.process_classes.process_class( "my_process_class" ).remote_scheduler =
"host:4444";
Siehe auch <process_class remote_scheduler=""> .
Parameter:
Die Adresse wird als " host : portnumber" angegeben.
Beim Lesen wird (derzeit) zusätzlich die IP-Nummer
geliefert: " hostname / ipnumber : portnumber"
Rückgabe:
string Die Adresse wird als " host : portnumber" angegeben.
Beim Lesen wird (derzeit) zusätzlich die IP-Nummer geliefert: " hostname / ipnumber : portnumber"
3.13.4 remove
Entfernt die Prozessklasse
Syntax: process_class. remove ()
Beispiel:
spooler.process_classs.process_class( "my_process_class" ).remove();
Wenn noch Tasks in der Prozessklasse laufen, verzögert der JobScheduler das Löschen bis die letzte Task
geendet hat. Solange werden keine neuen Tasks gestartet.
Siehe auch <process_class.remove> .
3.14 Process_classes
3.14.1 add_process_class
Fügt dem JobScheduler eine Prozessklasse hinzu
Syntax: process_classs. add_process_class ( Process_class pc )
Software- and Organisations-Service GmbH
März 2015
Javascript API
157
3.14.2 create_process_class
Legt eine neue Prozesklasse ein
Syntax: Process_class process_classs. create_process_class ()
Liefert eine neues Process_class . Diese Prozessklasse kann mit Process_classes.add_process_class() dem
JobScheduler hinzugefügt werden.
Rückgabe:
Process_class 3.14.3 process_class
Liefert eine Prozessklasse
Syntax: Process_class process_classs. process_class ( string process_class_name )
Wenn die Prozessklasse nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Process_class 3.14.4 process_class_or_null
Liefert eine Prozessklasse
Syntax: Process_class process_classs. process_class_or_null ( string process_class_name )
Rückgabe:
Process_class null, wenn die Prozessklasse nicht bekannt ist.
3.15 Run_time - Laufzeit
Siehe <run_time> , Order , Schedule .
Beispiel:
var order = spooler_task.order;
// Repeat order daily at 15:00
order.run_time.xml = "<run_time><period single_start='15:00'/></run_time>";
Software- and Organisations-Service GmbH
März 2015
Javascript API
158
3.15.1 schedule
<schedule>
Syntax: Schedule run_time. schedule
Rückgabe:
Schedule 3.15.2 xml
<run_time>
Syntax: run_time. xml = string
Verwirft die bisherige Einstellung und setzt Run_time neu.
Parameter:
XML-Dokument als String
3.16 Schedule - Laufzeit
Siehe <schedule> , <run_time> , Spooler.schedule , Run_time .
Beispiel:
spooler.schedule( "my_schedule" ).xml = "<schedule><period single_start='15:00'/><
/schedule>";
3.16.1 xml
<schedule>
Syntax: schedule. xml = string
Syntax: string schedule. xml
Verwirft die bisherige Einstellung und setzt Schedule neu.
Parameter:
XML-Dokument als String
Rückgabe:
string XML-Dokument als String
Software- and Organisations-Service GmbH
März 2015
Javascript API
159
3.17 Spooler
Von dieser Klasse gibt es nur ein Objekt: spooler .
3.17.1 abort_immediately
Bricht den JobScheduler augenblicklich ab
Syntax: spooler. abort_immediately ()
Bricht den JobScheduler augenblicklich ab. Kein Job hat Gelegenheit, darauf zu reagieren. Der JobScheduler bricht zuvor alle gestarteten Prozesse ab. Das sind die Tasks und die Prozesse von
Task.create_subprocess() und Task.add_pid() . Siehe <modify_spooler cmd="abort_immediately"> und JobScheduler Dokumentation. 3.17.2 abort_immediately_and_restart
Bricht den JobScheduler augenblicklich ab und startet ihn neu. Syntax: spooler. abort_immediately_and_restart ()
Wie Spooler.abort_immediately() , nur dass der JobScheduler sich erneut startet. Dabei verwendet er die
Kommandozeilenparameter wieder. Siehe <modify_spooler cmd="abort_immediately_and_restart"> und JobScheduler Dokumentation. 3.17.3 add_job_chain
Syntax: spooler. add_job_chain ( Job_chain chain )
Bei Job_chain.orders_recoverable =true lädt der JobScheduler die Aufträge der Jobkette aus der Datenbank.
Siehe Spooler.create_job_chain() und <job_chain> .
Software- and Organisations-Service GmbH
März 2015
Javascript API
160
3.17.4 configuration_directory
Pfad des Konfigurationsverzeichnisses
Syntax: string spooler. configuration_directory
<config configuration_directory="…">
3.17.5 create_job_chain
Syntax: Job_chain spooler. create_job_chain ()
Liefert eine neue Job_chain . Diese Jobkette kann, nachdem sie mit Jobs gefüllt worden ist, mit
Spooler.add_job_chain() dem JobScheduler hinzugefügt werden
Siehe <job_chain> .
Rückgabe:
Job_chain 3.17.6 create_order
Syntax: Order spooler. create_order ()
Erzeugt einen neuen Auftrag. Dieser Auftrag kann mit Job_chain.add_order() einer Jobkette übergeben werden.
Rückgabe:
Order 3.17.7 create_variable_set
Syntax: Variable_set spooler. create_variable_set ()
Rückgabe:
Variable_set 3.17.8 create_xslt_stylesheet
Syntax: Xslt_stylesheet spooler. create_xslt_stylesheet ( string xml (optional) )
Parameter:
xml
XSLT-Stylesheet als XML-String
Software- and Organisations-Service GmbH
März 2015
Javascript API
161
Rückgabe:
Xslt_stylesheet 3.17.9 db_history_table_name
Name der Datenbanktabelle für die Historie
Syntax: string spooler. db_history_table_name
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) wird damit überschrieben.
3.17.10 db_name
Hostware-Pfad der Datenbank
Syntax: string spooler. db_name
Verbindungszeichenfolge der Datenbank für die Historienführung. Der JobScheduler unterstützt ODBC (Windows)
und JDBC für den Zugriff auf Datenbanken. Ohne Eintrag werden Dateien im .csv-Format erzeugt, siehe
factory.ini (Abschnitt [spooler], Eintrag history_file=…).
Unter Windows kann ein einfacher Dateiname angegebenen werden, der auf .mdb endet (z.B. scheduler.mdb).
Der JobScheduler verwendet dann eine Microsoft MS-Access Datenbank dieses Namens, die im
Protokollverzeichnis (s. Option -log-dir ) liegt. Der JobScheduler richtet die Datei ein, wenn sie fehlt.
Der JobScheduler richtet die Tabellen selbständig ein.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db=…) wird damit überschrieben.
3.17.11 db_order_history_table_name
Name der Datenbanktabelle für die Auftragshistorie
Syntax: string spooler. db_order_history_table_name
Die Einstellung factory.ini
überschrieben.
(Abschnitt [spooler], Eintrag db_order_history_table=…) wird damit
Software- and Organisations-Service GmbH
März 2015
Javascript API
162
3.17.12 db_orders_table_name
Name der Datenbanktabelle für die Aufträge
Syntax: string spooler. db_orders_table_name
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_orders_table=…) wird damit überschrieben.
3.17.13 db_tasks_table_name
Name der Datenbanktabelle für die Tasks
Syntax: string spooler. db_tasks_table_name
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_tasks_table=…) wird damit überschrieben.
3.17.14 db_variables_table_name
Name der Datenbanktabelle für interne Variablen des Schedulers
Syntax: string spooler. db_variables_table_name
Der JobScheduler hält in dieser Tabelle interne Zähler, zum Beispiel für die nächste freie Task-ID.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_variables_table=…) wird damit überschrieben.
3.17.15 directory
Das Arbeitsverzeichnis beim Start des Schedulers
Syntax: string spooler. directory
Ändert das Arbeitsverzeichnis.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Die Option -cd hat Vorrang.
Software- and Organisations-Service GmbH
März 2015
Javascript API
163
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Rückgabe:
string Der Pfad endet unter Unix mit "/" und unter Windows mit "\".
3.17.16 execute_xml
Führt ein XML-Kommando aus
Syntax: string spooler. execute_xml ( string xml )
Beispiel:
spooler_log.info( spooler.execute_xml( "<show_state/>" ) );
Fehler werden als XML-Antwort <ERROR> geliefert.
Parameter:
xml
Siehe JobScheduler Dokumentation.
Rückgabe:
string Liefert die XML-Antwort des ausgeführten Kommandos.
3.17.17 hostname
Name des Rechners, auf dem der JobScheduler läuft.
Syntax: string spooler. hostname
3.17.18 id
Wert der Kommandozeilenoption -id=
Syntax: string spooler. id
Der JobScheduler wählt nur die Elemente der XML-Konfiguration aus, deren Attribut spooler_id leer ist oder
denselben Wert wie in dieser Einstellung enthält.
Wenn die Scheduler-ID nicht angegeben ist, beachtet der JobScheduler das XML-Attribut spooler_id= nicht und
wählt alle Elemente der XML-Konfiguration aus.
Software- and Organisations-Service GmbH
März 2015
Javascript API
164
Siehe z.B. <config> .
Die Option -id hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag id=…) wird damit überschrieben.
3.17.19 include_path
Liefert die Kommandozeilenoption -include-path=.
Syntax: string spooler. include_path
Verzeichnis der Dateien, die mit <include> eingezogen werden.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen).
Die Option -include-path hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag include_path=…) wird damit überschrieben.
<config include_path="…">
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
3.17.20 ini_path
Wert der Option -ini= (Dateiname der factory.ini)
Syntax: string spooler. ini_path
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Siehe -ini , JobScheduler Dokumentation
3.17.21 is_service
Syntax: boolean spooler. is_service
Rückgabe:
Software- and Organisations-Service GmbH
März 2015
Javascript API
165
boolean true, genau dann wenn der JobScheduler als Dienst (in Windows) oder als Daemon (in Unix) läuft.
3.17.22 job
Liefert einen Job
Syntax: Job spooler. job ( string job_name )
Wenn der Jobname nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Job 3.17.23 job_chain
Liefert eine Jobkette
Syntax: Job_chain spooler. job_chain ( string name )
Wenn der Name der Jobkette nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Job_chain 3.17.24 job_chain_exists
Syntax: boolean spooler. job_chain_exists ( string name )
3.17.25 let_run_terminate_and_restart
Syntax: spooler. let_run_terminate_and_restart ()
Sobald alle Aufträge abgearbeitet sind, beendet der JobScheduler alle Tasks (durch Aufruf von Job_impl ) und
beendet dann sich selbst. Ein neuer JobScheduler mit unveränderten Kommandozeilenparametern wird gestartet.
Siehe <modify_spooler cmd="let_run_terminate_and_restart"> und JobScheduler Dokumentation.
3.17.26 locks
Liefert die Locks
Software- and Organisations-Service GmbH
März 2015
Javascript API
166
Syntax: Locks spooler. locks
Rückgabe:
Locks 3.17.27 log
Das Hauptprotokoll
Syntax: Log spooler. log
Normalerweise wird man spooler_log() verwenden.
Rückgabe:
Log 3.17.28 log_dir
Verzeichnis der Protokolle
Syntax: string spooler. log_dir
In dieses Verzeichnis schreibt der JobScheduler seine Protokolle.
log_dir= *stderr lässt den JobScheduler die Protokollausgabe nach stderr (auf den Bildschirm) schreiben.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen).
Die Option -log-dir hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_dir=…) wird damit überschrieben.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
3.17.29 param
Kommandozeilenoption -param=
Syntax: string spooler. param
Software- and Organisations-Service GmbH
März 2015
Javascript API
167
Zur freien Verwendung. Der Parameter ist in den Skripten über spooler.param lesbar.
Die Option -param hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag param=…) wird damit überschrieben.
3.17.30 process_classes
Liefert die Prozessklassen
Syntax: Process_classes spooler. process_classes
Rückgabe:
Process_classes 3.17.31 schedule
Liefert den benannten Schedule oder null
Syntax: Schedule spooler. schedule ( string path )
Rückgabe:
Schedule 3.17.32 supervisor_client
Liefert den Supervisor_client oder null
Syntax: Supervisor_client spooler. supervisor_client
Rückgabe:
Supervisor_client 3.17.33 tcp_port
HTTP- und TCP-Port für Kommandos an den JobScheduler
Syntax: int spooler. tcp_port
Der JobScheduler kann auf einem TCP-Port während des Betriebs Kommandos entgegennehmen. Hier kann eine
Portnummer eingestellt werden. Die Portnummer ist eine Zahl zwischen 2048 (betriebssystemabhängig) und
65535. Die Voreinstellung lautet 4444.
Software- and Organisations-Service GmbH
März 2015
Javascript API
168
Über denselben Port betreibt der JobScheduler einen HTTP/HTML-Server, so dass er über einen Browser
ansprechbar ist, z.B. http://localhost:4444.
Bei tcp_port=0 (voreingestellt) ist der JobScheduler nicht über TCP oder HTTP ansprechbar. Damit kann die
Steuerung des JobSchedulers per TCP-Kommando, z.B. über eine Web-Seite, unterbunden werden.
Die Option -tcp-port hat Vorrang.
<config tcp_port="…">
Rückgabe:
int 0, wenn kein Port geöffnet ist.
3.17.34 terminate
JobScheduler mit allen Tasks ordentlich beenden
Syntax: spooler. terminate ( int timeout (optional) , boolean restart (optional) , boolean
all_schedulers (optional) , boolean continue_exclusive_operation (optional) )
Beendet alle Tasks (durch Aufruf von spooler_close() ) und schließlich sich selbst.
Wenn eine Frist angegeben ist, bricht der JobScheduler nach Ablauf alle noch laufenden Prozesse ab (das sind
Tasks, die zulange in einem Aufruf wie spooler_process() verharren).
Siehe <modify_spooler cmd="terminate"> und JobScheduler Dokumentation.
Parameter:
timeout
Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der
JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen
Parameter wartet der JobScheduler endlos auf die Tasks.
restart
restart=true lässt den JobScheduler nach Beendigung neu starten.
all_schedu all_schedulers=true beendet alle JobScheduler im Cluster (s. -exclusive ) Das kann eine
lers
Minute dauern.
continue_e continue_exclusive_operation=true lässt einen anderen Scheuler im Cluster (s. -exclusive )
xclusive_o den Betrieb fortsetzen.
peration
3.17.35 terminate_and_restart
JobScheduler mit allen Tasks ordentlich beenden und erneut starten
Syntax: spooler. terminate_and_restart ( int timeout (optional) )
Wie Spooler.terminate() , aber der JobScheduler startet sich neu.
Siehe <modify_spooler cmd="terminate_and_restart"> und JobScheduler Dokumentation.
Software- and Organisations-Service GmbH
März 2015
Javascript API
169
Parameter:
time Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der
out JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen Parameter
wartet der JobScheduler endlos auf die Tasks.
3.17.36 udp_port
UDP-Port für Kommandos an den JobScheduler
Syntax: int spooler. udp_port
Auch über UDP kann der JobScheduler Kommandos entgegennehmen. Hier wird die Portnummer angegeben. Ein
Kommando muss in eine Nachricht passen. Der JobScheduler schickt keine Antwort.
Bei udp_port=0 (voreingestellt) öffnet der JobScheduler keinen UDP-Port.
Die Option -udp-port hat Vorrang.
<config udp_port="…">
Rückgabe:
int 0, wenn kein Port geöffnet ist.
3.17.37 variables
Die Scheduler-weiten Variablen als Variable_set
Syntax: Variable_set spooler. variables
Die Variablen können in der Konfigurationsdatei eingestellt werden mit <config> .
Rückgabe:
Variable_set 3.18 Spooler_program - Für den Java-Debugger
Startet den JobScheduler über Java, so dass in Java geschriebene Jobs debuggt werden können (z.B. mit
Eclipse). Zu den Methoden siehe Javadoc.
Der JobScheduler wird als Windows-Applikation, nicht als Konsol-Programm gestartet. Ausgaben nach stderr
gehen verloren. -log-dir liefert keine Ausgabe.
Software- and Organisations-Service GmbH
März 2015
Javascript API
170
Siehe JobScheduler Dokumentation.
Beispiel:
C:\>java -Djava.library.path=… -classpath …\sos.spooler.jar sos.spooler.Spooler_program
configuration.scheduler -log-dir=c:\tmp\scheduler
Mit -Djava.library.path=… geben Sie das Verzeichnis der scheduler.dll an, wenn es nicht bereits in %PATH%
aufgeführt ist.
3.19 Subprocess
Ein Subprozess ist irgendein Prozess, der mit Task.create_subprocess() oder Subprocess.start() gestartet
werden kann.
Beispiel: system() - Einfache Ausführung eines Kommandos
exit_code = my_system( "backup /" );
function system( cmd, timeout )
{
var subprocess = spooler_task.create_subprocess();
try
{
if( timeout ) subprocess.timeout = timeout;
subprocess.start( cmd );
subprocess.wait_for_termination();
return subprocess.exit_code;
}
finally
{
subprocess.close();
}
}
Beispiel:
var subprocess = spooler_task.create_subprocess();
subprocess.environment( "test1" ) = "one";
subprocess.environment( "test2" ) = "two";
subprocess.ignore_error = true;
subprocess.start( "sleep 20" );
spooler_log.info( "pid=" + subprocess.pid );
subprocess.timeout = 10;
spooler_log.info( "wait_for_termination ..." );
var ok = subprocess.wait_for_termination( 10 );
spooler_log.info( "wait_for_termination ok=" + ok );
if( subprocess.terminated )
{
spooler_log.info( "exit code=" + subprocess.exit_code );
spooler_log.info( "termination signal=" + subprocess.termination_signal );
}
Software- and Organisations-Service GmbH
März 2015
Javascript API
171
3.19.1 close
Gibt die System-Ressourcen frei
Syntax: subprocess. close ()
Sollte in Sprachen mit Garbage Collector (Java, JavaScript) gerufen werden, außer die Task beendet sich sofort.
Der Subprocess ist danach unbrauchbar.
3.19.2 env
Umgebungsvariablen als Variable_set
Syntax: Variable_set subprocess. env
Beispiel:
var subprocess = spooler_task.create_subprocess();
subprocess.start( subprocess.env.substitute( "${MY_HOME}/my_program" ) );
subprocess.wait_for_termination();
Liefert ein Variable_set der Umgebungsvariablen.
Anfänglich ist die Umgebung mit den Umgebungsvariablen des startenden Prozesses gefüllt. Umgebungsvariablen
können entfernt werden, indem sie auf "" gesetzt werden. Der Aufruf Subprocess.start() übergibt die
Umgebungsvariablen dem Subprozess.
Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden.
Nach dem Start des Subprozesses haben Änderungen an den Umgebungsvariablen keine Wirkung. Auch können
vom Prozess geänderte Umgebungsvariablen nicht gelesen werden.
Das Objekt lässt sich nicht anderen Objekten übergeben (denn es befindet sich im Prozess der Task, während die
meisten anderen Objekte sich im Prozess des Schedulers befinden).
Rückgabe:
Variable_set 3.19.3 environment
Umgebungsvariablen
Syntax: subprocess. environment ( string name ) = string value
Software- and Organisations-Service GmbH
März 2015
Javascript API
172
Beispiel:
// The following two statements have the same effect
subprocess.environment( "my_variable" ) = "my_value"
subprocess.env.value( "my_variable" ) = "my_value"
Die hier gesetzten Variablen werden zusammen mit den übrigen Umgebungsvariablen des laufenden Prozesses
dem neuen Subprozess übergeben.
Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden.
Siehe auch Subprocess.env .
3.19.4 exit_code
Syntax: int subprocess. exit_code
Erst aufrufen, wenn Subprocess.terminated == true.
3.19.5 ignore_error
Verhindert, dass bei exit_code != 0 der Job stoppt
Syntax: subprocess. ignore_error = boolean
Syntax: boolean subprocess. ignore_error
Verhindert, dass der Job stoppt, wenn der Subprozess bei Task-Ende mit Subprocess.exit_code != 0 geendet
hat.
Wenn das Ende des Subprocesses nicht mit Subprocess.wait_for_termination abgewartet worden ist, tut das
der JobScheduler bei Task-Ende. Wenn dann der Subprocess mit Subprocess.exit_code != 0 endet, stoppt der
Job mit Fehler.
Mit ignore_error kann das verhindert werden.
3.19.6 ignore_signal
Verhindert, dass bei einem Abbruch des Prozesses mit Signal der Job stoppt
Syntax: subprocess. ignore_signal = int
Syntax: int subprocess. ignore_signal
Wirkt nicht unter Windows, weil es hier keine Signale gibt.
Software- and Organisations-Service GmbH
März 2015
Javascript API
173
3.19.7 kill
Bricht den Subprozess ab
Syntax: subprocess. kill ( int signal (optional) )
Parameter:
signal Nur unter Unix: Das Signal für kill(). 0 wird als 9 (SIGKILL, sofortiges Ende) interpretiert.
3.19.8 own_process_group
Subprozess als Prozessgruppe
Syntax: subprocess. own_process_group = boolean
Syntax: boolean subprocess. own_process_group
Nur unter Unix.
Der Default kann mit factory.ini (Abschnitt [spooler], Eintrag subprocess.own_process_group=…) eingestellt
werden.
own_process_group lässt den Subprozess in einer eigenen Prozessgruppe starten, indem der Systemaufruf
setpgid(0,0) ausgeführt wird. Wenn der JobScheduler den Subprozess abbricht, bricht er die ganze
Prozessgruppe ab.
3.19.9 pid
Prozesskennung
Syntax: int subprocess. pid
3.19.10 priority
Prozess-Priorität
Syntax: subprocess. priority = int
Syntax: int subprocess. priority
Beispiel:
subprocess.priority = +5;
// Unix: Priorität etwas verschlechtern
Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht
werden.
Software- and Organisations-Service GmbH
März 2015
Javascript API
174
Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13
"high" (andere Werte werden abgerundet). Siehe auch Task.priority_class .
Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Subprocess.priority_class . Siehe auch
Task.priority .
3.19.11 priority_class
Prioritätsklasse
Syntax: subprocess. priority_class = string
Syntax: string subprocess. priority_class
Beispiel:
subprocess.priority_class = "below_normal";
Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix
entsprechen:
Prioritätsklasse
Windows
Unix
"idle"
4
16
"below_normal"
6
6
"normal"
8
0
"above_normal"
10
-6
"high"
13
-16
Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelndem Recht, führt das nicht zu einem Fehler.
Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Siehe auch Subprocess.priority , Task.priority_class und Microsoft® Windows® Scheduling Priorities.
3.19.12 start
Startet den Prozess
Syntax: subprocess. start ( string|string[] command_line )
Windows erkennt sofort, wenn das Programm nicht ausführbar ist. Die Methode liefert dann einen Fehler.
Unter Unix wird stattdessen Subprocess.exit_code auf 99 gesetzt. Vorher muss das Ende des Prozesses
abgewartet werden mit Subprocess.wait_for_termination() .
Software- and Organisations-Service GmbH
März 2015
Javascript API
175
Shell-Operatoren wie |, && und > werden nicht interpretiert. Verwenden Sie dazu die Programme /bin/sh bzw.
c:\windows\system32\cmd.exe (das Verzeichnis ist installations-abhängig).
Der Prozess wird unter Unix mit execvp() und unter Windows mit CreateProcess() gestartet.
3.19.13 terminated
Syntax: boolean subprocess. terminated
Prüft, ob der Prozess geendet hat. Wenn er geendet hat, kann anschließend Subprocess.exit_code und
Subprocess.termination_signal gerufen werden.
3.19.14 termination_signal
Signal, mit dem sich der Prozess beendet hat (nur Unix)
Syntax: int subprocess. termination_signal
Erst aufrufen, wenn Subprocess.terminated == true.
3.19.15 timeout
Frist für den Subprozess
Syntax: subprocess. timeout = double seconds
Nach Ablauf der Zeit bricht der JobScheduler den Subprozess ab (Unix: mit SIGKILL).
Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht.
3.19.16 wait_for_termination
Syntax: subprocess. wait_for_termination ()
Syntax: boolean subprocess. wait_for_termination ( double seconds )
Parameter:
seconds
Wartezeit. Fehlt der Parameter, dann wartet der Aufruf bis der Subprozess geendet hat.
Rückgabe:
boolean true, wenn der Subprozess geendet hat.
false, wenn der Subprozess nach Ablauf der Wartezeit noch läuft.
Software- and Organisations-Service GmbH
März 2015
Javascript API
176
3.20 Supervisor_client
Spooler.supervisor_client liefert dieses Objekt.
Beispiel:
var supervisor_hostname = spooler.supervisor_client.hostname;
3.20.1 hostname
Name oder IP-Nummer des Rechners, auf dem der Supervisor läuft
Syntax: string supervisor_client. hostname
Siehe auch <config supervisor=""> .
3.20.2 tcp_port
TCP-Port des Supervisors
Syntax: int supervisor_client. tcp_port
Siehe auch <config supervisor=""> .
3.21 Task
Eine Task ist eine laufende Instanz eines Jobs.
Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen.
3.21.1 add_pid
Macht dem JobScheduler einen abhängigen, befristeten Prozess bekannt
Syntax: spooler_task. add_pid ( int pid, string|double|int timeout (optional) )
Mit dem Aufruf kann die Laufzeit von abhängigen Prozessen eingeschränkt werden. Bei Task-Ende bricht der
JobScheduler noch laufende abhängigen Prozesse in jedem Fall ab.
Wenn der JobScheduler einen Prozess abbricht, gibt es einen Eintrag ins Protokoll. Die Task erfährt davon nichts.
Der Aufruf <kill_task> bricht alle mit add_pid() bekannt gemachten Prozesse ab.
Software- and Organisations-Service GmbH
März 2015
Javascript API
177
Unter Unix kann eine Prozessgruppen-Id als negative pid übergeben werden. Ein kill bricht dann die ganze
Prozessgruppe ab.
Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht.
3.21.2 call_me_again_when_locks_available
Wiederholt spooler_open() oder spooler_process(), sobald Sperren verfügbar
Syntax: spooler_task. call_me_again_when_locks_available ()
Ve r a n l a s s t
den
S c h e d u l e r,
nach
erfolglosem
Task.try_hold_lock()
oder
Task.try_hold_lock_non_exclusive() den Aufruf von spooler_open() bzw. spooler_process() zu
wiederholen, sobald die angeforderten Sperren verfügbar sind. Der JobScheduler wiederholt dann den Aufruf mit
gehaltenen Sperren, so dass die erstgenannten Aufrufe Erfolg haben werden.
Nach dem Aufruf hat der Rückgabewert von spooler_open() bzw. spooler_process() (true/false) keine
Wirkung. Einen Auftrag Task.order belässt der JobScheduler in seinem Zustand.
3.21.3 changed_directories
Die Verzeichnisse, deren Änderung den Start der Task veranlasst haben
Syntax: string spooler_task. changed_directories
Siehe Job.start_when_directory_changed() , Task.trigger_files .
Rückgabe:
string Die Verzeichnisnamen sind durch Semikolon getrennt.
"", wenn kein Verzeichnis geändert ist.
3.21.4 create_subprocess
Start eines überwachten Subprozesses
Syntax: Subprocess spooler_task. create_subprocess ( string|string[] filename_and_arguments
(optional) )
Rückgabe:
Subprocess Software- and Organisations-Service GmbH
März 2015
Javascript API
178
3.21.5 delay_spooler_process
Verzögert den nächsten Aufruf von spooler_process()
Syntax: spooler_task. delay_spooler_process = string|double|int seconds_or_hhmm_ss
Wirkt nur in spooler_process() .
3.21.6 end
Beendet die Task
Syntax: spooler_task. end ()
Der JobScheduler ruft nicht mehr spooler_process() auf. Statt dessen ruft er spooler_close() auf.
Der Aufruf kann verwendet werden, um beim Task-Ende den Versand des Task-Protokolls zu veranlassen, siehe
Log .
3.21.7 error
Setzt einen Fehler und stoppt den Job
Syntax: spooler_task. error = string
Syntax: Error spooler_task. error
Der lesende Aufruf liefert den letzten Fehler dieser Task. Wenn kein Fehler vorliegt, wird ein Error -Objekt
zurückgeliefert, dessen Eigenschaft is_error false liefert.
Sie können eine Fehlermeldung auch mit Log.error() ins Task-Protokoll schreiben.
Rückgabe:
string Error 3.21.8 exit_code
Exit-Code
Syntax: spooler_task. exit_code = int
Syntax: int spooler_task. exit_code
Beispiel:
spooler_log.error( "This call of spooler_log.error() sets the exit code to 1" );
spooler_task.exit_code = 0;
// Reset the exit code
Software- and Organisations-Service GmbH
März 2015
Javascript API
179
Der Exit-Code ist anfänglich 0 und wird bei einem Fehler auf 1 gesetzt. Das ist, wenn der JobScheduler eine Zeile
mit [ERROR] ins Task-Protokoll schreibt:
•
•
•
Aufruf von Log.error()
Setzen von Task.error
Das Skript liefert eine Exception.
Der Job kann anschließend, z.B. in spooler_on_error() , den Task.exit_code neu setzen.
Der Exit-Code des (Betriebssystem-)Prozesses, der die Task ausführt, ist ohne Belang und wird nicht
übernommen, im Gegensatz zu Jobs mit <process> oder <script language="shell"> .
Der Exit-Code entscheidet über die anschließend auszuführenden Kommandos. Siehe hierzu <job> <commands
on_exit_code=""> .
Der Exit-Code hat keinen Einfluss darauf, ob der Job gestoppt wird (eine Fehlermeldung der Task lässt den Job
stoppen).
3.21.9 history_field
Ein Feld in der Task-Historie
Syntax: spooler_task. history_field ( string name ) = var value
Beispiel:
spooler_task.history_field( "extra" ) = 4711;
Die Datenbanktabelle (s. factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) muss eine Spalte mit
dem Namen haben und diese Spalte muss in der Datei factory.ini (Abschnitt [job], Eintrag
history_columns=…) deklariert sein.
3.21.10 id
Die Task-Kennung
Syntax: int spooler_task. id
Jede Task hat eine Scheduler-weit eindeutige numerische Kennung.
3.21.11 job
Der Job, zu dem die Task gehört
Syntax: Job spooler_task. job
Rückgabe:
Job Software- and Organisations-Service GmbH
März 2015
Javascript API
180
3.21.12 order
Der zu verarbeitende Auftrag
Syntax: Order spooler_task. order
Beispiel:
var order = spooler_task.order;
spooler_log.info( "order.id=" + order.id + ", order.title=" + order.title );
Rückgabe:
Order null, wenn kein Auftrag vorliegt.
3.21.13 params
Die Parameter der Task
Syntax: Variable_set spooler_task. params
Beispiel:
var value = spooler_task.params.value( "parameter3" );
Beispiel:
var parameters = spooler_task.params;
if( parameters.count > 0 ) spooler_log.info( "Parameters given" );
var value1 = parameters.value( "parameter1" );
var value2 = parameters.value( "parameter2" );
Eine Task kann Parameter haben. Die Parameter können gesetzt werden mit
•
•
•
In der Konfigurationsdatei im Element <job> mit <params> ,
Job.start() und
<start_job> .
Rückgabe:
Variable_set != null
Software- and Organisations-Service GmbH
März 2015
Javascript API
181
3.21.14 priority
Priorität der laufenden Task
Syntax: spooler_task. priority = int
Syntax: int spooler_task. priority
Beispiel:
spooler_task.priority = +5;
// Unix: Priorität etwas verschlechtern
Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht
werden.
Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13
"high" (andere Werte werden abgerundet). Siehe auch Task.priority_class .
Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Task.priority_class .
3.21.15 priority_class
Prioritätsklasse der laufenden Task
Syntax: spooler_task. priority_class = string
Syntax: string spooler_task. priority_class
Beispiel:
spooler_task.priority_class = "below_normal";
Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix
entsprechen:
Prioritätsklasse
Windows
Unix
"idle"
4
16
"below_normal"
6
6
"normal"
8
0
"above_normal"
10
-6
"high"
13
-16
Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelnden Rechts, führt das nicht zu einem Fehler.
Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Software- and Organisations-Service GmbH
März 2015
Javascript API
182
Siehe auch Task.priority , Subprocess.priority_class und Microsoft® Windows® Scheduling Priorities.
3.21.16 remove_pid
Gegenstück zu add_pid()
Syntax: spooler_task. remove_pid ( int pid )
Es gibt keinen Fehler, wenn die Pid nicht mit Task hinzugefügt worden ist.
Siehe Task.add_pid() .
3.21.17 repeat
Startet erneut eine Task nach der eingestellten Zeit
Syntax: spooler_task. repeat = double
(Diese Methode gehört eigentlich in die Klasse Job . Sie hat nichts mit der gerade laufenden Task zu tun.)
Wenn nach Ablauf der angegebenen Zeit keine Task des Jobs läuft, startet der JobScheduler eine Task. Dabei wird
die <run_time> berücksichtigt. <period repeat=""> der aktuellen Periode wird vorläufig außer Kraft gesetzt.
Job.delay_after_error hat Vorrang, wenn die Task einen Fehler liefert.
3.21.18 stderr_path
Der Pfadname der stderr-Ausgabe der Task
Syntax: string spooler_task. stderr_path
Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Rückgabe:
string "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
3.21.19 stderr_text
Der bisher vom Prozess der Task nach stderr geschriebene Text
Syntax: string spooler_task. stderr_text
Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Software- and Organisations-Service GmbH
März 2015
Javascript API
183
Rückgabe:
string "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
3.21.20 stdout_path
Der Pfadname der stdout-Ausgabe der Task
Syntax: string spooler_task. stdout_path
Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Rückgabe:
string "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
3.21.21 stdout_text
Der bisher vom Prozess der Task nach stdout geschriebene Text
Syntax: string spooler_task. stdout_text
Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Rückgabe:
string "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
3.21.22 trigger_files
Pfade der Dateien in mit regex überwachten Verzeichnissen
Syntax: string spooler_task. trigger_files
Liefert die Pfade der Dateien aus überwachten Verzeichnissen ( Job.start_when_directory_changed() oder <
start_when_directory_changed> ) zum Zeitpunkt des Starts der Task. Nur die Verzeichnisse, für die ein
Regulärer Ausdruck (regex) angegeben ist, werden berücksichtigt.
Die Pfade werden aus dem Verzeichnispfad, wie er in Job.start_when_directory_changed() oder <
start_when_directory_changed> angegeben ist und dem Dateinamen zusammengesetzt.
Nicht-API-Jobs ( <process> und <script language="shell"> ) steht der Inhalt von Task.trigger_files in der
Umgebungsvariablen SCHEDULER_TASK_TRIGGER_FILES zur Verfügung.
Siehe Job.start_when_directory_changed() , Task.changed_directories() .
Software- and Organisations-Service GmbH
März 2015
Javascript API
184
Rückgabe:
string Die Dateipfade durch Semikolon getrennt.
"" sonst
3.21.23 try_hold_lock
Versucht, eine Sperre zu halten
Syntax: boolean spooler_task. try_hold_lock ( string lock_path )
Beispiel:
function spooler_process()
{
var result = false;
if( spooler_task.try_hold_lock( "Georgien" ) &&
spooler_task.try_hold_lock_non_exlusive( "Venezuela" ) )
{
// Task is holding the two locks. Insert processing code here.
result = ...
}
else
{
spooler_task.call_me_again_when_locks_available();
}
return result;
}
try_lock_hold() versucht, die angegebene Sperre ( Lock ) zu halten, und kann aufgerufen werden
•
•
in spooler_open() : die Sperre wird für die Task gehalten und erst nach Beendigung freigegeben,
in spooler_process() : die Sperre wird für nur für diesen Jobschritt gehalten und nach dessen Beendigung
freigegeben, also beim Verlassen von spooler_process().
Wenn die Sperre nicht verfügbar ist, ein Aufruf also false liefert, kann entweder
•
•
•
mit Task.call_me_again_when_locks_available() der JobScheduler veranlasst werden, den Aufruf
spooler_open() bzw. spooler_process() zu wiederholen, sobald die Sperren verfügbar sind, oder
spooler_open() bzw. spooler_process() ohne vorgenannten Aufruf mit false beendet werden, mit der
üblichen Wirkung,
aber nicht mit true beendet werden, das wird als Fehler angesehen und führt zur Warnung SCHEDULER-469 .
Siehe auch <lock.use> .
Rückgabe:
boolean true, wenn die Task die Sperre hält.
Software- and Organisations-Service GmbH
März 2015
Javascript API
185
3.21.24 try_hold_lock_non_exclusive
Versucht, eine Sperre nicht-exklusiv zu halten
Syntax: boolean spooler_task. try_hold_lock_non_exclusive ( string lock_path )
Es gelten dieselben Bedingungen wie für Task.try_hold_lock() .
Siehe auch <lock.use exclusive="no"> .
Rückgabe:
boolean true, wenn die Task die Sperre hält.
3.21.25 web_service
Der Webdienst, der der Task zugeordnet ist
Syntax: Web_service spooler_task. web_service
Wenn die Task keinem Webdienst zugeordnet ist, liefert der Aufruf eine Exception.
Siehe auch Task.web_service_or_null .
Rückgabe:
Web_service 3.21.26 web_service_or_null
Der Webdienst, der der Task zugeordnet ist, oder null.
Syntax: Web_service spooler_task. web_service_or_null
Siehe auch Task.web_service .
Rückgabe:
Web_service 3.22 Variable_set - Variablenmenge zur Übergabe von Parametern
Variablenmengen werden gebraucht für die Scheduler-weiten Variablen und Task-Parameter. Eine neue
Variablenmenge wird mit Spooler.create_variable_set() angelegt.
Die Großschreibung der Variablennamen ist nicht relevant.
Software- and Organisations-Service GmbH
März 2015
Javascript API
186
In COM (JavaScript, VBScript, Perl) ist ein Variablenwert ein Variant. Weil die Variablen in der Regel in die
Scheduler-Datenbank geschrieben werden, sollten nur nach String konvertierbare Variant-Werte verwendet werden
(d.h. es sollten keine Objekte verwendet werden).
In Java ist ein Variablenwert ein String. Wenn die Variable mit COM als Variant gesetzt worden ist, wird beim Lesen
der nach String konvertierte Wert zurückgegeben. Null und Empty werden als null zurückgeliefert. Wenn ein
Variant-Wert nicht konvertierbar ist, wird eine Exception ausgelöst.
Siehe auch <params> und <sos.spooler.variable_set> .
3.22.1 count
Anzahl der Variablen
Syntax: int variable_set. count
3.22.2 merge
Mischt eine andere Variablenmenge ein
Syntax: variable_set. merge ( Variable_set vs )
Gleichnamige Variablen werden überschrieben.
3.22.3 names
Alle Variablennamen durch Semikolon getrennt
Syntax: string variable_set. names
Beispiel:
var variable_set = spooler.create_variable_set();
spooler_log.info( '"' + variable_set.names + '"' );
// ==> ""
variable_set( "variable_1" ) = "edno";
variable_set( "variable_2" ) = "dwa";
spooler_log.info( '"' + variable_set.names + '"' );
"variable_1;variable_2"
// ==>
var names = variable_set.names.split( ";" );
for( var i in names ) spooler_log.info( names[i] + "=" + variable_set( names[i] ) );
Rückgabe:
string Die Namen aller Variablen durch Semikolon getrennt.
Software- and Organisations-Service GmbH
März 2015
Javascript API
187
3.22.4 set_var
Setzt eine Variable
Syntax: variable_set. set_var ( string name, var value )
3.22.5 substitute
Ersetzt $-Variablen in einem String
Syntax: string variable_set. substitute ( string sustitution_string )
Beispiel:
subprocess.start( subprocess.env.substitute( "${MY_HOME}/my_program" ) );
Im Beispiel wird Subprocess.env verwendet.
Referenzen der Form $ name und ${ name } im String werden durch Variablenwerte ersetzt, siehe auch .
Rückgabe:
string Die Zeichenkette mit den ersetzten $-Variablen
3.22.6 value
Eine Variable
Syntax: variable_set. value ( string name ) = var value
Syntax: var variable_set. value ( string name )
Parameter:
name
value
empty, wenn die Variable nicht vorhanden ist.
Rückgabe:
var empty, wenn die Variable nicht vorhanden ist.
3.22.7 xml
Variable_set als XML-Dokument
Syntax: variable_set. xml = string
Software- and Organisations-Service GmbH
März 2015
Javascript API
188
Syntax: string variable_set. xml
Beispiel:
var variable_set = spooler.create_variable_set();
spooler_log.info( variable_set.xml );
// Liefert <?xml version='1.0'?><
sos.spooler.variable_set/>
variable_set.xml= "<?xml version='1.0'?>" +
"<params>" +
"<param name='nachname' value='Meier'/>" +
"<param name='vorname' value='Hans'/>" +
"</params>";
spooler_log.info( variable_set.xml );
spooler_log.info( "nachname=" + variable_set.value( "nachname" ) );
spooler_log.info( "vorname =" + variable_set.value( "vorname" ) );
Siehe <sos.spooler.variable_set> , <params> .
Parameter:
XML-Dokument als String. Liefert <
sos.spooler.variable_set> . Beim Setzen wird der
Name des Wurzelelements nicht beachtet, <params>
oder <sos.spooler.variable_set> kann übergeben
werden.
Rückgabe:
string XML-Dokument als String. Liefert <sos.spooler.variable_set> . Beim Setzen wird der Name des
Wurzelelements nicht beachtet, <params> oder <sos.spooler.variable_set> kann übergeben werden.
3.23 Web_service
Siehe auch <web_service>
3.23.1 forward_xslt_stylesheet_path
Pfad des XSLT-Stylesheets fürs Forwarding
Syntax: string web_service. forward_xslt_stylesheet_path
Siehe auch <web_service forward_xslt_stylesheet="">
3.23.2 name
Name des Web-Dienstes im Scheduler
Syntax: string web_service. name
Software- and Organisations-Service GmbH
März 2015
Javascript API
189
Siehe auch <web_service name="">
3.23.3 params
Parameter zur freien Verwendung
Syntax: Variable_set web_service. params
Die Parameter des Web-Services können mit <web_service> eingestellt werden.
Rückgabe:
Variable_set 3.24 Web_service_operation
Siehe auch <web_service>
3.24.1 peer_hostname
Hostname der Gegenstelle
Syntax: string web_service_operation. peer_hostname
Rückgabe:
string "", wenn der Name nicht ermittelt werden kann.
3.24.2 peer_ip
IP-Adresse der Gegenstelle
Syntax: string web_service_operation. peer_ip
3.24.3 request
Anforderung
Syntax: Web_service_request web_service_operation. request
Software- and Organisations-Service GmbH
März 2015
Javascript API
190
Rückgabe:
Web_service_request 3.24.4 response
Antwort
Syntax: Web_service_response web_service_operation. response
Rückgabe:
Web_service_response 3.24.5 web_service
Syntax: Web_service web_service_operation. web_service
Rückgabe:
Web_service 3.25 Web_service_request
Siehe Web_service_operation .
3.25.1 binary_content
Nutzdaten als Byte-Array (nur Java)
Syntax: web_service_request. binary_content
Die Eigenschaft steht nur unter Java zur Verfügung.
Wie der binäre Inhalt zu interpretieren ist, sollte der Client in im Header-Feld Content-Type mitgeteilt haben (siehe
HTTP/1.1 14.17 Content-Type und Web_service_request.charset_name ).
3.25.2 charset_name
Zeichencodierung
Syntax: string web_service_request. charset_name
Software- and Organisations-Service GmbH
März 2015
Javascript API
191
Beispiel:
var request = spooler_task.order.web_service_operation.request;
spooler_log.info( request.header( "Content-Type" ) );
spooler_log.info( request.content_type );
spooler_log.info( request.charset_name );
// ==> text/xml; charset=utf-8
// ==> text/xml
// ==> utf-8
Liefert den Parameter charset= aus dem Kopfeintrag Content-Type:.
3.25.3 content_type
Content-Type (ohne Parameter)
Syntax: string web_service_request. content_type
Liefert den Kopfeintrag Content-Type: ohne Parameter, z.B. "text/plain".
3.25.4 header
Eintrag im Kopf
Syntax: string web_service_request. header ( string name )
Beispiel:
spooler_log.info( "Content-Type: " +
spooler_task.order.web_service_operation.request.header( "Content-Type" ) );
Parameter:
name
Die Großschreibung spielt keine Rolle.
Rückgabe:
string Für einen unbekannten Eintrag wird "" geliefert
3.25.5 string_content
Nutzdaten als Text
Syntax: string web_service_request. string_content
Die Zeichen-Codierung wird dem Parameter charset aus headers( "Content-Type" ) entnommen (siehe
HTTP/1.1 14.17 Content-Type). Fehlt der Parameter, wird ISO-8859-1 angenommen.
Software- and Organisations-Service GmbH
März 2015
Javascript API
192
Folgende Zeichen-Codierungen (Charset) werden erkannt:
•
•
ISO-8859-1
UTF-8 (nur Windows und beschränkt auf den Zeichenvorrat von ISO-8859-1)
Siehe auch Web_service_request.binary_content .
3.25.6 url
Uniform Resource Locator
Syntax: string web_service_request. url
url = "http://" + header( "Host" ) + url_pfad
3.26 Web_service_response
Die Eigenschaft binary_content steht nur unter Java zur Verfügung.
Siehe auch <web_service>
3.26.1 charset_name
Zeichencodierung
Syntax: string web_service_response. charset_name
Beispiel:
var request = spooler_task.order.web_service_operation.request;
spooler_log.info( request.header( "Content-Type" ) );
spooler_log.info( request.content_type );
spooler_log.info( request.charset_name );
// ==> text/xml; charset=utf-8
// ==> text/xml
// ==> utf-8
Zugriff auf den Parameter charset= aus dem Kopfeintrag Content-Type:.
3.26.2 content_type
Content-Type (ohne Parameter)
Syntax: string web_service_response. content_type
Zugriff auf den Kopfeintrag Content-Type: ohne dazugehörige Parameter (z.B. charset=).
Software- and Organisations-Service GmbH
März 2015
Javascript API
193
3.26.3 header
Eintrag im Kopf
Syntax: web_service_response. header ( string name ) = string value
Syntax: string web_service_response. header ( string name )
Beispiel:
spooler_log.info( "Content-Type: " + spooler_task.order.web_service_operation.header(
"Content-Type" ) );
Parameter:
value
Für einen umbekannten Eintrag wird "" verwendet
name
Die Großschreibung spielt keine Rolle.
Rückgabe:
string Für einen umbekannten Eintrag wird "" verwendet
3.26.4 send
Antwort senden
Syntax: web_service_response. send ()
3.26.5 status_code
HTTP-Status-Code
Syntax: web_service_response. status_code = int
Voreingestellt ist 200 (OK).
3.26.6 string_content
Nutzdaten als Text
Syntax: web_service_response. string_content = string text
Software- and Organisations-Service GmbH
März 2015
Javascript API
194
Beispiel:
var response = spooler_task.order.web_service_operation.response;
response.content_type = "text/plain";
response.charset_name = "iso-8859-1";
response.string_content = "This is the answer";
response.send();
Zuvor muss header( "Content-Type" ) mit dem Parameter charset gesetzt sein, zum Beispiel
header( "Content-Type" ) = "text/plain; charset=iso-8859-1";
Der Text wird nach dem Parameter charset codiert. Fehlt der Parameter, wird ISO-8859-1 angenommen.
Zu den hier zulässigen Zeichen-Codierungen (Charset) siehe Web_service_request.string_content
Siehe Web_service_response.charset_name .
3.27 Xslt_stylesheet
Mit einem XSLT-Stylesheet wird die Konvertierung eines XML-Dokuments in ein anderes beschrieben.
Der XSLT-Prozessor ist mit libxslt implementiert.
3.27.1 apply_xml
Wendet das Stylesheet auf ein XML-Dokument an.
Syntax: string x. apply_xml ( string xml )
3.27.2 close
Gibt die Ressourcen des Stylesheets frei
Syntax: x. close ()
3.27.3 load_file
Lädt das Stylesheet aus einer XML-Datei
Syntax: x. load_file ( string path )
Software- and Organisations-Service GmbH
März 2015
Javascript API
195
3.27.4 load_xml
Lädt das Stylesheet aus einem XML-Dokument
Syntax: x. load_xml ( string xml )
Software- and Organisations-Service GmbH
März 2015
Perl API
196
4 Perl API
Für Perl stehen die folgenden Klassen zur Verfügung:
4.1 Error
4.1.1 code
Der Fehlercode
Syntax: BSTR $error-> code
4.1.2 is_error
true, wenn ein Fehler vorliegt
Syntax: Boolean $error-> is_error
4.1.3 text
Fehlertext (mit Fehlercode)
Syntax: BSTR $error-> text
4.2 Job
Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen.
4.2.1 clear_delay_after_error
Nimmt alle delay_after_error zurück
Syntax: $spooler_job-> clear_delay_after_error(
4.2.2 clear_when_directory_changed
Nimmt alle start_when_directory_changed() zurück
Software- and Organisations-Service GmbH
März 2015
Perl API
197
Syntax: $spooler_job-> clear_when_directory_changed(
4.2.3 configuration_directory
Verzeichnis der Konfigurationsdatei des Jobs
Syntax: BSTR $spooler_job-> configuration_directory
"", wenn der Job nicht aus einem Konfigurationsverzeichnis stammt.
4.2.4 delay_after_error
Verzögert erneuten Jobstart nach Fehler
Syntax: $spooler_job->LetProperty(
'delay_after_error',
int
error_steps,
double|int|BSTR
seconds_or_hhmm_ss )
Beispiel:
$spooler_job->LetProperty( 'delay_after_error', 2, 10 );
aufeinanderfolgenden Fehler um 10 Sekunden verzögern
$spooler_job->LetProperty( 'delay_after_error', 5, '00:01' );
aufeinanderfolgenden Fehler um eine Minute verzögern
$spooler_job->LetProperty( 'delay_after_error', 10, '24:00' );
aufeinanderfolgenden Fehler um einen Tag verzögern
$spooler_job->LetProperty( 'delay_after_error', 20, 'STOP' );
aufeinanderfolgenden Fehler den Job stoppen
# Ab dem 2.
# Ab dem 5.
# Ab dem 10.
# Beim 20.
Nach einem Fehler wiederholt der JobScheduler den Job sofort.
Nach dem zweiten bis zum vierten Fehler verzögert der JobScheduler den Job um 10 Sekunden,
nach dem fünften bis zum neunten Fehler um eine Minute,
nach dem zehnten bis zum neunzehnten um 24 Stunden,
nach dem zwanzigsten aufeinanderfolgenden Fehler schließlich stoppt der Job.
Für verschiedene Anzahlen aufeinanderfolgender Fehler kann eine Verzögerung eingestellt werden. Der Job wird
dann nicht gestoppt, sondern die angegebene Zeit verzögert und erneut gestartet.
Der Aufruf kann für verschiedene Anzahlen wiederholt werden. Man wird jeweils eine längere Verzögerung
angeben.
Wenn Sie den Parameter seconds_or_hhmm_ss als String übergeben, können Sie auch "STOP" angeben. Der Job
stoppt, wenn er die angegebene Anzahl aufeinanderfolgende Fehler erreicht hat.
Eine gute Stelle für die Aufrufe ist spooler_init() .
Siehe <delay_after_error> .
Parameter:
error_steps
Anzahl der aufeinanderfolgenden Jobfehler, ab der die Verzögerung gilt
Software- and Organisations-Service GmbH
März 2015
Perl API
198
seconds_or_hhmm_ss
Frist, nach der der Job wiederholt wird
4.2.5 delay_order_after_setback
Stellt Aufträge nach Fehler zurück
Syntax: $spooler_job->LetProperty( 'delay_order_after_setback', int setback_count, double|int|
BSTR seconds_or_hhmm_ss )
Beispiel:
$spooler_job->LetProperty( 'delay_order_after_setback', 1 , 60 );
# 1. bis 2.
aufeinderfolgende Rückstellung desselben Auftrags:
# Auftrag um 60s verzögern.
$spooler_job->LetProperty( 'delay_order_after_setback', 3 , '01:00' ); # Ab 3.
aufeinanderfolgender Rückstellung desselben Auftrags:
# Auftrag um eine Stunde verzögern.
$spooler_job->LetProperty( 'max_order_setbacks', 5 );
# Die 5.
Rückstellung versetzt den Auftrag in den Fehlerzustand
Ein Auftragsjob kann einen Auftrag, den er gerade ausführt, mit Order.setback() zurückstellen. Er wird dann an
eine hintere Stelle der Auftragswarteschlange des Jobs eingereiht und kommt nach der eingestellten Zeit erneut
zur Ausführung.
Die aufeinanderfolgenden Rückstellungen eines Auftrags werden gezählt. Mit delay_order_after_setback
können Sie verschiedene Fristen für wiederholte Rückstellungen festlegen.
Siehe <delay_order_after_setback> , Order.setback() , Job.max_order_setbacks , Job_chain.add_job() ,
Job.delay_after_error() .
Parameter:
setback_coun
t
Für die 1., 2. usw. aufeinanderfolgende Rückstellung desselben Auftrags können verschiedene
Fristen eingestellt werden.
seconds_or_h
hmm_ss
Frist für die Rückstellung. Nach Ablauf der Frist kommt der Auftrag erneut in diesem Job zur
Ausführung.
4.2.6 folder_path
Pfad des Ordners, in dem der Job sich befindet.
Syntax: BSTR $spooler_job-> folder_path
"", wenn der Job nicht aus dem lokalen Konfigurationsverzeichnis ( <config configuration_directory=""> )
stammt.
Liefert den Pfad des Jobs relativ zum Live-Directory. Der Pfad beginnt mit einem "/", alle Bestandteile eines Pfads
sind durch "/" getrennt
Beispiele:
Software- and Organisations-Service GmbH
März 2015
Perl API
•
•
•
199
für einen Job c:\scheduler\config\live\somewhere\excel\sample.job.xml wird "/somewhere/excel"
zurückgeliefert
für einen Job c:\scheduler\config\live\sample.xml wird "/" zurückgeliefert
für einen Job außerhalb des Live-Verzeichnisses wird "" (Leerstring) zurückgeliefert
4.2.7 include_path
Wert der Option -include-path=
Syntax: BSTR $spooler_job-> include_path
Siehe -include-path .
4.2.8 max_order_setbacks
Begrenzt die Anzahl der Rückstellungen eines Auftrags
Syntax: $spooler_job->LetProperty( 'max_order_setbacks', int )
Wenn derselbe Auftrag mehr als hier angegeben aufeinderfolgend zurückgesetzt worden ist (s. Order.setback()
), gerät er in den Fehlerzustand (s. Job_chain_node.error_state ).
Siehe Job.delay_order_after_setback und <delay_order_after_setback is_maximum="yes"> .
4.2.9 name
Pfad des Jobs ohne beginnenden Schrägstrich
Syntax: BSTR $spooler_job-> name
Siehe <job name=""> .
4.2.10 order_queue
Auftragswarteschlange des Jobs
Syntax: Order_queue $spooler_job-> order_queue
Beispiel:
$spooler_log->info( 'order=' . ( defined $spooler_job->order_queue ? "yes" : "no" ) );
Ein Auftragsjob ( <job order="yes"> ) hat eine Auftragswarteschlange. Die Auftragswarteschlange wird über eine
Jobkette, in der der Job eingetragen ist, gefüllt.
Software- and Organisations-Service GmbH
März 2015
Perl API
200
Siehe Job_chain.add_order() , Job_chain.add_job() .
Rückgabe:
Order_queue null, wenn der Job keine Auftragswarteschlange hat (bei <job order="no"> ).
4.2.11 process_class
Die Prozessklasse
Syntax: Process_class $spooler_job-> process_class
Siehe <job process_class=""> .
Rückgabe:
Process_class 4.2.12 remove
Entfernt den Job
Syntax: $spooler_job-> remove(
Der Job wird gestoppt, d.h. laufende Tasks werden beendet, keine neuen werden gestartet. Sobald keine Task
mehr läuft, wird der Job entfernt.
Tasks in der Warteschlange werden ignoriert.
Wenn keine Task des Jobs läuft, entfernt remove() den Job sofort.
Auftragsjobs ( <job order="yes"> ) können nicht entfernt werden.
Siehe <modify_job cmd="remove"> .
4.2.13 setback_max
Wie oft kann ein Auftrag zurückgestellt werden?
Syntax: $spooler_job->LetProperty( 'setback_max', int )
Syntax: int $spooler_job-> setback_max
Siehe <delay_order_after_setback is_maximum="yes"> .
Software- and Organisations-Service GmbH
März 2015
Perl API
201
4.2.14 start
Erzeugt eine neue Task und reiht sie in die Task-Warteschlange ein
Syntax: Task $spooler_job-> start( Variable_set variables (optional) )
Beispiel:
$spooler->job( 'job_a' )->start();
my $parameters = $spooler->create_variable_set();
$parameters->LetProperty( 'var', 'my_parameter', 'my_value' );
$parameters->LetProperty( 'var', 'other_parameter', 'other_value' );
$spooler->job( 'job_a' )->start( $parameters );
Die Parameter stehen der Task mit Task.params zur Verfügung. Zwei besondere Parameter können angegeben
werden:
"spooler_task gibt der Task einen Namen, der in den Statusanzeigen erscheint.
_name"
"spooler_star gibt eine Zeit in Sekunden (reelle Zahl) an, nach deren Ablauf die Task zu starten ist. Dabei wird
t_after"
<run_time> nicht beachtet.
Siehe Spooler.create_variable_set() , Spooler.job , Variable_set.value .
Rückgabe:
Task 4.2.15 start_when_directory_changed
Überwacht ein Verzeichnis und lässt bei Änderung eine Task starten
Syntax: $spooler_job-> start_when_directory_changed( BSTR directory_path, BSTR filename_pattern
(optional) )
Beispiel:
$spooler_job->start_when_directory_changed( 'c:/tmp' );
# Nur Dateien beachten, deren Name nicht auf "~" endet.
$spooler_job->start_when_directory_changed( 'c:/tmp', '^.*[^~]$' );
Wenn keine Task des Jobs läuft und sich das Verzeichnis geändert hat (eine Datei hinzukommt, umbenannt oder
entfernt wird), startet der JobScheduler innerhalb der <run_time> eine Task.
Um mehrere Verzeichnisse zu überwachen, kann der Aufruf wiederholt werden. Ein Aufruf mit einem bereits ange
gebenen Verzeichnis erneuert die Überwachung.
Der Aufruf kann im Scheduler-Skript oder in spooler_init() des Jobs codiert werden. Im letzteren Fall muss der
Job zu Beginn einmal starten, damit der Aufruf wirksam wird. Verwenden Sie dazu die Einstellung <run_time
once="yes"> .
Der Job sollte mit <run_time repeat=""> periodisch gestartet und mit <delay_after_error> versehen werden.
Software- and Organisations-Service GmbH
März 2015
Perl API
202
Dieselbe Einstellung können Sie auch in der XML-Konfiguration mit <start_when_directory_changed>
vornehmen.
Siehe auch JobScheduler Dokumentation.
Parameter:
directory_path
Pfad des zu überwachenden Verzeichnisses
filename_patter Beschränkt die Überwachung auf Dateinamen, die dem Regulären Ausdruck entsprechen.
n
4.2.16 state_text
Freier Text für den Zustand des Jobs
Syntax: $spooler_job->LetProperty( 'state_text', BSTR )
Beispiel:
$spooler_job->LetProperty( 'state_text', 'Step C succeeded' );
Der Text wird in der HTML-Oberfläche gezeigt.
Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen.
4.2.17 title
Titel des Jobs
Syntax: BSTR $spooler_job-> title
Beispiel:
$spooler_log->info( 'Job title=' . $spooler_job->title );
Siehe <job title=""> .
4.2.18 wake
Veranlasst den Start einer Task
Syntax: $spooler_job-> wake(
Wenn der Job im Zustand pending oder stopped ist (also keine Task läuft), startet der Aufruf eine Task.
Siehe Job.start() .
Software- and Organisations-Service GmbH
März 2015
Perl API
203
4.3 Job_chain - Jobkette zur Auftragsverarbeitung
Eine Jobkette (Job_chain) ist eine Kette von Jobs (Jobkettenknoten oder Stellen). Diese Kette wird von Aufträgen (
Order ) durchlaufen.
Jeder Stelle in der Jobkette ist ein Zustand und ein Job zugeordnet. Wenn ein Auftrag der Jobkette hinzugefügt
wird, setzt der JobScheduler ihn an die seinem Zustand entsprechende Stelle. Der dieser Stelle zugeordnete Job
führt den Auftrag aus.
Jede Stelle hat außerdem einen Folgezustand und einen Fehlerzustand. Nach der Verarbeitung eines Auftrags
durch einen Jobschritt ändert der JobScheduler den Zustand des Auftrags. Wenn der Jobschritt (spooler_process)
true liefert, stellt der JobScheduler den Folgezustand, sonst den Fehlerzustand ein. Der Auftrag rutscht damit an
eine andere Stelle der Jobkette, die dem neuen Zustand zugeordnet ist. Das gilt nicht, wenn der Zustand während
der Ausführung mit Order.state verändert worden ist.
Sie erzeugen eine Jobkette mit Spooler.create_job_chain() , füllen sie mit Job_chain.add_job() und
Job_chain.add_end_state() und machen sie schließlich mit Spooler.add_job_chain() bekannt.
Jeder Knoten ist eindeutig einem Zustand zugeordnet. Für jeden Zustand muss genau einmal
Job_chain.add_job() oder Job_chain.add_end_state() aufgerufen werden.
Beispiel:
my $my_job_chain = $spooler->create_job_chain();
$my_job_chain->LetProperty( 'name', 'Jobkette' );
$my_job_chain->add_job( 'job_100', 100, 200, 999 );
$my_job_chain->add_job( 'job_200', 200, 1000, 999 );
$my_job_chain->add_end_state( 999 );
$my_job_chain->add_end_state( 1000 );
$spooler->add_job_chain( $my_job_chain );
4.3.1 add_end_state
Fügt der Jobkette einen Endknoten hinzu
Syntax: $job_chain-> add_end_state( Variant state )
Diesem Knoten ist kein Job zugeordnet. Ein Auftrag, der einen Endknoten erreicht, hat die Jobkette durchlaufen
und wird vom JobScheduler aus ihr entfernt.
4.3.2 add_job
Erweitert die Jobkette um einen Job
Syntax: $job_chain-> add_job( BSTR job_name, Variant input_state, Variant output_state, Variant
error_state )
Software- and Organisations-Service GmbH
März 2015
Perl API
204
4.3.3 add_or_replace_order
Gibt einen Auftrag in die Jobkette und ersetzt ggfs. einen mit gleicher Kennung
Syntax: $job_chain-> add_or_replace_order( Order order )
Hat die Jobkette bereits einen Auftrag mit gleicher Kennung, dann wird dieser ersetzt. Genauer: Er wird aus der
Jobkette entfernt, und der neue Auftrag wird hinzugefügt.
Solange eine Task den vorhandenen Auftrag ausführt, sind im JobScheduler zwei Aufträge mit gleicher Kennung
vorhanden. Allerdings ist der vorhandene Auftrag aus der Jobkette und aus der Datenbank bereits entfernt. Er ist
nur noch für die Task nutzbar und verschwindet nach der Ausführung.
In diesem Fall wartet der JobScheduler die Ausführung des neuen Auftrags ab, bis die Ausführung des alten
Auftrags beendet ist.
Siehe Job_chain.add_order() und Order.remove_from_job_chain()
4.3.4 add_order
Gibt einen Auftrag in die Jobkette
Syntax: Order $job_chain-> add_order( Order |BSTR order_or_payload )
Wenn der Auftrag in einer anderen Jobkette enthalten ist, entfernt der JobScheduler ihn daraus.
Der Auftrag wird in die Auftragswarteschlange des Jobs, der seinem Zustand entspricht, gemäß seiner Priorität
eingeordnet.
Die Jobkette mit muss <job_chain> oder Spooler.add_job_chain() dem JobScheduler bekannt gemacht
worden sein.
Wenn die Jobkette bereits einen Auftrag mit gleicher Order.id enthält, wird eine Exception mit Fehlercode
SCHEDULER-186 geliefert. Siehe aber Job_chain.add_or_replace_order() .
Rückgabe:
Order 4.3.5 name
Name der Jobkette
Syntax: $job_chain->LetProperty( 'name', BSTR )
Syntax: BSTR $job_chain-> name
Beispiel:
my $job_chain = $spooler->create_job_chain();
$job_chain->LetProperty( 'name', 'Jobkette' );
Software- and Organisations-Service GmbH
März 2015
Perl API
205
4.3.6 node
Der Jobkettenknoten zum angegebenen Zustand
Syntax: Job_chain_node $job_chain-> node( Variant state )
Rückgabe:
Job_chain_node 4.3.7 order_count
Anzahl der Aufträge in der Jobkette
Syntax: int $job_chain-> order_count
4.3.8 order_queue
= node(state).job().order_queue()
Syntax: Order_queue $job_chain-> order_queue( Variant state )
Liefert die Auftragswarteschlange des Jobs, der dem angegebenen Zustand zugeordnet ist.
Rückgabe:
Order_queue 4.3.9 orders_recoverable
Syntax: $job_chain->LetProperty( 'orders_recoverable', Boolean )
Syntax: Boolean $job_chain-> orders_recoverable
Siehe <job_chain orders_recoverable=""> .
4.3.10 remove
Entfernt die Jobkette
Syntax: $job_chain-> remove(
Wenn gerade Aufträge der Jobkette verarbeitet werden (in spooler_process() ), dann entfernt der JobScheduler
die Jobkette, sobald der letzte Auftrag verarbeitet worden ist.
Software- and Organisations-Service GmbH
März 2015
Perl API
206
Die Aufträge bleiben in der Datenbank erhalten. Wenn später eine Jobkette mit gleichen Namen hinzugefügt wird (
Spooler.add_job_chain() ), dann lädt der JobScheduler diese Aufträge erneut. Die Zustände der Aufträge
müssen in der erneuerten Jobkette vorhanden sein.
4.3.11 title
Syntax: $job_chain->LetProperty( 'title', BSTR )
Syntax: BSTR $job_chain-> title
Siehe <job_chain title=""> .
4.4 Job_chain_node
Ein Jobkettenknoten beschreibt eine Stelle in einer Jobkette ( Job_chain ). Einem Jobkettenknoten sind
zugeordnet: ein Zustand, ein Job, ein Folgezustand und ein Fehlerzustand.
Ein Jobkettenknoten wird mit Job_chain.add_job() oder mit Job_chain.add_end_state() erzeugt.
4.4.1 action
Jobkettenknoten stoppen oder überspringen
Syntax: $node->LetProperty( 'action', BSTR )
Syntax: BSTR $node-> action
Beispiel:
my $job_chain_node = $spooler->job_chain( 'my_job_chain' )->node( 100 );
$job_chain_node->LetProperty( 'action', 'next_state' );
Für eine verteilte Jobkette nicht möglich.
Mögliche Angaben sind
action="process"
Das ist die Voreinstellung. Aufträge werden ausgeführt.
action="stop"
Aufträge werden nicht ausgeführt, sie sammeln sich in der Auftragswarteschlange an.
action="next_state"
Aufträge werden sofort dem mit next_state bestimmten Folgeknoten übergeben.
Siehe auch <job_chain_node.modify action=""> .
In Java sind für Zeichenketten Konstanten definiert:
Software- and Organisations-Service GmbH
März 2015
Perl API
•
•
•
207
Job_chain_node.ACTION_PROCESS
Job_chain_node.ACTION_STOP
Job_chain_node.ACTION_NEXT_STATE
4.4.2 error_node
Nächster Knoten in der Jobkette für den Fehlerfall
Syntax: Job_chain_node $node-> error_node
Beispiel:
my $job_chain_node = $spooler->job_chain( 'Jobkette' )->node( 100 );
$spooler_log->debug( 'error state=' . $job_chain_node->error_node->state );
# "state=999"
Rückgabe:
Job_chain_node null, wenn es keinen Fehler-Knoten gibt (Fehlerzustand ist nicht angegeben)
4.4.3 error_state
Zustand in der Jobkette für den Fehlerfall
Syntax: Variant $node-> error_state
Beispiel:
my $job_chain_node = $spooler->job_chain( 'Jobkette' )->node( 100 );
$spooler_log->debug( 'error state=' . $job_chain_node->error_node->state );
"error state=999"
#
4.4.4 job
Job, der dem Knoten zugeordnet ist
Syntax: Job $node-> job
Beispiel:
my $job_chain_node = $spooler->job_chain( 'Jobkette' )->node( 100 );
$spooler_log->debug( 'job=' . $job_chain_node->job->name );
"job=job_100"
#
Rückgabe:
Job Software- and Organisations-Service GmbH
März 2015
Perl API
208
4.4.5 next_node
Syntax: Job_chain_node $node-> next_node
Rückgabe:
Job_chain_node 4.4.6 next_state
Zustand in der Jobkette für den Erfolgsfall
Syntax: Variant $node-> next_state
Beispiel:
my $job_chain_node = $spooler->job_chain( 'Jobkette' )->node( 100 );
$spooler_log->debug( 'next_state=' . $job_chain_node->next_state );
"state=200"
#
4.4.7 state
Zustand, für den dieser Jobkettenknoten gilt
Syntax: Variant $node-> state
Beispiel:
my $job_chain_node = $spooler->job_chain( 'Jobkette' )->node( 100 );
$spooler_log->info( 'state=' . $job_chain_node->state );
"state=100"
#
4.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript
Der Methoden eines Jobs werden in folgender Reihenfolge aufgerufen.
spooler_init()
spooler_open()
spooler_process()
spooler_process()
...
spooler_close()
spooler_on_success() oder spooler_on_error()
spooler_exit()
Software- and Organisations-Service GmbH
März 2015
Perl API
209
Keine dieser Methoden muss implementiert werden. In der Regel wird wenigstens spooler_process()
implementiert.
Ein Fehler beim Ausführen des Job-Skripts während des Ladens oder in spooler_init() führt zum Aufruf von
spooler_on_error() . Der Job wird gestoppt. spooler_exit() wird gerufen (obwohl spooler_init() nicht
gerufen worden ist!) und das Skript entladen.
spooler_on_error() muss also auch mit Fehlern umgehen, die beim Laden oder in spooler_init() auftreten.
spooler_exit() wird gerufen, auch wenn spooler_init() nicht gerufen worden ist.
4.5.1 spooler
Das allgemeine Objekt des Schedulers
Syntax: Spooler spooler
Beispiel:
$spooler_log->debug( 'The working directory of the JobScheduler is ' . $spooler->
directory );
Rückgabe:
Spooler 4.5.2 spooler_close
Task-Ende
Syntax: spooler_close(
Wird am Ende eines Joblaufs gerufen. Gegenstück zu spooler_open() .
4.5.3 spooler_exit
Destruktor
Syntax: spooler_exit(
Wird als allerletzte Methode gerufen, bevor das Skript entladen wird. Hier kann z.B. eine Datenbank-Verbindung
geschlossen werden.
4.5.4 spooler_init
Initialisierung
Syntax: Boolean spooler_init(
Software- and Organisations-Service GmbH
März 2015
Perl API
210
Der JobScheduler ruft diese Methode nach dem Konstruktor und vor spooler_open() genau einmal auf.
Gegenstück ist spooler_exit() . Die Methode ist geeignet, um die Task zu initialisieren (z.B. um eine
Datenbank-Verbindung aufzubauen).
Rückgabe:
Boolean false beendet die Task. Der JobScheduler setzt mit spooler_exit() fort. Wenn die Task einen Auftrag
verarbeiten soll, wird die Task mit Fehler beendet, was den Job stoppt (wenn nicht Job.delay_after_error
gesetzt ist).
4.5.5 spooler_job
Das Objekt des Jobs
Syntax: Job spooler_job
Beispiel:
$spooler_log->info( 'The name of this job is ' . $spooler_job->name );
Rückgabe:
Job 4.5.6 spooler_log
Zum Protokollieren
Syntax: Log spooler_log
Beispiel:
$spooler_log->info( 'Something has happened' );
Rückgabe:
Log 4.5.7 spooler_on_error
Bei Task-Ende im Fehlerfall
Syntax: spooler_on_error(
Wird als letzte Funktion eines Joblaufs gerufen, wenn ein Fehler aufgetreten ist (nach spooler_close() und vor
spooler_exit() ).
Software- and Organisations-Service GmbH
März 2015
Perl API
211
4.5.8 spooler_on_success
Bei Task-Ende im Erfolgsfall
Syntax: spooler_on_success(
Wird nach spooler_close() , vor spooler_exit() aufgerufen, wenn kein Fehler aufgetreten ist.
4.5.9 spooler_open
Task-Beginn
Syntax: Boolean spooler_open(
Wird zu Beginn einer Task gerufen. Die Methode wird direkt nach spooler_init() gerufen, es gibt derzeit keinen
Unterschied. Gegenstück ist spooler_close() .
4.5.10 spooler_process
Jobschritt oder Ausführung eines Auftrags
Syntax: Boolean spooler_process(
Führt einen Jobschritt aus.
Ein Auftragsjob erhält in Task.order den auszuführenden Auftrag.
Die Default-Implementierung gibt false zurück. Ein Auftragsjob versetzt aber einen Auftrag in den Folgezustand.
Rückgabe:
Boolean Bei <job order="no"> : false beendet den Joblauf.
Bei <job order="yes"> : false versetzt den Auftrag in den Fehlerzustand (s. Job_chain_node und <
job_chain_node> ). Das gilt nicht, wenn der Zustand während der Ausführung mit Order.state verändert worden
ist.
4.5.11 spooler_task
Das Objekt der Task
Syntax: Task spooler_task
Beispiel:
$spooler_log->info( 'The task id is ' . $spooler_task->id );
Software- and Organisations-Service GmbH
März 2015
Perl API
212
Rückgabe:
Task 4.6 Lock
Siehe auch <lock name=""> .
Beispiel:
my $locks = $spooler->locks;
my $lock = $locks->create_lock();
$lock->LetProperty( 'name', 'my_lock' );
$locks->add_lock( $lock );
4.6.1 max_non_exclusive
Begrenzung der nicht-exklusiven Belegungen
Syntax: $lock->LetProperty( 'max_non_exclusive', int )
Syntax: int $lock-> max_non_exclusive
Die Voreinstellung ist unbegrenzt (231-1), es können also mit <lock.use exclusive="no"> beliebig viele
nicht-exklusive Tasks gestartet werden (aber nur eine exklusive).
Die Zahl kann nicht kleiner sein als die Zahl der nicht-exklusiven Belegungen.
Siehe auch <lock max_non_exclusive=""> .
4.6.2 name
Name der Sperre
Syntax: $lock->LetProperty( 'name', BSTR )
Syntax: BSTR $lock-> name
Der Name kann nur einmal gesetzt und nicht geändert werden.
Siehe auch <lock name=""> .
4.6.3 remove
Entfernt die Sperre
Syntax: $lock-> remove(
Software- and Organisations-Service GmbH
März 2015
Perl API
213
Beispiel:
$spooler->locks->lock( 'my_lock' )->remove();
Die Sperre kann nur gelöscht werden, wenn sie von keiner Task belegt und von keinem Job gebraucht ( <lock.use
> ) wird.
Siehe auch <lock.remove> .
4.7 Locks
4.7.1 add_lock
Fügt dem JobScheduler eine Sperre hinzu
Syntax: $locks-> add_lock( Lock lck )
4.7.2 create_lock
Richtet eine neue Sperre ein
Syntax: Lock $locks-> create_lock(
Liefert eine neues Lock . Diese Sperre kann mit Locks.add_lock() dem JobScheduler hinzugefügt werden.
Rückgabe:
Lock 4.7.3 lock
Liefert eine Sperre
Syntax: Lock $locks-> lock( BSTR lock_name )
Wenn die Sperre nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Lock Software- and Organisations-Service GmbH
März 2015
Perl API
214
4.7.4 lock_or_null
Liefert eine Sperre
Syntax: Lock $locks-> lock_or_null( BSTR lock_name )
Rückgabe:
Lock null, wenn die Sperre nicht bekannt ist.
4.8 Log - Protokollierung
In einem Job oder im Scheduler-Skript stellt spooler_log die hier beschriebenen Methoden bereit.
eMail-Versand
Am Ende einer Task kann der JobScheduler das Task-Protokoll per eMail versenden. In es versendet werden soll,
geben diese Eigenschaften an:
•
•
•
•
•
Log.mail_on_error ,
Log.mail_on_warning ,
Log.mail_on_process ,
Log.mail_on_success und
Log.mail_it
Nur das Ende der Task, nicht das Ende einer Auftragsausführung (also spooler_process() ) führt zum
eMail-Versand. Siehe aber Task.end() .
Log.mail stellt ein Mail -Objekt bereit, das die Adressierung übernimmt.
Beispiel:
$spooler_log->info( "Something for the Log" );
$spooler_log->LetProperty( 'mail_on_warning', 1 );
$spooler_log->mail->LetProperty( 'from', 'scheduler@company.com' );
$spooler_log->mail->LetProperty( 'to', 'admin@company.com' );
$spooler_log->mail->LetProperty( 'subject', 'ended' );
4.8.1 debug
Debug-Meldung (Level -1)
Syntax: $spooler_log-> debug( BSTR line )
4.8.2 debug1
Debug-Meldung (Level -1)
Software- and Organisations-Service GmbH
März 2015
Perl API
215
Syntax: $spooler_log-> debug1( BSTR line )
4.8.3 debug2
Debug-Meldung (Level -2)
Syntax: $spooler_log-> debug2( BSTR line )
4.8.4 debug3
Debug-Meldung (Level -3)
Syntax: $spooler_log-> debug3( BSTR line )
4.8.5 debug4
Debug-Meldung (Level -4)
Syntax: $spooler_log-> debug4( BSTR line )
4.8.6 debug5
Debug-Meldung (Level -5)
Syntax: $spooler_log-> debug5( BSTR line )
4.8.7 debug6
Debug-Meldung (Level -6)
Syntax: $spooler_log-> debug6( BSTR line )
4.8.8 debug7
Debug-Meldung (Level -7)
Syntax: $spooler_log-> debug7( BSTR line )
Software- and Organisations-Service GmbH
März 2015
Perl API
216
4.8.9 debug8
Debug-Meldung (Level -8)
Syntax: $spooler_log-> debug8( BSTR line )
4.8.10 debug9
Debug-Meldung (Level -9)
Syntax: $spooler_log-> debug9( BSTR line )
4.8.11 error
Fehlermeldung (Level 1)
Syntax: $spooler_log-> error( BSTR line )
Wenn die Fehlermeldung ins Task-Protokoll ( spooler_log ) geschrieben wird und nicht <job
stop_on_error="no"> eingestellt ist, stoppt der Job nach Ende der Task.
4.8.12 filename
Dateiname des Protokolls
Syntax: BSTR $spooler_log-> filename
4.8.13 info
Informationsmeldung (Level 0)
Syntax: $spooler_log-> info( BSTR line )
4.8.14 last
Letzte Ausgabe des angegebenen Levels
Syntax: BSTR $spooler_log-> last( int|BSTR level )
Software- and Organisations-Service GmbH
März 2015
Perl API
217
4.8.15 last_error_line
Die zuletzt mit Level 2 (error) ausgegebene Zeile
Syntax: BSTR $spooler_log-> last_error_line
4.8.16 level
Protokollausgaben beschränken
Syntax: $spooler_log->LetProperty( 'level', int )
Syntax: int $spooler_log-> level
Legt fest, ab welcher Stufe der JobScheduler Protokollzeilen ausgibt. Jede Protokollzeile ist auf einer der
folgenden Stufen: error, warn, info, debug1 bis debug9 (debug1 ist dasselbe wie debug).
Nur Meldungen ab dem Level werden ausgegeben.
Dabei bedeutet die numerische Angabe:
-9 bis -2:
debug9 bis debug2
-1:
debug
0:
info
1:
warn
2:
error
Die Option -log-level hat Vorrang.
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_level=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_level=…) wird damit überschrieben.
Nur Meldungen ab dem Level werden ausgegeben.
Dabei bedeutet die numerische Angabe:
-9 bis -2:
debug9 bis debug2
-1:
debug
0:
info
1:
warn
2:
error
Software- and Organisations-Service GmbH
März 2015
Perl API
218
4.8.17 log
Syntax: $spooler_log-> log( int level, BSTR line )
4.8.18 log_file
Protokolliert den Inhalt der Datei
Syntax: $spooler_log-> log_file( BSTR path )
Protokolliert den Inhalt der Datei mit Level 0 (info). Ein Fehler beim Zugriff auf die Datei wird als Warnung
protokolliert.
Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wird die Datei vom
Dateisystem des Schedulers, nicht der Task, gelesen.
4.8.19 mail
Im Mail-Objekt können Sie Einstellungen zur eMail vornehmen
Syntax: $spooler_log->LetProperty( 'mail', Mail )
Syntax: Mail $spooler_log-> mail
Rückgabe:
Mail 4.8.20 mail_it
Versand erzwingen
Syntax: $spooler_log->LetProperty( 'mail_it', Boolean )
Bei true wird das Protokoll bei Task-Ende verschickt unabhängig von den Einstellungen Log.mail_on_error ,
Log.mail_on_warning , Log.mail_on_success , Log.mail_on_process und Log.mail_on_error .
4.8.21 mail_on_error
Mit Fehler beendete Task verschickt eMail
Syntax: $spooler_log->LetProperty( 'mail_on_error', Boolean )
Syntax: Boolean $spooler_log-> mail_on_error
Software- and Organisations-Service GmbH
März 2015
Perl API
219
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_error=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_error=…) wird damit überschrieben.
4.8.22 mail_on_process
Task mit spooler_process() verschickt eMail
Syntax: $spooler_log->LetProperty( 'mail_on_process', int )
Syntax: int $spooler_log-> mail_on_process
Veranlasst den Versand des Task-Protokolls, wenn die Task wenigstens die angegebene Anzahl Schritte, also
Aufrufe von spooler_process() , ausgeführt hat. Weil Nicht-API-Tasks keine Schritte haben, zählt der
JobScheduler für sie immer einen Schritt.
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_process=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_process=…) wird damit überschrieben.
4.8.23 mail_on_success
Erfolgreich gelaufende Task verschickt eMail
Syntax: $spooler_log->LetProperty( 'mail_on_success', Boolean )
Syntax: Boolean $spooler_log-> mail_on_success
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_success=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_success=…) wird damit überschrieben.
4.8.24 mail_on_warning
Wenn eine Warnung ausgegeben worden ist, wird am Task-Ende eine eMail verschickt
Syntax: $spooler_log->LetProperty( 'mail_on_warning', Boolean )
Syntax: Boolean $spooler_log-> mail_on_warning
Damit im Fehlerfall eine Mail verschickt wird, ist mail_on_error=yes explizit zu setzen.
Software- and Organisations-Service GmbH
März 2015
Perl API
220
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_warning=…) wird damit überschrieben.
4.8.25 new_filename
Neuer Dateiname fürs Protokoll
Syntax: $spooler_log->LetProperty( 'new_filename', BSTR )
Syntax: BSTR $spooler_log-> new_filename
Setzt den Dateinamen fürs Protokoll. Wenn das Protokoll geschlossen wird, kopiert der JobScheduler es in diese
Datei. Die Datei steht dann der Anwendung zur Verfügung.
4.8.26 start_new_file
Nur fürs Hauptprotokoll: Schließt das bisherige und beginnt ein neues Protokoll
Syntax: $spooler_log-> start_new_file(
4.8.27 warn
Warnung (Level 2)
Syntax: $spooler_log-> warn( BSTR line )
4.9 Mail - eMail-Versand
Siehe Log.mail .
4.9.1 add_file
Fügt einen Anhang hinzu
Syntax: $mail-> add_file( BSTR path, BSTR filename_for_mail (optional) , BSTR content_type
(optional) , BSTR enconding (optional) )
Beispiel:
$spooler_log->mail->add_file( 'c:/tmp/1.txt', '1.txt', 'text/plain', 'quoted-printable'
);
Software- and Organisations-Service GmbH
März 2015
Perl API
221
Parameter:
path
Pfadname der anzuhängenden Datei
filename_for_mail
Dateiname, der in der Nachricht erscheinen soll
content_type
"text/plain" ist voreingestellt.
enconding
Z.B. "quoted-printable"
4.9.2 add_header_field
Fügt dem eMail-Kopf ein Feld hinzu
Syntax: $mail-> add_header_field( BSTR field_name, BSTR value )
4.9.3 bcc
Unsichtbarer Empfänger einer Kopie der Nachricht, blind carbon copy
Syntax: $mail->LetProperty( 'bcc', BSTR )
Syntax: BSTR $mail-> bcc
Beispiel:
$spooler_log->mail->LetProperty( 'bcc', 'hans@company.com' );
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_bcc=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_bcc=…) wird damit überschrieben.
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
4.9.4 body
Inhalt der Nachricht
Syntax: $mail->LetProperty( 'body', BSTR )
Syntax: BSTR $mail-> body
Software- and Organisations-Service GmbH
März 2015
Perl API
222
Beispiel:
$spooler_log->mail->LetProperty( 'body', 'Job succeeded' );
Codieren Sie Zeilenwechsel mit \n (in VBScript mit chr(10)).
4.9.5 cc
Empfänger einer Kopie der Nachricht, carbon copy
Syntax: $mail->LetProperty( 'cc', BSTR )
Syntax: BSTR $mail-> cc
Beispiel:
$spooler_log->mail->LetProperty( 'cc', 'hans@company.com' );
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_cc=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_cc=…) wird damit überschrieben.
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
4.9.6 dequeue
Nachrichten aus dem Verzeichnis queue_dir erneut versuchen zu versenden
Syntax: int $mail-> dequeue(
Siehe Mail.dequeue_log , factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…).
Rückgabe:
int Zahl der versandten Nachrichten
Software- and Organisations-Service GmbH
März 2015
Perl API
223
4.9.7 dequeue_log
Protokoll von dequeue()
Syntax: BSTR $mail-> dequeue_log
Beispiel:
my $count = $spooler_log->mail->dequeue();
$spooler_log->info( $count . ' messages from mail queue sent' );
$spooler_log->info( $spooler_log->mail->dequeue_log );
Siehe Mail.dequeue() .
4.9.8 from
Absender
Syntax: $mail->LetProperty( 'from', BSTR )
Syntax: BSTR $mail-> from
Beispiel:
$spooler_log->mail->LetProperty( 'from', 'scheduler@company.com' );
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_from=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_from=…) wird damit überschrieben.
4.9.9 queue_dir
Verzeichnis der nicht versendbaren eMails
Syntax: $mail->LetProperty( 'queue_dir', BSTR path )
Syntax: BSTR $mail-> queue_dir
eMails, die der JobScheduler nicht verschicken kann (weil z.B. der SMTP-Server nicht erreichbar ist), werden hier
abgelegt.
Um diese eMails später zu verschicken, muss ein Job geschrieben werden, der die Methode Mail.dequeue()
aufruft.
Software- and Organisations-Service GmbH
März 2015
Perl API
224
Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag queue_dir=…).
Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen).
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_queue_dir=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…) wird damit überschrieben.
Die Einstellung sos.ini (Abschnitt [mail], Eintrag queue_dir=…) wird damit überschrieben.
4.9.10 smtp
Name des SMTP-Servers
Syntax: $mail->LetProperty( 'smtp', BSTR )
Syntax: BSTR $mail-> smtp
Beispiel:
$spooler_log->mail->LetProperty( 'smtp', 'mail.company.com' );
Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag smtp=…).
Die Einstellung factory.ini (Abschnitt [job], Eintrag smtp=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag smtp=…) wird damit überschrieben.
Die Einstellung sos.ini (Abschnitt [mail], Eintrag smtp=…) wird damit überschrieben.
4.9.11 subject
Betreff
Syntax: $mail->LetProperty( 'subject', BSTR )
Syntax: BSTR $mail-> subject
Beispiel:
$spooler_log->mail->LetProperty( 'subject', 'Job succeeded' );
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_subject=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_subject=…) wird damit überschrieben.
Software- and Organisations-Service GmbH
März 2015
Perl API
225
4.9.12 to
Empfänger
Syntax: $mail->LetProperty( 'to', BSTR )
Syntax: BSTR $mail-> to
Beispiel:
$spooler_log->mail->LetProperty( 'to', 'admin@company.com' );
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_to=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_to=…) wird damit überschrieben.
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
4.9.13 xslt_stylesheet
XSLT-Stylesheet für eMail-Aufbereitung
Syntax: Xslt_stylesheet $mail-> xslt_stylesheet
Rückgabe:
Xslt_stylesheet Das XSLT-Stylesheet als String
4.9.14 xslt_stylesheet_path
XSLT-Stylesheet für eMail-Aufbereitung
Syntax: $mail->LetProperty( 'xslt_stylesheet_path', BSTR path )
Beispiel:
$spooler_log->mail->LetProperty( 'xslt_stylesheet_path', 'c:/stylesheets/mail.xslt' );
Software- and Organisations-Service GmbH
März 2015
Perl API
226
Der Pfad eines XSLT-Stylesheets. Der JobScheduler verwendet das XSLT-Stylesheet zum Aufbereiten der eMails.
(Die Dokumentation hierzu ist noch nicht geschrieben.)
<config mail_xslt_stylesheet="…">
Parameter:
path
Der Pfad der Datei, die das XSLT-Stylesheet enthält
4.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs
Mit <monitor> können Sie einem Job einen Monitor geben.
Ein Monitor kann folgende Methoden bereitstellen:
Monitor_impl.spooler_task_before()
Vor dem Start der Task, kann den Start verhindern.
Monitor_impl.spooler_task_after()
Nach dem Ende der Task.
Monitor_impl.spooler_process_before()
Vor spooler_process() , kann diesen Aufruf verhinden.
Monitor_impl.spooler_process_after()
Nach spooler_process() , kann dessen Rückgabewert ändern.
4.10.1 spooler
Das allgemeine Objekt des Schedulers
Syntax: Spooler spooler
Beispiel:
$spooler_log->debug( 'The working directory of the JobScheduler is ' . $spooler->
directory );
Wie dasselbe Objekt in der Klasse Job_impl: spooler .
Rückgabe:
Spooler 4.10.2 spooler_job
Das Objekt des Jobs
Syntax: Job spooler_job
Software- and Organisations-Service GmbH
März 2015
Perl API
227
Beispiel:
$spooler_log->info( 'The name of this job is ' . $spooler_job->name );
Wie dasselbe Objekt in der Klasse Job_impl: spooler_job .
Rückgabe:
Job 4.10.3 spooler_log
Zum Protokollieren
Syntax: Log spooler_log
Beispiel:
$spooler_log->info( 'Something has happened' );
Wie dasselbe Objekt in der Klasse Job_impl: spooler_log .
Rückgabe:
Log 4.10.4 spooler_process_after
Nach spooler_process()
Syntax: Boolean spooler_process_after( Boolean spooler_process_result )
Beispiel: in java
public boolean spooler_task_after( boolean spooler_process_result ) throws Exception
{
spooler_log.info( "SPOOLER_TASK_BEFORE()" );
spooler_log.info( "spooler_process() didn't throw an exception and delivered " +
spooler_process_result );
return spooler_process_result;
// Unchanged result
}
Der JobScheduler ruft diese Methode nach jedem spooler_process() auf.
Parameter:
spooler_process_
result
Rückgabewert von spooler_process() oder false, wenn spooler_process() mit einer
Exception geendet hat.
Rückgabe:
Software- and Organisations-Service GmbH
März 2015
Perl API
228
Boolean Ersetzt den Rückgabewert von spooler_process() .
4.10.5 spooler_process_before
Vor spooler_process()
Syntax: Boolean spooler_process_before(
Beispiel: in java
public boolean spooler_process_before() throws Exception
{
spooler_log.info( "SPOOLER_PROCESS_BEFORE()" );
return true;
// spooler_process() will be executed
}
Beispiel: in java
public boolean spooler_process_before() throws Exception
{
boolean continue_with_spooler_process = true;
if( !are_needed_ressources_available() )
{
spooler_task.order().setback();
continue_with_spooler_process = false;
}
return continue_with_spooler_process;
}
Der JobScheduler ruft diese Methode vor jedem spooler_process() auf.
Rückgabe:
Boolean false verhindert den folgenden Aufruf von spooler_process() . Der JobScheduler setzt fort, als hätte
spooler_process() false geliefert.
4.10.6 spooler_task
Das Objekt der Task
Syntax: Task spooler_task
Beispiel:
$spooler_log->info( 'The task id is ' . $spooler_task->id );
Software- and Organisations-Service GmbH
März 2015
Perl API
229
Wie dasselbe Objekt in der Klasse Job_impl: spooler_task .
Rückgabe:
Task 4.10.7 spooler_task_after
Nach dem Ende der Task
Syntax: spooler_task_after(
Beispiel: in java
public void spooler_task_after() throws Exception
{
spooler_log.info( "SPOOLER_TASK_AFTER()" );
}
Der JobScheduler ruft diese Methode, nachdem die Task geendet hat.
4.10.8 spooler_task_before
Vor Start der Task
Syntax: Boolean spooler_task_before(
Beispiel: in java
public boolean spooler_task_before() throws Exception
{
spooler_log.info( "SPOOLER_TASK_BEFORE()" );
return true;
// Task will be started
//return false; // Task will not be started
}
Vor dem Laden der Task ruft der JobScheduler diese Methode auf.
Rückgabe:
Boolean false lässt die Task nicht starten. Monitor_impl.spooler_task_after() wird nicht gerufen.
4.11 Order - Auftrag
Siehe JobScheduler Dokumentation, Spooler.create_order() , Job_chain.add_order() , Task.order .
Software- and Organisations-Service GmbH
März 2015
Perl API
230
Dateiauftrag
Ein Dateiauftrag ist ein Auftrag mit dem Parameter scheduler_file_path: Order.params .
Variable_set.value() .
Siehe JobScheduler Dokumentation.
Beispiel: Auftrag mit einfacher Nutzlast
# Create order:
{
my $order = $spooler->create_order();
$order->LetProperty( 'id'
, 1234 );
$order->LetProperty( 'title'
, 'This is my order' );
$order->LetProperty( 'state_text', 'This is my state text' );
$order->LetProperty( 'payload'
, 'This is my payload' );
$spooler->job_chain( 'my_job_chain' )->add_order( $order );
}
...
# Process order:
sub spooler_process()
{
my $order = $spooler_task->order;
$spooler_log->info( 'order.payload=" + $order->payload );
return 1;
}
Beispiel: Erzeugen eines Auftrags mit Variable_set als Nutzlast
# Create order:
{
my $variable_set = $spooler->create_variable_set();
$variable_set->set_var( 'param_one', 111 );
$variable_set->set_var( 'param_two', 222 );
my $order = $spooler->create_order();
$order->LetProperty( 'id'
, 1234 );
$order->LetProperty( 'payload', $variable_set );
$spooler->job_chain( 'my_job_chain' )->add_order( $order );
}
...
# Process order:
sub spooler_process()
{
my $order = $spooler_task->order;
my $variable_set = $order->payload;
$spooler_log->info( 'param_one=' . $variable_set->value( 'param_one' ) );
$spooler_log->info( 'param_two=' . $variable_set->value( 'param_two' ) );
return 1;
}
4.11.1 at
Start-Zeitpunkt des Auftrags
Syntax: $order->LetProperty( 'at', BSTR|DATE )
Software- and Organisations-Service GmbH
März 2015
Perl API
231
Beispiel:
$order->LetProperty( 'at', "now+60" );
$spooler->job_chain( "my_job_chain" )->add_order( $order );
Setzt den Start-Zeitpunkt bevor der Auftrag in eine Auftragswarteschlange eingereiht wird. Als String kann
angegeben werden:
•
•
•
•
"now"
"yyyy-mm-dd HH:MM[:SS]"
"now + HH:MM[:SS]"
"now + seconds"
Die Einstellung ändert die von Order.run_time oder Order.setback() vorgegebene Startzeit.
Siehe <add_order at=""> .
4.11.2 end_state
Zustand, vor dessen erfolgreichen Verlassen der Auftrag enden soll
Syntax: $order->LetProperty( 'end_state', Variant )
Syntax: Variant $order-> end_state
Wenn ein Auftrag einen eigenen End-Zustand hat (end_state ungleich ""), endet der Auftrag, bevor er diesen
Zustand erfolgreich verlassen würde, also nach Ausführung des dem End-Zustand zugeordneten Jobs (siehe <
job_chain_node> ).
Der Zustand muss in der Jobkette bekannt sein.
4.11.3 id
Kennung des Auftrags
Syntax: $order->LetProperty( 'id', Variant )
Syntax: Variant $order-> id
Jeder Auftrag hat eine (innerhalb der Jobkette oder der Auftragswarteschlange des Jobs eindeutige) Kennung.
Diese Kennung sollte den zu verarbeitenden Daten entsprechen. Üblicherweise wird der Schlüssel eines
Datenbanksatzes verwendet.
Wenn Sie die id nicht setzen, vergibt Job_chain.add_order() eine Kennung.
4.11.4 job_chain
Jobkette, in der der Auftrag enthalten ist
Software- and Organisations-Service GmbH
März 2015
Perl API
232
Syntax: Job_chain $order-> job_chain
Rückgabe:
Job_chain 4.11.5 job_chain_node
Jobkettenknoten, der dem Zustand des Auftrags entspricht
Syntax: Job_chain_node $order-> job_chain_node
Rückgabe:
Job_chain_node 4.11.6 log
Auftragsprotokoll
Syntax: Log $order-> log
Beispiel:
spooler_task.order.log.info( "Only for order log, not for task log" );
spooler_log.info( "For both order log and task log" );
Beispiel:
$spooler_task->order->log->info( 'Only for order log, not for task log' );
$spooler_log->info( 'For both order log and task log' );
Rückgabe:
Log 4.11.7 params
Parameter des Auftrags
Syntax: $order->LetProperty( 'params', Variable_set )
Syntax: Variable_set $order-> params
params wird in Order.payload gehalten, letzteres kann also nicht zusammen mit params verwendet werden.
Siehe <add_order> .
Rückgabe:
Software- and Organisations-Service GmbH
März 2015
Perl API
233
Variable_set 4.11.8 payload
Nutzlast, also Parameter des Auftrags.
Syntax: $order->LetProperty( 'payload', Variable_set |BSTR|int|… payload )
Syntax: Variable_set |BSTR|int|… $order-> payload
Statt dieser Eigenschaft wird die Verwendung von Order.params empfohlen (was (Variable_set)order.payload
entspricht).
Neben der Auftragskennung Order.id , die den Auftrag identifiziert, können Sie hier zusätzliche Angaben machen.
Siehe Order.params und Order.xml_payload .
Parameter:
payload
Kann ein String oder ein Variable_set sein.
Rückgabe:
Variable_set |BSTR|int|… Kann ein String oder ein Variable_set sein.
4.11.9 payload_is_type
Prüft den COM-Typ der Nutzlast
Syntax: Boolean $order-> payload_is_type( BSTR type_name )
Parameter:
type_name
"Spooler.Variable_set", "Hostware.Dyn_obj" oder "Hostware.Record".
4.11.10 priority
Aufträge mit höherer Priorität werden zuerst verarbeitet
Syntax: $order->LetProperty( 'priority', int )
Syntax: int $order-> priority
4.11.11 remove_from_job_chain
Software- and Organisations-Service GmbH
März 2015
Perl API
234
Syntax: $order-> remove_from_job_chain(
Wenn der Auftrag gerade von einer Task ausgeführt wird, liefert die Eigenschaft Order.job_chain weiterhin die
Jobkette, aus der der Auftrag mit diesem Aufruf entfernt worden ist. Erst wenn die Ausführung beendet ist, liefert
die Eigenschaft null (außer der Auftrag ist wieder in eine Jobkette eingetragen worden). Damit bleibt die
Eigenschaft job_chain während der Ausführung durch die Task stabil.
4.11.12 run_time
<run_time> zur periodischen Wiederholung des Auftrags
Syntax: Run_time $order-> run_time
Beispiel:
$order->run_time->LetProperty( "xml", "<run_time><at at='2006-05-23 11:43:00'/><
/run_time>" );
Siehe <run_time> .
Das Kommando <modify_order at="now"> lässt einen wegen run_time wartenden Auftrag sofort anlaufen.
Rückgabe:
Run_time 4.11.13 setback
Stellt den Auftrag eine Zeitlang zurück
Syntax: $order-> setback(
Der
Auftrag wird zurückgestellt und nach der mit <delay_order_after_setback> oder
Job.delay_order_after_setback eingestellten Frist wiederholt. Bei einer Wiederholung wird nur die Funktion
spooler_process() des Jobs wiederholt. Wenn in spooler_process() die Funktion order.setback()
aufgerufen wurde, bleibt der Rückgabewert von spooler_process() ohne Wirkung.
Der Auftrag zählt aufeinander folgende Aufrufe dieser Methode, was von <delay_order_after_setback>
berücksichtigt wird. Der Zähler wird auf 0 gestellt, wenn spooler_process() ohne diesen Aufruf zu Ende
ausgeführt worden ist. Beim Start des Schedulers sind alle Zähler 0.
Das Kommando <modify_order at="now"> lässt einen zugestellten Auftrag sofort anlaufen.
4.11.14 setback_count
Wie oft ist der Auftrag zurückgestellt worden?
Syntax: int $order-> setback_count
Software- and Organisations-Service GmbH
März 2015
Perl API
235
Siehe <delay_order_after_setback> .
4.11.15 state
Zustand des Auftrags
Syntax: $order->LetProperty( 'state', Variant )
Syntax: Variant $order-> state
Wenn der Auftrag in einer Jobkette ist, muss der Zustand in der Jobkette vorhanden sein.
Wenn der Auftrag gerade von einem Job ausgeführt wird, wird der in der Jobkette festgelegte Folgezustand ( <
job_chain_node next_state=""> ) wirkungslos. Die Rückgabewerte von spooler_process() und
Monitor_impl.spooler_process_after() sind ohne Bedeutung. Mit Order.state kann also ein Job den
Folgezustand frei bestimmen.
Der Auftrag wird in die Auftragswarteschlange des Jobs eingereiht, der dem Zustand zugeordnet ist (s. <
job_chain_node> ). Die Ausführung durch diesen Job wird solange verzögert, bis der jetzt ausführende Job den
Auftrag ausgeführt hat.
4.11.16 state_text
Freier Text für den Zustand des Auftrags
Syntax: $order->LetProperty( 'state_text', BSTR )
Syntax: BSTR $order-> state_text
Der Text wird auf der HTML-Oberfläche gezeigt.
Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen.
4.11.17 string_next_start_time
Nächste Startzeit des Auftrags bei Verwendung von <run_time>
Syntax: BSTR $order-> string_next_start_time
Rückgabe:
BSTR "yyyy-mm-dd HH:MM:SS.MMM" oder "now" oder "never".
Software- and Organisations-Service GmbH
März 2015
Perl API
236
4.11.18 suspended
Ausgesetzer Auftrag
Syntax: $order->LetProperty( 'suspended', Boolean )
Syntax: Boolean $order-> suspended
Ein ausgesetzter Auftrag wird nicht ausgeführt.
Wenn der Auftrag gerade von einer Task ausgeführt wird, wird der Schritt ( spooler_process() ) noch zu Ende
ausgeführt und der Auftrag nach den gewohnten Regeln in den Folgezustand versetzt, bevor er tatsächlich
ausgesetzt wird.
Damit kann ein Auftrag in einen Endzustand ausgesetzt werden, womit verhindet wird, dass er entfernt wird. Erst
wenn die Aussetzung eines solchen Auftrags aufgehoben wird, ( order.suspended=false), entfernt der
JobScheduler den Auftrag.
Ein ausgesetzter Auftrag im Endzustand kann mit Order.state in einen Zustand versetzt werden, der einem Job
zugeordnet ist. Der Auftrag bleibt dennoch ausgesetzt.
4.11.19 title
Der Titel ist ein Klartext, der den Auftrag bezeichnet
Syntax: $order->LetProperty( 'title', BSTR )
Syntax: BSTR $order-> title
4.11.20 web_service
Der Webdienst, der dem Auftrag zugeordnet ist
Syntax: Web_service $order-> web_service
Wenn der Auftrag keinem Webdienst zugeordnet ist, liefert der Aufruf den Fehler SCHEDULER-240 .
Siehe auch Order.web_service_or_null .
Rückgabe:
Web_service 4.11.21 web_service_operation
Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist
Syntax: Web_service_operation $order-> web_service_operation
Software- and Organisations-Service GmbH
März 2015
Perl API
237
Beispiel: in java
public boolean spooler_process() throws Exception
{
Order
order
= spooler_task.order();
Web_service_operation web_service_operation = order.web_service_operation();
Web_service_request
request
= web_service_operation.request();
// Decode request data
String request_string = new String( request.binary_content(),
request.charset_name() );
process request_string ...;
String
response_string = "This is my response";
String
charset_name
= "UTF-8";
ByteArrayOutputStream byos
= new ByteArrayOutputStream();
// Encode response data
Writer writer = new OutputStreamWriter( byos, charset_name );
writer.write( response_string );
writer.close();
// Respond
Web_service_response response = web_service_operation.response();
response.set_content_type( "text/plain" );
response.set_charset_name( charset_name );
response.set_binary_content( byos.toByteArray() );
response.send();
// Web service operation has finished
return true;
}
Siehe <web_service> , Web_service_operation und Order.web_service_operation_or_null ,
Rückgabe:
Web_service_operation 4.11.22 web_service_operation_or_null
Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist, oder null
Syntax: Web_service_operation $order-> web_service_operation_or_null
Siehe Order.web_service_operation , Web_service_operation und <web_service> .
Rückgabe:
Web_service_operation Software- and Organisations-Service GmbH
März 2015
Perl API
238
4.11.23 web_service_or_null
Der Web-Dienst, der dem Auftrag zugeordnet ist, oder null.
Syntax: Web_service $order-> web_service_or_null
Siehe auch Order.web_service .
Rückgabe:
Web_service 4.11.24 xml
Auftrag in XML: <order>...</order>
Syntax: BSTR $order-> xml
Rückgabe:
BSTR Siehe <order>
4.11.25 xml_payload
XML-Nutzlast, also Parameter des Auftrags.
Syntax: $order->LetProperty( 'xml_payload', BSTR xml )
Syntax: BSTR $order-> xml_payload
Zusätzlich zur Eigenschaft Order.params kann diese Eigenschaft ein XML-Dokument aufnehmen.
<xml_payload> enthält das Wurzelelement des XML-Dokuments (statt in #PCDATA-codierter Form).
4.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs
Ein auftragsgesteuerter Job ( <job order="yes"> hat eine Auftragswarteschlange, die die vom Job zu
verarbeitenden Aufträge aufnimmt. Die Aufträge sind nach Priorität und Zeitpunkt des Eintreffens geordnet.
Verarbeiten bedeutet, dass der JobScheduler die Methode spooler_process() einer Task des Jobs aufruft. Die
Methode kann über Task.order auf den Auftrag zugreifen. Endet spooler_process() ohne Fehler (ohne
Exception), entfernt der JobScheduler den Auftrag aus der Auftragswarteschlange. Ist der Auftrag in einer Jobkette,
dann rückt der Auftrag an die nächste Position der Jobkette.
Software- and Organisations-Service GmbH
März 2015
Perl API
239
4.12.1 length
Anzahl der Aufträge in der Auftragswarteschlange
Syntax: int $q-> length
4.13 Process_class
Siehe auch <process_class name=""> .
Beispiel:
my $process_classs = $spooler->process_classes;
my $process_class = $process_classs->create_process_class();
$process_class->LetProperty( 'name', 'my_process_class' );
$process_classs->add_process_class( $process_class );
4.13.1 max_processes
Anzahl der Prozesse
Syntax: $process_class->LetProperty( 'max_processes', int )
Syntax: int $process_class-> max_processes
Die Voreinstellung ist 10.
Siehe auch <process_class max_processes=""> .
4.13.2 name
Name der Prozessklasse
Syntax: $process_class->LetProperty( 'name', BSTR )
Syntax: BSTR $process_class-> name
Der Name kann nur einmal gesetzt und nicht geändert werden.
Siehe auch <process_class name=""> .
4.13.3 remote_scheduler
Adresse des fernen Schedulers, der die Prozesse ausführen soll
Software- and Organisations-Service GmbH
März 2015
Perl API
240
Syntax: $process_class->LetProperty( 'remote_scheduler', BSTR )
Syntax: BSTR $process_class-> remote_scheduler
Beispiel:
$spooler->process_classes->process_class( 'my_process_class' )->remote_scheduler(
'host:4444' );
Siehe auch <process_class remote_scheduler=""> .
Parameter:
Die Adresse wird als " host : portnumber" angegeben.
Beim Lesen wird (derzeit) zusätzlich die IP-Nummer
geliefert: " hostname / ipnumber : portnumber"
Rückgabe:
BSTR Die Adresse wird als " host : portnumber" angegeben.
Beim Lesen wird (derzeit) zusätzlich die IP-Nummer geliefert: " hostname / ipnumber : portnumber"
4.13.4 remove
Entfernt die Prozessklasse
Syntax: $process_class-> remove(
Beispiel:
$spooler->process_classs->process_class( 'my_process_class' )->remove();
Wenn noch Tasks in der Prozessklasse laufen, verzögert der JobScheduler das Löschen bis die letzte Task
geendet hat. Solange werden keine neuen Tasks gestartet.
Siehe auch <process_class.remove> .
4.14 Process_classes
4.14.1 add_process_class
Fügt dem JobScheduler eine Prozessklasse hinzu
Syntax: $process_classs-> add_process_class( Process_class pc )
Software- and Organisations-Service GmbH
März 2015
Perl API
241
4.14.2 create_process_class
Legt eine neue Prozesklasse ein
Syntax: Process_class $process_classs-> create_process_class(
Liefert eine neues Process_class . Diese Prozessklasse kann mit Process_classes.add_process_class() dem
JobScheduler hinzugefügt werden.
Rückgabe:
Process_class 4.14.3 process_class
Liefert eine Prozessklasse
Syntax: Process_class $process_classs-> process_class( BSTR process_class_name )
Wenn die Prozessklasse nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Process_class 4.14.4 process_class_or_null
Liefert eine Prozessklasse
Syntax: Process_class $process_classs-> process_class_or_null( BSTR process_class_name )
Rückgabe:
Process_class null, wenn die Prozessklasse nicht bekannt ist.
4.15 Run_time - Laufzeit
Siehe <run_time> , Order , Schedule .
Beispiel:
my $order = $spooler_task->order;
# Repeat order daily at 15:00
$order->run_time->LetProperty( "xml", "<run_time><period single_start='15:00'/><
/run_time>" );
Software- and Organisations-Service GmbH
März 2015
Perl API
242
4.15.1 schedule
<schedule>
Syntax: Schedule $run_time-> schedule
Rückgabe:
Schedule 4.15.2 xml
<run_time>
Syntax: $run_time->LetProperty( 'xml', BSTR )
Verwirft die bisherige Einstellung und setzt Run_time neu.
Parameter:
XML-Dokument als String
4.16 Schedule - Laufzeit
Siehe <schedule> , <run_time> , Spooler.schedule , Run_time .
Beispiel:
$spooler->schedule( 'my_schedule' )->LetProperty( "xml", "
" );
4.16.1 xml
<schedule>
Syntax: $schedule->LetProperty( 'xml', BSTR )
Syntax: BSTR $schedule-> xml
Verwirft die bisherige Einstellung und setzt Schedule neu.
Parameter:
XML-Dokument als String
Rückgabe:
Software- and Organisations-Service GmbH
März 2015
Perl API
243
BSTR XML-Dokument als String
4.17 Spooler
Von dieser Klasse gibt es nur ein Objekt: spooler .
4.17.1 abort_immediately
Bricht den JobScheduler augenblicklich ab
Syntax: $spooler-> abort_immediately(
Bricht den JobScheduler augenblicklich ab. Kein Job hat Gelegenheit, darauf zu reagieren. Der JobScheduler bricht zuvor alle gestarteten Prozesse ab. Das sind die Tasks und die Prozesse von
Task.create_subprocess() und Task.add_pid() . Siehe <modify_spooler cmd="abort_immediately"> und JobScheduler Dokumentation. 4.17.2 abort_immediately_and_restart
Bricht den JobScheduler augenblicklich ab und startet ihn neu. Syntax: $spooler-> abort_immediately_and_restart(
Wie Spooler.abort_immediately() , nur dass der JobScheduler sich erneut startet. Dabei verwendet er die
Kommandozeilenparameter wieder. Siehe <modify_spooler cmd="abort_immediately_and_restart"> und JobScheduler Dokumentation. 4.17.3 add_job_chain
Syntax: $spooler-> add_job_chain( Job_chain chain )
Bei Job_chain.orders_recoverable =true lädt der JobScheduler die Aufträge der Jobkette aus der Datenbank.
Siehe Spooler.create_job_chain() und <job_chain> .
Software- and Organisations-Service GmbH
März 2015
Perl API
244
4.17.4 configuration_directory
Pfad des Konfigurationsverzeichnisses
Syntax: BSTR $spooler-> configuration_directory
<config configuration_directory="…">
4.17.5 create_job_chain
Syntax: Job_chain $spooler-> create_job_chain(
Liefert eine neue Job_chain . Diese Jobkette kann, nachdem sie mit Jobs gefüllt worden ist, mit
Spooler.add_job_chain() dem JobScheduler hinzugefügt werden
Siehe <job_chain> .
Rückgabe:
Job_chain 4.17.6 create_order
Syntax: Order $spooler-> create_order(
Erzeugt einen neuen Auftrag. Dieser Auftrag kann mit Job_chain.add_order() einer Jobkette übergeben werden.
Rückgabe:
Order 4.17.7 create_variable_set
Syntax: Variable_set $spooler-> create_variable_set(
Rückgabe:
Variable_set 4.17.8 create_xslt_stylesheet
Syntax: Xslt_stylesheet $spooler-> create_xslt_stylesheet( BSTR xml (optional) )
Software- and Organisations-Service GmbH
März 2015
Perl API
245
Parameter:
xml
XSLT-Stylesheet als XML-String
Rückgabe:
Xslt_stylesheet 4.17.9 db_history_table_name
Name der Datenbanktabelle für die Historie
Syntax: BSTR $spooler-> db_history_table_name
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) wird damit überschrieben.
4.17.10 db_name
Hostware-Pfad der Datenbank
Syntax: BSTR $spooler-> db_name
Verbindungszeichenfolge der Datenbank für die Historienführung. Der JobScheduler unterstützt ODBC (Windows)
und JDBC für den Zugriff auf Datenbanken. Ohne Eintrag werden Dateien im .csv-Format erzeugt, siehe
factory.ini (Abschnitt [spooler], Eintrag history_file=…).
Unter Windows kann ein einfacher Dateiname angegebenen werden, der auf .mdb endet (z.B. scheduler.mdb).
Der JobScheduler verwendet dann eine Microsoft MS-Access Datenbank dieses Namens, die im
Protokollverzeichnis (s. Option -log-dir ) liegt. Der JobScheduler richtet die Datei ein, wenn sie fehlt.
Der JobScheduler richtet die Tabellen selbständig ein.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db=…) wird damit überschrieben.
4.17.11 db_order_history_table_name
Name der Datenbanktabelle für die Auftragshistorie
Syntax: BSTR $spooler-> db_order_history_table_name
Die Einstellung factory.ini
überschrieben.
Software- and Organisations-Service GmbH
(Abschnitt [spooler], Eintrag db_order_history_table=…) wird damit
März 2015
Perl API
246
4.17.12 db_orders_table_name
Name der Datenbanktabelle für die Aufträge
Syntax: BSTR $spooler-> db_orders_table_name
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_orders_table=…) wird damit überschrieben.
4.17.13 db_tasks_table_name
Name der Datenbanktabelle für die Tasks
Syntax: BSTR $spooler-> db_tasks_table_name
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_tasks_table=…) wird damit überschrieben.
4.17.14 db_variables_table_name
Name der Datenbanktabelle für interne Variablen des Schedulers
Syntax: BSTR $spooler-> db_variables_table_name
Der JobScheduler hält in dieser Tabelle interne Zähler, zum Beispiel für die nächste freie Task-ID.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_variables_table=…) wird damit überschrieben.
4.17.15 directory
Das Arbeitsverzeichnis beim Start des Schedulers
Syntax: BSTR $spooler-> directory
Ändert das Arbeitsverzeichnis.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Software- and Organisations-Service GmbH
März 2015
Perl API
247
Die Option -cd hat Vorrang.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Rückgabe:
BSTR Der Pfad endet unter Unix mit "/" und unter Windows mit "\".
4.17.16 execute_xml
Führt ein XML-Kommando aus
Syntax: BSTR $spooler-> execute_xml( BSTR xml )
Beispiel:
$spooler_log->info( $spooler->execute_xml( '<show_state/>' ) );
Fehler werden als XML-Antwort <ERROR> geliefert.
Parameter:
xml
Siehe JobScheduler Dokumentation.
Rückgabe:
BSTR Liefert die XML-Antwort des ausgeführten Kommandos.
4.17.17 hostname
Name des Rechners, auf dem der JobScheduler läuft.
Syntax: BSTR $spooler-> hostname
4.17.18 id
Wert der Kommandozeilenoption -id=
Syntax: BSTR $spooler-> id
Der JobScheduler wählt nur die Elemente der XML-Konfiguration aus, deren Attribut spooler_id leer ist oder
denselben Wert wie in dieser Einstellung enthält.
Software- and Organisations-Service GmbH
März 2015
Perl API
248
Wenn die Scheduler-ID nicht angegeben ist, beachtet der JobScheduler das XML-Attribut spooler_id= nicht und
wählt alle Elemente der XML-Konfiguration aus.
Siehe z.B. <config> .
Die Option -id hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag id=…) wird damit überschrieben.
4.17.19 include_path
Liefert die Kommandozeilenoption -include-path=.
Syntax: BSTR $spooler-> include_path
Verzeichnis der Dateien, die mit <include> eingezogen werden.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen).
Die Option -include-path hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag include_path=…) wird damit überschrieben.
<config include_path="…">
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
4.17.20 ini_path
Wert der Option -ini= (Dateiname der factory.ini)
Syntax: BSTR $spooler-> ini_path
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Siehe -ini , JobScheduler Dokumentation
4.17.21 is_service
Syntax: Boolean $spooler-> is_service
Software- and Organisations-Service GmbH
März 2015
Perl API
249
Rückgabe:
Boolean true, genau dann wenn der JobScheduler als Dienst (in Windows) oder als Daemon (in Unix) läuft.
4.17.22 job
Liefert einen Job
Syntax: Job $spooler-> job( BSTR job_name )
Wenn der Jobname nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Job 4.17.23 job_chain
Liefert eine Jobkette
Syntax: Job_chain $spooler-> job_chain( BSTR name )
Wenn der Name der Jobkette nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Job_chain 4.17.24 job_chain_exists
Syntax: Boolean $spooler-> job_chain_exists( BSTR name )
4.17.25 let_run_terminate_and_restart
Syntax: $spooler-> let_run_terminate_and_restart(
Sobald alle Aufträge abgearbeitet sind, beendet der JobScheduler alle Tasks (durch Aufruf von Job_impl ) und
beendet dann sich selbst. Ein neuer JobScheduler mit unveränderten Kommandozeilenparametern wird gestartet.
Siehe <modify_spooler cmd="let_run_terminate_and_restart"> und JobScheduler Dokumentation.
Software- and Organisations-Service GmbH
März 2015
Perl API
250
4.17.26 locks
Liefert die Locks
Syntax: Locks $spooler-> locks
Rückgabe:
Locks 4.17.27 log
Das Hauptprotokoll
Syntax: Log $spooler-> log
Normalerweise wird man spooler_log() verwenden.
Rückgabe:
Log 4.17.28 log_dir
Verzeichnis der Protokolle
Syntax: BSTR $spooler-> log_dir
In dieses Verzeichnis schreibt der JobScheduler seine Protokolle.
log_dir= *stderr lässt den JobScheduler die Protokollausgabe nach stderr (auf den Bildschirm) schreiben.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen).
Die Option -log-dir hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_dir=…) wird damit überschrieben.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
4.17.29 param
Kommandozeilenoption -param=
Software- and Organisations-Service GmbH
März 2015
Perl API
251
Syntax: BSTR $spooler-> param
Zur freien Verwendung. Der Parameter ist in den Skripten über spooler.param lesbar.
Die Option -param hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag param=…) wird damit überschrieben.
4.17.30 process_classes
Liefert die Prozessklassen
Syntax: Process_classes $spooler-> process_classes
Rückgabe:
Process_classes 4.17.31 schedule
Liefert den benannten Schedule oder null
Syntax: Schedule $spooler-> schedule( BSTR path )
Rückgabe:
Schedule 4.17.32 supervisor_client
Liefert den Supervisor_client oder null
Syntax: Supervisor_client $spooler-> supervisor_client
Rückgabe:
Supervisor_client 4.17.33 tcp_port
HTTP- und TCP-Port für Kommandos an den JobScheduler
Syntax: int $spooler-> tcp_port
Software- and Organisations-Service GmbH
März 2015
Perl API
252
Der JobScheduler kann auf einem TCP-Port während des Betriebs Kommandos entgegennehmen. Hier kann eine
Portnummer eingestellt werden. Die Portnummer ist eine Zahl zwischen 2048 (betriebssystemabhängig) und
65535. Die Voreinstellung lautet 4444.
Über denselben Port betreibt der JobScheduler einen HTTP/HTML-Server, so dass er über einen Browser
ansprechbar ist, z.B. http://localhost:4444.
Bei tcp_port=0 (voreingestellt) ist der JobScheduler nicht über TCP oder HTTP ansprechbar. Damit kann die
Steuerung des JobSchedulers per TCP-Kommando, z.B. über eine Web-Seite, unterbunden werden.
Die Option -tcp-port hat Vorrang.
<config tcp_port="…">
Rückgabe:
int 0, wenn kein Port geöffnet ist.
4.17.34 terminate
JobScheduler mit allen Tasks ordentlich beenden
Syntax: $spooler-> terminate( int timeout (optional) , Boolean restart (optional) , boolean
all_schedulers (optional) , boolean continue_exclusive_operation (optional) )
Beendet alle Tasks (durch Aufruf von spooler_close() ) und schließlich sich selbst.
Wenn eine Frist angegeben ist, bricht der JobScheduler nach Ablauf alle noch laufenden Prozesse ab (das sind
Tasks, die zulange in einem Aufruf wie spooler_process() verharren).
Siehe <modify_spooler cmd="terminate"> und JobScheduler Dokumentation.
Parameter:
timeout
Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der
JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen
Parameter wartet der JobScheduler endlos auf die Tasks.
restart
restart=true lässt den JobScheduler nach Beendigung neu starten.
all_schedu all_schedulers=true beendet alle JobScheduler im Cluster (s. -exclusive ) Das kann eine
lers
Minute dauern.
continue_e continue_exclusive_operation=true lässt einen anderen Scheuler im Cluster (s. -exclusive )
xclusive_o den Betrieb fortsetzen.
peration
4.17.35 terminate_and_restart
JobScheduler mit allen Tasks ordentlich beenden und erneut starten
Syntax: $spooler-> terminate_and_restart( int timeout (optional) )
Software- and Organisations-Service GmbH
März 2015
Perl API
253
Wie Spooler.terminate() , aber der JobScheduler startet sich neu.
Siehe <modify_spooler cmd="terminate_and_restart"> und JobScheduler Dokumentation.
Parameter:
time Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der
out JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen Parameter
wartet der JobScheduler endlos auf die Tasks.
4.17.36 udp_port
UDP-Port für Kommandos an den JobScheduler
Syntax: int $spooler-> udp_port
Auch über UDP kann der JobScheduler Kommandos entgegennehmen. Hier wird die Portnummer angegeben. Ein
Kommando muss in eine Nachricht passen. Der JobScheduler schickt keine Antwort.
Bei udp_port=0 (voreingestellt) öffnet der JobScheduler keinen UDP-Port.
Die Option -udp-port hat Vorrang.
<config udp_port="…">
Rückgabe:
int 0, wenn kein Port geöffnet ist.
4.17.37 var
Zugriff auf Scheduler-weite Variablen
Syntax: $spooler->LetProperty( 'var', BSTR name, Variant )
Syntax: Variant $spooler-> var( BSTR name )
Die Variablen sind überall im JobScheduler benutzbar.
4.17.38 variables
Die Scheduler-weiten Variablen als Variable_set
Syntax: Variable_set $spooler-> variables
Die Variablen können in der Konfigurationsdatei eingestellt werden mit <config> .
Software- and Organisations-Service GmbH
März 2015
Perl API
254
Rückgabe:
Variable_set 4.18 Spooler_program - Für den Java-Debugger
Startet den JobScheduler über Java, so dass in Java geschriebene Jobs debuggt werden können (z.B. mit
Eclipse). Zu den Methoden siehe Javadoc.
Der JobScheduler wird als Windows-Applikation, nicht als Konsol-Programm gestartet. Ausgaben nach stderr
gehen verloren. -log-dir liefert keine Ausgabe.
Siehe JobScheduler Dokumentation.
Beispiel:
C:\>java -Djava.library.path=… -classpath …\sos.spooler.jar sos.spooler.Spooler_program
configuration.scheduler -log-dir=c:\tmp\scheduler
Mit -Djava.library.path=… geben Sie das Verzeichnis der scheduler.dll an, wenn es nicht bereits in %PATH%
aufgeführt ist.
4.19 Subprocess
Ein Subprozess ist irgendein Prozess, der mit Task.create_subprocess() oder Subprocess.start() gestartet
werden kann.
Software- and Organisations-Service GmbH
März 2015
Perl API
255
Beispiel: my_system() - Einfache Ausführung eines Kommandos
sub my_system
{
# Executes the command without processing of shell characters
my $cmd
= shift;
my $timeout = shift;
my $subprocess = $spooler_task->create_subprocess();
$subprocess->LetProperty( "timeout", $timeout )
$subprocess->start( $cmd );
$subprocess->wait_for_termination();
return $subprocess->exit_code;
if defined $timeout;
}
sub shell
{
# Executes the command under the shell (Unix only)
my $cmd
= shift;
my $timeout = shift;
my $subprocess = $spooler_task->create_subprocess();
$subprocess->LetProperty( "timeout", $timeout ) if defined $timeout;
$subprocess->start( [ "/bin/sh", "-c", $cmd ] );
$subprocess->wait_for_termination();
return $subprocess->exit_code;
}
4.19.1 close
Gibt die System-Ressourcen frei
Syntax: $subprocess-> close(
Sollte in Sprachen mit Garbage Collector (Java, JavaScript) gerufen werden, außer die Task beendet sich sofort.
Der Subprocess ist danach unbrauchbar.
4.19.2 env
Umgebungsvariablen als Variable_set
Syntax: Variable_set $subprocess-> env
Beispiel:
my $subprocess = $spooler_task->create_subprocess();
$subprocess->LetProperty( 'start', $subprocess->env->substitute(
'${MY_HOME}/my_program' ) );
$subprocess->wait_for_termination();
Software- and Organisations-Service GmbH
März 2015
Perl API
256
Liefert ein Variable_set der Umgebungsvariablen.
Anfänglich ist die Umgebung mit den Umgebungsvariablen des startenden Prozesses gefüllt. Umgebungsvariablen
können entfernt werden, indem sie auf "" gesetzt werden. Der Aufruf Subprocess.start() übergibt die
Umgebungsvariablen dem Subprozess.
Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden.
Nach dem Start des Subprozesses haben Änderungen an den Umgebungsvariablen keine Wirkung. Auch können
vom Prozess geänderte Umgebungsvariablen nicht gelesen werden.
Das Objekt lässt sich nicht anderen Objekten übergeben (denn es befindet sich im Prozess der Task, während die
meisten anderen Objekte sich im Prozess des Schedulers befinden).
Rückgabe:
Variable_set 4.19.3 environment
Umgebungsvariablen
Syntax: $subprocess->LetProperty( 'environment', BSTR name, BSTR value )
Beispiel:
// The following two statements have the same effect
$subprocess->LetProperty( 'environment', 'my_variable', 'my_value' )
$subprocess->env->LetProperty( 'value', 'my_variable', 'my_value' )
Die hier gesetzten Variablen werden zusammen mit den übrigen Umgebungsvariablen des laufenden Prozesses
dem neuen Subprozess übergeben.
Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden.
Siehe auch Subprocess.env .
4.19.4 exit_code
Syntax: int $subprocess-> exit_code
Erst aufrufen, wenn Subprocess.terminated == true.
4.19.5 ignore_error
Verhindert, dass bei exit_code != 0 der Job stoppt
Syntax: $subprocess->LetProperty( 'ignore_error', Boolean )
Software- and Organisations-Service GmbH
März 2015
Perl API
257
Syntax: Boolean $subprocess-> ignore_error
Verhindert, dass der Job stoppt, wenn der Subprozess bei Task-Ende mit Subprocess.exit_code != 0 geendet
hat.
Wenn das Ende des Subprocesses nicht mit Subprocess.wait_for_termination abgewartet worden ist, tut das
der JobScheduler bei Task-Ende. Wenn dann der Subprocess mit Subprocess.exit_code != 0 endet, stoppt der
Job mit Fehler.
Mit ignore_error kann das verhindert werden.
4.19.6 ignore_signal
Verhindert, dass bei einem Abbruch des Prozesses mit Signal der Job stoppt
Syntax: $subprocess->LetProperty( 'ignore_signal', int )
Syntax: int $subprocess-> ignore_signal
Wirkt nicht unter Windows, weil es hier keine Signale gibt.
4.19.7 kill
Bricht den Subprozess ab
Syntax: $subprocess-> kill( int signal (optional) )
Parameter:
signal Nur unter Unix: Das Signal für kill(). 0 wird als 9 (SIGKILL, sofortiges Ende) interpretiert.
4.19.8 own_process_group
Subprozess als Prozessgruppe
Syntax: $subprocess->LetProperty( 'own_process_group', Boolean )
Syntax: Boolean $subprocess-> own_process_group
Nur unter Unix.
Der Default kann mit factory.ini (Abschnitt [spooler], Eintrag subprocess.own_process_group=…) eingestellt
werden.
own_process_group lässt den Subprozess in einer eigenen Prozessgruppe starten, indem der Systemaufruf
setpgid(0,0) ausgeführt wird. Wenn der JobScheduler den Subprozess abbricht, bricht er die ganze
Prozessgruppe ab.
Software- and Organisations-Service GmbH
März 2015
Perl API
258
4.19.9 pid
Prozesskennung
Syntax: int $subprocess-> pid
4.19.10 priority
Prozess-Priorität
Syntax: $subprocess->LetProperty( 'priority', int )
Syntax: int $subprocess-> priority
Beispiel:
$spooler_task->priority( +5 );
// UNIX: reduce the priority a little
Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht
werden.
Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13
"high" (andere Werte werden abgerundet). Siehe auch Task.priority_class .
Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Subprocess.priority_class . Siehe auch
Task.priority .
4.19.11 priority_class
Prioritätsklasse
Syntax: $subprocess->LetProperty( 'priority_class', BSTR )
Syntax: BSTR $subprocess-> priority_class
Beispiel:
$subprocess->priority_class( 'below_normal' );
Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix
entsprechen:
Prioritätsklasse
Windows
Unix
"idle"
4
16
"below_normal"
6
6
Software- and Organisations-Service GmbH
März 2015
Perl API
259
"normal"
8
0
"above_normal"
10
-6
"high"
13
-16
Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelndem Recht, führt das nicht zu einem Fehler.
Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Siehe auch Subprocess.priority , Task.priority_class und Microsoft® Windows® Scheduling Priorities.
4.19.12 start
Startet den Prozess
Syntax: $subprocess-> start( BSTR|BSTR command_line )
Windows erkennt sofort, wenn das Programm nicht ausführbar ist. Die Methode liefert dann einen Fehler.
Unter Unix wird stattdessen Subprocess.exit_code auf 99 gesetzt. Vorher muss das Ende des Prozesses
abgewartet werden mit Subprocess.wait_for_termination() .
Shell-Operatoren wie |, && und > werden nicht interpretiert. Verwenden Sie dazu die Programme /bin/sh bzw.
c:\windows\system32\cmd.exe (das Verzeichnis ist installations-abhängig).
Der Prozess wird unter Unix mit execvp() und unter Windows mit CreateProcess() gestartet.
4.19.13 terminated
Syntax: Boolean $subprocess-> terminated
Prüft, ob der Prozess geendet hat. Wenn er geendet hat, kann anschließend Subprocess.exit_code und
Subprocess.termination_signal gerufen werden.
4.19.14 termination_signal
Signal, mit dem sich der Prozess beendet hat (nur Unix)
Syntax: int $subprocess-> termination_signal
Erst aufrufen, wenn Subprocess.terminated == true.
Software- and Organisations-Service GmbH
März 2015
Perl API
260
4.19.15 timeout
Frist für den Subprozess
Syntax: $subprocess->LetProperty( 'timeout', double seconds )
Nach Ablauf der Zeit bricht der JobScheduler den Subprozess ab (Unix: mit SIGKILL).
Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht.
4.19.16 wait_for_termination
Syntax: $subprocess-> wait_for_termination(
Syntax: Boolean $subprocess-> wait_for_termination( double seconds )
Parameter:
seconds
Wartezeit. Fehlt der Parameter, dann wartet der Aufruf bis der Subprozess geendet hat.
Rückgabe:
Boolean true, wenn der Subprozess geendet hat.
false, wenn der Subprozess nach Ablauf der Wartezeit noch läuft.
4.20 Supervisor_client
Spooler.supervisor_client liefert dieses Objekt.
Beispiel:
my $supervisor_hostname = $spooler->supervisor_client->hostname;
4.20.1 hostname
Name oder IP-Nummer des Rechners, auf dem der Supervisor läuft
Syntax: BSTR $supervisor_client-> hostname
Siehe auch <config supervisor=""> .
4.20.2 tcp_port
TCP-Port des Supervisors
Software- and Organisations-Service GmbH
März 2015
Perl API
261
Syntax: int $supervisor_client-> tcp_port
Siehe auch <config supervisor=""> .
4.21 Task
Eine Task ist eine laufende Instanz eines Jobs.
Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen.
4.21.1 add_pid
Macht dem JobScheduler einen abhängigen, befristeten Prozess bekannt
Syntax: $spooler_task-> add_pid( int pid, BSTR|double|int timeout (optional) )
Mit dem Aufruf kann die Laufzeit von abhängigen Prozessen eingeschränkt werden. Bei Task-Ende bricht der
JobScheduler noch laufende abhängigen Prozesse in jedem Fall ab.
Wenn der JobScheduler einen Prozess abbricht, gibt es einen Eintrag ins Protokoll. Die Task erfährt davon nichts.
Der Aufruf <kill_task> bricht alle mit add_pid() bekannt gemachten Prozesse ab.
Unter Unix kann eine Prozessgruppen-Id als negative pid übergeben werden. Ein kill bricht dann die ganze
Prozessgruppe ab.
Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht.
4.21.2 call_me_again_when_locks_available
Wiederholt spooler_open() oder spooler_process(), sobald Sperren verfügbar
Syntax: $spooler_task-> call_me_again_when_locks_available(
Ve r a n l a s s t
den
S c h e d u l e r,
nach
erfolglosem
Task.try_hold_lock()
oder
Task.try_hold_lock_non_exclusive() den Aufruf von spooler_open() bzw. spooler_process() zu
wiederholen, sobald die angeforderten Sperren verfügbar sind. Der JobScheduler wiederholt dann den Aufruf mit
gehaltenen Sperren, so dass die erstgenannten Aufrufe Erfolg haben werden.
Nach dem Aufruf hat der Rückgabewert von spooler_open() bzw. spooler_process() (true/false) keine
Wirkung. Einen Auftrag Task.order belässt der JobScheduler in seinem Zustand.
4.21.3 changed_directories
Die Verzeichnisse, deren Änderung den Start der Task veranlasst haben
Software- and Organisations-Service GmbH
März 2015
Perl API
262
Syntax: BSTR $spooler_task-> changed_directories
Siehe Job.start_when_directory_changed() , Task.trigger_files .
Rückgabe:
BSTR Die Verzeichnisnamen sind durch Semikolon getrennt.
"", wenn kein Verzeichnis geändert ist.
4.21.4 create_subprocess
Start eines überwachten Subprozesses
Syntax: Subprocess $spooler_task->
create_subprocess( BSTR|BSTR
filename_and_arguments
(optional) )
Rückgabe:
Subprocess 4.21.5 delay_spooler_process
Verzögert den nächsten Aufruf von spooler_process()
Syntax: $spooler_task->LetProperty( 'delay_spooler_process', BSTR|double|int seconds_or_hhmm_ss
)
Wirkt nur in spooler_process() .
4.21.6 end
Beendet die Task
Syntax: $spooler_task-> end(
Der JobScheduler ruft nicht mehr spooler_process() auf. Statt dessen ruft er spooler_close() auf.
Der Aufruf kann verwendet werden, um beim Task-Ende den Versand des Task-Protokolls zu veranlassen, siehe
Log .
4.21.7 error
Setzt einen Fehler und stoppt den Job
Syntax: $spooler_task->LetProperty( 'error', BSTR )
Software- and Organisations-Service GmbH
März 2015
Perl API
263
Syntax: Error $spooler_task-> error
Der lesende Aufruf liefert den letzten Fehler dieser Task. Wenn kein Fehler vorliegt, wird ein Error -Objekt
zurückgeliefert, dessen Eigenschaft is_error false liefert.
Sie können eine Fehlermeldung auch mit Log.error() ins Task-Protokoll schreiben.
Rückgabe:
BSTR Error 4.21.8 exit_code
Exit-Code
Syntax: $spooler_task->LetProperty( 'exit_code', int )
Syntax: int $spooler_task-> exit_code
Beispiel:
$spooler_log->error( 'This call of spooler_log.error() sets the exit code to 1' );
$spooler_task->LetProperty( 'exit_code', 0 );
# Reset the exit code
Der Exit-Code ist anfänglich 0 und wird bei einem Fehler auf 1 gesetzt. Das ist, wenn der JobScheduler eine Zeile
mit [ERROR] ins Task-Protokoll schreibt:
•
•
•
Aufruf von Log.error()
Setzen von Task.error
Das Skript liefert eine Exception.
Der Job kann anschließend, z.B. in spooler_on_error() , den Task.exit_code neu setzen.
Der Exit-Code des (Betriebssystem-)Prozesses, der die Task ausführt, ist ohne Belang und wird nicht
übernommen, im Gegensatz zu Jobs mit <process> oder <script language="shell"> .
Der Exit-Code entscheidet über die anschließend auszuführenden Kommandos. Siehe hierzu <job> <commands
on_exit_code=""> .
Der Exit-Code hat keinen Einfluss darauf, ob der Job gestoppt wird (eine Fehlermeldung der Task lässt den Job
stoppen).
4.21.9 history_field
Ein Feld in der Task-Historie
Syntax: $spooler_task->LetProperty( 'history_field', BSTR name, Variant value )
Beispiel:
$spooler_task->LetProperty( 'history_field', 'extra', 4711 );
Software- and Organisations-Service GmbH
März 2015
Perl API
264
Die Datenbanktabelle (s. factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) muss eine Spalte mit
dem Namen haben und diese Spalte muss in der Datei factory.ini (Abschnitt [job], Eintrag
history_columns=…) deklariert sein.
4.21.10 id
Die Task-Kennung
Syntax: int $spooler_task-> id
Jede Task hat eine Scheduler-weit eindeutige numerische Kennung.
4.21.11 job
Der Job, zu dem die Task gehört
Syntax: Job $spooler_task-> job
Rückgabe:
Job 4.21.12 order
Der zu verarbeitende Auftrag
Syntax: Order $spooler_task-> order
Beispiel:
my $order = $spooler_task->order();
$spooler_log->info( 'order.id=' . $order->id . ', order.title=' . $order->title );
Rückgabe:
Order null, wenn kein Auftrag vorliegt.
4.21.13 params
Die Parameter der Task
Syntax: Variable_set $spooler_task-> params
Software- and Organisations-Service GmbH
März 2015
Perl API
265
Beispiel:
my $value = $spooler_task->params->var( "parameter3" );
my $parameters = $spooler_task->params;
my $value1 = $parameters->var( "parameter1" );
my $value2 = $parameters->var( "parameter2" );
Eine Task kann Parameter haben. Die Parameter können gesetzt werden mit
•
•
•
In der Konfigurationsdatei im Element <job> mit <params> ,
Job.start() und
<start_job> .
Rückgabe:
Variable_set != null
4.21.14 priority
Priorität der laufenden Task
Syntax: $spooler_task->LetProperty( 'priority', int )
Syntax: int $spooler_task-> priority
Beispiel:
$spooler_task->LetProperty('priority', +5 );
# Unix: Priorität etwas verschlechtern
Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht
werden.
Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13
"high" (andere Werte werden abgerundet). Siehe auch Task.priority_class .
Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Task.priority_class .
4.21.15 priority_class
Prioritätsklasse der laufenden Task
Syntax: $spooler_task->LetProperty( 'priority_class', BSTR )
Syntax: BSTR $spooler_task-> priority_class
Software- and Organisations-Service GmbH
März 2015
Perl API
266
Beispiel:
$spooler_task->LetProperty('priority_class', 'below_normal' );
Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix
entsprechen:
Prioritätsklasse
Windows
Unix
"idle"
4
16
"below_normal"
6
6
"normal"
8
0
"above_normal"
10
-6
"high"
13
-16
Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelnden Rechts, führt das nicht zu einem Fehler.
Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Siehe auch Task.priority , Subprocess.priority_class und Microsoft® Windows® Scheduling Priorities.
4.21.16 remove_pid
Gegenstück zu add_pid()
Syntax: $spooler_task-> remove_pid( int pid )
Es gibt keinen Fehler, wenn die Pid nicht mit Task hinzugefügt worden ist.
Siehe Task.add_pid() .
4.21.17 repeat
Startet erneut eine Task nach der eingestellten Zeit
Syntax: $spooler_task->LetProperty( 'repeat', double )
(Diese Methode gehört eigentlich in die Klasse Job . Sie hat nichts mit der gerade laufenden Task zu tun.)
Wenn nach Ablauf der angegebenen Zeit keine Task des Jobs läuft, startet der JobScheduler eine Task. Dabei wird
die <run_time> berücksichtigt. <period repeat=""> der aktuellen Periode wird vorläufig außer Kraft gesetzt.
Job.delay_after_error hat Vorrang, wenn die Task einen Fehler liefert.
Software- and Organisations-Service GmbH
März 2015
Perl API
267
4.21.18 stderr_path
Der Pfadname der stderr-Ausgabe der Task
Syntax: BSTR $spooler_task-> stderr_path
Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Rückgabe:
BSTR "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
4.21.19 stderr_text
Der bisher vom Prozess der Task nach stderr geschriebene Text
Syntax: BSTR $spooler_task-> stderr_text
Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Rückgabe:
BSTR "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
4.21.20 stdout_path
Der Pfadname der stdout-Ausgabe der Task
Syntax: BSTR $spooler_task-> stdout_path
Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Rückgabe:
BSTR "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
4.21.21 stdout_text
Der bisher vom Prozess der Task nach stdout geschriebene Text
Syntax: BSTR $spooler_task-> stdout_text
Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Rückgabe:
Software- and Organisations-Service GmbH
März 2015
Perl API
268
BSTR "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
4.21.22 trigger_files
Pfade der Dateien in mit regex überwachten Verzeichnissen
Syntax: BSTR $spooler_task-> trigger_files
Liefert die Pfade der Dateien aus überwachten Verzeichnissen ( Job.start_when_directory_changed() oder <
start_when_directory_changed> ) zum Zeitpunkt des Starts der Task. Nur die Verzeichnisse, für die ein
Regulärer Ausdruck (regex) angegeben ist, werden berücksichtigt.
Die Pfade werden aus dem Verzeichnispfad, wie er in Job.start_when_directory_changed() oder <
start_when_directory_changed> angegeben ist und dem Dateinamen zusammengesetzt.
Nicht-API-Jobs ( <process> und <script language="shell"> ) steht der Inhalt von Task.trigger_files in der
Umgebungsvariablen SCHEDULER_TASK_TRIGGER_FILES zur Verfügung.
Siehe Job.start_when_directory_changed() , Task.changed_directories() .
Rückgabe:
BSTR Die Dateipfade durch Semikolon getrennt.
"" sonst
4.21.23 try_hold_lock
Versucht, eine Sperre zu halten
Syntax: boolean $spooler_task-> try_hold_lock( BSTR lock_path )
Software- and Organisations-Service GmbH
März 2015
Perl API
269
Beispiel: in javascript
function spooler_process()
{
var result = false;
if( spooler_task.try_hold_lock( "Georgien" ) &&
spooler_task.try_hold_lock_non_exlusive( "Venezuela" ) )
{
// Task is holding the two locks. Insert processing code here.
result = ...
}
else
{
spooler_task.call_me_again_when_locks_available();
}
return result;
}
try_lock_hold() versucht, die angegebene Sperre ( Lock ) zu halten, und kann aufgerufen werden
•
•
in spooler_open() : die Sperre wird für die Task gehalten und erst nach Beendigung freigegeben,
in spooler_process() : die Sperre wird für nur für diesen Jobschritt gehalten und nach dessen Beendigung
freigegeben, also beim Verlassen von spooler_process().
Wenn die Sperre nicht verfügbar ist, ein Aufruf also false liefert, kann entweder
•
•
•
mit Task.call_me_again_when_locks_available() der JobScheduler veranlasst werden, den Aufruf
spooler_open() bzw. spooler_process() zu wiederholen, sobald die Sperren verfügbar sind, oder
spooler_open() bzw. spooler_process() ohne vorgenannten Aufruf mit false beendet werden, mit der
üblichen Wirkung,
aber nicht mit true beendet werden, das wird als Fehler angesehen und führt zur Warnung SCHEDULER-469 .
Siehe auch <lock.use> .
Rückgabe:
boolean true, wenn die Task die Sperre hält.
4.21.24 try_hold_lock_non_exclusive
Versucht, eine Sperre nicht-exklusiv zu halten
Syntax: boolean $spooler_task-> try_hold_lock_non_exclusive( BSTR lock_path )
Es gelten dieselben Bedingungen wie für Task.try_hold_lock() .
Siehe auch <lock.use exclusive="no"> .
Rückgabe:
boolean true, wenn die Task die Sperre hält.
Software- and Organisations-Service GmbH
März 2015
Perl API
270
4.21.25 web_service
Der Webdienst, der der Task zugeordnet ist
Syntax: Web_service $spooler_task-> web_service
Wenn die Task keinem Webdienst zugeordnet ist, liefert der Aufruf eine Exception.
Siehe auch Task.web_service_or_null .
Rückgabe:
Web_service 4.21.26 web_service_or_null
Der Webdienst, der der Task zugeordnet ist, oder null.
Syntax: Web_service $spooler_task-> web_service_or_null
Siehe auch Task.web_service .
Rückgabe:
Web_service 4.22 Variable_set - Variablenmenge zur Übergabe von Parametern
Variablenmengen werden gebraucht für die Scheduler-weiten Variablen und Task-Parameter. Eine neue
Variablenmenge wird mit Spooler.create_variable_set() angelegt.
Die Großschreibung der Variablennamen ist nicht relevant.
In COM (JavaScript, VBScript, Perl) ist ein Variablenwert ein Variant. Weil die Variablen in der Regel in die
Scheduler-Datenbank geschrieben werden, sollten nur nach String konvertierbare Variant-Werte verwendet werden
(d.h. es sollten keine Objekte verwendet werden).
In Java ist ein Variablenwert ein String. Wenn die Variable mit COM als Variant gesetzt worden ist, wird beim Lesen
der nach String konvertierte Wert zurückgegeben. Null und Empty werden als null zurückgeliefert. Wenn ein
Variant-Wert nicht konvertierbar ist, wird eine Exception ausgelöst.
Siehe auch <params> und <sos.spooler.variable_set> .
4.22.1 count
Anzahl der Variablen
Syntax: int $variable_set-> count
Software- and Organisations-Service GmbH
März 2015
Perl API
271
4.22.2 merge
Mischt eine andere Variablenmenge ein
Syntax: $variable_set-> merge( Variable_set vs )
Gleichnamige Variablen werden überschrieben.
4.22.3 names
Alle Variablennamen durch Semikolon getrennt
Syntax: BSTR $variable_set-> names
Beispiel:
my $variable_set = $spooler->create_variable_set();
$spooler_log->info( '"' . $variable_set->names . '"' );
# ==> ""
$variable_set->( "variable_1", "edno");
$variable_set->( "variable_2", "dwa";
$spooler_log->info( '"' . $variable_set->names . '"' );
"variable_1;variable_2"
# ==>
my @names = $variable_set->names->split( ";" );
foreach my $name(@names){$spooler_log->info( $name . " = " . $variable_set( $name )
);
Rückgabe:
BSTR Die Namen aller Variablen durch Semikolon getrennt.
4.22.4 set_var
Setzt eine Variable
Syntax: $variable_set-> set_var( BSTR name, Variant value )
4.22.5 substitute
Ersetzt $-Variablen in einem String
Syntax: BSTR $variable_set-> substitute( BSTR sustitution_string )
Software- and Organisations-Service GmbH
März 2015
Perl API
272
Beispiel: in javascript
subprocess.start( subprocess.env.substitute( "${MY_HOME}/my_program" ) );
Im Beispiel wird Subprocess.env verwendet.
Referenzen der Form $ name und ${ name } im String werden durch Variablenwerte ersetzt, siehe auch .
Rückgabe:
BSTR Die Zeichenkette mit den ersetzten $-Variablen
4.22.6 value
Eine Variable
Syntax: $variable_set->LetProperty( 'value', BSTR name, Variant value )
Syntax: Variant $variable_set-> value( BSTR name )
Parameter:
name
value
empty, wenn die Variable nicht vorhanden ist.
Rückgabe:
Variant empty, wenn die Variable nicht vorhanden ist.
4.22.7 var
Eine Variable
Syntax: $variable_set->LetProperty( 'var', BSTR name, Variant value )
Syntax: Variant $variable_set-> var( BSTR name )
Verwenden Sie Variable_set.value , das ist in allen Sprachen verfügbar.
Parameter:
name
value
empty, wenn die Variable nicht vorhanden ist.
Rückgabe:
Variant empty, wenn die Variable nicht vorhanden ist.
Software- and Organisations-Service GmbH
März 2015
Perl API
273
4.22.8 xml
Variable_set als XML-Dokument
Syntax: $variable_set->LetProperty( 'xml', BSTR )
Syntax: BSTR $variable_set-> xml
Beispiel:
my $variable_set = $spooler->create_variable_set();
$spooler_log->info( $variable_set->xml );
// Liefert <?xml version='1.0'?><
sos.spooler.variable_set/>
my $variable_set->LetProperty( 'xml', '<?xml version='1.0'?>' .
'<params>' .
'<param name='nachname' value='Meier'/>' .
'<param name='vorname' value='Hans'/>' .
'</params>';
$spooler_log->info( $variable_set->xml );
$spooler_log->info( 'nachname=' . $variable_set->value( 'nachname' ) );
$spooler_log->info( 'vorname =' . $variable_set->value( 'vorname' ) );
Siehe <sos.spooler.variable_set> , <params> .
Parameter:
XML-Dokument als String. Liefert <
sos.spooler.variable_set> . Beim Setzen wird der
Name des Wurzelelements nicht beachtet, <params>
oder <sos.spooler.variable_set> kann übergeben
werden.
Rückgabe:
BSTR XML-Dokument als String. Liefert <sos.spooler.variable_set> . Beim Setzen wird der Name des
Wurzelelements nicht beachtet, <params> oder <sos.spooler.variable_set> kann übergeben werden.
4.23 Web_service
Siehe auch <web_service>
4.23.1 forward_xslt_stylesheet_path
Pfad des XSLT-Stylesheets fürs Forwarding
Syntax: BSTR $web_service-> forward_xslt_stylesheet_path
Software- and Organisations-Service GmbH
März 2015
Perl API
274
Siehe auch <web_service forward_xslt_stylesheet="">
4.23.2 name
Name des Web-Dienstes im Scheduler
Syntax: BSTR $web_service-> name
Siehe auch <web_service name="">
4.23.3 params
Parameter zur freien Verwendung
Syntax: Variable_set $web_service-> params
Die Parameter des Web-Services können mit <web_service> eingestellt werden.
Rückgabe:
Variable_set 4.24 Web_service_operation
Siehe auch <web_service>
4.24.1 peer_hostname
Hostname der Gegenstelle
Syntax: BSTR $web_service_operation-> peer_hostname
Rückgabe:
BSTR "", wenn der Name nicht ermittelt werden kann.
4.24.2 peer_ip
IP-Adresse der Gegenstelle
Syntax: BSTR $web_service_operation-> peer_ip
Software- and Organisations-Service GmbH
März 2015
Perl API
275
4.24.3 request
Anforderung
Syntax: Web_service_request $web_service_operation-> request
Rückgabe:
Web_service_request 4.24.4 response
Antwort
Syntax: Web_service_response $web_service_operation-> response
Rückgabe:
Web_service_response 4.24.5 web_service
Syntax: Web_service $web_service_operation-> web_service
Rückgabe:
Web_service 4.25 Web_service_request
Siehe Web_service_operation .
4.25.1 binary_content
Nutzdaten als Byte-Array (nur Java)
Syntax: $web_service_request-> binary_content
Die Eigenschaft steht nur unter Java zur Verfügung.
Wie der binäre Inhalt zu interpretieren ist, sollte der Client in im Header-Feld Content-Type mitgeteilt haben (siehe
HTTP/1.1 14.17 Content-Type und Web_service_request.charset_name ).
Software- and Organisations-Service GmbH
März 2015
Perl API
276
4.25.2 charset_name
Zeichencodierung
Syntax: BSTR $web_service_request-> charset_name
Beispiel:
my $request = $spooler_task->order->web_service_operation->request;
$spooler_log->info( $request->header( 'Content-Type' ) );
charset=utf-8
$spooler_log->info( $request->content_type );
$spooler_log->info( $request->charset_name );
# ==> text/xml;
# ==> text/xml
# ==> utf-8
Liefert den Parameter charset= aus dem Kopfeintrag Content-Type:.
4.25.3 content_type
Content-Type (ohne Parameter)
Syntax: BSTR $web_service_request-> content_type
Liefert den Kopfeintrag Content-Type: ohne Parameter, z.B. "text/plain".
4.25.4 header
Eintrag im Kopf
Syntax: BSTR $web_service_request-> header( BSTR name )
Beispiel:
$spooler_log->info( 'Content-Type: ' . $spooler_task->order->web_service_operation->
request->header( 'Content-Type' ) );
Parameter:
name
Die Großschreibung spielt keine Rolle.
Rückgabe:
BSTR Für einen unbekannten Eintrag wird "" geliefert
Software- and Organisations-Service GmbH
März 2015
Perl API
277
4.25.5 string_content
Nutzdaten als Text
Syntax: BSTR $web_service_request-> string_content
Die Zeichen-Codierung wird dem Parameter charset aus headers( "Content-Type" ) entnommen (siehe
HTTP/1.1 14.17 Content-Type). Fehlt der Parameter, wird ISO-8859-1 angenommen.
Folgende Zeichen-Codierungen (Charset) werden erkannt:
•
•
ISO-8859-1
UTF-8 (nur Windows und beschränkt auf den Zeichenvorrat von ISO-8859-1)
Siehe auch Web_service_request.binary_content .
4.25.6 url
Uniform Resource Locator
Syntax: BSTR $web_service_request-> url
url = "http://" + header( "Host" ) + url_pfad
4.26 Web_service_response
Die Eigenschaft binary_content steht nur unter Java zur Verfügung.
Siehe auch <web_service>
4.26.1 charset_name
Zeichencodierung
Syntax: BSTR $web_service_response-> charset_name
Beispiel:
my $request = $spooler_task->order->web_service_operation->request;
$spooler_log->info( $request->header( 'Content-Type' ) );
charset=utf-8
$spooler_log->info( $request->content_type );
$spooler_log->info( $request->charset_name );
// ==> text/xml;
// ==> text/xml
// ==> utf-8
Zugriff auf den Parameter charset= aus dem Kopfeintrag Content-Type:.
Software- and Organisations-Service GmbH
März 2015
Perl API
278
4.26.2 content_type
Content-Type (ohne Parameter)
Syntax: BSTR $web_service_response-> content_type
Zugriff auf den Kopfeintrag Content-Type: ohne dazugehörige Parameter (z.B. charset=).
4.26.3 header
Eintrag im Kopf
Syntax: $web_service_response->LetProperty( 'header', BSTR value, BSTR name )
Syntax: BSTR $web_service_response-> header( BSTR name )
Beispiel:
$spooler_log->info( 'Content-Type: ' . $spooler_task->order->web_service_operation->
header( 'Content-Type' ) );
Parameter:
value
Für einen umbekannten Eintrag wird "" verwendet
name
Die Großschreibung spielt keine Rolle.
Rückgabe:
BSTR Für einen umbekannten Eintrag wird "" verwendet
4.26.4 send
Antwort senden
Syntax: $web_service_response-> send(
4.26.5 status_code
HTTP-Status-Code
Syntax: $web_service_response->LetProperty( 'status_code', int )
Voreingestellt ist 200 (OK).
Software- and Organisations-Service GmbH
März 2015
Perl API
279
4.26.6 string_content
Nutzdaten als Text
Syntax: $web_service_response->LetProperty( 'string_content', BSTR text )
Beispiel:
my $response = $spooler_task->order->web_service_operation->response;
$response->LetProperty( 'content_type', 'text/plain' );
$response->LetProperty( 'charset_name', 'iso-8859-1' );
$response->LetProperty( 'string_content', 'This is the answer' );
$response->send();
Zuvor muss header( "Content-Type" ) mit dem Parameter charset gesetzt sein, zum Beispiel
header( "Content-Type" ) = "text/plain; charset=iso-8859-1";
Der Text wird nach dem Parameter charset codiert. Fehlt der Parameter, wird ISO-8859-1 angenommen.
Zu den hier zulässigen Zeichen-Codierungen (Charset) siehe Web_service_request.string_content
Siehe Web_service_response.charset_name .
4.27 Xslt_stylesheet
Mit einem XSLT-Stylesheet wird die Konvertierung eines XML-Dokuments in ein anderes beschrieben.
Der XSLT-Prozessor ist mit libxslt implementiert.
4.27.1 apply_xml
Wendet das Stylesheet auf ein XML-Dokument an.
Syntax: BSTR $x-> apply_xml( BSTR xml )
4.27.2 close
Gibt die Ressourcen des Stylesheets frei
Syntax: $x-> close(
4.27.3 load_file
Lädt das Stylesheet aus einer XML-Datei
Software- and Organisations-Service GmbH
März 2015
Perl API
280
Syntax: $x-> load_file( BSTR path )
4.27.4 load_xml
Lädt das Stylesheet aus einem XML-Dokument
Syntax: $x-> load_xml( BSTR xml )
Software- and Organisations-Service GmbH
März 2015
VBScript API
281
5 VBScript API
Für VBScript stehen die folgenden Klassen zur Verfügung:
5.1 Error
5.1.1 code
Der Fehlercode
Syntax: String error. code
5.1.2 is_error
true, wenn ein Fehler vorliegt
Syntax: Boolean error. is_error
5.1.3 text
Fehlertext (mit Fehlercode)
Syntax: String error. text
5.2 Job
Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen.
5.2.1 clear_delay_after_error
Nimmt alle delay_after_error zurück
Syntax: spooler_job. clear_delay_after_error ()
5.2.2 clear_when_directory_changed
Nimmt alle start_when_directory_changed() zurück
Software- and Organisations-Service GmbH
März 2015
VBScript API
282
Syntax: spooler_job. clear_when_directory_changed ()
5.2.3 configuration_directory
Verzeichnis der Konfigurationsdatei des Jobs
Syntax: String spooler_job. configuration_directory
"", wenn der Job nicht aus einem Konfigurationsverzeichnis stammt.
5.2.4 delay_after_error
Verzögert erneuten Jobstart nach Fehler
Syntax: spooler_job.
delay_after_error
(
Integer
error_steps
) = Double|Integer|String
seconds_or_hhmm_ss
Beispiel: in javascript
spooler_job.delay_after_error( 2
Fehler um 10 Sekunden verzögern
spooler_job.delay_after_error( 5
Fehler um eine Minute verzögern
spooler_job.delay_after_error( 10
Fehler um einen Tag verzögern
spooler_job.delay_after_error( 20
Fehler den Job stoppen
) = 10;
// Ab dem 2. aufeinanderfolgenden
) = "00:01";
// Ab dem 5. aufeinanderfolgenden
) = "24:00";
// Ab dem 10. aufeinanderfolgenden
) = "STOP";
// Beim 20. aufeinanderfolgenden
Nach einem Fehler wiederholt der JobScheduler den Job sofort.
Nach dem zweiten bis zum vierten Fehler verzögert der JobScheduler den Job um 10 Sekunden,
nach dem fünften bis zum neunten Fehler um eine Minute,
nach dem zehnten bis zum neunzehnten um 24 Stunden,
nach dem zwanzigsten aufeinanderfolgenden Fehler schließlich stoppt der Job.
Für verschiedene Anzahlen aufeinanderfolgender Fehler kann eine Verzögerung eingestellt werden. Der Job wird
dann nicht gestoppt, sondern die angegebene Zeit verzögert und erneut gestartet.
Der Aufruf kann für verschiedene Anzahlen wiederholt werden. Man wird jeweils eine längere Verzögerung
angeben.
Wenn Sie den Parameter seconds_or_hhmm_ss als String übergeben, können Sie auch "STOP" angeben. Der Job
stoppt, wenn er die angegebene Anzahl aufeinanderfolgende Fehler erreicht hat.
Eine gute Stelle für die Aufrufe ist spooler_init() .
Siehe <delay_after_error> .
Parameter:
error_steps
Anzahl der aufeinanderfolgenden Jobfehler, ab der die Verzögerung gilt
Software- and Organisations-Service GmbH
März 2015
VBScript API
283
seconds_or_hhmm_ss
Frist, nach der der Job wiederholt wird
5.2.5 delay_order_after_setback
Stellt Aufträge nach Fehler zurück
Syntax: spooler_job. delay_order_after_setback ( Integer setback_count ) = Double|Integer|String
seconds_or_hhmm_ss
Beispiel: in javascript
spooler_job.delay_order_after_setback( 1 ) = 60;
Rückstellung desselben Auftrags:
// 1. bis 2. aufeinderfolgende
// Auftrag um 60s verzögern.
spooler_job.delay_order_after_setback( 3 ) = "01:00";
Rückstellung desselben Auftrags:
// Ab 3. aufeinanderfolgender
// Auftrag um eine Stunde
verzögern.
spooler_job.max_order_setbacks = 5;
versetzt den Auftrag in den Fehlerzustand
// Die 5. Rückstellung
Ein Auftragsjob kann einen Auftrag, den er gerade ausführt, mit Order.setback() zurückstellen. Er wird dann an
eine hintere Stelle der Auftragswarteschlange des Jobs eingereiht und kommt nach der eingestellten Zeit erneut
zur Ausführung.
Die aufeinanderfolgenden Rückstellungen eines Auftrags werden gezählt. Mit delay_order_after_setback
können Sie verschiedene Fristen für wiederholte Rückstellungen festlegen.
Siehe <delay_order_after_setback> , Order.setback() , Job.max_order_setbacks , Job_chain.add_job() ,
Job.delay_after_error() .
Parameter:
setback_coun
t
Für die 1., 2. usw. aufeinanderfolgende Rückstellung desselben Auftrags können verschiedene
Fristen eingestellt werden.
seconds_or_h
hmm_ss
Frist für die Rückstellung. Nach Ablauf der Frist kommt der Auftrag erneut in diesem Job zur
Ausführung.
5.2.6 folder_path
Pfad des Ordners, in dem der Job sich befindet.
Syntax: String spooler_job. folder_path
"", wenn der Job nicht aus dem lokalen Konfigurationsverzeichnis ( <config configuration_directory=""> )
stammt.
Liefert den Pfad des Jobs relativ zum Live-Directory. Der Pfad beginnt mit einem "/", alle Bestandteile eines Pfads
sind durch "/" getrennt
Software- and Organisations-Service GmbH
März 2015
VBScript API
284
Beispiele:
•
•
•
für einen Job c:\scheduler\config\live\somewhere\excel\sample.job.xml wird "/somewhere/excel"
zurückgeliefert
für einen Job c:\scheduler\config\live\sample.xml wird "/" zurückgeliefert
für einen Job außerhalb des Live-Verzeichnisses wird "" (Leerstring) zurückgeliefert
5.2.7 include_path
Wert der Option -include-path=
Syntax: String spooler_job. include_path
Siehe -include-path .
5.2.8 max_order_setbacks
Begrenzt die Anzahl der Rückstellungen eines Auftrags
Syntax: spooler_job. max_order_setbacks = Integer
Wenn derselbe Auftrag mehr als hier angegeben aufeinderfolgend zurückgesetzt worden ist (s. Order.setback()
), gerät er in den Fehlerzustand (s. Job_chain_node.error_state ).
Siehe Job.delay_order_after_setback und <delay_order_after_setback is_maximum="yes"> .
5.2.9 name
Pfad des Jobs ohne beginnenden Schrägstrich
Syntax: String spooler_job. name
Siehe <job name=""> .
5.2.10 order_queue
Auftragswarteschlange des Jobs
Syntax: Order_queue spooler_job. order_queue
Beispiel: in javascript
spooler_log.info( 'order=' + ( spooler_job.order_queue ? "yes" : "no" ) );
Software- and Organisations-Service GmbH
März 2015
VBScript API
285
Ein Auftragsjob ( <job order="yes"> ) hat eine Auftragswarteschlange. Die Auftragswarteschlange wird über eine
Jobkette, in der der Job eingetragen ist, gefüllt.
Siehe Job_chain.add_order() , Job_chain.add_job() .
Rückgabe:
Order_queue null, wenn der Job keine Auftragswarteschlange hat (bei <job order="no"> ).
5.2.11 process_class
Die Prozessklasse
Syntax: Process_class spooler_job. process_class
Siehe <job process_class=""> .
Rückgabe:
Process_class 5.2.12 remove
Entfernt den Job
Syntax: spooler_job. remove ()
Der Job wird gestoppt, d.h. laufende Tasks werden beendet, keine neuen werden gestartet. Sobald keine Task
mehr läuft, wird der Job entfernt.
Tasks in der Warteschlange werden ignoriert.
Wenn keine Task des Jobs läuft, entfernt remove() den Job sofort.
Auftragsjobs ( <job order="yes"> ) können nicht entfernt werden.
Siehe <modify_job cmd="remove"> .
5.2.13 setback_max
Wie oft kann ein Auftrag zurückgestellt werden?
Syntax: spooler_job. setback_max = Integer
Syntax: Integer spooler_job. setback_max
Siehe <delay_order_after_setback is_maximum="yes"> .
Software- and Organisations-Service GmbH
März 2015
VBScript API
286
5.2.14 start
Erzeugt eine neue Task und reiht sie in die Task-Warteschlange ein
Syntax: Task spooler_job. start ( Variable_set variables (optional) )
Beispiel:
spooler.job( "job_a" ).start
Dim parameters
Set parameters = spooler.create_variable_set()
parameters.var( "my_parameter" ) = "my_value"
parameters.var( "other_parameter" ) = "other_value"
spooler.job( "job_a" ).start( parameters )
Die Parameter stehen der Task mit Task.params zur Verfügung. Zwei besondere Parameter können angegeben
werden:
"spooler_task gibt der Task einen Namen, der in den Statusanzeigen erscheint.
_name"
"spooler_star gibt eine Zeit in Sekunden (reelle Zahl) an, nach deren Ablauf die Task zu starten ist. Dabei wird
t_after"
<run_time> nicht beachtet.
Siehe Spooler.create_variable_set() , Spooler.job , Variable_set.value .
Rückgabe:
Task 5.2.15 start_when_directory_changed
Überwacht ein Verzeichnis und lässt bei Änderung eine Task starten
Syntax: spooler_job.
start_when_directory_changed
filename_pattern (optional) )
(
String
directory_path,
String
Beispiel: in javascript
spooler_job.start_when_directory_changed( "c:/tmp" );
// Nur Dateien beachten, deren Name nicht auf "~" endet.
spooler_job.start_when_directory_changed( "c:/tmp", "^.*[^~]$" );
Wenn keine Task des Jobs läuft und sich das Verzeichnis geändert hat (eine Datei hinzukommt, umbenannt oder
entfernt wird), startet der JobScheduler innerhalb der <run_time> eine Task.
Um mehrere Verzeichnisse zu überwachen, kann der Aufruf wiederholt werden. Ein Aufruf mit einem bereits
angegebenen Verzeichnis erneuert die Überwachung.
Der Aufruf kann im Scheduler-Skript oder in spooler_init() des Jobs codiert werden. Im letzteren Fall muss der
Job zu Beginn einmal starten, damit der Aufruf wirksam wird. Verwenden Sie dazu die Einstellung <run_time
once="yes"> .
Der Job sollte mit <run_time repeat=""> periodisch gestartet und mit <delay_after_error> versehen werden.
Software- and Organisations-Service GmbH
März 2015
VBScript API
287
Dieselbe Einstellung können Sie auch in der XML-Konfiguration mit <start_when_directory_changed>
vornehmen.
Siehe auch JobScheduler Dokumentation.
Parameter:
directory_path
Pfad des zu überwachenden Verzeichnisses
filename_patter Beschränkt die Überwachung auf Dateinamen, die dem Regulären Ausdruck entsprechen.
n
5.2.16 state_text
Freier Text für den Zustand des Jobs
Syntax: spooler_job. state_text = String
Beispiel: in javascript
spooler_job.state_text = "Step C succeeded";
Der Text wird in der HTML-Oberfläche gezeigt.
Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen.
5.2.17 title
Titel des Jobs
Syntax: String spooler_job. title
Beispiel: in javascript
spooler_log.info( "Job title=" + spooler_job.title );
Siehe <job title=""> .
5.2.18 wake
Veranlasst den Start einer Task
Syntax: spooler_job. wake ()
Wenn der Job im Zustand pending oder stopped ist (also keine Task läuft), startet der Aufruf eine Task.
Siehe Job.start() .
Software- and Organisations-Service GmbH
März 2015
VBScript API
288
5.3 Job_chain - Jobkette zur Auftragsverarbeitung
Eine Jobkette (Job_chain) ist eine Kette von Jobs (Jobkettenknoten oder Stellen). Diese Kette wird von Aufträgen (
Order ) durchlaufen.
Jeder Stelle in der Jobkette ist ein Zustand und ein Job zugeordnet. Wenn ein Auftrag der Jobkette hinzugefügt
wird, setzt der JobScheduler ihn an die seinem Zustand entsprechende Stelle. Der dieser Stelle zugeordnete Job
führt den Auftrag aus.
Jede Stelle hat außerdem einen Folgezustand und einen Fehlerzustand. Nach der Verarbeitung eines Auftrags
durch einen Jobschritt ändert der JobScheduler den Zustand des Auftrags. Wenn der Jobschritt (spooler_process)
true liefert, stellt der JobScheduler den Folgezustand, sonst den Fehlerzustand ein. Der Auftrag rutscht damit an
eine andere Stelle der Jobkette, die dem neuen Zustand zugeordnet ist. Das gilt nicht, wenn der Zustand während
der Ausführung mit Order.state verändert worden ist.
Sie erzeugen eine Jobkette mit Spooler.create_job_chain() , füllen sie mit Job_chain.add_job() und
Job_chain.add_end_state() und machen sie schließlich mit Spooler.add_job_chain() bekannt.
Jeder Knoten ist eindeutig einem Zustand zugeordnet. Für jeden Zustand muss genau einmal
Job_chain.add_job() oder Job_chain.add_end_state() aufgerufen werden.
Beispiel: in javascript
var my_job_chain = spooler.create_job_chain();
my_job_chain.name = "Jobkette";
my_job_chain.add_job( "job_100", 100, 200, 999 );
my_job_chain.add_job( "job_200", 200, 1000, 999 );
my_job_chain.add_end_state( 999 );
my_job_chain.add_end_state( 1000 );
spooler.add_job_chain( my_job_chain );
5.3.1 add_end_state
Fügt der Jobkette einen Endknoten hinzu
Syntax: job_chain. add_end_state ( Variant state )
Diesem Knoten ist kein Job zugeordnet. Ein Auftrag, der einen Endknoten erreicht, hat die Jobkette durchlaufen
und wird vom JobScheduler aus ihr entfernt.
5.3.2 add_job
Erweitert die Jobkette um einen Job
Syntax: job_chain. add_job ( String job_name, Variant input_state, Variant output_state, Variant
error_state )
Software- and Organisations-Service GmbH
März 2015
VBScript API
289
5.3.3 add_or_replace_order
Gibt einen Auftrag in die Jobkette und ersetzt ggfs. einen mit gleicher Kennung
Syntax: job_chain. add_or_replace_order ( Order order )
Hat die Jobkette bereits einen Auftrag mit gleicher Kennung, dann wird dieser ersetzt. Genauer: Er wird aus der
Jobkette entfernt, und der neue Auftrag wird hinzugefügt.
Solange eine Task den vorhandenen Auftrag ausführt, sind im JobScheduler zwei Aufträge mit gleicher Kennung
vorhanden. Allerdings ist der vorhandene Auftrag aus der Jobkette und aus der Datenbank bereits entfernt. Er ist
nur noch für die Task nutzbar und verschwindet nach der Ausführung.
In diesem Fall wartet der JobScheduler die Ausführung des neuen Auftrags ab, bis die Ausführung des alten
Auftrags beendet ist.
Siehe Job_chain.add_order() und Order.remove_from_job_chain()
5.3.4 add_order
Gibt einen Auftrag in die Jobkette
Syntax: Order job_chain. add_order ( Order |String order_or_payload )
Wenn der Auftrag in einer anderen Jobkette enthalten ist, entfernt der JobScheduler ihn daraus.
Der Auftrag wird in die Auftragswarteschlange des Jobs, der seinem Zustand entspricht, gemäß seiner Priorität
eingeordnet.
Die Jobkette mit muss <job_chain> oder Spooler.add_job_chain() dem JobScheduler bekannt gemacht
worden sein.
Wenn die Jobkette bereits einen Auftrag mit gleicher Order.id enthält, wird eine Exception mit Fehlercode
SCHEDULER-186 geliefert. Siehe aber Job_chain.add_or_replace_order() .
Rückgabe:
Order 5.3.5 name
Name der Jobkette
Syntax: job_chain. name = String
Syntax: String job_chain. name
Beispiel: in javascript
var job_chain = spooler.create_job_chain();
job_chain.name = "Jobkette";
Software- and Organisations-Service GmbH
März 2015
VBScript API
290
5.3.6 node
Der Jobkettenknoten zum angegebenen Zustand
Syntax: Job_chain_node job_chain. node ( Variant state )
Rückgabe:
Job_chain_node 5.3.7 order_count
Anzahl der Aufträge in der Jobkette
Syntax: Integer job_chain. order_count
5.3.8 order_queue
= node(state).job().order_queue()
Syntax: Order_queue job_chain. order_queue ( Variant state )
Liefert die Auftragswarteschlange des Jobs, der dem angegebenen Zustand zugeordnet ist.
Rückgabe:
Order_queue 5.3.9 orders_recoverable
Syntax: job_chain. orders_recoverable = Boolean
Syntax: Boolean job_chain. orders_recoverable
Siehe <job_chain orders_recoverable=""> .
5.3.10 remove
Entfernt die Jobkette
Syntax: job_chain. remove ()
Wenn gerade Aufträge der Jobkette verarbeitet werden (in spooler_process() ), dann entfernt der JobScheduler
die Jobkette, sobald der letzte Auftrag verarbeitet worden ist.
Software- and Organisations-Service GmbH
März 2015
VBScript API
291
Die Aufträge bleiben in der Datenbank erhalten. Wenn später eine Jobkette mit gleichen Namen hinzugefügt wird (
Spooler.add_job_chain() ), dann lädt der JobScheduler diese Aufträge erneut. Die Zustände der Aufträge
müssen in der erneuerten Jobkette vorhanden sein.
5.3.11 title
Syntax: job_chain. title = String
Syntax: String job_chain. title
Siehe <job_chain title=""> .
5.4 Job_chain_node
Ein Jobkettenknoten beschreibt eine Stelle in einer Jobkette ( Job_chain ). Einem Jobkettenknoten sind
zugeordnet: ein Zustand, ein Job, ein Folgezustand und ein Fehlerzustand.
Ein Jobkettenknoten wird mit Job_chain.add_job() oder mit Job_chain.add_end_state() erzeugt.
5.4.1 action
Jobkettenknoten stoppen oder überspringen
Syntax: node. action = String
Syntax: String node. action
Beispiel: in javascript
var job_chain_node = spooler.job_chain( "my_job_chain" ).node( 100 );
job_chain_node.action = "next_state";
Für eine verteilte Jobkette nicht möglich.
Mögliche Angaben sind
action="process"
Das ist die Voreinstellung. Aufträge werden ausgeführt.
action="stop"
Aufträge werden nicht ausgeführt, sie sammeln sich in der Auftragswarteschlange an.
action="next_state"
Aufträge werden sofort dem mit next_state bestimmten Folgeknoten übergeben.
Siehe auch <job_chain_node.modify action=""> .
In Java sind für Zeichenketten Konstanten definiert:
Software- and Organisations-Service GmbH
März 2015
VBScript API
•
•
•
292
Job_chain_node.ACTION_PROCESS
Job_chain_node.ACTION_STOP
Job_chain_node.ACTION_NEXT_STATE
5.4.2 error_node
Nächster Knoten in der Jobkette für den Fehlerfall
Syntax: Job_chain_node node. error_node
Beispiel: in javascript
var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 );
spooler_log.debug( "error state=" + job_chain_node.error_node.state );
"state=999"
//
Rückgabe:
Job_chain_node null, wenn es keinen Fehler-Knoten gibt (Fehlerzustand ist nicht angegeben)
5.4.3 error_state
Zustand in der Jobkette für den Fehlerfall
Syntax: Variant node. error_state
Beispiel: in javascript
var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 );
spooler_log.debug( "error state=" + job_chain_node.error_node.state );
state=999"
// "error
5.4.4 job
Job, der dem Knoten zugeordnet ist
Syntax: Job node. job
Beispiel: in javascript
var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 );
spooler_log.debug( "job=" + job_chain_node.job.name );
"job=job_100"
//
Rückgabe:
Job Software- and Organisations-Service GmbH
März 2015
VBScript API
293
5.4.5 next_node
Syntax: Job_chain_node node. next_node
Rückgabe:
Job_chain_node 5.4.6 next_state
Zustand in der Jobkette für den Erfolgsfall
Syntax: Variant node. next_state
Beispiel: in javascript
var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 );
spooler_log.debug( "next_state=" + job_chain_node.next_state );
"state=200"
//
5.4.7 state
Zustand, für den dieser Jobkettenknoten gilt
Syntax: Variant node. state
Beispiel: in javascript
var job_chain_node = spooler.job_chain( "Jobkette" ).node( 100 );
spooler_log.info( "state=" + job_chain_node.state );
"state=100"
//
5.5 Job_impl - Oberklasse für einen Job oder das Scheduler-Skript
Der Methoden eines Jobs werden in folgender Reihenfolge aufgerufen.
spooler_init()
spooler_open()
spooler_process()
spooler_process()
...
spooler_close()
spooler_on_success() oder spooler_on_error()
spooler_exit()
Software- and Organisations-Service GmbH
März 2015
VBScript API
294
Keine dieser Methoden muss implementiert werden. In der Regel wird wenigstens spooler_process()
implementiert.
Ein Fehler beim Ausführen des Job-Skripts während des Ladens oder in spooler_init() führt zum Aufruf von
spooler_on_error() . Der Job wird gestoppt. spooler_exit() wird gerufen (obwohl spooler_init() nicht
gerufen worden ist!) und das Skript entladen.
spooler_on_error() muss also auch mit Fehlern umgehen, die beim Laden oder in spooler_init() auftreten.
spooler_exit() wird gerufen, auch wenn spooler_init() nicht gerufen worden ist.
5.5.1 spooler
Das allgemeine Objekt des Schedulers
Syntax: Spooler spooler
Beispiel: in javascript
spooler_log.debug( "The working directory of the JobScheduler is " + spooler.directory
);
Rückgabe:
Spooler 5.5.2 spooler_close
Task-Ende
Syntax: spooler_close ()
Wird am Ende eines Joblaufs gerufen. Gegenstück zu spooler_open() .
5.5.3 spooler_exit
Destruktor
Syntax: spooler_exit ()
Wird als allerletzte Methode gerufen, bevor das Skript entladen wird. Hier kann z.B. eine Datenbank-Verbindung
geschlossen werden.
5.5.4 spooler_init
Initialisierung
Syntax: Boolean spooler_init ()
Software- and Organisations-Service GmbH
März 2015
VBScript API
295
Der JobScheduler ruft diese Methode nach dem Konstruktor und vor spooler_open() genau einmal auf.
Gegenstück ist spooler_exit() . Die Methode ist geeignet, um die Task zu initialisieren (z.B. um eine
Datenbank-Verbindung aufzubauen).
Rückgabe:
Boolean false beendet die Task. Der JobScheduler setzt mit spooler_exit() fort. Wenn die Task einen Auftrag
verarbeiten soll, wird die Task mit Fehler beendet, was den Job stoppt (wenn nicht Job.delay_after_error
gesetzt ist).
5.5.5 spooler_job
Das Objekt des Jobs
Syntax: Job spooler_job
Beispiel: in javascript
spooler_log.info( "The name of this job is " + spooler_job.name );
Rückgabe:
Job 5.5.6 spooler_log
Zum Protokollieren
Syntax: Log spooler_log
Beispiel: in java
spooler_log.info( "Something has happend" );
Rückgabe:
Log 5.5.7 spooler_on_error
Bei Task-Ende im Fehlerfall
Syntax: spooler_on_error ()
Wird als letzte Funktion eines Joblaufs gerufen, wenn ein Fehler aufgetreten ist (nach spooler_close() und vor
spooler_exit() ).
Software- and Organisations-Service GmbH
März 2015
VBScript API
296
5.5.8 spooler_on_success
Bei Task-Ende im Erfolgsfall
Syntax: spooler_on_success ()
Wird nach spooler_close() , vor spooler_exit() aufgerufen, wenn kein Fehler aufgetreten ist.
5.5.9 spooler_open
Task-Beginn
Syntax: Boolean spooler_open ()
Wird zu Beginn einer Task gerufen. Die Methode wird direkt nach spooler_init() gerufen, es gibt derzeit keinen
Unterschied. Gegenstück ist spooler_close() .
5.5.10 spooler_process
Jobschritt oder Ausführung eines Auftrags
Syntax: Boolean spooler_process ()
Führt einen Jobschritt aus.
Ein Auftragsjob erhält in Task.order den auszuführenden Auftrag.
Die Default-Implementierung gibt false zurück. Ein Auftragsjob versetzt aber einen Auftrag in den Folgezustand.
Rückgabe:
Boolean Bei <job order="no"> : false beendet den Joblauf.
Bei <job order="yes"> : false versetzt den Auftrag in den Fehlerzustand (s. Job_chain_node und <
job_chain_node> ). Das gilt nicht, wenn der Zustand während der Ausführung mit Order.state verändert worden
ist.
5.5.11 spooler_task
Das Objekt der Task
Syntax: Task spooler_task
Beispiel: in javascript
spooler_log.info( "The task id is " + spooler_task.id );
Software- and Organisations-Service GmbH
März 2015
VBScript API
297
Rückgabe:
Task 5.6 Lock
Siehe auch <lock name=""> .
Beispiel: in javascript
var locks = spooler.locks;
var lock = locks.create_lock();
lock.name = "my_lock";
locks.add_lock( lock );
5.6.1 max_non_exclusive
Begrenzung der nicht-exklusiven Belegungen
Syntax: lock. max_non_exclusive = Integer
Syntax: Integer lock. max_non_exclusive
Die Voreinstellung ist unbegrenzt (231-1), es können also mit <lock.use exclusive="no"> beliebig viele
nicht-exklusive Tasks gestartet werden (aber nur eine exklusive).
Die Zahl kann nicht kleiner sein als die Zahl der nicht-exklusiven Belegungen.
Siehe auch <lock max_non_exclusive=""> .
5.6.2 name
Name der Sperre
Syntax: lock. name = String
Syntax: String lock. name
Der Name kann nur einmal gesetzt und nicht geändert werden.
Siehe auch <lock name=""> .
5.6.3 remove
Entfernt die Sperre
Syntax: lock. remove ()
Software- and Organisations-Service GmbH
März 2015
VBScript API
298
Beispiel: in javascript
spooler.locks.lock( "my_lock" ).remove();
Die Sperre kann nur gelöscht werden, wenn sie von keiner Task belegt und von keinem Job gebraucht ( <lock.use
> ) wird.
Siehe auch <lock.remove> .
5.7 Locks
5.7.1 add_lock
Fügt dem JobScheduler eine Sperre hinzu
Syntax: locks. add_lock ( Lock lck )
5.7.2 create_lock
Richtet eine neue Sperre ein
Syntax: Lock locks. create_lock ()
Liefert eine neues Lock . Diese Sperre kann mit Locks.add_lock() dem JobScheduler hinzugefügt werden.
Rückgabe:
Lock 5.7.3 lock
Liefert eine Sperre
Syntax: Lock locks. lock ( String lock_name )
Wenn die Sperre nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Lock Software- and Organisations-Service GmbH
März 2015
VBScript API
299
5.7.4 lock_or_null
Liefert eine Sperre
Syntax: Lock locks. lock_or_null ( String lock_name )
Rückgabe:
Lock null, wenn die Sperre nicht bekannt ist.
5.8 Log - Protokollierung
In einem Job oder im Scheduler-Skript stellt spooler_log die hier beschriebenen Methoden bereit.
eMail-Versand
Am Ende einer Task kann der JobScheduler das Task-Protokoll per eMail versenden. In es versendet werden soll,
geben diese Eigenschaften an:
•
•
•
•
•
Log.mail_on_error ,
Log.mail_on_warning ,
Log.mail_on_process ,
Log.mail_on_success und
Log.mail_it
Nur das Ende der Task, nicht das Ende einer Auftragsausführung (also spooler_process() ) führt zum
eMail-Versand. Siehe aber Task.end() .
Log.mail stellt ein Mail -Objekt bereit, das die Adressierung übernimmt.
Beispiel: in javascript
spooler_log.info( "Something for the Log" );
spooler_log.mail_on_warning = true;
spooler_log.mail.from
= "scheduler@company.com";
spooler_log.mail.to
= "admin@company.com";
spooler_log.mail.subject = "ended";
5.8.1 debug
Debug-Meldung (Level -1)
Syntax: spooler_log. debug ( String line )
5.8.2 debug1
Debug-Meldung (Level -1)
Software- and Organisations-Service GmbH
März 2015
VBScript API
300
Syntax: spooler_log. debug1 ( String line )
5.8.3 debug2
Debug-Meldung (Level -2)
Syntax: spooler_log. debug2 ( String line )
5.8.4 debug3
Debug-Meldung (Level -3)
Syntax: spooler_log. debug3 ( String line )
5.8.5 debug4
Debug-Meldung (Level -4)
Syntax: spooler_log. debug4 ( String line )
5.8.6 debug5
Debug-Meldung (Level -5)
Syntax: spooler_log. debug5 ( String line )
5.8.7 debug6
Debug-Meldung (Level -6)
Syntax: spooler_log. debug6 ( String line )
5.8.8 debug7
Debug-Meldung (Level -7)
Syntax: spooler_log. debug7 ( String line )
Software- and Organisations-Service GmbH
März 2015
VBScript API
301
5.8.9 debug8
Debug-Meldung (Level -8)
Syntax: spooler_log. debug8 ( String line )
5.8.10 debug9
Debug-Meldung (Level -9)
Syntax: spooler_log. debug9 ( String line )
5.8.11 error
Fehlermeldung (Level 1)
Syntax: spooler_log. error ( String line )
Wenn die Fehlermeldung ins Task-Protokoll ( spooler_log ) geschrieben wird und nicht <job
stop_on_error="no"> eingestellt ist, stoppt der Job nach Ende der Task.
5.8.12 filename
Dateiname des Protokolls
Syntax: String spooler_log. filename
5.8.13 info
Informationsmeldung (Level 0)
Syntax: spooler_log. info ( String line )
5.8.14 last
Letzte Ausgabe des angegebenen Levels
Syntax: String spooler_log. last ( Integer|String level )
Software- and Organisations-Service GmbH
März 2015
VBScript API
302
5.8.15 last_error_line
Die zuletzt mit Level 2 (error) ausgegebene Zeile
Syntax: String spooler_log. last_error_line
5.8.16 level
Protokollausgaben beschränken
Syntax: spooler_log. level = Integer
Syntax: Integer spooler_log. level
Legt fest, ab welcher Stufe der JobScheduler Protokollzeilen ausgibt. Jede Protokollzeile ist auf einer der
folgenden Stufen: error, warn, info, debug1 bis debug9 (debug1 ist dasselbe wie debug).
Nur Meldungen ab dem Level werden ausgegeben.
Dabei bedeutet die numerische Angabe:
-9 bis -2:
debug9 bis debug2
-1:
debug
0:
info
1:
warn
2:
error
Die Option -log-level hat Vorrang.
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_level=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_level=…) wird damit überschrieben.
Nur Meldungen ab dem Level werden ausgegeben.
Dabei bedeutet die numerische Angabe:
-9 bis -2:
debug9 bis debug2
-1:
debug
0:
info
1:
warn
2:
error
Software- and Organisations-Service GmbH
März 2015
VBScript API
303
5.8.17 log
Syntax: spooler_log. log ( Integer level, String line )
5.8.18 log_file
Protokolliert den Inhalt der Datei
Syntax: spooler_log. log_file ( String path )
Protokolliert den Inhalt der Datei mit Level 0 (info). Ein Fehler beim Zugriff auf die Datei wird als Warnung
protokolliert.
Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wird die Datei vom
Dateisystem des Schedulers, nicht der Task, gelesen.
5.8.19 mail
Im Mail-Objekt können Sie Einstellungen zur eMail vornehmen
Syntax: spooler_log. mail = Mail
Syntax: Mail spooler_log. mail
Rückgabe:
Mail 5.8.20 mail_it
Versand erzwingen
Syntax: spooler_log. mail_it = Boolean
Bei true wird das Protokoll bei Task-Ende verschickt unabhängig von den Einstellungen Log.mail_on_error ,
Log.mail_on_warning , Log.mail_on_success , Log.mail_on_process und Log.mail_on_error .
5.8.21 mail_on_error
Mit Fehler beendete Task verschickt eMail
Syntax: spooler_log. mail_on_error = Boolean
Syntax: Boolean spooler_log. mail_on_error
Software- and Organisations-Service GmbH
März 2015
VBScript API
304
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_error=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_error=…) wird damit überschrieben.
5.8.22 mail_on_process
Task mit spooler_process() verschickt eMail
Syntax: spooler_log. mail_on_process = Integer
Syntax: Integer spooler_log. mail_on_process
Veranlasst den Versand des Task-Protokolls, wenn die Task wenigstens die angegebene Anzahl Schritte, also
Aufrufe von spooler_process() , ausgeführt hat. Weil Nicht-API-Tasks keine Schritte haben, zählt der
JobScheduler für sie immer einen Schritt.
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_process=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_process=…) wird damit überschrieben.
5.8.23 mail_on_success
Erfolgreich gelaufende Task verschickt eMail
Syntax: spooler_log. mail_on_success = Boolean
Syntax: Boolean spooler_log. mail_on_success
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_on_success=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_success=…) wird damit überschrieben.
5.8.24 mail_on_warning
Wenn eine Warnung ausgegeben worden ist, wird am Task-Ende eine eMail verschickt
Syntax: spooler_log. mail_on_warning = Boolean
Syntax: Boolean spooler_log. mail_on_warning
Damit im Fehlerfall eine Mail verschickt wird, ist mail_on_error=yes explizit zu setzen.
Software- and Organisations-Service GmbH
März 2015
VBScript API
305
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_on_warning=…) wird damit überschrieben.
5.8.25 new_filename
Neuer Dateiname fürs Protokoll
Syntax: spooler_log. new_filename = String
Syntax: String spooler_log. new_filename
Setzt den Dateinamen fürs Protokoll. Wenn das Protokoll geschlossen wird, kopiert der JobScheduler es in diese
Datei. Die Datei steht dann der Anwendung zur Verfügung.
5.8.26 start_new_file
Nur fürs Hauptprotokoll: Schließt das bisherige und beginnt ein neues Protokoll
Syntax: spooler_log. start_new_file ()
5.8.27 warn
Warnung (Level 2)
Syntax: spooler_log. warn ( String line )
5.9 Mail - eMail-Versand
Siehe Log.mail .
5.9.1 add_file
Fügt einen Anhang hinzu
Syntax: mail. add_file ( String path, String filename_for_mail (optional) , String content_type
(optional) , String enconding (optional) )
Beispiel: in javascript
spooler_log.mail.add_file( "c:/tmp/1.txt", "1.txt", "text/plain", "quoted-printable" );
Parameter:
path
Pfadname der anzuhängenden Datei
Software- and Organisations-Service GmbH
März 2015
VBScript API
306
filename_for_mail
Dateiname, der in der Nachricht erscheinen soll
content_type
"text/plain" ist voreingestellt.
enconding
Z.B. "quoted-printable"
5.9.2 add_header_field
Fügt dem eMail-Kopf ein Feld hinzu
Syntax: mail. add_header_field ( String field_name, String value )
5.9.3 bcc
Unsichtbarer Empfänger einer Kopie der Nachricht, blind carbon copy
Syntax: mail. bcc = String
Syntax: String mail. bcc
Beispiel: in javascript
spooler_log.mail.bcc = "hans@company.com";
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_bcc=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_bcc=…) wird damit überschrieben.
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
5.9.4 body
Inhalt der Nachricht
Syntax: mail. body = String
Syntax: String mail. body
Beispiel: in javascript
spooler_log.mail.body = "Job succeeded";
Software- and Organisations-Service GmbH
März 2015
VBScript API
307
Codieren Sie Zeilenwechsel mit \n (in VBScript mit chr(10)).
5.9.5 cc
Empfänger einer Kopie der Nachricht, carbon copy
Syntax: mail. cc = String
Syntax: String mail. cc
Beispiel: in javascript
spooler_log.mail.cc = "hans@company.com";
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_cc=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_cc=…) wird damit überschrieben.
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
5.9.6 dequeue
Nachrichten aus dem Verzeichnis queue_dir erneut versuchen zu versenden
Syntax: Integer mail. dequeue ()
Siehe Mail.dequeue_log , factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…).
Rückgabe:
Integer Zahl der versandten Nachrichten
5.9.7 dequeue_log
Protokoll von dequeue()
Syntax: String mail. dequeue_log
Software- and Organisations-Service GmbH
März 2015
VBScript API
308
Beispiel: in javascript
var count = spooler_log.mail.dequeue();
spooler_log.info( count + " messages from mail queue sent" );
spooler_log.info( spooler_log.mail.dequeue_log );
Siehe Mail.dequeue() .
5.9.8 from
Absender
Syntax: mail. from = String
Syntax: String mail. from
Beispiel: in javascript
spooler_log.mail.from = "scheduler@company.com";
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_from=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_from=…) wird damit überschrieben.
5.9.9 queue_dir
Verzeichnis der nicht versendbaren eMails
Syntax: mail. queue_dir = String path
Syntax: String mail. queue_dir
eMails, die der JobScheduler nicht verschicken kann (weil z.B. der SMTP-Server nicht erreichbar ist), werden hier
abgelegt.
Um diese eMails später zu verschicken, muss ein Job geschrieben werden, der die Methode Mail.dequeue()
aufruft.
Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag queue_dir=…).
Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen).
Die Einstellung factory.ini (Abschnitt [job], Eintrag mail_queue_dir=…) wird damit überschrieben.
Software- and Organisations-Service GmbH
März 2015
VBScript API
309
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag mail_queue_dir=…) wird damit überschrieben.
Die Einstellung sos.ini (Abschnitt [mail], Eintrag queue_dir=…) wird damit überschrieben.
5.9.10 smtp
Name des SMTP-Servers
Syntax: mail. smtp = String
Syntax: String mail. smtp
Beispiel: in javascript
spooler_log.mail.smtp = "mail.company.com";
Der allgemeine Platz für diese Einstellung ist sos.ini (Abschnitt [mail], Eintrag smtp=…).
Die Einstellung factory.ini (Abschnitt [job], Eintrag smtp=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag smtp=…) wird damit überschrieben.
Die Einstellung sos.ini (Abschnitt [mail], Eintrag smtp=…) wird damit überschrieben.
5.9.11 subject
Betreff
Syntax: mail. subject = String
Syntax: String mail. subject
Beispiel: in javascript
spooler_log.mail.subject = "Job succeeded";
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_subject=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_subject=…) wird damit überschrieben.
Software- and Organisations-Service GmbH
März 2015
VBScript API
310
5.9.12 to
Empfänger
Syntax: mail. to = String
Syntax: String mail. to
Beispiel: in javascript
spooler_log.mail.to = "admin@company.com";
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
Die Einstellung factory.ini (Abschnitt [job], Eintrag log_mail_to=…) wird damit überschrieben.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_mail_to=…) wird damit überschrieben.
Wenn die Hostware zum eMail-Versand JavaMail verwendet, können Sie mehrere Adressen durch Komma
getrennt angeben. Siehe javax.mail.InternetAddress.parse(String).
5.9.13 xslt_stylesheet
XSLT-Stylesheet für eMail-Aufbereitung
Syntax: Xslt_stylesheet mail. xslt_stylesheet
Rückgabe:
Xslt_stylesheet Das XSLT-Stylesheet als String
5.9.14 xslt_stylesheet_path
XSLT-Stylesheet für eMail-Aufbereitung
Syntax: mail. xslt_stylesheet_path = String path
Beispiel: in javascript
spooler_log.mail.xslt_stylesheet_path = "c:/stylesheets/mail.xslt";
Software- and Organisations-Service GmbH
März 2015
VBScript API
311
Der Pfad eines XSLT-Stylesheets. Der JobScheduler verwendet das XSLT-Stylesheet zum Aufbereiten der eMails.
(Die Dokumentation hierzu ist noch nicht geschrieben.)
<config mail_xslt_stylesheet="…">
Parameter:
path
Der Pfad der Datei, die das XSLT-Stylesheet enthält
5.10 Monitor_impl - Oberklasse für ein Startskript oder einen Jobs
Mit <monitor> können Sie einem Job einen Monitor geben.
Ein Monitor kann folgende Methoden bereitstellen:
Monitor_impl.spooler_task_before()
Vor dem Start der Task, kann den Start verhindern.
Monitor_impl.spooler_task_after()
Nach dem Ende der Task.
Monitor_impl.spooler_process_before()
Vor spooler_process() , kann diesen Aufruf verhinden.
Monitor_impl.spooler_process_after()
Nach spooler_process() , kann dessen Rückgabewert ändern.
5.10.1 spooler
Das allgemeine Objekt des Schedulers
Syntax: Spooler spooler
Beispiel: in javascript
spooler_log.debug( "The working directory of the JobScheduler is " + spooler.directory
);
Wie dasselbe Objekt in der Klasse Job_impl: spooler .
Rückgabe:
Spooler 5.10.2 spooler_job
Das Objekt des Jobs
Syntax: Job spooler_job
Software- and Organisations-Service GmbH
März 2015
VBScript API
312
Beispiel: in javascript
spooler_log.info( "The name of this job is " + spooler_job.name );
Wie dasselbe Objekt in der Klasse Job_impl: spooler_job .
Rückgabe:
Job 5.10.3 spooler_log
Zum Protokollieren
Syntax: Log spooler_log
Beispiel: in java
spooler_log.info( "Something has happend" );
Wie dasselbe Objekt in der Klasse Job_impl: spooler_log .
Rückgabe:
Log 5.10.4 spooler_process_after
Nach spooler_process()
Syntax: Boolean spooler_process_after ( Boolean spooler_process_result )
Beispiel: in java
public boolean spooler_task_after( boolean spooler_process_result ) throws Exception
{
spooler_log.info( "SPOOLER_TASK_BEFORE()" );
spooler_log.info( "spooler_process() didn't throw an exception and delivered " +
spooler_process_result );
return spooler_process_result;
// Unchanged result
}
Der JobScheduler ruft diese Methode nach jedem spooler_process() auf.
Parameter:
spooler_process_
result
Rückgabewert von spooler_process() oder false, wenn spooler_process() mit einer
Exception geendet hat.
Rückgabe:
Software- and Organisations-Service GmbH
März 2015
VBScript API
313
Boolean Ersetzt den Rückgabewert von spooler_process() .
5.10.5 spooler_process_before
Vor spooler_process()
Syntax: Boolean spooler_process_before ()
Beispiel: in java
public boolean spooler_process_before() throws Exception
{
spooler_log.info( "SPOOLER_PROCESS_BEFORE()" );
return true;
// spooler_process() will be executed
}
Beispiel: in java
public boolean spooler_process_before() throws Exception
{
boolean continue_with_spooler_process = true;
if( !are_needed_ressources_available() )
{
spooler_task.order().setback();
continue_with_spooler_process = false;
}
return continue_with_spooler_process;
}
Der JobScheduler ruft diese Methode vor jedem spooler_process() auf.
Rückgabe:
Boolean false verhindert den folgenden Aufruf von spooler_process() . Der JobScheduler setzt fort, als hätte
spooler_process() false geliefert.
5.10.6 spooler_task
Das Objekt der Task
Syntax: Task spooler_task
Beispiel: in javascript
spooler_log.info( "The task id is " + spooler_task.id );
Software- and Organisations-Service GmbH
März 2015
VBScript API
314
Wie dasselbe Objekt in der Klasse Job_impl: spooler_task .
Rückgabe:
Task 5.10.7 spooler_task_after
Nach dem Ende der Task
Syntax: spooler_task_after ()
Beispiel: in java
public void spooler_task_after() throws Exception
{
spooler_log.info( "SPOOLER_TASK_AFTER()" );
}
Der JobScheduler ruft diese Methode, nachdem die Task geendet hat.
5.10.8 spooler_task_before
Vor Start der Task
Syntax: Boolean spooler_task_before ()
Beispiel: in java
public boolean spooler_task_before() throws Exception
{
spooler_log.info( "SPOOLER_TASK_BEFORE()" );
return true;
// Task will be started
//return false; // Task will not be started
}
Vor dem Laden der Task ruft der JobScheduler diese Methode auf.
Rückgabe:
Boolean false lässt die Task nicht starten. Monitor_impl.spooler_task_after() wird nicht gerufen.
5.11 Order - Auftrag
Siehe JobScheduler Dokumentation, Spooler.create_order() , Job_chain.add_order() , Task.order .
Software- and Organisations-Service GmbH
März 2015
VBScript API
315
Dateiauftrag
Ein Dateiauftrag ist ein Auftrag mit dem Parameter scheduler_file_path: Order.params .
Variable_set.value() .
Siehe JobScheduler Dokumentation.
Beispiel: Auftrag mit einfacher Nutzlast, in javascript
// Create order:
{
var order = spooler.create_order();
order.id
= 1234;
order.title
= "This is my order";
order.state_text = "This is my state text";
order.payload
= "This is my payload";
spooler.job_chain( "my_job_chain" ).add_order( order );
}
...
// Process order:
function spooler_process()
{
var order = spooler_task.order;
spooler_log.info( "order.payload=" + order.payload );
return true;
}
Beispiel: Erzeugen eines Auftrags mit Variable_set als Nutzlast, in javascript
// Create order:
{
var variable_set = spooler.create_variable_set();
variable_set.value( "param_one" ) = "11111";
variable_set.value( "param_two" ) = "22222";
var order = spooler.create_order();
order.id
= 1234;
order.payload = variable_set;
spooler.job_chain( "my_job_chain" ).add_order( order );
}
...
// Process order:
function spooler_process()
{
var order = spooler_task.order;
var variable_set = order.payload;
spooler_log.info( "param_one=" + variable_set.value( "param_one" ) );
spooler_log.info( "param_two=" + variable_set.value( "param_two" ) );
return true;
}
5.11.1 at
Start-Zeitpunkt des Auftrags
Syntax: order. at = String|DATE
Software- and Organisations-Service GmbH
März 2015
VBScript API
316
Beispiel: in javascript
order.at = "now+65";
spooler.job_chain( "my_job_chain" ).add_order( order );
Setzt den Start-Zeitpunkt bevor der Auftrag in eine Auftragswarteschlange eingereiht wird. Als String kann
angegeben werden:
•
•
•
•
"now"
"yyyy-mm-dd HH:MM[:SS]"
"now + HH:MM[:SS]"
"now + seconds"
Die Einstellung ändert die von Order.run_time oder Order.setback() vorgegebene Startzeit.
Siehe <add_order at=""> .
5.11.2 end_state
Zustand, vor dessen erfolgreichen Verlassen der Auftrag enden soll
Syntax: order. end_state = Variant
Syntax: Variant order. end_state
Wenn ein Auftrag einen eigenen End-Zustand hat (end_state ungleich ""), endet der Auftrag, bevor er diesen
Zustand erfolgreich verlassen würde, also nach Ausführung des dem End-Zustand zugeordneten Jobs (siehe <
job_chain_node> ).
Der Zustand muss in der Jobkette bekannt sein.
5.11.3 id
Kennung des Auftrags
Syntax: order. id = Variant
Syntax: Variant order. id
Jeder Auftrag hat eine (innerhalb der Jobkette oder der Auftragswarteschlange des Jobs eindeutige) Kennung.
Diese Kennung sollte den zu verarbeitenden Daten entsprechen. Üblicherweise wird der Schlüssel eines
Datenbanksatzes verwendet.
Wenn Sie die id nicht setzen, vergibt Job_chain.add_order() eine Kennung.
5.11.4 job_chain
Jobkette, in der der Auftrag enthalten ist
Software- and Organisations-Service GmbH
März 2015
VBScript API
317
Syntax: Job_chain order. job_chain
Rückgabe:
Job_chain 5.11.5 job_chain_node
Jobkettenknoten, der dem Zustand des Auftrags entspricht
Syntax: Job_chain_node order. job_chain_node
Rückgabe:
Job_chain_node 5.11.6 log
Auftragsprotokoll
Syntax: Log order. log
Beispiel:
spooler_task.order.log.info( "Only for order log, not for task log" );
spooler_log.info( "For both order log and task log" );
Rückgabe:
Log 5.11.7 params
Parameter des Auftrags
Syntax: order. params = Variable_set
Syntax: Variable_set order. params
params wird in Order.payload gehalten, letzteres kann also nicht zusammen mit params verwendet werden.
Siehe <add_order> .
Rückgabe:
Variable_set Software- and Organisations-Service GmbH
März 2015
VBScript API
318
5.11.8 payload
Nutzlast, also Parameter des Auftrags.
Syntax: order. payload = Variable_set |String|Integer|… payload
Syntax: Variable_set |String|Integer|… order. payload
Statt dieser Eigenschaft wird die Verwendung von Order.params empfohlen (was (Variable_set)order.payload
entspricht).
Neben der Auftragskennung Order.id , die den Auftrag identifiziert, können Sie hier zusätzliche Angaben machen.
Siehe Order.params und Order.xml_payload .
Parameter:
payload
Kann ein String oder ein Variable_set sein.
Rückgabe:
Variable_set |String|Integer|… Kann ein String oder ein Variable_set sein.
5.11.9 payload_is_type
Prüft den COM-Typ der Nutzlast
Syntax: Boolean order. payload_is_type ( String type_name )
Parameter:
type_name
"Spooler.Variable_set", "Hostware.Dyn_obj" oder "Hostware.Record".
5.11.10 priority
Aufträge mit höherer Priorität werden zuerst verarbeitet
Syntax: order. priority = Integer
Syntax: Integer order. priority
5.11.11 remove_from_job_chain
Syntax: order. remove_from_job_chain ()
Wenn der Auftrag gerade von einer Task ausgeführt wird, liefert die Eigenschaft Order.job_chain weiterhin die
Jobkette, aus der der Auftrag mit diesem Aufruf entfernt worden ist. Erst wenn die Ausführung beendet ist, liefert
Software- and Organisations-Service GmbH
März 2015
VBScript API
319
die Eigenschaft null (außer der Auftrag ist wieder in eine Jobkette eingetragen worden). Damit bleibt die
Eigenschaft job_chain während der Ausführung durch die Task stabil.
5.11.12 run_time
<run_time> zur periodischen Wiederholung des Auftrags
Syntax: Run_time order. run_time
Beispiel: in javascript
order.run_time.xml = "<run_time><at at='2006-05-23 11:43:00'/></run_time>";
Siehe <run_time> .
Das Kommando <modify_order at="now"> lässt einen wegen run_time wartenden Auftrag sofort anlaufen.
Rückgabe:
Run_time 5.11.13 setback
Stellt den Auftrag eine Zeitlang zurück
Syntax: order. setback ()
Der
Auftrag
wird
zurückgestellt und nach der mit <delay_order_after_setback> oder
Job.delay_order_after_setback eingestellten Frist wiederholt. Bei einer Wiederholung wird nur die Funktion
spooler_process() des Jobs wiederholt. Wenn in spooler_process() die Funktion order.setback()
aufgerufen wurde, bleibt der Rückgabewert von spooler_process() ohne Wirkung.
Der Auftrag zählt aufeinander folgende Aufrufe dieser Methode, was von <delay_order_after_setback>
berücksichtigt wird. Der Zähler wird auf 0 gestellt, wenn spooler_process() ohne diesen Aufruf zu Ende
ausgeführt worden ist. Beim Start des Schedulers sind alle Zähler 0.
Das Kommando <modify_order at="now"> lässt einen zugestellten Auftrag sofort anlaufen.
5.11.14 setback_count
Wie oft ist der Auftrag zurückgestellt worden?
Syntax: Integer order. setback_count
Siehe <delay_order_after_setback> .
Software- and Organisations-Service GmbH
März 2015
VBScript API
320
5.11.15 state
Zustand des Auftrags
Syntax: order. state = Variant
Syntax: Variant order. state
Wenn der Auftrag in einer Jobkette ist, muss der Zustand in der Jobkette vorhanden sein.
Wenn der Auftrag gerade von einem Job ausgeführt wird, wird der in der Jobkette festgelegte Folgezustand ( <
job_chain_node next_state=""> ) wirkungslos. Die Rückgabewerte von spooler_process() und
Monitor_impl.spooler_process_after() sind ohne Bedeutung. Mit Order.state kann also ein Job den
Folgezustand frei bestimmen.
Der Auftrag wird in die Auftragswarteschlange des Jobs eingereiht, der dem Zustand zugeordnet ist (s. <
job_chain_node> ). Die Ausführung durch diesen Job wird solange verzögert, bis der jetzt ausführende Job den
Auftrag ausgeführt hat.
5.11.16 state_text
Freier Text für den Zustand des Auftrags
Syntax: order. state_text = String
Syntax: String order. state_text
Der Text wird auf der HTML-Oberfläche gezeigt.
Für Nicht-API-Jobs füllt der JobScheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen.
5.11.17 string_next_start_time
Nächste Startzeit des Auftrags bei Verwendung von <run_time>
Syntax: String order. string_next_start_time
Rückgabe:
String "yyyy-mm-dd HH:MM:SS.MMM" oder "now" oder "never".
5.11.18 suspended
Ausgesetzer Auftrag
Syntax: order. suspended = Boolean
Syntax: Boolean order. suspended
Software- and Organisations-Service GmbH
März 2015
VBScript API
321
Ein ausgesetzter Auftrag wird nicht ausgeführt.
Wenn der Auftrag gerade von einer Task ausgeführt wird, wird der Schritt ( spooler_process() ) noch zu Ende
ausgeführt und der Auftrag nach den gewohnten Regeln in den Folgezustand versetzt, bevor er tatsächlich
ausgesetzt wird.
Damit kann ein Auftrag in einen Endzustand ausgesetzt werden, womit verhindet wird, dass er entfernt wird. Erst
wenn die Aussetzung eines solchen Auftrags aufgehoben wird, ( order.suspended=false), entfernt der
JobScheduler den Auftrag.
Ein ausgesetzter Auftrag im Endzustand kann mit Order.state in einen Zustand versetzt werden, der einem Job
zugeordnet ist. Der Auftrag bleibt dennoch ausgesetzt.
5.11.19 title
Der Titel ist ein Klartext, der den Auftrag bezeichnet
Syntax: order. title = String
Syntax: String order. title
5.11.20 web_service
Der Webdienst, der dem Auftrag zugeordnet ist
Syntax: Web_service order. web_service
Wenn der Auftrag keinem Webdienst zugeordnet ist, liefert der Aufruf den Fehler SCHEDULER-240 .
Siehe auch Order.web_service_or_null .
Rückgabe:
Web_service 5.11.21 web_service_operation
Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist
Syntax: Web_service_operation order. web_service_operation
Software- and Organisations-Service GmbH
März 2015
VBScript API
322
Beispiel: in java
public boolean spooler_process() throws Exception
{
Order
order
= spooler_task.order();
Web_service_operation web_service_operation = order.web_service_operation();
Web_service_request
request
= web_service_operation.request();
// Decode request data
String request_string = new String( request.binary_content(),
request.charset_name() );
process request_string ...;
String
response_string = "This is my response";
String
charset_name
= "UTF-8";
ByteArrayOutputStream byos
= new ByteArrayOutputStream();
// Encode response data
Writer writer = new OutputStreamWriter( byos, charset_name );
writer.write( response_string );
writer.close();
// Respond
Web_service_response response = web_service_operation.response();
response.set_content_type( "text/plain" );
response.set_charset_name( charset_name );
response.set_binary_content( byos.toByteArray() );
response.send();
// Web service operation has finished
return true;
}
Siehe <web_service> , Web_service_operation und Order.web_service_operation_or_null ,
Rückgabe:
Web_service_operation 5.11.22 web_service_operation_or_null
Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist, oder null
Syntax: Web_service_operation order. web_service_operation_or_null
Siehe Order.web_service_operation , Web_service_operation und <web_service> .
Rückgabe:
Web_service_operation Software- and Organisations-Service GmbH
März 2015
VBScript API
323
5.11.23 web_service_or_null
Der Web-Dienst, der dem Auftrag zugeordnet ist, oder null.
Syntax: Web_service order. web_service_or_null
Siehe auch Order.web_service .
Rückgabe:
Web_service 5.11.24 xml
Auftrag in XML: <order>...</order>
Syntax: String order. xml
Rückgabe:
String Siehe <order>
5.11.25 xml_payload
XML-Nutzlast, also Parameter des Auftrags.
Syntax: order. xml_payload = String xml
Syntax: String order. xml_payload
Zusätzlich zur Eigenschaft Order.params kann diese Eigenschaft ein XML-Dokument aufnehmen.
<xml_payload> enthält das Wurzelelement des XML-Dokuments (statt in #PCDATA-codierter Form).
5.12 Order_queue - Auftragswarteschlange eines auftragsgesteuerten Jobs
Ein auftragsgesteuerter Job ( <job order="yes"> hat eine Auftragswarteschlange, die die vom Job zu
verarbeitenden Aufträge aufnimmt. Die Aufträge sind nach Priorität und Zeitpunkt des Eintreffens geordnet.
Verarbeiten bedeutet, dass der JobScheduler die Methode spooler_process() einer Task des Jobs aufruft. Die
Methode kann über Task.order auf den Auftrag zugreifen. Endet spooler_process() ohne Fehler (ohne
Exception), entfernt der JobScheduler den Auftrag aus der Auftragswarteschlange. Ist der Auftrag in einer Jobkette,
dann rückt der Auftrag an die nächste Position der Jobkette.
Software- and Organisations-Service GmbH
März 2015
VBScript API
324
5.12.1 length
Anzahl der Aufträge in der Auftragswarteschlange
Syntax: Integer q. length
5.13 Process_class
Siehe auch <process_class name=""> .
Beispiel: in javascript
var process_classs = spooler.process_classs;
var process_class = process_classs.create_process_class();
process_class.name = "my_process_class";
process_classs.add_process_class( process_class );
5.13.1 max_processes
Anzahl der Prozesse
Syntax: process_class. max_processes = Integer
Syntax: Integer process_class. max_processes
Die Voreinstellung ist 10.
Siehe auch <process_class max_processes=""> .
5.13.2 name
Name der Prozessklasse
Syntax: process_class. name = String
Syntax: String process_class. name
Der Name kann nur einmal gesetzt und nicht geändert werden.
Siehe auch <process_class name=""> .
5.13.3 remote_scheduler
Adresse des fernen Schedulers, der die Prozesse ausführen soll
Syntax: process_class. remote_scheduler = String
Software- and Organisations-Service GmbH
März 2015
VBScript API
325
Syntax: String process_class. remote_scheduler
Beispiel: in javascript
spooler.process_classes.process_class( "my_process_class" ).remote_scheduler =
"host:4444";
Siehe auch <process_class remote_scheduler=""> .
Parameter:
Die Adresse wird als " host : portnumber" angegeben.
Beim Lesen wird (derzeit) zusätzlich die IP-Nummer
geliefert: " hostname / ipnumber : portnumber"
Rückgabe:
String Die Adresse wird als " host : portnumber" angegeben.
Beim Lesen wird (derzeit) zusätzlich die IP-Nummer geliefert: " hostname / ipnumber : portnumber"
5.13.4 remove
Entfernt die Prozessklasse
Syntax: process_class. remove ()
Beispiel: in javascript
spooler.process_classs.process_class( "my_process_class" ).remove();
Wenn noch Tasks in der Prozessklasse laufen, verzögert der JobScheduler das Löschen bis die letzte Task
geendet hat. Solange werden keine neuen Tasks gestartet.
Siehe auch <process_class.remove> .
5.14 Process_classes
5.14.1 add_process_class
Fügt dem JobScheduler eine Prozessklasse hinzu
Syntax: process_classs. add_process_class ( Process_class pc )
Software- and Organisations-Service GmbH
März 2015
VBScript API
326
5.14.2 create_process_class
Legt eine neue Prozesklasse ein
Syntax: Process_class process_classs. create_process_class ()
Liefert eine neues Process_class . Diese Prozessklasse kann mit Process_classes.add_process_class() dem
JobScheduler hinzugefügt werden.
Rückgabe:
Process_class 5.14.3 process_class
Liefert eine Prozessklasse
Syntax: Process_class process_classs. process_class ( String process_class_name )
Wenn die Prozessklasse nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Process_class 5.14.4 process_class_or_null
Liefert eine Prozessklasse
Syntax: Process_class process_classs. process_class_or_null ( String process_class_name )
Rückgabe:
Process_class null, wenn die Prozessklasse nicht bekannt ist.
5.15 Run_time - Laufzeit
Siehe <run_time> , Order , Schedule .
Beispiel: in javascript
var order = spooler_task.order;
// Repeat order daily at 15:00
order.run_time.xml = "<run_time><period single_start='15:00'/></run_time>";
Software- and Organisations-Service GmbH
März 2015
VBScript API
327
5.15.1 schedule
<schedule>
Syntax: Schedule run_time. schedule
Rückgabe:
Schedule 5.15.2 xml
<run_time>
Syntax: run_time. xml = String
Verwirft die bisherige Einstellung und setzt Run_time neu.
Parameter:
XML-Dokument als String
5.16 Schedule - Laufzeit
Siehe <schedule> , <run_time> , Spooler.schedule , Run_time .
Beispiel: in javascript
spooler.schedule( "my_schedule" ).xml = "<schedule><period single_start='15:00'/><
/schedule>";
5.16.1 xml
<schedule>
Syntax: schedule. xml = String
Syntax: String schedule. xml
Verwirft die bisherige Einstellung und setzt Schedule neu.
Parameter:
XML-Dokument als String
Rückgabe:
String XML-Dokument als String
Software- and Organisations-Service GmbH
März 2015
VBScript API
328
5.17 Spooler
Von dieser Klasse gibt es nur ein Objekt: spooler .
5.17.1 abort_immediately
Bricht den JobScheduler augenblicklich ab
Syntax: spooler. abort_immediately ()
Bricht den JobScheduler augenblicklich ab. Kein Job hat Gelegenheit, darauf zu reagieren. Der JobScheduler bricht zuvor alle gestarteten Prozesse ab. Das sind die Tasks und die Prozesse von
Task.create_subprocess() und Task.add_pid() . Siehe <modify_spooler cmd="abort_immediately"> und JobScheduler Dokumentation. 5.17.2 abort_immediately_and_restart
Bricht den JobScheduler augenblicklich ab und startet ihn neu. Syntax: spooler. abort_immediately_and_restart ()
Wie Spooler.abort_immediately() , nur dass der JobScheduler sich erneut startet. Dabei verwendet er die
Kommandozeilenparameter wieder. Siehe <modify_spooler cmd="abort_immediately_and_restart"> und JobScheduler Dokumentation. 5.17.3 add_job_chain
Syntax: spooler. add_job_chain ( Job_chain chain )
Bei Job_chain.orders_recoverable =true lädt der JobScheduler die Aufträge der Jobkette aus der Datenbank.
Siehe Spooler.create_job_chain() und <job_chain> .
Software- and Organisations-Service GmbH
März 2015
VBScript API
329
5.17.4 configuration_directory
Pfad des Konfigurationsverzeichnisses
Syntax: String spooler. configuration_directory
<config configuration_directory="…">
5.17.5 create_job_chain
Syntax: Job_chain spooler. create_job_chain ()
Liefert eine neue Job_chain . Diese Jobkette kann, nachdem sie mit Jobs gefüllt worden ist, mit
Spooler.add_job_chain() dem JobScheduler hinzugefügt werden
Siehe <job_chain> .
Rückgabe:
Job_chain 5.17.6 create_order
Syntax: Order spooler. create_order ()
Erzeugt einen neuen Auftrag. Dieser Auftrag kann mit Job_chain.add_order() einer Jobkette übergeben werden.
Rückgabe:
Order 5.17.7 create_variable_set
Syntax: Variable_set spooler. create_variable_set ()
Rückgabe:
Variable_set 5.17.8 create_xslt_stylesheet
Syntax: Xslt_stylesheet spooler. create_xslt_stylesheet ( String xml (optional) )
Parameter:
xml
XSLT-Stylesheet als XML-String
Software- and Organisations-Service GmbH
März 2015
VBScript API
330
Rückgabe:
Xslt_stylesheet 5.17.9 db_history_table_name
Name der Datenbanktabelle für die Historie
Syntax: String spooler. db_history_table_name
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) wird damit überschrieben.
5.17.10 db_name
Hostware-Pfad der Datenbank
Syntax: String spooler. db_name
Verbindungszeichenfolge der Datenbank für die Historienführung. Der JobScheduler unterstützt ODBC (Windows)
und JDBC für den Zugriff auf Datenbanken. Ohne Eintrag werden Dateien im .csv-Format erzeugt, siehe
factory.ini (Abschnitt [spooler], Eintrag history_file=…).
Unter Windows kann ein einfacher Dateiname angegebenen werden, der auf .mdb endet (z.B. scheduler.mdb).
Der JobScheduler verwendet dann eine Microsoft MS-Access Datenbank dieses Namens, die im
Protokollverzeichnis (s. Option -log-dir ) liegt. Der JobScheduler richtet die Datei ein, wenn sie fehlt.
Der JobScheduler richtet die Tabellen selbständig ein.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db=…) wird damit überschrieben.
5.17.11 db_order_history_table_name
Name der Datenbanktabelle für die Auftragshistorie
Syntax: String spooler. db_order_history_table_name
Die Einstellung factory.ini
überschrieben.
(Abschnitt [spooler], Eintrag db_order_history_table=…) wird damit
Software- and Organisations-Service GmbH
März 2015
VBScript API
331
5.17.12 db_orders_table_name
Name der Datenbanktabelle für die Aufträge
Syntax: String spooler. db_orders_table_name
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_orders_table=…) wird damit überschrieben.
5.17.13 db_tasks_table_name
Name der Datenbanktabelle für die Tasks
Syntax: String spooler. db_tasks_table_name
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_tasks_table=…) wird damit überschrieben.
5.17.14 db_variables_table_name
Name der Datenbanktabelle für interne Variablen des Schedulers
Syntax: String spooler. db_variables_table_name
Der JobScheduler hält in dieser Tabelle interne Zähler, zum Beispiel für die nächste freie Task-ID.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag db_variables_table=…) wird damit überschrieben.
5.17.15 directory
Das Arbeitsverzeichnis beim Start des Schedulers
Syntax: String spooler. directory
Ändert das Arbeitsverzeichnis.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Die Option -cd hat Vorrang.
Software- and Organisations-Service GmbH
März 2015
VBScript API
332
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Rückgabe:
String Der Pfad endet unter Unix mit "/" und unter Windows mit "\".
5.17.16 execute_xml
Führt ein XML-Kommando aus
Syntax: String spooler. execute_xml ( String xml )
Beispiel: in javascript
spooler_log.info( spooler.execute_xml( "<show_state/>" ) );
Fehler werden als XML-Antwort <ERROR> geliefert.
Parameter:
xml
Siehe JobScheduler Dokumentation.
Rückgabe:
String Liefert die XML-Antwort des ausgeführten Kommandos.
5.17.17 hostname
Name des Rechners, auf dem der JobScheduler läuft.
Syntax: String spooler. hostname
5.17.18 id
Wert der Kommandozeilenoption -id=
Syntax: String spooler. id
Der JobScheduler wählt nur die Elemente der XML-Konfiguration aus, deren Attribut spooler_id leer ist oder
denselben Wert wie in dieser Einstellung enthält.
Wenn die Scheduler-ID nicht angegeben ist, beachtet der JobScheduler das XML-Attribut spooler_id= nicht und
wählt alle Elemente der XML-Konfiguration aus.
Software- and Organisations-Service GmbH
März 2015
VBScript API
333
Siehe z.B. <config> .
Die Option -id hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag id=…) wird damit überschrieben.
5.17.19 include_path
Liefert die Kommandozeilenoption -include-path=.
Syntax: String spooler. include_path
Verzeichnis der Dateien, die mit <include> eingezogen werden.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen).
Die Option -include-path hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag include_path=…) wird damit überschrieben.
<config include_path="…">
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
5.17.20 ini_path
Wert der Option -ini= (Dateiname der factory.ini)
Syntax: String spooler. ini_path
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Siehe -ini , JobScheduler Dokumentation
5.17.21 is_service
Syntax: Boolean spooler. is_service
Rückgabe:
Software- and Organisations-Service GmbH
März 2015
VBScript API
334
Boolean true, genau dann wenn der JobScheduler als Dienst (in Windows) oder als Daemon (in Unix) läuft.
5.17.22 job
Liefert einen Job
Syntax: Job spooler. job ( String job_name )
Wenn der Jobname nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Job 5.17.23 job_chain
Liefert eine Jobkette
Syntax: Job_chain spooler. job_chain ( String name )
Wenn der Name der Jobkette nicht bekannt ist, wird eine Exception geliefert.
Rückgabe:
Job_chain 5.17.24 job_chain_exists
Syntax: Boolean spooler. job_chain_exists ( String name )
5.17.25 let_run_terminate_and_restart
Syntax: spooler. let_run_terminate_and_restart ()
Sobald alle Aufträge abgearbeitet sind, beendet der JobScheduler alle Tasks (durch Aufruf von Job_impl ) und
beendet dann sich selbst. Ein neuer JobScheduler mit unveränderten Kommandozeilenparametern wird gestartet.
Siehe <modify_spooler cmd="let_run_terminate_and_restart"> und JobScheduler Dokumentation.
5.17.26 locks
Liefert die Locks
Software- and Organisations-Service GmbH
März 2015
VBScript API
335
Syntax: Locks spooler. locks
Rückgabe:
Locks 5.17.27 log
Das Hauptprotokoll
Syntax: Log spooler. log
Normalerweise wird man spooler_log() verwenden.
Rückgabe:
Log 5.17.28 log_dir
Verzeichnis der Protokolle
Syntax: String spooler. log_dir
In dieses Verzeichnis schreibt der JobScheduler seine Protokolle.
log_dir= *stderr lässt den JobScheduler die Protokollausgabe nach stderr (auf den Bildschirm) schreiben.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
Umgebungsvariablen (z.B. $HOME) werden ersetzt (s. Ersetzung von Umgebungsvariablen).
Die Option -log-dir hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag log_dir=…) wird damit überschrieben.
Eine auf einem entfernten JobScheduler ausgeführte Task ( <process_class remote_scheduler=""> ) liefert den
Wert des entfernten Schedulers.
5.17.29 param
Kommandozeilenoption -param=
Syntax: String spooler. param
Software- and Organisations-Service GmbH
März 2015
VBScript API
336
Zur freien Verwendung. Der Parameter ist in den Skripten über spooler.param lesbar.
Die Option -param hat Vorrang.
Die Einstellung factory.ini (Abschnitt [spooler], Eintrag param=…) wird damit überschrieben.
5.17.30 process_classes
Liefert die Prozessklassen
Syntax: Process_classes spooler. process_classes
Rückgabe:
Process_classes 5.17.31 schedule
Liefert den benannten Schedule oder null
Syntax: Schedule spooler. schedule ( String path )
Rückgabe:
Schedule 5.17.32 supervisor_client
Liefert den Supervisor_client oder null
Syntax: Supervisor_client spooler. supervisor_client
Rückgabe:
Supervisor_client 5.17.33 tcp_port
HTTP- und TCP-Port für Kommandos an den JobScheduler
Syntax: Integer spooler. tcp_port
Der JobScheduler kann auf einem TCP-Port während des Betriebs Kommandos entgegennehmen. Hier kann eine
Portnummer eingestellt werden. Die Portnummer ist eine Zahl zwischen 2048 (betriebssystemabhängig) und
65535. Die Voreinstellung lautet 4444.
Software- and Organisations-Service GmbH
März 2015
VBScript API
337
Über denselben Port betreibt der JobScheduler einen HTTP/HTML-Server, so dass er über einen Browser
ansprechbar ist, z.B. http://localhost:4444.
Bei tcp_port=0 (voreingestellt) ist der JobScheduler nicht über TCP oder HTTP ansprechbar. Damit kann die
Steuerung des JobSchedulers per TCP-Kommando, z.B. über eine Web-Seite, unterbunden werden.
Die Option -tcp-port hat Vorrang.
<config tcp_port="…">
Rückgabe:
Integer 0, wenn kein Port geöffnet ist.
5.17.34 terminate
JobScheduler mit allen Tasks ordentlich beenden
Syntax: spooler. terminate ( Integer timeout (optional) , Boolean restart (optional) , boolean
all_schedulers (optional) , boolean continue_exclusive_operation (optional) )
Beendet alle Tasks (durch Aufruf von spooler_close() ) und schließlich sich selbst.
Wenn eine Frist angegeben ist, bricht der JobScheduler nach Ablauf alle noch laufenden Prozesse ab (das sind
Tasks, die zulange in einem Aufruf wie spooler_process() verharren).
Siehe <modify_spooler cmd="terminate"> und JobScheduler Dokumentation.
Parameter:
timeout
Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der
JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen
Parameter wartet der JobScheduler endlos auf die Tasks.
restart
restart=true lässt den JobScheduler nach Beendigung neu starten.
all_schedu all_schedulers=true beendet alle JobScheduler im Cluster (s. -exclusive ) Das kann eine
lers
Minute dauern.
continue_e continue_exclusive_operation=true lässt einen anderen Scheuler im Cluster (s. -exclusive )
xclusive_o den Betrieb fortsetzen.
peration
5.17.35 terminate_and_restart
JobScheduler mit allen Tasks ordentlich beenden und erneut starten
Syntax: spooler. terminate_and_restart ( Integer timeout (optional) )
Wie Spooler.terminate() , aber der JobScheduler startet sich neu.
Siehe <modify_spooler cmd="terminate_and_restart"> und JobScheduler Dokumentation.
Software- and Organisations-Service GmbH
März 2015
VBScript API
338
Parameter:
time Frist in Sekunden, die der JobScheduler auf die Beendigung der Tasks wartet und nach der der
out JobScheduler alle Prozesse abbricht, um sich schließlich selbst zu beenden. Ohne diesen Parameter
wartet der JobScheduler endlos auf die Tasks.
5.17.36 udp_port
UDP-Port für Kommandos an den JobScheduler
Syntax: Integer spooler. udp_port
Auch über UDP kann der JobScheduler Kommandos entgegennehmen. Hier wird die Portnummer angegeben. Ein
Kommando muss in eine Nachricht passen. Der JobScheduler schickt keine Antwort.
Bei udp_port=0 (voreingestellt) öffnet der JobScheduler keinen UDP-Port.
Die Option -udp-port hat Vorrang.
<config udp_port="…">
Rückgabe:
Integer 0, wenn kein Port geöffnet ist.
5.17.37 var
Zugriff auf Scheduler-weite Variablen
Syntax: spooler. var ( String name ) = Variant
Syntax: Variant spooler. var ( String name )
Die Variablen sind überall im JobScheduler benutzbar.
5.17.38 variables
Die Scheduler-weiten Variablen als Variable_set
Syntax: Variable_set spooler. variables
Die Variablen können in der Konfigurationsdatei eingestellt werden mit <config> .
Rückgabe:
Variable_set Software- and Organisations-Service GmbH
März 2015
VBScript API
339
5.18 Spooler_program - Für den Java-Debugger
Startet den JobScheduler über Java, so dass in Java geschriebene Jobs debuggt werden können (z.B. mit
Eclipse). Zu den Methoden siehe Javadoc.
Der JobScheduler wird als Windows-Applikation, nicht als Konsol-Programm gestartet. Ausgaben nach stderr
gehen verloren. -log-dir liefert keine Ausgabe.
Siehe JobScheduler Dokumentation.
Beispiel:
C:\>java -Djava.library.path=… -classpath …\sos.spooler.jar sos.spooler.Spooler_program
configuration.scheduler -log-dir=c:\tmp\scheduler
Mit -Djava.library.path=… geben Sie das Verzeichnis der scheduler.dll an, wenn es nicht bereits in %PATH%
aufgeführt ist.
5.19 Subprocess
Ein Subprozess ist irgendein Prozess, der mit Task.create_subprocess() oder Subprocess.start() gestartet
werden kann.
Beispiel: system() - Einfache Ausführung eines Kommandos, in javascript
exit_code = my_system( "backup /" );
function system( cmd, timeout )
{
var subprocess = spooler_task.create_subprocess();
try
{
if( timeout ) subprocess.timeout = timeout;
subprocess.start( cmd );
subprocess.wait_for_termination();
return subprocess.exit_code;
}
finally
{
subprocess.close();
}
}
Software- and Organisations-Service GmbH
März 2015
VBScript API
340
Beispiel: in javascript
var subprocess = spooler_task.create_subprocess();
subprocess.environment( "test1" ) = "one";
subprocess.environment( "test2" ) = "two";
subprocess.ignore_error = true;
subprocess.start( "sleep 20" );
spooler_log.info( "pid=" + subprocess.pid );
subprocess.timeout = 10;
spooler_log.info( "wait_for_termination ..." );
var ok = subprocess.wait_for_termination( 10 );
spooler_log.info( "wait_for_termination ok=" + ok );
if( subprocess.terminated )
{
spooler_log.info( "exit code=" + subprocess.exit_code );
spooler_log.info( "termination signal=" + subprocess.termination_signal );
}
5.19.1 close
Gibt die System-Ressourcen frei
Syntax: subprocess. close ()
Sollte in Sprachen mit Garbage Collector (Java, JavaScript) gerufen werden, außer die Task beendet sich sofort.
Der Subprocess ist danach unbrauchbar.
5.19.2 env
Umgebungsvariablen als Variable_set
Syntax: Variable_set subprocess. env
Beispiel: in javascript
var subprocess = spooler_task.create_subprocess();
subprocess.start( subprocess.env.substitute( "${MY_HOME}/my_program" ) );
subprocess.wait_for_termination();
Liefert ein Variable_set der Umgebungsvariablen.
Anfänglich ist die Umgebung mit den Umgebungsvariablen des startenden Prozesses gefüllt. Umgebungsvariablen
können entfernt werden, indem sie auf "" gesetzt werden. Der Aufruf Subprocess.start() übergibt die
Umgebungsvariablen dem Subprozess.
Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden.
Software- and Organisations-Service GmbH
März 2015
VBScript API
341
Nach dem Start des Subprozesses haben Änderungen an den Umgebungsvariablen keine Wirkung. Auch können
vom Prozess geänderte Umgebungsvariablen nicht gelesen werden.
Das Objekt lässt sich nicht anderen Objekten übergeben (denn es befindet sich im Prozess der Task, während die
meisten anderen Objekte sich im Prozess des Schedulers befinden).
Rückgabe:
Variable_set 5.19.3 environment
Umgebungsvariablen
Syntax: subprocess. environment ( String name ) = String value
Beispiel: in javascript
// The following two statements have the same effect
subprocess.environment( "my_variable" ) = "my_value"
subprocess.env.value( "my_variable" ) = "my_value"
Die hier gesetzten Variablen werden zusammen mit den übrigen Umgebungsvariablen des laufenden Prozesses
dem neuen Subprozess übergeben.
Unter Unix werden groß und klein geschriebene Umgebungsvariablen unterschieden.
Siehe auch Subprocess.env .
5.19.4 exit_code
Syntax: Integer subprocess. exit_code
Erst aufrufen, wenn Subprocess.terminated == true.
5.19.5 ignore_error
Verhindert, dass bei exit_code != 0 der Job stoppt
Syntax: subprocess. ignore_error = Boolean
Syntax: Boolean subprocess. ignore_error
Verhindert, dass der Job stoppt, wenn der Subprozess bei Task-Ende mit Subprocess.exit_code != 0 geendet
hat.
Wenn das Ende des Subprocesses nicht mit Subprocess.wait_for_termination abgewartet worden ist, tut das
der JobScheduler bei Task-Ende. Wenn dann der Subprocess mit Subprocess.exit_code != 0 endet, stoppt der
Job mit Fehler.
Software- and Organisations-Service GmbH
März 2015
VBScript API
342
Mit ignore_error kann das verhindert werden.
5.19.6 ignore_signal
Verhindert, dass bei einem Abbruch des Prozesses mit Signal der Job stoppt
Syntax: subprocess. ignore_signal = Integer
Syntax: Integer subprocess. ignore_signal
Wirkt nicht unter Windows, weil es hier keine Signale gibt.
5.19.7 kill
Bricht den Subprozess ab
Syntax: subprocess. kill ( Integer signal (optional) )
Parameter:
signal Nur unter Unix: Das Signal für kill(). 0 wird als 9 (SIGKILL, sofortiges Ende) interpretiert.
5.19.8 own_process_group
Subprozess als Prozessgruppe
Syntax: subprocess. own_process_group = Boolean
Syntax: Boolean subprocess. own_process_group
Nur unter Unix.
Der Default kann mit factory.ini (Abschnitt [spooler], Eintrag subprocess.own_process_group=…) eingestellt
werden.
own_process_group lässt den Subprozess in einer eigenen Prozessgruppe starten, indem der Systemaufruf
setpgid(0,0) ausgeführt wird. Wenn der JobScheduler den Subprozess abbricht, bricht er die ganze
Prozessgruppe ab.
5.19.9 pid
Prozesskennung
Syntax: Integer subprocess. pid
Software- and Organisations-Service GmbH
März 2015
VBScript API
343
5.19.10 priority
Prozess-Priorität
Syntax: subprocess. priority = Integer
Syntax: Integer subprocess. priority
Beispiel: in javascript
subprocess.priority = +5;
// Unix: Priorität etwas verschlechtern
Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht
werden.
Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13
"high" (andere Werte werden abgerundet). Siehe auch Task.priority_class .
Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Subprocess.priority_class . Siehe auch
Task.priority .
5.19.11 priority_class
Prioritätsklasse
Syntax: subprocess. priority_class = String
Syntax: String subprocess. priority_class
Beispiel: in javascript
subprocess.priority_class = "below_normal";
Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix
entsprechen:
Prioritätsklasse
Windows
Unix
"idle"
4
16
"below_normal"
6
6
"normal"
8
0
"above_normal"
10
-6
"high"
13
-16
Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelndem Recht, führt das nicht zu einem Fehler.
Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Software- and Organisations-Service GmbH
März 2015
VBScript API
344
Siehe auch Subprocess.priority , Task.priority_class und Microsoft® Windows® Scheduling Priorities.
5.19.12 start
Startet den Prozess
Syntax: subprocess. start ( String|String[] command_line )
Windows erkennt sofort, wenn das Programm nicht ausführbar ist. Die Methode liefert dann einen Fehler.
Unter Unix wird stattdessen Subprocess.exit_code auf 99 gesetzt. Vorher muss das Ende des Prozesses
abgewartet werden mit Subprocess.wait_for_termination() .
Shell-Operatoren wie |, && und > werden nicht interpretiert. Verwenden Sie dazu die Programme /bin/sh bzw.
c:\windows\system32\cmd.exe (das Verzeichnis ist installations-abhängig).
Der Prozess wird unter Unix mit execvp() und unter Windows mit CreateProcess() gestartet.
5.19.13 terminated
Syntax: Boolean subprocess. terminated
Prüft, ob der Prozess geendet hat. Wenn er geendet hat, kann anschließend Subprocess.exit_code und
Subprocess.termination_signal gerufen werden.
5.19.14 termination_signal
Signal, mit dem sich der Prozess beendet hat (nur Unix)
Syntax: Integer subprocess. termination_signal
Erst aufrufen, wenn Subprocess.terminated == true.
5.19.15 timeout
Frist für den Subprozess
Syntax: subprocess. timeout = Double seconds
Nach Ablauf der Zeit bricht der JobScheduler den Subprozess ab (Unix: mit SIGKILL).
Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht.
Software- and Organisations-Service GmbH
März 2015
VBScript API
345
5.19.16 wait_for_termination
Syntax: subprocess. wait_for_termination ()
Syntax: Boolean subprocess. wait_for_termination ( Double seconds )
Parameter:
seconds
Wartezeit. Fehlt der Parameter, dann wartet der Aufruf bis der Subprozess geendet hat.
Rückgabe:
Boolean true, wenn der Subprozess geendet hat.
false, wenn der Subprozess nach Ablauf der Wartezeit noch läuft.
5.20 Supervisor_client
Spooler.supervisor_client liefert dieses Objekt.
Beispiel: in javascript
var supervisor_hostname = spooler.supervisor_client.hostname;
5.20.1 hostname
Name oder IP-Nummer des Rechners, auf dem der Supervisor läuft
Syntax: String supervisor_client. hostname
Siehe auch <config supervisor=""> .
5.20.2 tcp_port
TCP-Port des Supervisors
Syntax: Integer supervisor_client. tcp_port
Siehe auch <config supervisor=""> .
5.21 Task
Eine Task ist eine laufende Instanz eines Jobs.
Software- and Organisations-Service GmbH
März 2015
VBScript API
346
Eine Task kann wartend in der Task-Warteschlange des Jobs sein oder laufen.
5.21.1 add_pid
Macht dem JobScheduler einen abhängigen, befristeten Prozess bekannt
Syntax: spooler_task. add_pid ( Integer pid, String|Double|Integer timeout (optional) )
Mit dem Aufruf kann die Laufzeit von abhängigen Prozessen eingeschränkt werden. Bei Task-Ende bricht der
JobScheduler noch laufende abhängigen Prozesse in jedem Fall ab.
Wenn der JobScheduler einen Prozess abbricht, gibt es einen Eintrag ins Protokoll. Die Task erfährt davon nichts.
Der Aufruf <kill_task> bricht alle mit add_pid() bekannt gemachten Prozesse ab.
Unter Unix kann eine Prozessgruppen-Id als negative pid übergeben werden. Ein kill bricht dann die ganze
Prozessgruppe ab.
Bei Ausführung auf einem entfernten Rechner mit <process_class remote_scheduler=""> wirkt die Frist nicht.
5.21.2 call_me_again_when_locks_available
Wiederholt spooler_open() oder spooler_process(), sobald Sperren verfügbar
Syntax: spooler_task. call_me_again_when_locks_available ()
Ve r a n l a s s t
den
S c h e d u l e r,
nach
erfolglosem
Task.try_hold_lock()
oder
Task.try_hold_lock_non_exclusive() den Aufruf von spooler_open() bzw. spooler_process() zu
wiederholen, sobald die angeforderten Sperren verfügbar sind. Der JobScheduler wiederholt dann den Aufruf mit
gehaltenen Sperren, so dass die erstgenannten Aufrufe Erfolg haben werden.
Nach dem Aufruf hat der Rückgabewert von spooler_open() bzw. spooler_process() (true/false) keine
Wirkung. Einen Auftrag Task.order belässt der JobScheduler in seinem Zustand.
5.21.3 changed_directories
Die Verzeichnisse, deren Änderung den Start der Task veranlasst haben
Syntax: String spooler_task. changed_directories
Siehe Job.start_when_directory_changed() , Task.trigger_files .
Rückgabe:
String Die Verzeichnisnamen sind durch Semikolon getrennt.
"", wenn kein Verzeichnis geändert ist.
Software- and Organisations-Service GmbH
März 2015
VBScript API
347
5.21.4 create_subprocess
Start eines überwachten Subprozesses
Syntax: Subprocess spooler_task. create_subprocess ( String|String[] filename_and_arguments
(optional) )
Rückgabe:
Subprocess 5.21.5 delay_spooler_process
Verzögert den nächsten Aufruf von spooler_process()
Syntax: spooler_task. delay_spooler_process = String|Double|Integer seconds_or_hhmm_ss
Wirkt nur in spooler_process() .
5.21.6 end
Beendet die Task
Syntax: spooler_task. end ()
Der JobScheduler ruft nicht mehr spooler_process() auf. Statt dessen ruft er spooler_close() auf.
Der Aufruf kann verwendet werden, um beim Task-Ende den Versand des Task-Protokolls zu veranlassen, siehe
Log .
5.21.7 error
Setzt einen Fehler und stoppt den Job
Syntax: spooler_task. error = String
Syntax: Error spooler_task. error
Der lesende Aufruf liefert den letzten Fehler dieser Task. Wenn kein Fehler vorliegt, wird ein Error -Objekt
zurückgeliefert, dessen Eigenschaft is_error false liefert.
Sie können eine Fehlermeldung auch mit Log.error() ins Task-Protokoll schreiben.
Rückgabe:
String Error Software- and Organisations-Service GmbH
März 2015
VBScript API
348
5.21.8 exit_code
Exit-Code
Syntax: spooler_task. exit_code = Integer
Syntax: Integer spooler_task. exit_code
Beispiel: in javascript
spooler_log.error( "This call of spooler_log.error() sets the exit code to 1" );
spooler_task.exit_code = 0;
// Reset the exit code
Der Exit-Code ist anfänglich 0 und wird bei einem Fehler auf 1 gesetzt. Das ist, wenn der JobScheduler eine Zeile
mit [ERROR] ins Task-Protokoll schreibt:
•
•
•
Aufruf von Log.error()
Setzen von Task.error
Das Skript liefert eine Exception.
Der Job kann anschließend, z.B. in spooler_on_error() , den Task.exit_code neu setzen.
Der Exit-Code des (Betriebssystem-)Prozesses, der die Task ausführt, ist ohne Belang und wird nicht
übernommen, im Gegensatz zu Jobs mit <process> oder <script language="shell"> .
Der Exit-Code entscheidet über die anschließend auszuführenden Kommandos. Siehe hierzu <job> <commands
on_exit_code=""> .
Der Exit-Code hat keinen Einfluss darauf, ob der Job gestoppt wird (eine Fehlermeldung der Task lässt den Job
stoppen).
5.21.9 history_field
Ein Feld in der Task-Historie
Syntax: spooler_task. history_field ( String name ) = Variant value
Beispiel: in javascript
spooler_task.history_field( "extra" ) = 4711;
Die Datenbanktabelle (s. factory.ini (Abschnitt [spooler], Eintrag db_history_table=…) muss eine Spalte mit
dem Namen haben und diese Spalte muss in der Datei factory.ini (Abschnitt [job], Eintrag
history_columns=…) deklariert sein.
5.21.10 id
Die Task-Kennung
Syntax: Integer spooler_task. id
Software- and Organisations-Service GmbH
März 2015
VBScript API
349
Jede Task hat eine Scheduler-weit eindeutige numerische Kennung.
5.21.11 job
Der Job, zu dem die Task gehört
Syntax: Job spooler_task. job
Rückgabe:
Job 5.21.12 order
Der zu verarbeitende Auftrag
Syntax: Order spooler_task. order
Beispiel: in javascript
var order = spooler_task.order;
spooler_log.info( "order.id=" + order.id + ", order.title=" + order.title );
Rückgabe:
Order null, wenn kein Auftrag vorliegt.
5.21.13 params
Die Parameter der Task
Syntax: Variable_set spooler_task. params
Beispiel: in javascript
var value = spooler_task.params.value( "parameter3" );
Beispiel: in javascript
var parameters = spooler_task.params;
if( parameters.count > 0 ) spooler_log.info( "Parameters given" );
var value1 = parameters.value( "parameter1" );
var value2 = parameters.value( "parameter2" );
Eine Task kann Parameter haben. Die Parameter können gesetzt werden mit
Software- and Organisations-Service GmbH
März 2015
VBScript API
•
•
•
350
In der Konfigurationsdatei im Element <job> mit <params> ,
Job.start() und
<start_job> .
Rückgabe:
Variable_set != null
5.21.14 priority
Priorität der laufenden Task
Syntax: spooler_task. priority = Integer
Syntax: Integer spooler_task. priority
Beispiel: in javascript
spooler_task.priority = +5;
// Unix: Priorität etwas verschlechtern
Unix: Die höchste Priorität ist -20, die niedrigste 20. Üblicherweise kann die Priorität nur gesenkt, nicht erhöht
werden.
Windows kennt die Prioritätsklassen 4 "idle", 6 "below_normal", 8 "normal", 10 "above_normal" und 13
"high" (andere Werte werden abgerundet). Siehe auch Task.priority_class .
Wenn die Priorität nicht gesetzt werden kann, führt das nicht zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Die Priorität kann betriebsystem-unabhängig eingestellt werden mit Task.priority_class .
5.21.15 priority_class
Prioritätsklasse der laufenden Task
Syntax: spooler_task. priority_class = String
Syntax: String spooler_task. priority_class
Beispiel: in javascript
spooler_task.priority_class = "below_normal";
Gesetzt werden können folgende Prioritätsklassen, die verschiedenen Prioritäten unter Windows und Unix
entsprechen:
Prioritätsklasse
Windows
Unix
"idle"
4
16
Software- and Organisations-Service GmbH
März 2015
VBScript API
351
"below_normal"
6
6
"normal"
8
0
"above_normal"
10
-6
"high"
13
-16
Wenn die Priorität nicht gesetzt werden kann, z.B. wegen mangelnden Rechts, führt das nicht zu einem Fehler.
Dagegen führt das Setzen einer nicht hier aufgeführten Prioritätsklasse zu einem Fehler.
Ein Prozess mit hoher Priorität kann Ihren Rechner blockieren.
Siehe auch Task.priority , Subprocess.priority_class und Microsoft® Windows® Scheduling Priorities.
5.21.16 remove_pid
Gegenstück zu add_pid()
Syntax: spooler_task. remove_pid ( Integer pid )
Es gibt keinen Fehler, wenn die Pid nicht mit Task hinzugefügt worden ist.
Siehe Task.add_pid() .
5.21.17 repeat
Startet erneut eine Task nach der eingestellten Zeit
Syntax: spooler_task. repeat = Double
(Diese Methode gehört eigentlich in die Klasse Job . Sie hat nichts mit der gerade laufenden Task zu tun.)
Wenn nach Ablauf der angegebenen Zeit keine Task des Jobs läuft, startet der JobScheduler eine Task. Dabei wird
die <run_time> berücksichtigt. <period repeat=""> der aktuellen Periode wird vorläufig außer Kraft gesetzt.
Job.delay_after_error hat Vorrang, wenn die Task einen Fehler liefert.
5.21.18 stderr_path
Der Pfadname der stderr-Ausgabe der Task
Syntax: String spooler_task. stderr_path
Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Rückgabe:
String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
Software- and Organisations-Service GmbH
März 2015
VBScript API
352
5.21.19 stderr_text
Der bisher vom Prozess der Task nach stderr geschriebene Text
Syntax: String spooler_task. stderr_text
Der Text in stderr wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Rückgabe:
String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
5.21.20 stdout_path
Der Pfadname der stdout-Ausgabe der Task
Syntax: String spooler_task. stdout_path
Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Rückgabe:
String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
5.21.21 stdout_text
Der bisher vom Prozess der Task nach stdout geschriebene Text
Syntax: String spooler_task. stdout_text
Der Text in stdout wird derzeit im Zeichensatz ISO-8859-1 interpretiert.
Rückgabe:
String "", wenn die Task nicht in einem separaten Prozess <process_classes> läuft.
5.21.22 trigger_files
Pfade der Dateien in mit regex überwachten Verzeichnissen
Syntax: String spooler_task. trigger_files
Software- and Organisations-Service GmbH
März 2015
VBScript API
353
Liefert die Pfade der Dateien aus überwachten Verzeichnissen ( Job.start_when_directory_changed() oder <
start_when_directory_changed> ) zum Zeitpunkt des Starts der Task. Nur die Verzeichnisse, für die ein
Regulärer Ausdruck (regex) angegeben ist, werden berücksichtigt.
Die Pfade werden aus dem Verzeichnispfad, wie er in Job.start_when_directory_changed() oder <
start_when_directory_changed> angegeben ist und dem Dateinamen zusammengesetzt.
Nicht-API-Jobs ( <process> und <script language="shell"> ) steht der Inhalt von Task.trigger_files in der
Umgebungsvariablen SCHEDULER_TASK_TRIGGER_FILES zur Verfügung.
Siehe Job.start_when_directory_changed() , Task.changed_directories() .
Rückgabe:
String Die Dateipfade durch Semikolon getrennt.
"" sonst
5.21.23 try_hold_lock
Versucht, eine Sperre zu halten
Syntax: boolean spooler_task. try_hold_lock ( String lock_path )
Beispiel: in javascript
function spooler_process()
{
var result = false;
if( spooler_task.try_hold_lock( "Georgien" ) &&
spooler_task.try_hold_lock_non_exlusive( "Venezuela" ) )
{
// Task is holding the two locks. Insert processing code here.
result = ...
}
else
{
spooler_task.call_me_again_when_locks_available();
}
return result;
}
try_lock_hold() versucht, die angegebene Sperre ( Lock ) zu halten, und kann aufgerufen werden
•
•
in spooler_open() : die Sperre wird für die Task gehalten und erst nach Beendigung freigegeben,
in spooler_process() : die Sperre wird für nur für diesen Jobschritt gehalten und nach dessen Beendigung
freigegeben, also beim Verlassen von spooler_process().
Wenn die Sperre nicht verfügbar ist, ein Aufruf also false liefert, kann entweder
•
mit Task.call_me_again_when_locks_available() der JobScheduler veranlasst werden, den Aufruf
spooler_open() bzw. spooler_process() zu wiederholen, sobald die Sperren verfügbar sind, oder
Software- and Organisations-Service GmbH
März 2015
VBScript API
354
•
spooler_open() bzw. spooler_process() ohne vorgenannten Aufruf mit false beendet werden, mit der
•
üblichen Wirkung,
aber nicht mit true beendet werden, das wird als Fehler angesehen und führt zur Warnung SCHEDULER-469 .
Siehe auch <lock.use> .
Rückgabe:
boolean true, wenn die Task die Sperre hält.
5.21.24 try_hold_lock_non_exclusive
Versucht, eine Sperre nicht-exklusiv zu halten
Syntax: boolean spooler_task. try_hold_lock_non_exclusive ( String lock_path )
Es gelten dieselben Bedingungen wie für Task.try_hold_lock() .
Siehe auch <lock.use exclusive="no"> .
Rückgabe:
boolean true, wenn die Task die Sperre hält.
5.21.25 web_service
Der Webdienst, der der Task zugeordnet ist
Syntax: Web_service spooler_task. web_service
Wenn die Task keinem Webdienst zugeordnet ist, liefert der Aufruf eine Exception.
Siehe auch Task.web_service_or_null .
Rückgabe:
Web_service 5.21.26 web_service_or_null
Der Webdienst, der der Task zugeordnet ist, oder null.
Syntax: Web_service spooler_task. web_service_or_null
Siehe auch Task.web_service .
Rückgabe:
Web_service Software- and Organisations-Service GmbH
März 2015
VBScript API
355
5.22 Variable_set - Variablenmenge zur Übergabe von Parametern
Variablenmengen werden gebraucht für die Scheduler-weiten Variablen und Task-Parameter. Eine neue
Variablenmenge wird mit Spooler.create_variable_set() angelegt.
Die Großschreibung der Variablennamen ist nicht relevant.
In COM (JavaScript, VBScript, Perl) ist ein Variablenwert ein Variant. Weil die Variablen in der Regel in die
Scheduler-Datenbank geschrieben werden, sollten nur nach String konvertierbare Variant-Werte verwendet werden
(d.h. es sollten keine Objekte verwendet werden).
In Java ist ein Variablenwert ein String. Wenn die Variable mit COM als Variant gesetzt worden ist, wird beim Lesen
der nach String konvertierte Wert zurückgegeben. Null und Empty werden als null zurückgeliefert. Wenn ein
Variant-Wert nicht konvertierbar ist, wird eine Exception ausgelöst.
Siehe auch <params> und <sos.spooler.variable_set> .
5.22.1 count
Anzahl der Variablen
Syntax: Integer variable_set. count
5.22.2 merge
Mischt eine andere Variablenmenge ein
Syntax: variable_set. merge ( Variable_set vs )
Gleichnamige Variablen werden überschrieben.
5.22.3 names
Alle Variablennamen durch Semikolon getrennt
Syntax: String variable_set. names
Software- and Organisations-Service GmbH
März 2015
VBScript API
356
Beispiel: in javascript
var variable_set = spooler.create_variable_set();
spooler_log.info( '"' + variable_set.names + '"' );
// ==> ""
variable_set( "variable_1" ) = "edno";
variable_set( "variable_2" ) = "dwa";
spooler_log.info( '"' + variable_set.names + '"' );
"variable_1;variable_2"
// ==>
var names = variable_set.names.split( ";" );
for( var i in names ) spooler_log.info( names[i] + "=" + variable_set( names[i] ) );
Rückgabe:
String Die Namen aller Variablen durch Semikolon getrennt.
5.22.4 set_var
Setzt eine Variable
Syntax: variable_set. set_var ( String name, Variant value )
5.22.5 substitute
Ersetzt $-Variablen in einem String
Syntax: String variable_set. substitute ( String sustitution_string )
Beispiel: in javascript
subprocess.start( subprocess.env.substitute( "${MY_HOME}/my_program" ) );
Im Beispiel wird Subprocess.env verwendet.
Referenzen der Form $ name und ${ name } im String werden durch Variablenwerte ersetzt, siehe auch .
Rückgabe:
String Die Zeichenkette mit den ersetzten $-Variablen
5.22.6 value
Eine Variable
Software- and Organisations-Service GmbH
März 2015
VBScript API
357
Syntax: variable_set. value ( String name ) = Variant value
Syntax: Variant variable_set. value ( String name )
Parameter:
name
value
empty, wenn die Variable nicht vorhanden ist.
Rückgabe:
Variant empty, wenn die Variable nicht vorhanden ist.
5.22.7 var
Eine Variable
Syntax: variable_set. var ( String name ) = Variant value
Syntax: Variant variable_set. var ( String name )
Verwenden Sie Variable_set.value , das ist in allen Sprachen verfügbar.
Parameter:
name
value
empty, wenn die Variable nicht vorhanden ist.
Rückgabe:
Variant empty, wenn die Variable nicht vorhanden ist.
5.22.8 xml
Variable_set als XML-Dokument
Syntax: variable_set. xml = String
Syntax: String variable_set. xml
Software- and Organisations-Service GmbH
März 2015
VBScript API
358
Beispiel: in javascript
var variable_set = spooler.create_variable_set();
spooler_log.info( variable_set.xml );
// Liefert <?xml version='1.0'?><
sos.spooler.variable_set/>
variable_set.xml= "<?xml version='1.0'?>" +
"<params>" +
"<param name='nachname' value='Meier'/>" +
"<param name='vorname' value='Hans'/>" +
"</params>";
spooler_log.info( variable_set.xml );
spooler_log.info( "nachname=" + variable_set.value( "nachname" ) );
spooler_log.info( "vorname =" + variable_set.value( "vorname" ) );
Siehe <sos.spooler.variable_set> , <params> .
Parameter:
XML-Dokument als String. Liefert <
sos.spooler.variable_set> . Beim Setzen wird der
Name des Wurzelelements nicht beachtet, <params>
oder <sos.spooler.variable_set> kann übergeben
werden.
Rückgabe:
String XML-Dokument als String. Liefert <sos.spooler.variable_set> . Beim Setzen wird der Name des
Wurzelelements nicht beachtet, <params> oder <sos.spooler.variable_set> kann übergeben werden.
5.23 Web_service
Siehe auch <web_service>
5.23.1 forward_xslt_stylesheet_path
Pfad des XSLT-Stylesheets fürs Forwarding
Syntax: String web_service. forward_xslt_stylesheet_path
Siehe auch <web_service forward_xslt_stylesheet="">
5.23.2 name
Name des Web-Dienstes im Scheduler
Syntax: String web_service. name
Software- and Organisations-Service GmbH
März 2015
VBScript API
359
Siehe auch <web_service name="">
5.23.3 params
Parameter zur freien Verwendung
Syntax: Variable_set web_service. params
Die Parameter des Web-Services können mit <web_service> eingestellt werden.
Rückgabe:
Variable_set 5.24 Web_service_operation
Siehe auch <web_service>
5.24.1 peer_hostname
Hostname der Gegenstelle
Syntax: String web_service_operation. peer_hostname
Rückgabe:
String "", wenn der Name nicht ermittelt werden kann.
5.24.2 peer_ip
IP-Adresse der Gegenstelle
Syntax: String web_service_operation. peer_ip
5.24.3 request
Anforderung
Syntax: Web_service_request web_service_operation. request
Software- and Organisations-Service GmbH
März 2015
VBScript API
360
Rückgabe:
Web_service_request 5.24.4 response
Antwort
Syntax: Web_service_response web_service_operation. response
Rückgabe:
Web_service_response 5.24.5 web_service
Syntax: Web_service web_service_operation. web_service
Rückgabe:
Web_service 5.25 Web_service_request
Siehe Web_service_operation .
5.25.1 binary_content
Nutzdaten als Byte-Array (nur Java)
Syntax: web_service_request. binary_content
Die Eigenschaft steht nur unter Java zur Verfügung.
Wie der binäre Inhalt zu interpretieren ist, sollte der Client in im Header-Feld Content-Type mitgeteilt haben (siehe
HTTP/1.1 14.17 Content-Type und Web_service_request.charset_name ).
5.25.2 charset_name
Zeichencodierung
Syntax: String web_service_request. charset_name
Software- and Organisations-Service GmbH
März 2015
VBScript API
361
Beispiel: in javascript
var request = spooler_task.order.web_service_operation.request;
spooler_log.info( request.header( "Content-Type" ) );
spooler_log.info( request.content_type );
spooler_log.info( request.charset_name );
// ==> text/xml; charset=utf-8
// ==> text/xml
// ==> utf-8
Liefert den Parameter charset= aus dem Kopfeintrag Content-Type:.
5.25.3 content_type
Content-Type (ohne Parameter)
Syntax: String web_service_request. content_type
Liefert den Kopfeintrag Content-Type: ohne Parameter, z.B. "text/plain".
5.25.4 header
Eintrag im Kopf
Syntax: String web_service_request. header ( String name )
Beispiel: in javascript
spooler_log.info( "Content-Type: " +
spooler_task.order.web_service_operation.request.header( "Content-Type" ) );
Parameter:
name
Die Großschreibung spielt keine Rolle.
Rückgabe:
String Für einen unbekannten Eintrag wird "" geliefert
5.25.5 string_content
Nutzdaten als Text
Syntax: String web_service_request. string_content
Die Zeichen-Codierung wird dem Parameter charset aus headers( "Content-Type" ) entnommen (siehe
HTTP/1.1 14.17 Content-Type). Fehlt der Parameter, wird ISO-8859-1 angenommen.
Software- and Organisations-Service GmbH
März 2015
VBScript API
362
Folgende Zeichen-Codierungen (Charset) werden erkannt:
•
•
ISO-8859-1
UTF-8 (nur Windows und beschränkt auf den Zeichenvorrat von ISO-8859-1)
Siehe auch Web_service_request.binary_content .
5.25.6 url
Uniform Resource Locator
Syntax: String web_service_request. url
url = "http://" + header( "Host" ) + url_pfad
5.26 Web_service_response
Die Eigenschaft binary_content steht nur unter Java zur Verfügung.
Siehe auch <web_service>
5.26.1 charset_name
Zeichencodierung
Syntax: String web_service_response. charset_name
Beispiel: in javascript
var request = spooler_task.order.web_service_operation.request;
spooler_log.info( request.header( "Content-Type" ) );
spooler_log.info( request.content_type );
spooler_log.info( request.charset_name );
// ==> text/xml; charset=utf-8
// ==> text/xml
// ==> utf-8
Zugriff auf den Parameter charset= aus dem Kopfeintrag Content-Type:.
5.26.2 content_type
Content-Type (ohne Parameter)
Syntax: String web_service_response. content_type
Zugriff auf den Kopfeintrag Content-Type: ohne dazugehörige Parameter (z.B. charset=).
Software- and Organisations-Service GmbH
März 2015
VBScript API
363
5.26.3 header
Eintrag im Kopf
Syntax: web_service_response. header ( String name ) = String value
Syntax: String web_service_response. header ( String name )
Beispiel: in javascript
spooler_log.info( "Content-Type: " + spooler_task.order.web_service_operation.header(
"Content-Type" ) );
Parameter:
value
Für einen umbekannten Eintrag wird "" verwendet
name
Die Großschreibung spielt keine Rolle.
Rückgabe:
String Für einen umbekannten Eintrag wird "" verwendet
5.26.4 send
Antwort senden
Syntax: web_service_response. send ()
5.26.5 status_code
HTTP-Status-Code
Syntax: web_service_response. status_code = Integer
Voreingestellt ist 200 (OK).
5.26.6 string_content
Nutzdaten als Text
Syntax: web_service_response. string_content = String text
Software- and Organisations-Service GmbH
März 2015
VBScript API
364
Beispiel: in javascript
var response = spooler_task.order.web_service_operation.response;
response.content_type = "text/plain";
response.charset_name = "iso-8859-1";
response.string_content = "This is the answer";
response.send();
Zuvor muss header( "Content-Type" ) mit dem Parameter charset gesetzt sein, zum Beispiel
header( "Content-Type" ) = "text/plain; charset=iso-8859-1";
Der Text wird nach dem Parameter charset codiert. Fehlt der Parameter, wird ISO-8859-1 angenommen.
Zu den hier zulässigen Zeichen-Codierungen (Charset) siehe Web_service_request.string_content
Siehe Web_service_response.charset_name .
5.27 Xslt_stylesheet
Mit einem XSLT-Stylesheet wird die Konvertierung eines XML-Dokuments in ein anderes beschrieben.
Der XSLT-Prozessor ist mit libxslt implementiert.
5.27.1 apply_xml
Wendet das Stylesheet auf ein XML-Dokument an.
Syntax: String x. apply_xml ( String xml )
5.27.2 close
Gibt die Ressourcen des Stylesheets frei
Syntax: x. close ()
5.27.3 load_file
Lädt das Stylesheet aus einer XML-Datei
Syntax: x. load_file ( String path )
Software- and Organisations-Service GmbH
März 2015
VBScript API
365
5.27.4 load_xml
Lädt das Stylesheet aus einem XML-Dokument
Syntax: x. load_xml ( String xml )
Software- and Organisations-Service GmbH
März 2015
Stichwortverzeichnis
366
Stichwortverzeichnis
A
Arbeitsverzeichnis
331
77, 162, 246,
C
-cd
78, 162, 247, 331
D
Debugger
85, 169, 254, 339
E
Eclipse 85, 169, 254, 339
-exclusive
83, 83, 168, 168, 252,
252, 337, 337
I
-id 79, 164, 248, 333
-include-path 29, 79, 115, 164, 199,
248, 284, 333
-ini 79, 164, 248, 333
L
-log-dir
76, 81, 85, 161, 166, 169,
245, 250, 254, 330, 335, 339
-log-level 48, 133, 217, 302
P
-param
82, 167, 251, 336
T
-tcp-port
83, 168, 252, 337
U
-udp-port
84, 169, 253, 338
V
Verzeichnis
77, 162, 246, 331
Software- and Organisations-Service GmbH
März 2015