Zum Inhalt springen

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.

Key-Value Paare

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. realvalueFeld.

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";