Zum Inhalt springen

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.

Schlüssel-Wert-Paare

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