Introducción y descripción
El objetivo de esta herramienta es poder configurar distintas importaciones de fichero TXT con distintos formatos, de forma que entren en tablas intermedias que se definirán en las configuraciones. Mediante un proceso de BBDD, que se podrá configurar en cada caso, se realizará la importación de estos datos a las tablas del ERP que se hayan indicado en el proceso.
En el presente documento se va a explicar el funcionamiento del importador de texto. Dicho importador ya existía para la conciliación bancaria, pero ahora se ha ampliado su funcionalidad para que sirva también para otros tipos de importación, como pueden ser ficheros EDI.
La filosofía de esta importación es similar a la de archivos Excel, es decir, se podrán definir tantas configuraciones de importación como se deseen para realizar las importaciones desde ficheros de texto plano de ancho fijo.
Para cada importación, se podrán definir tantas secciones como sean necesarias. Dichas secciones podrán venir en un fichero o en ficheros separados. Por ejemplo, en el caso de los ficheros EDI, vienen en ficheros separados, por lo que en cada sección habrá que indicar el nombre del TXT asociado. La conciliación bancaria, por otro lado, viene en un solo fichero.
Esta herramienta, tiene una parte de configuración que debe realizarla una persona con los suficientes conocimientos informáticos y del ERP, y otra parte de Importación de datos que puede ser utilizada por cualquier usuario de la aplicación.
En el sistema viene pre-configurada una importación de pedidos de proveedor en formato EDI.
Configuración de importaciones
Esta versión del importador estará disponible a partir de la versión 4.1.500 de AHORA ERP.
Debido a la repercusión que tiene este importador sobre la base de datos, el formulario para definir y configurar importaciones será accesible únicamente desde el Administrador (AhoraAdmon.exe), siempre y cuando el usuario que acceda sea el ‘sa’. Para ello, se ha añadido una opción ‘Importación TXT’ en la sección ‘Otros’.
Al hacer clic en la opción indicada, se cargará el siguiente formulario:
- Importación: Es el nombre de la importación que ha cargado. Si está creando una importación nueva, este campo aparecerá bloqueado. Si no está creando una nueva, se desplegará una lista con todas las importaciones creadas.
- Carácter de línea: es el carácter que indica que se ha terminado la línea (por defecto, 13).
- Id. Importación: Es el id de importación en la tabla ‘Importaciones’ de la base de datos. Este campo no es editable por el usuario: Es automático y únicamente informativo.
- Descripción: Es la descripción de la importación. Si ha seleccionado una importación existente, será el nombre que se mostrará en el campo ‘Importación’. Este campo es editable y es desde aquí desde donde puede cambiar la descripción de su importación.
- Nº de filas de la cabecera: Si el fichero del que estamos importando los datos tiene una primera línea (o más) con la información acerca del nombre de los campos, se indicará aquí.
- Dir. Importación: Es el directorio del cual se van a importar los ficheros. Esta ruta no tiene nada que ver con el parámetro de configuración PATHIMPORTACION .
- Dir. Backup: Es el directorio en el cual se hará una copia de los archivos importados correctamente. Esta ruta no tiene nada que ver con el parámetro de configuración PATH_BACKUP.
- Proceso import.: Por defecto, se usará el proceso ‘PImportacionTXT_EDI'. Dicho proceso forma parte de la estructura estándar de la base de datos, por lo que debe existir en la suya. Si necesita personalizar este proceso, hágalo de la forma habitual y escriba aquí el nombre de su procedimiento almacenado personalizado (ej. ‘Ppers_ImportacionTXT_EDI'). Este es el proceso que se ejecutará una vez los datos del texto estén en las tablas intermedias.
- Ficheros distintos por sección: Esta casilla de selección se marcará si cada sección va en un fichero distinto. Si todas las secciones van en el mismo fichero se dejará desmarcada.
Cargar una importación existente
Para cargar una importación, basta con seleccionarla de la lista desplegable Importación. Una vez seleccionada, se rellenarán todos los campos del formulario que hayamos guardado previamente. Si se desea modificar algún dato, deberá darle al botón “Guardar” para mantener los cambios.
Veremos que existe ya una que se llama importación de EDI. Para ponerla en funcionamiento, hará falta lo siguiente:
- Rellenar el directorio de importación: donde dejaremos los ficheros de texto que queremos importar.
- Rellenar el directorio de backup: donde el programa dejará los ficheros de texto una vez importados a las tablas intermedias (no hace falta que se haya ejecutado el proceso personalizado para importar al ERP).
- Pulsar el botón “Crear tablas intermedias”, para que se cree la tabla indicada en la sección con los campos definidos en la rejilla inferior”
Crear una importación nueva
Para crear y definir una importación nueva, deberá hacer clic en el botón “Nuevo” de la barra de botones.
Al hacer clic en este botón, el Admon nos dará automáticamente un id de importación y dejará el foco en el campo Descripción. Además, el campo “Carácter de fin de línea” se rellena con un ’13’ y “Nº de filas de cabecera” con un ‘0’, ya que son los datos más comunes.
Tras indicar los datos del resto de los campos de cabecera, haremos clic en “Guardar” y será entonces cuando se habilite el resto de la ventana.
Según hayamos definido la importación, la segunda parte de configuración variará.
- Importaciones con ficheros distintos por sección: En el caso de tener una estructura de ficheros distintos por sección, tendremos un registro para cada fichero diferente. Es el caso de los ficheros EDI.
Es importante tener en cuenta que es posible que sólo estemos trabajando con un fichero, ya que podemos tener una única sección. - Importaciones sin ficheros distintos por sección: En el caso de tener una estructura de un único fichero, tendremos un registro para toda la importación. Deberemos definir las posiciones y caracteres de inicio y fin, así como la longitud, ya que las secciones se definen por los caracteres por los que empieza la línea. Es el caso de la conciliación bancaria y de los cuadernos de los bancos.
En cualquier caso, los datos a rellenar son los siguientes:
- Cód. registro:
- Con ficheros distintos por sección marcado: Es el nombre del archivo de texto del que se van a extraer los datos.
- Con ficheros distintos por sección desmarcado: Es el código de registro que identifica la sección, encontrado desde la posición inicio a la posición final.
- Descripción: Una descripción de la sección.
- Pos. inicio cód. registro: Sólo será necesaria en caso de utilizar un único fichero de importación. Indica el primer carácter para localizar el código de registro.
- Pos. final cód. registro: Sólo será necesaria en caso de utilizar un único fichero de importación. Indica el último carácter para localizar el código de registro.
- Longitud: Es el número de caracteres que ocupa el código de registro en el caso de que “Ficheros distintos por sección” no esté marcado.
- Separador: En el caso que sea un código separado por delimitadores, aquí debemos poner el código del delimitador entre campos. Los valores que acepta el separador de campos son los siguientes:
Cód. ASCII
Descrip
8
BS
9
TAB
10
LF
13
CR
32
ESPACIO
44
COMA
59
PUNTO Y COMA
124
|
126
~
- Agrega línea: Si está marcada, el registro encontrado será añadido a la tabla indicada en Tabla destino.
- Tabla destino:Es la tabla de destino en la que va a guardar los registros a importar. Dicha tabla no debe formar parte de la estructura estándar de la base de datos. Si no se introduce nada, el programa dará un nombre automático del tipo:
Importador_Txt_Ejecucion_Lineas [Idimportacion]_[Idseccion]
- Obligatorio: Si está marcado indica que la sección debe existir obligatoriamente en el fichero, o el fichero de la sección. Si no es obligatoria, no tiene por qué existir.
Para cada sección hay que definir los campos de la tabla intermedia y qué posiciones ocupan en el fichero.
Pasamos a explicar las columnas:
- IdCampo: Identificador automático del campo.
- Pos. inicio: Posición inicial del campo en caso que no se usen delimitadores de campo.
- Pos. final: Posición final del campo en caso que no se usen delimitadores de campo.
- Longitud: Posición final-Posición inicial +1, número de caracteres que ocupa el campo, en el caso que no se usen delimitadores de campo.
- Concatena: Cual es el campo que se concatena en el caso de no marcar “añadir líneas”.
- Campo destino: Nombre del campo que va a tener en la tabla. No es necesario que se llame como el campo del txt. Si no ponemos nada, el programa asignará uno automático, del tipo Campo_[idcampo]
- Tipo Dato: Tipo de dato del campo que vamos a importar. Los tipos de campos son Long, Double, String, Date y Time. Se seleccionará de la lista desplegable.
- Nº decimales: En el caso que el campo sea decimal, cuántos decimales va a visualizar en la rejilla.
- Formato: Podemos definirnos formatos para cada importación y seleccionarlos aquí (por ejemplo formatos de fecha, de precios…).
Cuando se seleccione un campo que admita formateo, se activarán a la derecha los campos para poder darle formato según el campo seleccionado. Éste será el formato que lee del archivo de importación.Tipo de campo
Formato
Long
Double
Date
Time
- Obligatorio: Si el campo debe de venir informado de forma obligado o no.
Una vez tenemos creada nuestra importación y si todo es correcto, pulsaremos el botón “Crear tablas intermedias” que nos crearán en la BBDD de AHORA una tabla por sección con el nombre dado en la sección y los campos definidos en la rejilla inferior.
El siguiente paso será realizar la importación de datos desde el ERP.
Importación desde el ERP
Para importar desde el ERP hay que ir al menú Gestión > Herramientas > Importación ficheros TXT.
Si no tuviera esta opción de menú habilitada, hable con el administrador del ERP. Puede que no esté habilitada para nadie o que usted no tenga permisos.
Para seleccionar una importación, podemos desplegar la lista de “Importación” y seleccionar un elemento de ella o pulsar sobre “Importación”, y nos saldrá un asistente para buscar las importaciones configuradas. En dicho asistente se pueden aplicar filtros, tanto por descripción como por id de importación. Una vez seleccionada la importación deseada de la tabla, pulsaremos en el botón “Aceptar”.
Si el tipo de importación que se ha seleccionado tiene ficheros distintos por sección, los campos “Fichero a Importar” y “Descripción” estarán vacíos, ya que los ficheros a importar ya se indicaron al crear la importación desde el Admon.
En el caso de tener una estructura de un único fichero, tendremos la opción de seleccionar el fichero que queremos importar y de indicarle una descripción.
Una vez finalizada la importación, se guardará un registro en la tabla Importacion_TXT_Ejecucion con los datos indicados en esta sección.
Pestaña Importaciones
En la rejilla que aparece tenemos los ficheros que se han importado, con esta importación:
- Id. Ejecución: Identificador del registro.
- Fecha: Fecha en que se ha realizado la importación.
- Fichero: Nombre del fichero importado.
- IdEstado: Estado de la importación, 0- Generado, 1 – importado, -1 –Error en la importación.
- Errores: Cadena que devuelve el proceso de importación en el caso de que hayan ocurrido errores.
Si existen importaciones pendientes, nos saldrán aquí cargadas. Éstas son importaciones que se han hecho previamente sobre las tablas intermedias pero que, o no se han importado al ERP, o al hacerlo se han encontrado errores, y no se han podido importar algunos registros.
Si no existen importaciones, la tabla nos saldrá vacía. Para comenzar, debemos pulsar el botón “Importar TXT” que recorrerá los ficheros del directorio especificado en la importación e irá insertando los registros en las tablas intermedias. Si no ocurre ningún error, dichos ficheros pasarán al directorio de backup.
Si la importación está marcada como “Ficheros distintos por sección”, no habrá que indicar el fichero a importar, ya que buscará ficheros en el directorio que se llamen con el nombre que se indica en la sección especificada en los detalles de la importación.
Una vez finalizada la primera fase “Importar TXT”, saldrá un mensaje informando de ello. Dicho mensaje no quiere decir que la importación de datos vaya a ser correcta. Es necesario ir a la grid de Importaciones y comprobar que la ejecución está en estado ‘Generada’. Si hay algún error, se mostrará más tarde.
Una vez importados los ficheros a las tablas intermedias, pulsaremos el botón “Importar ERP” el cual, por cada una de las importaciones, llamará al proceso configurado en la importación para pasar los registros de las tablas intermedias a sus tablas del ERP definitivas.
Si ocurren errores, aparecerán en la columna errores y la importación pasará al estado “Error en importación”. Además, cada una de las líneas del grid de Detalles cambiará a estado “Importado” o “Error en importación”, dependiendo de si se ha podido pasar al ERP o no. Así podremos ver en qué situación se ha quedado la importación.
Cada vez que pulsemos el botón “Importar ERP”, cogerá las importaciones en estado “Generado” o “Error en Importación” y volverá a procesarlas, sólo para aquellas líneas que estén en estos estados. Las importadas ya no volverá a intentarlas importar.
Si queremos eliminar de la lista de errores alguna de las importaciones que ha dado error, bastará con hacer clic en la lista desplegable del estado y seleccionar “Importada”. De este modo, desaparecerá de la lista.
Es importante indicar que, aunque ya no aparezca como “Error en importación” en la grid de este formulario, en la tabla Importacion_TXT_Ejecucion se puede observar si una importación ha sido marcada como “Importada” por un usuario ejecutando la siguiente consulta sobre su base de datos:
select * from Importacion_TXT_Ejecucion where IdEstado = 1 and Errores is not null
Si no tiene acceso a la base de datos, consulte con su administrador de sistemas para obtener dicha información.
Pestaña Secciones
En la rejilla aparece la información de las secciones que tiene dicha importación asociadas. Esta información no es editable:
- Id.Sección: Identificación de la sección.
- Descripción: Descripción de la sección.
- Tabla Destino: Nombre de la tabla intermedia para los registros de dicha sección.
Pestaña Detalle
En esta rejilla salen los registros de la tabla destino de la sección, con los campos que hemos definido en la configuración.
Si los registros salen en color rojo, es que ha habido errores al importar los registros:
Si tenemos más de una importación en la pestaña Importaciones, aquí saldrá el detalle de la importación seleccionada.
Plantilla del Proceso Personalizado
El proceso personalizado tiene que seguir una estructura para su correcto funcionamiento:
Parámetros de entrada @idImportacion, @IdEjecucion
Debe importar los registros de la ejecución informada, de las tablas intermedias de cada una de las secciones de la importación pasadas.
Solo cogerá aquellos registros en estado 0, -1, de forma que, cuando acabe, deberá marcar cada registro como 1 si se ha importado correctamente o -1 si no es así.
Si hay registros fallidos, deberá actualizar en la tabla Importacion_TXT_Ejecucion para la ejecución informada una cadena con el mensaje de error y marcará la importación como -1.
Actualmente, en la base de datos, disponemos del procedimiento almacenado PImportacionTXT_EDI, usado por la importación de EDI. Se recomienda observar detenidamente el funcionamiento de este procedimiento si se quiere configurar una nueva importación que utilice un procedimiento almacenado diferente.
Problemas y F.A.Q.
No existe el archivo obligatorio…
Si, tras pulsar el botón ‘Importar TXT’ obtenemos el siguiente mensaje, debemos comprobar que existen la ruta y archivo indicados. Esta ruta y nombre de archivo se configuran desde el Admon
¿Le ha sido útil este artículo?
¡Qué bien!
Gracias por sus comentarios
¡Sentimos mucho no haber sido de ayuda!
Gracias por sus comentarios
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo