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.
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 empageDescription
e termina com dois pontos e um espaço para criar o espaçamento apropriado, como"Objeto Selecionado: "
. Observe que isso é distinto (éselect
ed) 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 empageDescription
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 mé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
.