Zschimmer GmbH Impressum und Kontakt

Job Scheduler     Erste Seite

  XML     API     Register


logo

Order - Programmschnittstelle (API)

JavaJavaScriptVBScriptPerl Javadoc
   

Order  –  Auftrag

 

void  order.set_at( String|java.util.Date ) Start-Zeitpunkt des Auftrags
 
void  order.set_end_state( String ) Zustand, vor dessen erfolgreichen Verlassen der Auftrag enden soll
String   order.end_state()
 
void  order.set_id( String ) Kennung des Auftrags
String   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
 
void  order.set_params( Variable_set ) Parameter des Auftrags
Variable_set   order.params()
 
void  order.set_payload( payload ) Nutzlast, also Parameter des Auftrags.
Object   order.payload()
 
boolean   order.payload_is_type( type_name ) Prüft den COM-Typ der Nutzlast
 
void  order.set_priority( int ) Aufträge mit höherer Priorität werden zuerst verarbeitet
int   order.priority()
 
void  order.remove_from_job_chain()
 
Run_time   order.run_time() <run_time> zur periodischen Wiederholung des Auftrags
 
void  order.setback() Stellt den Auftrag eine Zeitlang zurück
 
void  order.set_setback_count( int ) Wie oft ist der Auftrag zurückgestellt worden?
int   order.setback_count()
 
void  order.set_state( String ) Zustand des Auftrags
String   order.state()
 
void  order.set_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>
 
void  order.set_suspended( boolean ) Ausgesetzer Auftrag
boolean   order.suspended()
 
void  order.set_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>
 
void  order.set_xml_payload( xml ) XML-Nutzlast, also Parameter des Auftrags.
String   order.xml_payload()

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

 

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

 

void  order.set_at( String|java.util.Date )

Beispiel  

order.set_at( "now+60" );                                      // set_at( String )
order.set_at( new Date( new Date().getTime() + 60 * 1000 ) );  // set_at( java.util.Date )
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|java.util.Date

Exceptions

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

end_state

Zustand, vor dessen erfolgreichen Verlassen der Auftrag enden soll

 

void  order.set_end_state( String )
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.

Parameter

String

id

Kennung des Auftrags

 

void  order.set_id( String )
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.

Parameter

String

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

 

void  order.set_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.

 

void  order.set_payload( Object payload )
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

Variable_set|String|int|  

Kann ein String oder ein Variable_set sein.

payload_is_type

Prüft den COM-Typ der Nutzlast

 

boolean   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

 

void  order.set_priority( int )
int   order.priority()

Parameter

int

remove_from_job_chain

 

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.

run_time

<run_time> zur periodischen Wiederholung des Auftrags

 

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  

Exceptions

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

setback

Stellt den Auftrag eine Zeitlang zurück

 

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.

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?

 

void  order.set_setback_count( int )
int   order.setback_count()

 

Siehe <delay_order_after_setback>.

Parameter

int

state

Zustand des Auftrags

 

void  order.set_state( String )
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.

Parameter

String

state_text

Freier Text für den Zustand des Auftrags

 

void  order.set_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

 

void  order.set_suspended( boolean )
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 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

boolean

title

Der Titel ist ein Klartext, der den Auftrag bezeichnet

 

void  order.set_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  

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.

 

void  order.set_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