Schlüssel-Wert-Komponente¶
Übersicht¶
Die Schlüssel-Wert-Komponente wird verwendet, um Sätze von Eigenschaften zu definieren, die ein Benutzer, der einen Connector konfiguriert, als Schlüssel- und Wertepaare eingeben kann.
Komponentenfunktionen¶
Im obigen Beispiel aus dem Zendesk Connector, eine Taste (jobStatusMaxRetries
) ist mit einem Anzeigewert verknüpft (enumValue
). Die Schaltflächen Hinzufügen und Entfernen werden automatisch von der Integration Studio Benutzeroberfläche hinzugefügt. Beachten Sie, dass bei der ersten Anzeige keine Werte vorhanden sind, bis ein Benutzer sie mit der Schaltfläche Hinzufügen hinzufügt.
Komponenten-JSON¶
Die Key-Value-Komponente hat eine 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 Konnektor zu verwenden, rufen Sie den Wert aus den Konnektoreigenschaften mithilfe von Code ab, wie er in diesen Snippets gezeigt wird.
Die Konnektoreigenschaften (props
) werden vom ConnectionFactory
‘S creatConnnection()
Methode, hier gezeigt für ein fiktives 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 createConnnection()
Methode ist der Ort, an dem Sie auf die Eigenschaften zugreifen, angegebene Werte abrufen und sie dann an die Verbindungsmethode 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()
), um das JSON in ein Java-Objekt zu konvertieren. Die Eigenschaften werden mithilfe der Punktnotation organisiert und aufgerufen. Dabei werden der Name des UI-Elements und der Name des Enumerationselements übergeben. realvalue
Feld.
Im obigen Beispiel sind die Zeichenfolgen OPTIONAL_SETTINGS_CONFIGURATION
Und JOB_STATUS_MAX_RETRIES
wäre:
String OPTIONAL_SETTINGS_CONFIGURATION = "key_value_pairs_example";
String JOB_STATUS_MAX_RETRIES = "jobStatusMaxRetries";