El objetivo es la importación de una carga de datos desde Excel a una tabla de datos previamente registrada utilizando una API (Application Programming Interface) → URL.../api/DataLoad/LoadExcelIntoDataTable
, donde se deben ingresar los parámetros con el código de la tabla de datos de origen, el código de la columna y el código de la fila donde se encuentra el archivo en la tabla de datos de origen, y el código de la tabla de datos de destino. Los datos procesados se enviarán a la dataTable de destino, donde se pasan los códigos a través de estos parámetros a la API mediante QueryString. El proceso busca la información necesaria para llenar la tabla de datos en el archivo Excel, basándose en el nombre de la columna de la tabla de datos y el encabezado de las columnas en el archivo Excel, que deben coincidir. También se considera el tipo de datos de la tabla de datos de destino, intentando realizar conversiones de tipo cuando sea necesario.
Los requisitos previos de la funcionalidad en general son simplemente un usuario registrado en el T6, un formulario de datos con una columna del tipo archivo para subir el archivo Excel y una tabla de datos de destino.
Será necesario configurar algunos permisos de usuario como requisitos del sistema para poder crear el proceso y el disparador del workflow para realizar la carga de datos desde Excel al T6.
- En usuarios, seleccionaremos al usuario que será responsable de la creación del proceso y del disparador necesarios y haremos clic en Permisos.
- Se abrirá un panel lateral, haremos clic en Funcionalidades.
- En la pestaña Funcionalidades seleccione la aplicación deseada.
- En Recursos por Usuario, en la opción Gestor, haga clic en
para expandir las opciones.
- En Gestor necesitamos otorgar los siguientes permisos al usuario:
- Administrar la estructura de las tablas de datos;
- Administrar la estructura de los disparadores;
- Administrar la estructura de los procesos;
- Administrar el workflow;
- Publicar proceso;
- Visualizar proceso.
- Aún en Recursos por Usuario, en la opción Analista, haga clic en
para expandir las opciones.
- En Analista necesitamos otorgar los siguientes permisos al usuario:
- Actuar en el workflow con cualquier tipo de tarea;
- Ejecutar fórmulas en el formulario;
- Aún en Recursos por Usuario, en la opción Planificador, haga clic en
para expandir las opciones.
- En Planificador necesitamos otorgar los siguientes permisos al usuario:
- Actuar en el workflow con tareas de formularios;
- Visualizar disparador.
El proceso se basa en las columnas de la tabla de datos de destino. Se importan todas las columnas de la tabla de destino que tienen una contraparte con el mismo nombre en Excel (encabezado). Es decir, las columnas presentes en el archivo de Excel que no existen en la tabla de datos son ignoradas. También se consideran la configuración de tipos y restricciones de la tabla de datos. Si la tabla de datos no puede tener un campo específico como nulo y el archivo no proporciona esta información, no será posible importar. En este caso, la información debe incluirse en el archivo de Excel o debe modificarse la tabla de datos para permitir la inserción del campo nulo.
El proceso busca en la tabla referenciada en dataTableSourceCode, el archivo de Excel en la columna y fila especificadas por los parámetros sourceRowCode y sourceColumnCode, respectivamente, e importa el archivo a la tabla de datos indicada en el parámetro dataTableDestinationCode.
Esta API recibe 4 parámetros a través de querystring:
- dataTableSourceCode: Código de la tabla de datos de origen, que puede identificarse a través del código del ítem mostrado en el explorer. (Esta es la tabla de datos donde se encuentra el archivo de Excel a importar).
- sourceColumnCode: Código de la columna en la tabla de datos de origen (source). Para identificarlo, es necesario verificar a través del servidor de base de datos en la tabla
REP_DATATABLE_COLUMNS
en la columna codDataColumn
y verificar en qué fila se encuentra el archivo de Excel agregado en la Tabla de datos de origen. (Esta información, junto con el parámetro sourceRowCode, especifica en qué columna de la tabla de origen está el archivo).
- sourceRowCode: Código de la fila en la tabla de datos de origen (source). Puede localizarse al abrir el formulario de datos de origen. (Esta información, junto con el parámetro sourceColumnCode, especifica en qué fila de la tabla de origen está el archivo).
- dataTableDestinationCode: Código de la tabla de datos de destino, que puede identificarse a través del código del ítem mostrado en el explorer. (Esta es la tabla de datos que recibirá la información del archivo de Excel).
Un ejemplo de cómo será la QueryString para su uso: URL.../api/DataLoad/LoadExcelIntoDataTable?dataTableSourceCode=***&sourceColumnCode=***&sourceRowCode=***&dataTableDestinationCode=***
El proceso solo importará el archivo en su totalidad, si ocurre algún error, todo el proceso será cancelado, revertido y se notificará en el menú de notificaciones.
Para utilizar la importación de datos desde Excel a las tablas de datos del T6, necesitaremos previamente un archivo de Excel para adjuntar a la tabla de origen.
Dentro del T6, necesitaremos crear una Tabla de datos de origen (Source), una tabla de datos de destino y un formulario de datos para cada tabla.
- Cree o seleccione la tabla de datos de origen y haga clic en editar.
- En configurar columnas, agregaremos una columna haciendo clic en
, se abrirá un asistente en el que nombraremos la columna y seleccionaremos el tipo. En esta tabla de datos es necesario que la columna creada sea del tipo archivo.
- Cree o seleccione un formulario de datos para recibir el archivo de Excel y haga clic en editar.
- En la pestaña Propiedades, en Tabla de datos, seleccione la tabla de datos de origen con la columna del tipo archivo.
- En la pestaña Disposición, en Columnas de la tabla de datos, seleccione la columna del tipo archivo creada anteriormente y haga clic en
.
- Haga clic en
y abra el formulario de datos.
- Con el formulario de datos abierto, seleccione la columna del tipo archivo y agregue el archivo de Excel que tendrá sus datos cargados y haga clic en
.
- Cree o seleccione la tabla de datos de destino y haga clic en editar.
- En configurar columnas, agregaremos una columna haciendo clic en
, se abrirá un asistente en el que nombraremos las columnas y seleccionaremos el tipo.
En la creación de las columnas de la tabla de datos de destino es obligatorio que el nombre de las columnas sea exactamente el mismo que el de los encabezados del archivo de Excel, así como el tipo de columna debe ser compatible con el tipo de datos existentes en el archivo de Excel. Si el tipo no es compatible, el T6 intentará hacer la conversión.
Si el proceso falla, será necesario ajustar la tabla de datos o el archivo de Excel, pudiendo ser necesario renombrar las columnas de la tabla o el encabezado del archivo de Excel. La falla también puede ocurrir debido a restricciones en la tabla de datos, como campos nulos no permitidos o tipos de datos incompatibles.
- Cree o seleccione un formulario de datos que recibirá los datos y haga clic en editar.
- En la pestaña Propiedades, en Tabla de datos, seleccione la tabla de datos de destino.
- En la pestaña Disposición, en Columnas de la tabla de datos, seleccione las columnas del archivo de Excel que se mostrarán en el formulario y haga clic en
.
- Haga clic en
y abra el formulario de datos (note que el formulario estará sin datos, solo con las columnas mostradas).
- Crearemos un proceso del workflow y haremos clic en editar.
- En la pantalla de creación del proceso, crearemos una nueva tarea.
- Nombramos la tarea y seleccionamos el tipo, que debe ser de tipo Hyperlink automático.
- Haga clic en siguiente, en el campo Hyperlink automático inserte la querystring con los parámetros ya completados →
URL.../api/DataLoad/LoadExcelIntoDataTable?dataTableSourceCode=***&sourceColumnCode=***&sourceRowCode=***&dataTableDestinationCode=***
(podemos manipular los valores de los parámetros de la API mediante la función Instance(workflowParameter)).
- Haga clic en finalizar y conecte la tarea al final del proceso.
- Al finalizar, tendremos un proceso similar a este:
- Haga clic en
, se abrirá un asistente, en el cual podremos asociar un responsable a la tarea a través de los parámetros, haga clic en finalizar.
- Crearemos un gatillo para el proceso del workflow y haremos clic en editar.
- Se abrirá un panel lateral, en Procesar seleccionaremos el proceso creado anteriormente con la tarea de ejecución de la API.
- Al seleccionar el proceso, se mostrará la opción Parámetros del proceso donde asignaremos un usuario responsable.
- Haga clic en Guardar para finalizar la creación del gatillo.
- Después de guardar el gatillo, un doble clic en el mismo mostrará un panel lateral, donde podremos visualizar el proceso al que está asociado el gatillo, el nombre del gatillo y su descripción, y los parámetros del proceso con la asignación del responsable.
- Después de confirmar la información, haga clic en Siguiente para confirmar.
- Haga clic en Finalizar, se generará una notificación informando sobre la conclusión del proceso.
Si ocurre algún error en la inserción de la API, se generará una notificación del sistema informando sobre lo sucedido.
- Para más información sobre la creación y configuración de procesos del workflow y gatillos, acceda a nuestro centro de ayuda: Workflow BPM.
Para obtener información sobre la configuración e implementación de Swagger, acceda a nuestro centro de ayuda: Swagger.
Para abrir Swagger, utilizaremos el endpoint: URL.../swagger/index.html
- Ejemplo de endpoint en un entorno cloud: 'qablue.tech6cloud.com/swagger/index.html'; (En este caso, qablue es su nombre de dominio.)
- Ejemplo de endpoint en entorno local: '(servidor IIS)/(nombre de la aplicación en IIS)/swagger/index.html'
La dirección URL proporcionada antes de la API dependerá de su dominio en la nube o, en el caso de un entorno local, de la configuración proporcionada en Internet Information Services (IIS).
Al acceder al endpoint, se abrirá una página que contiene todas las APIs del sistema. Localice la API (/api/DataLoad/LoadExcelIntoDataTable
) y haga clic en
para expandirla:
- Se mostrarán los parámetros necesarios para la ejecución de la API. Para habilitar la inserción de los parámetros y ejecutar la API, haga clic en "Try it out";
Al expandir la API, también se muestran las posibles respuestas que el sistema puede devolver, así como una visualización detallada de la solicitud, por ejemplo: