Componente List Object del SDK del Conector Jitterbit
Descripción general
El componente List Object genera dinámicamente, en tiempo de diseño, una lista de objetos. La selección del usuario de esa lista puede utilizarse para determinar el comportamiento del conector o la configuración de otros componentes. Por ejemplo, se puede usar un objeto de lista en una página y luego la selección del usuario puede determinar el contenido mostrado en un objeto de lista u otros componentes en una página siguiente.
Un objeto de lista se utiliza junto con otros componentes como Describe Object, Filter Builder, Select Fields y Transfer List Component para proporcionarles los datos que requieren para su instanciación.
Características del componente
El componente List Object incluye comportamiento incorporado para buscar, actualizar y seleccionar objetos de lista:
- Barra de búsqueda: Los usuarios pueden escribir una palabra clave y filtrar las filas. Se buscan todas las columnas disponibles.
- Actualizar: Hacer clic obtiene datos del conector y actualiza todas las filas.
- Seleccionar y deseleccionar: Para seleccionar una fila, los usuarios hacen clic en una fila; hacer clic nuevamente deseleccionará la fila seleccionada.
JSON del 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"
}
]
}
En el JSON que describe el objeto de lista, se pueden configurar estas propiedades:
name
: Nombre único para el componente de objeto de lista.displayName
: El título mostrado sobre el objeto de lista en la interfaz de usuario de Integration Studio.type
: El tipo de componente de objeto de lista debe ser"list-object"
.pageDescription
: La descripción insertada sobre el objeto de lista. Por convención, generalmente comienza con la palabra Seleccionar y hace referencia a un objeto específico, como"Seleccionar una estructura de esquema XML para validar el archivo"
.selectedObjectLabel
: Una descripción opcional en negrita insertada sobre el objeto de lista que cambia dinámicamente según la selección. Por convención, comienza con el tiempo pasado del verbo utilizado en lapageDescription
, y termina con dos puntos y un espacio para crear el espaciado apropiado, como"Objeto Seleccionado: "
. Tenga en cuenta que esto es distinto (seselecciona
) de la siguiente propiedad (selectObjectLabel
) y se utiliza solo si el objeto de lista depende de datos de una página anterior. Consulte Component Previous Pages para más detalles.selectObjectLabel
: Una descripción opcional, establecida en negrita e insertada sobre el objeto de lista, que cambia dinámicamente según la selección. Por convención, su valor comienza con el tiempo pasado del verbo utilizado en lapageDescription
, y termina con dos puntos y un espacio para crear el espaciado apropiado, como el valor"Objeto de Dropbox Seleccionado: "
.tableHeaders
: Un array opcional de encabezados que serán las etiquetas (nombres de visualización) mostradas en la parte superior del objeto de lista. Por ejemplo:
[
"Name",
"Type",
"Description"
],
```
Si no se define, se muestran por defecto `"Name"` y `"Description"`.
!!! important "Importante"
Los datos del objeto mostrados en la lista de objetos dependen del número de encabezados definidos:
- Si no se definen encabezados, se muestran `N` (nombre) y `D` (descripción)
- Si se define 1 encabezado, se muestra `N` (nombre)
- Si se definen 2 encabezados, se muestran `N` (nombre) y `D` (descripción)
- Si se definen 3 encabezados, se muestran `N` (nombre), `T` (tipo) y `D` (descripción)
Los órdenes de columna anteriores están establecidos y no se admite mostrar encabezados adicionales.
- `defaultValueFromProp`: Si este componente particular necesita obtener datos basados en datos seleccionados o proporcionados de una página anterior, puede opcionalmente proporcionar aquí el nombre de la propiedad de la página anterior y el componente utilizará esa propiedad para obtener los datos. Consulte [Component Previous Pages](#component-previous-pages) para más detalles.
- `discoveryType`: El tipo de descubrimiento es `"provided"`, y la implementación de esto debe ser completada por el desarrollador como se describe en [Component Discovery](#component-discovery).
- `orientation`: Esto está configurado como `"output"`.
- `documentIdPath`: Esto está configurado como `"this"`.
## Component discovery {: #component-discovery }
Cuando el conector con un objeto de lista está siendo configurado por un usuario, se llaman a los métodos `getObjectList()` del conector, ya sea en la conexión o en las actividades.
En este ejemplo de código de la `ProcessFileActivity` del conector de Dropbox, los objetos descubribles se mapean a datos para su visualización. En este ejemplo particular, los valores son cadenas codificadas de forma rígida. Sin embargo, podrían generarse dinámicamente y extraerse de una base de datos u otra fuente de datos. Los resultados de la selección en el tiempo de diseño se utilizan luego para determinar qué archivo de esquema XSD se utiliza para procesar los datos que recibe el conector.
``` 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
Si este componente particular necesita obtener datos basados en datos seleccionados o proporcionados de una página anterior, puede proporcionar el nombre de la propiedad de la página anterior como defaultValueFromProp
en el JSON que describe el componente y el componente utilizará esa propiedad para obtener los datos.
El valor que se obtuvo de una página anterior se mostrará en la interfaz de usuario de Integration Studio con el selectedObjectLabel
como una línea de texto entre el pageDescription
y el selectObjectLabel
.