Ir para o conteúdo

Componente List Object do Jitterbit Connector SDK

Visão Geral

O componente List Object gera dinamicamente, no tempo de design, uma lista de objetos. A seleção do usuário a partir dessa lista pode ser usada para determinar o comportamento do conector ou a configuração de outros componentes. Por exemplo, você pode usar um objeto de lista em uma página e, em seguida, a seleção do usuário pode determinar o conteúdo exibido em um objeto de lista ou outros componentes em uma página seguinte.

Um objeto de lista é usado em conjunto com outros componentes, como Describe Object, Filter Builder, Select Fields e Transfer List Component para fornecer os dados necessários para sua instanciação.

List Object

Recursos do Componente

O componente List Object inclui comportamento embutido para pesquisa, atualização e seleção de objetos de lista:

  • Barra de pesquisa: Os usuários podem digitar uma palavra-chave e filtrar as linhas. Todas as colunas disponíveis são pesquisadas.
  • Atualizar: Clicar busca dados do conector e atualiza todas as linhas.
  • Selecionar e desmarcar: Para selecionar uma linha, os usuários clicam em uma linha; clicar novamente desmarcará a linha selecionada.

JSON do Componente

{
  "name": "list-object",
  "displayName": "Select an XML Schema structure for validating the file",
  "type": "list-object",
  "use": {
    "ui": {
      "pageDescription": "Select an XML Schema structure for validating the file",
      "selectObjectLabel": "Selected Dropbox Object: ",
      "tableHeaders": [
        "Name",
        "Type",
        "Description"
      ]
    },
    "discoveryType": "provided",
    "orientation": "output",
    "documentIdPath": "this"
  },
  "validators": [
    {
      "name": "required"
    }
  ]
}

No JSON que descreve o objeto de lista, essas propriedades podem ser configuradas:

  • name: Nome único para o componente de objeto de lista.
  • displayName: O título exibido acima do objeto de lista na interface do Integration Studio.
  • type: O tipo do componente de objeto de lista deve ser "list-object".
  • pageDescription: A descrição inserida acima do objeto de lista. Por convenção, geralmente começa com a palavra Selecionar e faz referência a um objeto específico, como "Selecione uma estrutura de esquema XML para validar o arquivo".
  • selectedObjectLabel: Uma descrição opcional em negrito inserida acima do objeto de lista que muda dinamicamente com base na seleção. Por convenção, começa com o passado do verbo usado em pageDescription e termina com dois pontos e um espaço para criar o espaçamento apropriado, como "Objeto Selecionado: ". Observe que isso é distinto (é selected) da próxima propriedade (selectObjectLabel) e é usado apenas se o objeto de lista depender de dados de uma página anterior. Veja Component Previous Pages para detalhes.
  • selectObjectLabel: Uma descrição opcional, definida em negrito e inserida acima do objeto de lista, que muda dinamicamente com base na seleção. Por convenção, seu valor começa com o passado do verbo usado em pageDescription e termina com dois pontos e um espaço para criar o espaçamento apropriado, como o valor "Objeto Dropbox Selecionado: ".
  • tableHeaders: Um array opcional de cabeçalhos que serão os rótulos (nomes exibidos) mostrados na parte superior do objeto de lista. Por exemplo:
        [
          "Name",
          "Type",
          "Description"
        ],
    ```

    Se não definido, `"Name"` e `"Description"` são exibidos por padrão.

    !!! important "Importante"
        Os dados do objeto mostrados na lista de objetos dependem do número de cabeçalhos definidos:

        - Se nenhum cabeçalho estiver definido, `N` (nome) e `D` (descrição) são exibidos
        - Se 1 cabeçalho estiver definido, `N` (nome) é exibido
        - Se 2 cabeçalhos estiverem definidos, `N` (nome) e `D` (descrição) são exibidos
        - Se 3 cabeçalhos estiverem definidos, `N` (nome), `T` (tipo) e `D` (descrição) são exibidos

        As ordens das colunas acima são definidas e a exibição de cabeçalhos adicionais não é suportada.

- `defaultValueFromProp`: Se este componente específico precisar buscar dados com base em dados selecionados ou fornecidos de uma página anterior, você pode opcionalmente fornecer aqui o nome da propriedade da página anterior e o componente usará essa propriedade para buscar os dados. Veja [Component Previous Pages](#component-previous-pages) para detalhes.
- `discoveryType`: O tipo de descoberta é `"provided"`, e a implementação disso deve ser concluída pelo desenvolvedor conforme descrito em [Component Discovery](#component-discovery).
- `orientation`: Isso é definido como `"output"`.
- `documentIdPath`: Isso é definido como `"this"`.


## Component discovery {: #component-discovery }

Quando o conector com um objeto de lista está sendo configurado por um usuário, os todos `getObjectList()` do conector são chamados, seja na conexão ou nas atividades.

Neste exemplo de código da `ProcessFileActivity` do conector Dropbox, os objetos descobertos são mapeados para dados para exibição. Neste exemplo específico, os valores são strings codificadas. No entanto, eles poderiam ser gerados dinamicamente e extraídos de um banco de dados ou outra fonte de dados. Os resultados da seleção no tempo de design são então usados para determinar qual arquivo de esquema XSD é usado para processar os dados que o conector recebe.

``` java
@Override
public List<DiscoverableObject> getObjectList(DiscoverContextRequest<DiscoverableObjectRequest> objectListRequest)
    throws DiscoveryException {
  List result = new ArrayList<DiscoverableObject>();
  DiscoverableObject obj = new DiscoverableObject();
  obj.setObjectName("account")
    .setObjectType("xsd")
    .setObjectDesc("XML schema associated with Account objects");
  result.add(obj);
  obj = new DiscoverableObject();
  obj.setObjectName("contacts")
    .setObjectType("xml")
    .setObjectDesc("XML schema associated with Contact objects");
  result.add(obj);
  obj = new DiscoverableObject();
  obj.setObjectName("customer")
    .setObjectType("json")
    .setObjectDesc("JSON schema associated with Customer objects");
  result.add(obj);
  return result;
}

Component previous pages

Se este componente específico precisar buscar dados com base em dados selecionados ou fornecidos de uma página anterior, você pode fornecer o nome da propriedade da página anterior como defaultValueFromProp no JSON que descreve o componente e o componente usará essa propriedade para buscar os dados.

O valor obtido de uma página anterior será exibido na interface do usuário do Integration Studio com o selectedObjectLabel como uma linha de texto entre o pageDescription e o selectObjectLabel.