public final class HBCIDialogStatus extends Object
Status-Informationen für einen kompletten HBCI-Dialog. Objekte
dieser Klasse werden von HBCIExecStatus
-Objekten verwaltet.
In einem HBCIDialogStatus
werden alle Status-Informationen
gespeichert, die während der Ausführung eines HBCI-Dialoges anfallen.
Die direkte Auswertung der Felder dieser Klasse ist i.d.R. nicht zu empfehlen. Statt dessen sollten die bereitgestellten Methoden benutzt werden, um alle relevanten Informationen zu extrahieren.
Modifier and Type | Field and Description |
---|---|
HBCIMsgStatus |
endStatus
Statusinformationen zur Dialog-Abschluss-Nachricht.
|
HBCIMsgStatus |
initStatus
Statusinformationen zur Dialog-Initialisierungs-Nachricht.
|
HBCIMsgStatus[] |
msgStatus
Status-Informationen zu den einzelnen Nachrichten zwischen
Dialog-Initialisierung und Dialog-Abschluss ("Nutzdaten").
|
Constructor and Description |
---|
HBCIDialogStatus() |
Modifier and Type | Method and Description |
---|---|
String |
getErrorString()
Gibt für einen Dialog alle Fehlermeldungen zurück.
|
Exception[] |
getExceptions()
Deprecated.
wird nicht benutzt
|
boolean |
hasExceptions()
Deprecated.
wird nicht benutzt
|
boolean |
isOK()
Gibt zurück, ob der Dialog als ganzes erfolgreich abgelaufen ist.
|
void |
setEndStatus(HBCIMsgStatus status)
Wird von der HBCI4Java-Dialog-Engine aufgerufen
|
void |
setInitStatus(HBCIMsgStatus status)
Wird von der HBCI4Java-Dialog-Engine aufgerufen
|
void |
setMsgStatus(HBCIMsgStatus[] status)
Wird von der HBCI4Java-Dialog-Engine aufgerufen
|
String |
toString()
Wandelt alle Statusinformationen zu einem Dialog in einen
einzigen String um.
|
public HBCIMsgStatus[] msgStatus
Status-Informationen zu den einzelnen Nachrichten zwischen Dialog-Initialisierung und Dialog-Abschluss ("Nutzdaten"). Ein Element dieses Arrays enthält dabei die Status-Informationen über genau einen HBCI-Nachrichtenaustausch.
Die direkte Auswertung dieses Feldes ist aus folgendem Grund in den meisten Fällen nicht zu empfehlen: Sollen mehrere Geschäftsvorfälle innerhalb eines einzigen HBCI-Dialoges ausgeführt werden, so weiß die HBCI-Anwendung i.d.R. nicht, in welcher Nachricht sich ein bestimmter GV befindet bzw. wie viele Nachrichten überhaupt erzeugt werden, weil der HBCI-Kernel beim Hinzufügen von Geschäftsvorfällen u.U. selbstständig die Erzeugung einer zusätzlichen Nachricht auslöst. Es ist deshalb nicht ohne weiteres möglich, die zu einem bestimmten Geschäftsvorfall passende Nachrichtennummer zu ermitteln, um damit das entsprechende Element aus diesem Array zu extrahieren.
public HBCIMsgStatus initStatus
public HBCIMsgStatus endStatus
public void setInitStatus(HBCIMsgStatus status)
public void setMsgStatus(HBCIMsgStatus[] status)
public void setEndStatus(HBCIMsgStatus status)
public boolean isOK()
Gibt zurück, ob der Dialog als ganzes erfolgreich abgelaufen ist. Ein Dialog gilt dann als erfolgreich abgelaufen, wenn die Dialog-Initialisierung, alle Nachrichten mit Geschäftsvorfällen sowie der Dialog-Abschluss ohne Fehlermeldungen abgelaufen sind.
Sobald auch nur eine dieser Nachrichten einen Fehler erzeugt hat, gibt diese
Methode false
zurück. Es handelt sich also um einen sehr
"strengen" Test. Falls diese Methode true
zurückgibt,
so könnte eine Überprüfung der einzelnen Geschäftsvorfälle auf eventuell
aufgetretene Fehler entfallen (siehe jedoch unten). Beim Rückgabewert
false
müssen alle ausgeführten Geschäftsvorfälle überprüft
werden, ob einer (oder mehrere) davon den (oder die) Fehler ausgelöst haben.
Achtung: Wenn diese Methode true
zurückgibt, heißt
das nicht zwangsläufig, dass auch alle geplanten HBCIJobs
tatsächlich erfolgreich durchgeführt wurden. Diese Methode zeigt nur an,
dass die HBCIJobs
, die auch tatsächlich in einer der
Auftragsnachrichten enthalten gewesen sind, erfolgreich durchgeführt wurden.
Trat beim Hinzufügen eines HBCIJobs
zu einer Azuftragsnachricht
ein Fehler auf, so dass dieser HBCIJob
gar nicht erst
versandt wurde, so zeigt diese Methode u.U. trotzdem true
,
obwohl gar nicht alle geplanten Aufträge ausgeführt wurden (eben weil diese
Methode nur anzeigt, ob bei der eigentlichen Ausführung von Aufträgen
Fehler aufgetreten sind oder nicht).
Um also sicher zu gehen, dass alle gewünschten Aufträge auch wirklich
erfolgreich ausgeführt wurden, sollte von jedem ursprünglich erzeugten
HBCIJob
der Status mit HBCIJob.getJobResult()
und
HBCIJobResult.isOK()
geprüft werden.
true
, wenn keine Nachricht des Dialoges einen Fehler
erzeugt hat; false
, wenn wenigstens ein Nachrichtenaustausch
nicht fehlerfrei abgelaufen ist.public boolean hasExceptions()
true
, wenn während der Dialogausführung Exceptions
aufgetreten sind, sonst false
public Exception[] getExceptions()
public String getErrorString()
public String toString()
Copyright © 2022. All rights reserved.