Schlüssel-Wert-Komponente des Jitterbit Connector SDK
Übersicht
Die Schlüssel-Wert-Komponente wird verwendet, um Mengen 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 Anzeigewert (enumValue
) verknüpft. Die Schaltflächen Hinzufügen und Entfernen werden automatisch von der Benutzeroberfläche des Integration Studio 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 type
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 creatConnnection()
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
, zurückgegeben durch den Aufruf von createMapper()
) zur Umwandlung des JSON in ein Java-Objekt. Die Eigenschaften sind organisiert und werden mit "Punkt"-Notation aufgerufen, wobei der Name des UI-Elements und der Name des realvalue
-Felds des Enums übergeben werden.
In dem obigen Beispiel wären die Strings OPTIONAL_SETTINGS_CONFIGURATION
und JOB_STATUS_MAX_RETRIES
:
String OPTIONAL_SETTINGS_CONFIGURATION = "key_value_pairs_example";
String JOB_STATUS_MAX_RETRIES = "jobStatusMaxRetries";