Für dieses Element ist ein How-To Artikel verfügbar. |
Mit dem <eoms-input-query-status>-Element ist es möglich, die Weiterverarbeitung so lange zu unterbrechen, bis das Element eine positive Rückmeldung des EOMS-Input-Servers, dass die Daten, die durch ein vorheriges <eoms-input-submit> versendet wurden, im Server eingegangen sind (d.h. aber nicht, dass sie auch erfolgreich verarbeitet wurden). Das Element wartet maximal so lange wie in timeout angegeben. Ist timeout abgelaufen und <eoms-input-query-status> hat keine positive Rückmeldung vom Server erhalten, wirft das Element eine Ausnahme (Exception) und die Verarbeitung bricht an diesem Punkt mit einer Fehlermeldung ab (nachfolgender Code wird nicht ausgeführt). Da sich <eoms-input-query-status> auf ein <eoms-input-submit>-Element bezieht (der Bezug wird über job hergestellt), muss dieses auch vor <eoms-input-query-status> notiert werden.
Attributname | Datentyp | Beschreibung | Mögliche Werte | Standardwert | Obligatorisch? |
---|---|---|---|---|---|
id | STRING | Die ID des Elements, über die es im Code angesprochen werden kann. | beliebiger, regelkonformer Name. | — | |
job | STRING | Die ID des <eoms-input-submit>, für das die Abfrage getätigt werden soll. | ID eines existierenden <eoms-input-submit> | — | |
timeout | STRING (long) | Die Zeit in ms, die auf eine positive Rückmeldung des EOMS-Input-Servers gewartet werden soll. | Numerische Zeitangabe in ms. | 1000 (ms) |
Das <eoms-input-query-status>-Element besitzt keine Subelemente.
Das <eoms-input-query-status>-Element ist vom Typ REQUEST-OBJECT und besitzt daher die gleichen Variablenbindungen wie das <eoms-input-submit>-Element. Dementsprechend beziehen sich auch die meisten Variablenbindungen auf das <eoms-input-submit>-Element, dass durch <eoms-input-query-data> abgefragt werden soll:
Bindung | Beschreibung | Rückgabetyp |
---|---|---|
getId() | Gibt die Id des <eoms-input-query-status>-Elements zurück. | STRING |
getCreated() | Gibt den Zeitpunkt, zu dem die Übertragung durch <eoms-input-submit> initialisiert wurde, zurück. | DATE |
getExpires() | Gibt den Zeitpunkt, bis zu dem der <eoms-input-submit>-Vorgang gültig ist, zurück. Ab diesem Zeitpunkt wird der Vorgang verworfen, falls er noch nicht geendet hat. | DATE |
getMessages() | Gibt die internen Messages zurück. | LIST OF STRINGS |
getProperties() | Gibt die HashMap, die für den Übertragungsvorgang <eoms-input-submit> als variables übergeben wurde, zurück. | MAP |
getStatus() | Gibt den Status des <eoms-input-submit> zurück. Kann entweder ACTIVE (aktiv) oder TERMINATED (fertig) sein. | REQUESTSTATUS |
getBody() | Sollte nicht verwendet werden. | SUBMITJOBREQUEST |
In folgendem Beispiel wird die vom Aufrags-System (Spooler) durch <fetchresource> empfangene Ressource direkt an den EOMS-Input-Server gesendet. Mit übergeben wird eine HashMap, die per JavaScript erstellt wurde und per variables übergeben wird. Anschließend wird mit <eoms-input-query-status> die weitere Verarbeitung so lange unterbrochen, bis der EOMS-Input-Server meldet, dass die Übertragung des <eoms-input-submit> mit der id="submitJob" erfolgreich war. Erst dann wird die Verarbeitung fortgesetzt. So wird sichergestellt, dass weiterer Code nur ausgeführt wird, wenn der Vorgang auch erfolgreich war und es wird verhindert, dass mit inkonsistenten oder nicht vorhandenen Daten gearbeitet wird.
<rcml> <process id="ExampleProcess" name="example process"> <script language="JavaScript"><![CDATA[ var submitVariables = new java.util.HashMap(); submitVariables.put('EOMS_CLIENT', process['eoms.client']); submitVariables.put('EOMS_PROCEDURE', process['eoms.procedure']); submitVariables.put('EOMS_REFERENCE', process['eoms.reference']); ]]> </script> <workdir id="workdir" home="./WORK"/> <fetchresource id="inputFile" resource="${process['eoms.process.input']}"/> <eoms-input-submit id="submitJob" file="inputFile" variables="${submitVariables}"/> <eoms-input-query-status id="queryJobStatus" job="submitJob"/> <!-- Hier kann man jetzt sicher sein, dass die Daten erfolgreich übertragen wurden. --> </process> </rcml> |
|