Zschimmer GmbH Impressum und Kontakt

Job Scheduler     Erste Seite

  XML     API     Register


logo

Order - Programmschnittstelle (API)

JavaJavaScriptVBScriptPerl Javadoc
   

Order  –  Auftrag

 

order.at = String|DATE Start-Zeitpunkt des Auftrags
 
order.end_state = Variant Zustand, vor dessen erfolgreichen Verlassen der Auftrag enden soll
Variant   order.end_state
 
order.id = Variant Kennung des Auftrags
Variant   order.id
 
Job_chain   order.job_chain Jobkette, in der der Auftrag enthalten ist
 
Job_chain_node   order.job_chain_node Jobkettenknoten, der dem Zustand des Auftrags entspricht
 
Log   order.log Auftragsprotokoll
 
order.params = Variable_set Parameter des Auftrags
Variable_set   order.params
 
order.payload = payload Nutzlast, also Parameter des Auftrags.
Variable_set|String|int|   order.payload
 
bool   order.payload_is_type( type_name ) Prüft den COM-Typ der Nutzlast
 
order.priority = int Aufträge mit höherer Priorität werden zuerst verarbeitet
int   order.priority
 
order.remove_from_job_chain()
 
Run_time   order.run_time <run_time> zur periodischen Wiederholung des Auftrags
 
order.setback() Stellt den Auftrag eine Zeitlang zurück
 
order.setback_count = int Wie oft ist der Auftrag zurückgestellt worden?
int   order.setback_count
 
order.state = Variant Zustand des Auftrags
Variant   order.state
 
order.state_text = String Freier Text für den Zustand des Auftrags
String   order.state_text
 
String   order.string_next_start_time Nächste Startzeit des Auftrags bei Verwendung von <run_time>
 
order.suspended = bool Ausgesetzer Auftrag
bool   order.suspended
 
order.title = String Der Titel ist ein Klartext, der den Auftrag bezeichnet
String   order.title
 
Web_service   order.web_service Der Webdienst, der dem Auftrag zugeordnet ist
 
Web_service_operation   order.web_service_operation Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist
 
Web_service_operation   order.web_service_operation_or_null Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist, oder null
 
Web_service   order.web_service_or_null Der Web-Dienst, der dem Auftrag zugeordnet ist, oder null.
 
String   order.xml Auftrag in XML: <order>...</order>
 
order.xml_payload = xml XML-Nutzlast, also Parameter des Auftrags.
String   order.xml_payload

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

 

Siehe Aufträge, Spooler.create_order(), Job_chain.add_order(), Task.order.

Dateiauftrag

Ein Dateiauftrag ist ein Auftrag mit dem Parameter scheduler_file_path: order.params.value( "scheduler_file_path" ).

Siehe »Verzeichnisüberwachung mit Dateiaufträgen«.

 

at

Start-Zeitpunkt des Auftrags

 

order.at = String|DATE

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="…">.

Parameter

String|DATE

Exceptions

SCHEDULER-217 order(1) is being processed by task(2)  

end_state

Zustand, vor dessen erfolgreichen Verlassen der Auftrag enden soll

 

order.end_state = Variant
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.

Parameter

Variant

id

Kennung des Auftrags

 

order.id = Variant
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.

Parameter

Variant

job_chain

Jobkette, in der der Auftrag enthalten ist

 

Job_chain   order.job_chain

Rückgabe

Job_chain  

job_chain_node

Jobkettenknoten, der dem Zustand des Auftrags entspricht

 

Job_chain_node   order.job_chain_node

Rückgabe

Job_chain_node  

log

Auftragsprotokoll

 

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  

params

Parameter des Auftrags

 

order.params = Variable_set
Variable_set   order.params

 

params wird in Order.payload gehalten, letzteres kann also nicht zusammen mit params verwendet werden.

Siehe <add_order><params>.

Parameter

Variable_set

Rückgabe

Variable_set  

payload

Nutzlast, also Parameter des Auftrags.

 

order.payload = Variable_set|String|int| payload
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.

payload_is_type

Prüft den COM-Typ der Nutzlast

 

bool   order.payload_is_type( String type_name )

Parameter

type_name

"Spooler.Variable_set", "Hostware.Dyn_obj" oder "Hostware.Record".

priority

Aufträge mit höherer Priorität werden zuerst verarbeitet

 

order.priority = int
int   order.priority

Parameter

int

remove_from_job_chain

 

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.

run_time

<run_time> zur periodischen Wiederholung des Auftrags

 

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  

Exceptions

SCHEDULER-397 A distributed order does not support (1)  

setback

Stellt den Auftrag eine Zeitlang zurück

 

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.

Exceptions

SCHEDULER-157 (1) is not in a job chain 
SCHEDULER-163 (1) is not in an order queue 
SCHEDULER-187 Order.setback(): An order can only be set back when it is being executed by a task 
SCHEDULER-188 Order.setback() and Order.state= cannot be combined 

Meldungen

[warn] SCHEDULER-947 setback(): order has been set back (1) times. This is more than (2) - the maximum for this job 
[info] SCHEDULER-946 setback(): order has been set back (1) times, until (2)  

setback_count

Wie oft ist der Auftrag zurückgestellt worden?

 

order.setback_count = int
int   order.setback_count

 

Siehe <delay_order_after_setback>.

Parameter

int

state

Zustand des Auftrags

 

order.state = Variant
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.

Parameter

Variant

state_text

Freier Text für den Zustand des Auftrags

 

order.state_text = String
String   order.state_text

 

Der Text wird auf der HTML-Oberfläche gezeigt.

Für Nicht-API-Jobs füllt der Scheduler dieses Feld mit der ersten Zeile von stdout, max. 100 Zeichen.

Parameter

String

string_next_start_time

Nächste Startzeit des Auftrags bei Verwendung von <run_time>

 

String   order.string_next_start_time

Rückgabe

String  

"yyyy-mm-dd HH:MM:SS.MMM" oder "now" oder "never".

suspended

Ausgesetzer Auftrag

 

order.suspended = bool
bool   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 Scheduler 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.

Parameter

bool

title

Der Titel ist ein Klartext, der den Auftrag bezeichnet

 

order.title = String
String   order.title

Parameter

String

web_service

Der Webdienst, der dem Auftrag zugeordnet ist

 

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  

web_service_operation

Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist

 

Web_service_operation   order.web_service_operation

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  

Exceptions

SCHEDULER-246 Order does not belong to a web service operation 

web_service_operation_or_null

Die Web-Dienst-Operation, die dem Auftrag zugeordnet ist, oder null

 

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  

web_service_or_null

Der Web-Dienst, der dem Auftrag zugeordnet ist, oder null.

 

Web_service   order.web_service_or_null

 

Siehe auch Order.web_service.

Rückgabe

Web_service  

xml

Auftrag in XML: <order>...</order>

 

String   order.xml

Rückgabe

String  

Siehe <order>

xml_payload

XML-Nutzlast, also Parameter des Auftrags.

 

order.xml_payload = String xml
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).

Parameter

xml

Software- und Organisations-Service GmbH

Zuletzt geändert von Joacim Zschimmer, 2009-06-12