Listenverarbeitung in der Listenkomponente

Jeder Instanz der Listenkomponente ist eine Instanz der Klasse com.ibm.bpe.jsf.handler.BPCListHandler zugeordnet.

Dieser Listenhandler protokolliert, welche Elemente in der zugeordneten Liste ausgewählt werden, und stellt einen Benachrichtigungsmechanismus bereit. Der Listenhandler ist über das Modellattribut des Tags bpe:list an die Listenkomponente gebunden.

Der Benachrichtigungsmechanismus des Listenhandlers wird unter Verwendung der Schnittstelle com.ibm.bpe.jsf.handler.ItemListener implementiert. Business Process Choreographer Explorer verwendet diesen Benachrichtigungsmechanismus, um den Listeneinträgen die Detailseiten für die unterschiedlichen Elementtypen zuzuordnen. Der Auslöser für ein Benachrichtigungsereignis ist normalerweise eines der Merkmale der Elemente, die in der aktuellen Liste angezeigt werden.

Um den Benachrichtigungsmechanismus zu nutzen, setzen Sie den Wert des Aktionsattributs im Tag bpe:column für das Merkmal auf das JSF-Navigationsziel, mit dem Ihre Anwendung fortgesetzt werden soll, wenn das Benachrichtigungsereignis ausgelöst wird. Die Listenkomponente gibt den Eintrag in der Spalte als JSF-Befehlslink zurück. Falls der Link ausgelöst wird, wird das Objekt ermittelt, das den Eintrag in der Liste darstellt, und an alle registrierten Elementlistener übergeben. Sie können Implementierungen dieser Schnittstelle in der Konfigurationsdatei der JSF-Anwendung registrieren.

Die Klasse BPCListHandler stellt außerdem eine Methode refreshList bereit. Mit dieser Methode können Sie in JSF-Methodenbindungen ein Steuerelement für die Benutzerschnittstelle implementieren, mit dem die Abfrage erneut ausgeführt werden kann.

Abfrageimplementierungen

Mit dem Listenhandler können Sie alle Arten von Objekten und deren Merkmale anzeigen. Der Inhalt der angezeigten Liste ist von der Liste der Objekte abhängig, die durch die Implementierung der Schnittstelle com.ibm.bpc.clientcore.Query zurückgegeben wurde, die für den Listenhandler konfiguriert ist. Sie können die Abfrage entweder über das Programm mit der Methode setQuery der Klasse BPCListHandler festlegen oder aber in den JSF-Konfigurationsdateien der Anwendung konfigurieren.

Abfragen können nicht nur für die APIs von Business Process Choreographer, sondern auch für alle anderen Informationsquellen ausgeführt werden, auf die Ihre Anwendung zugreifen kann, beispielsweise ein Content-Management-System oder eine Datenbank. Die einzige Voraussetzung besteht darin, dass das Ergebnis der Abfrage durch die Methode execute in Form von Objekten in einer Liste des Typs java.util.List zurückgegeben wird.

Der Typ der zurückgegebenen Objekte muss garantieren, dass die entsprechenden Getter-Methoden für alle Merkmale verfügbar sind, die in den Spalten der Liste angezeigt werden, für die die Abfrage definiert wird. Um sicherzustellen, dass der Typ des zurückgegebenen Objekts zu den Listendefinitionen passt, können Sie den Wert des Merkmals type für die Instanz von BPCListHandler, die in der Faces-Konfigurationsdatei definiert ist, mit dem vollständig qualifizierten Klassennamen der zurückgegebenen Objekte festlegen. Diesen Namen können Sie im Aufruf getType der Abfrageimplementierung zurückgeben. Zur Laufzeit überprüft der Listenhandler, ob die Objekttypen mit den Definitionen konform sind.

Um Fehlernachrichten zu bestimmten Einträgen in einer Liste zuzuordnen, müssen die von der Abfrage zurückgegebenen Objekte eine Methode mit der Signatur public Object getID() implementieren.

Fehlerbehandlung

In den folgenden Fehlersituationen können Sie die Fehlerbehandlungsfunktionen nutzen, die von der Klasse BPCListHandler bereitgestellt werden:
  • Fehler bei der Ausführung von Abfragen oder Befehlen

    Falls während der Ausführung einer Abfrage ein Fehler auftritt, unterscheidet die Klasse BPCListHandler zwischen Fehlern, die durch unzureichende Zugriffsberechtigungen verursacht wurden, und anderen Ausnahmebedingungen. Um Fehler aufgrund von unzureichenden Zugriffsberechtigungen abzufangen, muss der Parameter rootCause der Ausnahmebedingung ClientException, die durch die Methode execute der Abfrage ausgelöst wird, eine Ausnahmebedingung com.ibm.bpe.api.EngineNotAuthorizedException oder com.ibm.task.api.NotAuthorizedException sein. Die Listenkomponente zeigt anstelle des Abfrageergebnisses die Fehlernachricht an.

    Falls der Fehler nicht durch unzureichende Zugriffsberechtigungen verursacht wurde, übergibt die Klasse BPCListHandler das Ausnahmebedingungsobjekt an die Implementierung der Schnittstelle com.ibm.bpc.clientcore.util.ErrorBean, die durch den Schlüssel BPCError in der JSF-Anwendungskonfigurationsdatei definiert ist. Wenn die Ausnahmebedingung festgelegt ist, wird das Fehlernavigationsziel aufgerufen.

  • Fehler beim Arbeiten mit Elementen, die in einer Liste angezeigt werden

    Die Klasse BPCListHandler implementiert die Schnittstelle com.ibm.bpe.jsf.handler.ErrorHandler. Funktionen, die dies nutzen, können Informationen zu diesen Fehlern mit dem Zuordnungsparameter des Typs java.util.Map in der Methode setErrors bereitstellen. Diese Zuordnung enthält Kennungen als Schlüssel und Ausnahmebedingungen als Werte. Die Kennungen müssen die Werte sein, die von der Methode getID des Objekts zurückgegeben wurden, das den Fehler verursacht hat. Wenn die Liste erneut wiedergegeben wird, zeigt der Listenhandler die Fehlernachrichten für die qualifizierenden Listeneinträge in einer separaten Spalte an. Falls die Zuordnung festgelegt ist, und eine der IDs mit einem der in der Liste angezeigten Elemente übereinstimmt, fügt der Listenhandler automatisch eine Spalte zur Liste hinzu, in der die Fehlernachricht enthalten ist.

    Damit die Liste keine veralteten Fehlernachrichten enthält, setzen Sie die Fehlerzuordnung zurück. In den folgenden Situationen wird die Zuordnung automatisch zurückgesetzt:
    • Die Methode refreshList der Klasse BPCListHandler wird aufgerufen.
    • Für die Klasse BPCListHandler wird eine neue Abfrage festgelegt.
    • Mit der Befehlsleistenkomponente werden Aktionen für Elemente der Liste ausgelöst. Die Befehlsleistenkomponente verwendet unter anderem diesen Mechanismus als Methode zur Fehlerbehandlung.

Rechtliche Hinweise |

Letzte Aktualisierung: LASTUPDATEDVAR

(c) Copyright IBM Corporation 2005.
Dieses Information Center basiert auf Eclipse-Technologie. (http://www.eclipse.org)