Schlüssel-Wert-Komponente des Jitterbit Connector SDK
Übersicht
Die Schlüssel-Wert-Komponente wird verwendet, um eine Menge von Eigenschaften zu definieren, die ein Benutzer, der einen Connector konfiguriert, als Schlüssel-Wert-Paare eingeben kann.

Komponentenmerkmale
Im obigen Beispiel, aus dem Zendesk-Connector, ist ein Schlüssel (jobStatusMaxRetries) mit einem Anzeige-Wert (enumValue) verknüpft. Die Schaltflächen Hinzufügen und Entfernen werden automatisch von der Studio-Benutzeroberfläche hinzugefügt. Beachten Sie, dass beim ersten Anzeigen keine Werte vorhanden sind, bis ein Benutzer sie mit der Schaltfläche Hinzufügen hinzufügt.
Komponenten-JSON
Die Schlüssel-Wert-Komponente hat einen Typ von "object" mit einem Array von Eigenschaften, wie hier gezeigt:
{
"name": "key_value_pairs_example",
"displayName": "Example Key Value Pairs",
"type": "object",
"default": "",
"multiple": true,
"properties": [
{
"name": "name",
"displayName": "Name",
"enumValues": [
{
"enumValue": "Job Status Maximum Retries",
"realValue": "jobStatusMaxRetries"
}
],
"validators": [
{
"name": "required"
}
]
},
{
"name": "value",
"displayName": "Value",
"type": "number",
"defaultValue": "300",
"validators": [
{
"name": "required"
}
]
}
]
}
Komponentenwerte
Um einen Wert in einem Connector zu verwenden, erhalten Sie den Wert aus den Connector-Eigenschaften mit Code, wie in diesen Snippets gezeigt.
Die Connector-Eigenschaften (props) werden über die Methode createConnnection() der ConnectionFactory an die Fabrik des Connectors übergeben, hier gezeigt für einen fiktiven ExampleConnector:
@Override
public Connection createConnection(Map<String, String> props) {
return new ExampleConnectorConnection(props.get(COMPANY_URL),
props.get(API_TOKEN),
props.get(EMAIL),
getJobStatusMaxRetries(props));
}
Diese Methode createConnnection() ist der Ort, an dem Sie auf die Eigenschaften zugreifen, bestimmte Werte abrufen und sie dann an die Verbindungs-Methode eines Connectors übergeben können:
private String getJobStatusMaxRetries(Map<String, String> props) {
if (!Objects.isNull(props.get(OPTIONAL_SETTINGS_CONFIGURATION + "." + JOB_STATUS_MAX_RETRIES))) {
return props.get(OPTIONAL_SETTINGS_CONFIGURATION + "." + JOB_STATUS_MAX_RETRIES);
} else {
String config = props.get(OPTIONAL_SETTINGS_CONFIGURATION);
if (StringUtils.isEmpty(config) || config.equals("[]")) {
return null;
}
config = config.substring(1, config.length() - 1);
ObjectMapper mapper = createMapper();
try {
NameValue nv = mapper.readValue(config, NameValue.class);
return nv.getValue();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
Der obige Code basiert auf der Verwendung eines JSON-Parsers (wie Jackson, der durch den Aufruf von createMapper() zurückgegeben wird), um das JSON in ein Java-Objekt zu konvertieren. Die Eigenschaften sind organisiert und werden mit der "Punkt"-Notation aufgerufen, wobei der Name des UI-Elements und der Name des realvalue-Feldes des Enums übergeben werden.
In dem obigen Beispiel wären die Zeichenfolgen OPTIONAL_SETTINGS_CONFIGURATION und JOB_STATUS_MAX_RETRIES:
String OPTIONAL_SETTINGS_CONFIGURATION = "key_value_pairs_example";
String JOB_STATUS_MAX_RETRIES = "jobStatusMaxRetries";