Saltar al contenido

Componente clave-valor del SDK de Jitterbit Connector

Descripción general

El componente Clave-Valor se utiliza para definir conjuntos de propiedades que un usuario que configura un conector puede ingresar como pares de clave y valor.

Pares Clave-Valor

Características del componente

En el ejemplo anterior, del conector de Zendesk, una clave (jobStatusMaxRetries) está asociada con un valor de visualización (enumValue). Los botones Agregar y Eliminar se añaden automáticamente por la interfaz de usuario del Integration Studio. Tenga en cuenta que cuando se muestra por primera vez, no habrá valores hasta que un usuario los agregue utilizando el botón Agregar.

JSON del componente

El componente Clave-Valor tiene un type de "object" con un arreglo de propiedades, como se muestra aquí:

{
  "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"
        }
      ]
    }
  ]
}

Valores del componente

Para usar un valor en un conector, obtenga el valor de las propiedades del conector utilizando código como se muestra en estos fragmentos.

Las propiedades del conector (props) se pasan a la fábrica del conector mediante el método creatConnnection() de ConnectionFactory, mostrado aquí para un ExampleConnector ficticio:

  @Override
  public Connection createConnection(Map<String, String> props) {
    return new ExampleConnectorConnection(props.get(COMPANY_URL),
                                 props.get(API_TOKEN),
                                 props.get(EMAIL),
                                 getJobStatusMaxRetries(props));
  }

Este método createConnnection() es donde se pueden acceder a las propiedades, recuperar valores especificados y luego pasarlos al método de conexión de un conector:

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

El código anterior se basa en el uso de un analizador JSON (como Jackson, devuelto por la llamada a createMapper()) para convertir el JSON en un objeto Java. Las propiedades están organizadas y se llaman utilizando la notación de "punto", pasando el nombre del elemento de la interfaz de usuario y el nombre del campo realvalue del enum.

En el ejemplo anterior, las cadenas OPTIONAL_SETTINGS_CONFIGURATION y JOB_STATUS_MAX_RETRIES serían:

String OPTIONAL_SETTINGS_CONFIGURATION = "key_value_pairs_example";
String JOB_STATUS_MAX_RETRIES = "jobStatusMaxRetries";