List Object-Komponente des Jitterbit Connector SDK
Übersicht
Die List Object-Komponente generiert zur Entwurfszeit dynamisch eine Liste von Objekten. Die Auswahl des Benutzers aus dieser Liste kann dann verwendet werden, um das Verhalten des Connectors oder die Konfiguration anderer Komponenten zu bestimmen. Zum Beispiel kann eine List Object-Komponente auf einer Seite verwendet werden, und die Auswahl des Benutzers kann den Inhalt bestimmen, der in einer List Object-Komponente oder anderen Komponenten auf einer nachfolgenden Seite angezeigt wird.
Eine List Object-Komponente wird in Verbindung mit anderen Komponenten wie Describe Object, Filter Builder, Select Fields und Transfer List Component verwendet, um ihnen die erforderlichen Daten für die Instanziierung bereitzustellen.
Komponentenmerkmale
Die List Object-Komponente umfasst integriertes Verhalten für das Suchen, Aktualisieren und Auswählen von Listenelementen:
- Suchleiste: Benutzer können ein Schlüsselwort eingeben und die Zeilen filtern. Alle verfügbaren Spalten werden durchsucht.
- Aktualisieren: Ein Klick ruft Daten vom Connector ab und aktualisiert alle Zeilen.
- Auswählen und Abwählen: Um eine Zeile auszuwählen, klicken Benutzer auf eine Zeile; ein weiterer Klick hebt die Auswahl der ausgewählten Zeile auf.
Komponenten-JSON
{
"name": "list-object",
"displayName": "Select an XML Schema structure for validating the file",
"type": "list-object",
"use": {
"ui": {
"pageDescription": "Select an XML Schema structure for validating the file",
"selectObjectLabel": "Selected Dropbox Object: ",
"tableHeaders": [
"Name",
"Type",
"Description"
]
},
"discoveryType": "provided",
"orientation": "output",
"documentIdPath": "this"
},
"validators": [
{
"name": "required"
}
]
}
In der JSON-Beschreibung des Listenelements können folgende Eigenschaften konfiguriert werden:
name
: Eindeutiger Name für die List Object-Komponente.displayName
: Der Titel, der über der List Object-Komponente in der Benutzeroberfläche des Integration Studio angezeigt wird.type
: Der Typ der List Object-Komponente muss"list-object"
sein.pageDescription
: Die Beschreibung, die über der List Object-Komponente eingefügt wird. Üblicherweise beginnt sie mit dem Wort Select und verweist auf ein bestimmtes Objekt, wie zum Beispiel"Wählen Sie eine XML-Schema-Struktur zur Validierung der Datei aus"
.selectedObjectLabel
: Eine optionale Beschreibung in fetter Schrift, die über der List Object-Komponente eingefügt wird und sich dynamisch basierend auf der Auswahl ändert. Üblicherweise beginnt sie mit dem Perfekt des Verbs, das in derpageDescription
verwendet wird, und endet mit einem Doppelpunkt und einem Leerzeichen, um den entsprechenden Abstand zu schaffen, wie zum Beispiel"Ausgewähltes Objekt: "
. Beachten Sie, dass dies sich von der nächsten Eigenschaft (selectObjectLabel
) unterscheidet und nur verwendet wird, wenn die List Object-Komponente von Daten einer vorherigen Seite abhängt. Siehe Komponente Vorherige Seiten für Details.selectObjectLabel
: Eine optionale Beschreibung, die in fetter Schrift gesetzt und über der List Object-Komponente eingefügt wird, die sich dynamisch basierend auf der Auswahl ändert. Üblicherweise beginnt ihr Wert mit dem Perfekt des Verbs, das in derpageDescription
verwendet wird, und endet mit einem Doppelpunkt und einem Leerzeichen, um den entsprechenden Abstand zu schaffen, wie zum Beispiel der Wert"Ausgewähltes Dropbox-Objekt: "
.tableHeaders
: Ein optionales Array von Überschriften, die die Bezeichnungen (Anzeigenamen) sind, die oben in der List Object-Komponente angezeigt werden. Zum Beispiel:
[
"Name",
"Type",
"Description"
],
```
Wenn nicht definiert, werden standardmäßig `"Name"` und `"Beschreibung"` angezeigt.
!!! important "Wichtig"
Die im Listenobjekt angezeigten Objektdaten hängen von der Anzahl der definierten Header ab:
- Wenn keine Header definiert sind, werden `N` (Name) und `D` (Beschreibung) angezeigt
- Wenn 1 Header definiert ist, wird `N` (Name) angezeigt
- Wenn 2 Header definiert sind, werden `N` (Name) und `D` (Beschreibung) angezeigt
- Wenn 3 Header definiert sind, werden `N` (Name), `T` (Typ) und `D` (Beschreibung) angezeigt
Die oben genannten Spaltenordnungen sind festgelegt, und das Anzeigen zusätzlicher Header wird nicht unterstützt.
- `defaultValueFromProp`: Wenn diese spezielle Komponente Daten basierend auf ausgewählten oder bereitgestellten Daten von einer vorherigen Seite abrufen muss, können Sie hier optional den Namen der Eigenschaft der vorherigen Seite angeben, und die Komponente wird diese Eigenschaft verwenden, um die Daten abzurufen. Siehe [Komponente vorherige Seiten](#component-previous-pages) für Details.
- `discoveryType`: Der Entdeckungstyp ist `"provided"`, und die Implementierung davon muss vom Entwickler wie in der [Komponentenentdeckung](#component-discovery) beschrieben abgeschlossen werden.
- `orientation`: Dies ist auf `"output"` gesetzt.
- `documentIdPath`: Dies ist auf `"this"` gesetzt.
## Komponentenentdeckung {: #component-discovery }
Wenn der Connector mit einem Listenobjekt von einem Benutzer konfiguriert wird, werden die Methoden `getObjectList()` des Connectors entweder in der Verbindung oder in den Aktivitäten aufgerufen.
In diesem Codebeispiel aus der `ProcessFileActivity` des Dropbox-Connectors werden die entdeckbaren Objekte den Daten zur Anzeige zugeordnet. In diesem speziellen Beispiel sind die Werte fest codierte Zeichenfolgen. Sie könnten jedoch dynamisch generiert und aus einer Datenbank oder einer anderen Datenquelle abgerufen werden. Die Ergebnisse der Auswahl zur Entwurfszeit werden dann verwendet, um zu bestimmen, welche XSD-Schemadatei verwendet wird, um die Daten zu verarbeiten, die der Connector erhält.
``` java
@Override
public List<DiscoverableObject> getObjectList(DiscoverContextRequest<DiscoverableObjectRequest> objectListRequest)
throws DiscoveryException {
List result = new ArrayList<DiscoverableObject>();
DiscoverableObject obj = new DiscoverableObject();
obj.setObjectName("account")
.setObjectType("xsd")
.setObjectDesc("XML schema associated with Account objects");
result.add(obj);
obj = new DiscoverableObject();
obj.setObjectName("contacts")
.setObjectType("xml")
.setObjectDesc("XML schema associated with Contact objects");
result.add(obj);
obj = new DiscoverableObject();
obj.setObjectName("customer")
.setObjectType("json")
.setObjectDesc("JSON schema associated with Customer objects");
result.add(obj);
return result;
}
Komponenten vorherige Seiten
Wenn diese spezielle Komponente Daten basierend auf ausgewählten oder bereitgestellten Daten von einer vorherigen Seite abrufen muss, können Sie den Namen der Eigenschaft der vorherigen Seite als defaultValueFromProp
im JSON, das die Komponente beschreibt, angeben, und die Komponente wird diese Eigenschaft verwenden, um die Daten abzurufen.
Der Wert, der von einer vorherigen Seite erhalten wurde, wird in der Benutzeroberfläche des Integration Studio mit dem selectedObjectLabel
als Textzeile zwischen der pageDescription
und dem selectObjectLabel
angezeigt.