Modelos importación/exportación
Esta función permite definir los formatos de los ficheros utilizados en las funciones de importación y exportación para integrar o extraer los datos en la base del sistema.
Un fichero que se puede utilizar en el módulo de importación y que se puede generar en el módulo de exportación es un fichero con una de las siguientes estructuras:
- fichero plano con campos de longitud fija
- fichero plano con separadores entre los campos y registros
- fichero XML
El módulo de importación/exportación utiliza el concepto de objeto para permitir la actualización de los datos en la base. Un objeto es un conjunto de tablas y pantallas que también incluye las acciones estándar asociadas a los campos y a la actualización. Esto garantiza la ejecución de todas las acciones y todos los controles necesarios para actualizar la base, ya que una sola descripción del objeto permite generar el código de una actualización en línea y de una actualización por importación.
Si un objeto solo actualiza una tabla, el modelo de importación define la lista de campos de la tabla que hay que integrar, teniendo en cuenta que un bloque de datos del fichero de importación o exportación contiene los datos de un registro. Si el objeto actualiza varias tablas (la cabecera y las líneas, por ejemplo), se encontrarán varios bloques de datos para una instancia del objeto que se va a integrar (un bloque que define la cabecera y N bloques, uno por línea).
También se puede importar una tabla sin tener que asociarla a una noción de objeto. Para esto, deja el campo del objeto en blanco e indica la tabla y los campos relacionados en la tabla de la segunda sección. La importación se lleva a cabo sin realizar ningún control, aparte de los que proceden de los formatos asociados a los tipos de datos de los campos de la tabla.
Requisitos previos
Consulta la documentación de Puesta en marcha.
Gestión de pantalla
Cabecera
Un modelo de importación/exportación se identifica por un código alfanumérico. Además del título, puedes definir las características técnicas del modelo en dos secciones.
Modelo (campo EXT) |
Este código identifica el modelo de importación o exportación. |
Descripción (campo INTIT) |
Este campo permite definir una descripción asociada a cada ficha. |
Activo (campo ENAFLG) |
Marca esta casilla para activar el registro en curso Los registros no seleccionados conservan su contenido y parametrización, pero no se pueden utilizar mediante otra llamada a su código en:
Las habilitaciones en una función determinada pueden prohibir la creación de un registro activo. En ese caso, la casilla se desactiva por defecto. Solo se puede modificar por un usuario autorizado o mediante un workflow de firma. |
Propietario (campo AFACTORYOW) |
Este campo indica el nombre del propietario del modelo de importación o de exportación. Si el propietario es SAGE, los datos de la pantalla no se pueden modificar. |
Pestaña de cabecera
Esta sección define las características generales del modelo:
- los datos que se van a exportar
- la estructura general del fichero (formato, código, definición de grupos de datos)
- parámetros complementarios
General
Objeto (campo OBJ) |
Este campo define el código del objeto que se va a importar o exportar. Se trata de un campo opcional en el caso de las exportaciones. El bloque de identificación muestra el nombre de la tabla principal que se va a exportar. |
Función (campo FONCTION) |
Este campo inicializa el contexto y verifica los derechos de acceso. Es de utilidad cuando se utiliza el mismo objeto en varias funciones. Para poder utilizar el modelo, los usuarios deben disponer de los derechos de acceso adecuados para la función. Este campo es obligatorio. |
Módulo (MODULO) |
Selecciona un módulo para la parametrización. Este campo permite indicar si la pantalla se debe crear en la base de datos del dossier. Se crea si el módulo al que está asociada la pantalla está activo en el dossier. |
Código actividad (campo CODACT) |
Un código de actividad permite:
Si el código de actividad está desactivado:
|
Cód. de acceso (campo ACS) |
Este código de acceso permite prohibir el acceso a la ficha en curso a ciertos usuarios. Si el campo se alimenta, solo los usuarios con derechos de lectura en este código de acceso pueden visualizar el registro y solo los usuarios con derechos de escritura pueden modificarlo. El permiso de ejecución vinculado a un código de usuario se trata de forma especial en el caso de los modelos de importación o exportación: si un usuario no tiene permiso de ejecución, no podrá utilizar el modelo para importar o exportar datos. |
Script estándar (campo TRTIMP) |
Este campo define el proceso estándar que incluye las etiquetas de las acciones que se ejecutan en los procesos de importación y exportación. Estos procesos permiten realizar inicializaciones, controles complementarios y actualizaciones de ser necesario. La estructura de este programa se describe en el anexo técnico. Los procesos estándar por lo general denominados IMPXXX (donde XXX es el código de importación) se proporcionan para un determinado número de importaciones. Para más información, consulta la documentación anexa correspondiente. |
Script específico (campo SPEIMP) |
Este campo define el proceso específico, que se inicia antes que el proceso estándar, y que permite realizar las mismas acciones desactivando, si es necesario, lo que hace el proceso estándar. Estos procesos permiten realizar inicializaciones, controles complementarios y actualizaciones de ser necesario. Para más información, consulta la documentación anexa correspondiente. |
Estructura
Tipo de fichero (campo TYPFIL) |
Este campo define la estructura utilizada para generar los datos en el fichero que se va a importar o exportar. Para más información, consulta el párrafo correspondiente. |
Separador de campo (campo SEPFLD) |
Indica el carácter que se utiliza como separador entre dos campos. Para introducir un carácter no imprimible, introduce el símbolo "\" (barra inversa) seguido de 3 cifras que representan el código ASCII del carácter en base decimal. |
Separador registro (campo SEPREC) |
Indica el separador entre dos registros (grupos de datos). Para introducir un carácter no imprimible, introduce el símbolo "\" (barra inversa) seguido de 3 cifras que representan el código ASCII del carácter en base decimal. Los separadores más utilizados son:
|
Delimitador de campo (campo FLDLIM) |
El delimitador de campo se incluye en la primera y en la última posición de los campos de tipo alfanumérico. Para los campos numéricos y los campos de fecha, no se necesita ningún separador. Suele ser uno de estos caracteres:
|
Formato fichero (campo CODDBA) |
Indica el formato de los caracteres utilizados en el fichero:
|
Export.
Export. (campo EXPORT) |
Si esta casilla está marcada, se puede utilizar este modelo para exportar datos. |
Contador export. (campo CHRNUM) |
Este campo, que no se puede modificar, almacena el valor del número de secuencia en la última exportación. En las exportaciones cronológicas, esto permite procesar solo lo que se ha modificado desde la última exportación. |
Transcodificación
Juego de caracteres (campo OPTCHA) |
Con el conjunto de caracteres ASCII, puedes utilizar diferentes formatos estandarizados:
|
Separador decimal (campo SEPDEC) |
Este campo define el separador decimal utilizado para las cifras. Si está en blanco, el separador decimal que se tiene en cuenta es el punto ("."). |
Formato de fechas (campo OPTDAT) |
Este campo determina el tipo de codificación de los campos de fechas. Solo puedes definir el orden de los datos y el número de cifras del año. En la importación se filtran todos los caracteres de separación entre campos; por ejemplo, los formatos de fecha DD-MM-AA o DD/MM/AAAA se interpretarán correctamente. Los programas secundarios de codificación de fechas tienen en cuenta la variable adxdcs del motor. Esta variable se define en el parámetro general DCS y permite definir la manera en que se decodifican los años en dos caracteres. DCS representa un año puente con el que se determina el siglo correspondiente. Por ejemplo, si DCS es igual a 1940 y el año se define en dos caracteres:
Por lo tanto, los años comprendidos entre 1940 y 2039 se pueden expresar con dos cifras. |
Campo LIBDAT |
Descripción asociada al código anterior. |
Formato menús locales (campo OPTMNL) |
Los campos de tipo menú local se almacenan con un número que representa su rango en la tabla. Según el valor de este campo, el modelo va a exportar o intentar encontrar una importación:
Los títulos de los menús locales son los textos que se muestran en la pantalla y el valor almacenado en la base de datos es el rango en la tabla. En el momento de la importación, el título del menú local se puede cambiar para que el algoritmo de búsqueda funcione correctamente. Esta modificación solo se puede implementar en modos monousuario. Esta operación no se ha concebido para las transferencias normales ni automatizadas. |
Campo LIBMNL |
Descripción asociada al código anterior. |
Import.
Import. (campo IMPORT) |
Si este campo está seleccionado, se puede utilizar este modelo para importar los datos. |
Actualización autorizada (campo OPTUPD) |
Utiliza este campo para modificar un registro que ya exista durante la importación. |
Sas (campo AOWSTA) |
Cuando esta casilla está marcada, la importación de datos alimenta el espacio de almacenamiento de importación/exportación con datos incorrectos. A pesar de esto, se crea un fichero de errores. |
Importación especial (campo OPTSPE) |
Este campo indica que la introducción de datos en la base se realiza mediante acciones específicas definidas en el proceso cuyo nombre aparece en el campo Proceso importación. Este proceso posee un número limitado de puntos de entrada, por lo que es necesario escribir un proceso que incluya todos los controles que se quieran realizar. Su uso permite agrupar los controles para optimizar el programa de importación. La estructura de las importaciones personalizadas se describe en el anexo. Están disponibles las siguientes acciones:
|
Workflow (campo ENAWRK) |
Si esta casilla está desmarcada, dejan de ejecutarse los eventos de workflow relativos a las operaciones básicas (creación o modificación en gestión de objetos). Si se inicializan importaciones que generan actualizaciones masivas, esta opción también evita que se desencadenen numerosos eventos. De hecho, esto podría afectar al rendimiento de la importación y conllevar una generación masiva de mensajes. No obstante, no se desactivan los eventos de workflow relativos al desencadenamiento de la importación. |
Tabla Identificadores
N.º (campo NUMFLG) |
Línea en curso de la tabla. |
Nivel (campo FLGLEV) |
Este campo define el nivel de anidación del grupo. El nivel 1 es el principal. Un nivel N+1 representa un nivel inferior al nivel N, que lo precede. |
Indicador (campo FLGREC) |
Este campo identifica el grupo mediante un código de hasta 5 caracteres. Una referencia a este código se incluye en la tabla de los campos de la sección siguiente y en el propio fichero, como cabecera de grupo. |
Tabla (campo FLGFIL) |
Esta tabla de indicadores define la estructura de los grupos de registros. Consulta el párrafo correspondiente. |
Clave (campo FLGKEY) |
Este campo define la clave de la tabla vinculada que se utiliza para acceder a los registros detallados del grupo, a partir de los valores de los campos de las tablas de niveles superiores utilizadas en la expresión de vínculo. |
Vínc. (campo FLGLNK) |
Este campo define la expresión de vínculo. Esta expresión se compone de valores, separados por punto y coma, que aporta los valores clave que vinculan la tabla de detalle con el registro de cabecera. |
Longitud (campo RECLEN) |
En el caso de un tipo de fichero de longitud fija, es necesario indicar el número de caracteres de cada registro. |
Pestaña de campos
En esta tabla se definen los campos que se van a importar. Se organizan en grupos identificados mediante la columna Código, en la que consta uno de los códigos definidos en la tabla de los indicadores de la primera sección. El campo se puede quedar en blanco si no se ha definido ninguna tabla.
Esta sección contiene la tabla que define la estructura detallada de los grupos existentes en la primera sección. Notas:
- No es obligatorio definir los campos en todos los grupos. Algunos grupos son meramente técnicos y se utilizan para definir los vínculos. Por ejemplo, para importar los campos de la cabecera Pedido y Cliente pagador en un mismo grupo de datos, debes definir dos grupos: el primero para los pedidos y el segundo para el cliente (con el vínculo correspondiente). Por el contrario, la sección de los campos solo debe contener las líneas asociadas al segundo grupo. Estas líneas pueden incluir datos extraídos del cliente y de la cabecera del pedido.
- En cada grupo, hay que definir la posición del separador de grupo cuando se trata de un modelo que se puede utilizar en importación y que contiene varios grupos.
- Los bloques se deben ordenar de forma secuencial. Cuando hay un bloque de nivel inferior, este debe ser idéntico al bloque al que está vinculado.
Tabla Campos
N.º (campo NUMLIG) |
||||||||||||||||||||||||||||||
Línea en curso de la tabla. |
||||||||||||||||||||||||||||||
Indicador (campo TYP) |
||||||||||||||||||||||||||||||
Este campo se introduce solamente cuando la tabla de los identificadores de grupos de la pestaña precedente no está vacía. Permite asociar los datos que se van a exportar o importar a un grupo de datos. |
||||||||||||||||||||||||||||||
Tabla (campo FIL) |
||||||||||||||||||||||||||||||
Este campo indica la tabla de la base de datos donde se definen los datos que se van a importar o exportar. Notas:
|
||||||||||||||||||||||||||||||
Campo (campo FLD) |
||||||||||||||||||||||||||||||
Este campo permite indicar el nombre del campo de la tabla que se va a importar o exportar. Se pueden utilizar varias sintaxis para definir los datos que se van a extraer o integrar:
|
||||||||||||||||||||||||||||||
Descripción (campo COM) |
||||||||||||||||||||||||||||||
Añade un comentario que ayude a entender mejor la configuración. |
||||||||||||||||||||||||||||||
Límite (campo SEL) |
||||||||||||||||||||||||||||||
Hay tres opciones posibles en este campo:
|
||||||||||||||||||||||||||||||
Posición (campo LOC) |
||||||||||||||||||||||||||||||
Esta columna solo se utiliza para los formatos con longitud fija. En este caso, la posición condiciona el distanciamiento con respecto al inicio del bloque o del registro. Las posiciones se expresan en bytes, donde 1 representa el inicio del bloque o del registro. Las posiciones han de ser compatibles con el tamaño del registro. |
||||||||||||||||||||||||||||||
Longitud (campo LNG) |
||||||||||||||||||||||||||||||
Esta zona determina el tamaño del campo en el fichero secuencial. |
||||||||||||||||||||||||||||||
Formato (campo FMT) |
||||||||||||||||||||||||||||||
Esta columna solo se introduce si el formato es de longitud fija. En el caso de los importes numéricos, el formato introducido es nnn o nnn,mmm teniendo en cuenta lo siguiente:
En un formato alfanumérico, las únicas directivas de formateo posibles son < o > (justificación derecha o izquierda, sabiendo que las cadenas de caracteres se completan con espacios). |
||||||||||||||||||||||||||||||
Modelo (campo PATTERN) |
||||||||||||||||||||||||||||||
Este campo se utiliza al importar o exportar en formato XML. Cuando se crea un fichero XML, hay que proporcionar más información; por ejemplo, al crear un fichero XSD que describa la estructura del fichero XML para controlar su validez con las herramientas de verificación de sintaxis integradas en los software ETL. Este campo define si un modelo debe estar asociado a la descripción introducida en el fichero XSD. Si este campo se completa, el fichero XSD contiene una especificación de tipo: Para más información sobre las sintaxis que se pueden utilizar en los modelos, consulta los tutoriales en línea (como este). |
||||||||||||||||||||||||||||||
Etiqueta (campo BAL) |
||||||||||||||||||||||||||||||
Este campo se utiliza al importar o exportar en formato XML. Cuando se crea un fichero XML, hay que proporcionar más información; por ejemplo, al crear un fichero XSD que describa la estructura del fichero XML para controlar su validez con las herramientas de verificación de sintaxis integradas en los software ETL. Este campo define el código de la etiqueta que describe el campo exportado en el modelo, tal y como aparecerá en el fichero XML. |
||||||||||||||||||||||||||||||
Obligatorio (campo OBL) |
||||||||||||||||||||||||||||||
Este campo se utiliza al importar o exportar en formato XML. Cuando se crea un fichero XML, hay que proporcionar más información; por ejemplo, al crear un fichero XSD que describa la estructura del fichero XML para controlar su validez con las herramientas de verificación de sintaxis integradas en los software ETL. Este campo define si el campo es obligatorio. Si tiene asignado el valor Sí, el fichero XSL contiene una especificación de tipo minOccurs="1". |
||||||||||||||||||||||||||||||
Número tabla (campo NUMTAB) |
||||||||||||||||||||||||||||||
Este número, de existir, hace referencia a una tabla de transcodificación que codifica los campos leídos y los formatea según lo esperado. |
Generación de fichero
Campo TYPEXP |
Selecciona el tipo de exportación que quieras realizar. Las opciones son:
|
Fichero de datos (campo FILEXT) |
Este campo define la ruta del fichero de datos por defecto, propuesta al inicio del proceso de exportación o importación. Este fichero de datos se utiliza en modo automático para las cadenas de importaciones o exportaciones y su ruta puede ser relativa. En ese caso, el directorio de la base de datos es el directorio de instalación del software. La ruta también puede integrar el carácter #, en cuyo caso, se aplica la gestión de los números secuenciales (contador):
Por ejemplo, si el contador de exportación es igual a 156, /u/tmp/fic# permite generar el fichero /u/tmp/fic00156. |
Directorio final (campo REPFIN) |
Este campo impone el directorio final al que se transfiere el fichero una vez importado. Cuando no tiene asignado ningún valor, se utiliza el directorio definido en los parámetros generales de la importación o exportación. |
-
Selección de un campo
Utiliza este campo para insertar un conjunto de campos procedentes de una tabla de un modelo, a partir de la línea actual de la tabla.
Bloque número 1
Tabla (campo FICHIER)
Este campo define la tabla de la que se van a seleccionar los campos por insertar.
Tabla
N.º (campo NUMLIG)
Línea en curso de la tabla.
Campo (campo CODZONE)
Indica el nombre del campo en la tabla utilizando la sintaxis que reconoce el software. Por ejemplo, se podrá acceder al nombre del campo FIELDNAME, definido en la tabla de las abreviaciones ABV, mediante la sintaxis [F:ABV]FIELDNAME.
El nombre de los campos personalizados comienza por X_, Y_ o Z_.
En la base de datos, cada campo corresponde a uno o varios campos según si el campo tiene dimensiones o no. Los campos correspondientes son FIELDNAME_0, FIELDNAME_1 y FIELDNAME_2.
Para introducir y consultar el campo correspondiente a la pantalla, su nombre debe ser el mismo en el diccionario de pantallas. La pantalla y la tabla se utilizarán de forma simultánea en la gestión de objetos.
Descripción (campo INTITCOURT)
Descripción asociada al código anterior.
Selección (campo SELECT)
Si el campo tiene asignado el valor Sí, se incluye en la tabla principal. El valor por defecto de los campos:
- que se encuentran en la tabla principal es Sí;
- que no se encuentran en la tabla principal es No.
-
Recálculo posición indicador
Esta función solo está disponible en los modelos con un tipo de fichero de longitud fija. Permite recalcular la posición de cada uno de los campos del grupo de datos en curso (con el mismo indicador de la línea). Se recalcula a partir de la posición 1 en el primer campo del grupo y se va añadiendo la longitud de cada campo para obtener la posición del campo siguiente.
Informes
Los siguientes informes están asociados por defecto a la función:
-
PRTSCR: Impresión pantalla
Se puede modificar con una parametrización diferente.
Botones específicos
-
Validación
Haz clic en este botón para validar el modelo de importación/exportación.
-
Copia
Este botón permite copiar la definición de la ficha desde o en otro dossier.
Bloque número 1
Campo OBJET
Campo CLES
Bloque número 2
Desde el dossier (campo DOSORG)
Indica el dossier desde el que se va a copiar la ficha. Las posibles sintaxis se describen en el anexo dedicado.
Todos los dossieres (campo TOUDOS)
Esta opción permite copiar la ficha en todos los dossieres definidos en el diccionario (tabla ADOSSIER de la solución en curso).
Hacia el dossier (campo DOSDES)
Indica el dossier en el que se va a copiar la ficha. Las posibles sintaxis se describen en el anexo dedicado.
-
Export.
Este botón permite acceder a una pantalla donde se pueden definir los valores por defecto de los criterios con los que se filtran los datos exportados.
- Cuando se lanza la exportación, los criterios se muestran y se pueden modificar.
- Cuando se lanza una serie de exportaciones, los criterios se aplican automáticamente en todos los modelos en los que se han definido.
Tabla Límites
Campo (campo BNOM)
Este campo define el nombre del campo para el que se puede introducir un rango.
Valor inicio (campo BDEB)
Introduce el rango para cada campo cuyo valor sea Entrada o No transferido en la tabla de campos. Si el campo está en blanco, los rangos se consideran no disponibles. Los rangos se proponen por defecto en la exportación.
Valor fin (campo BFIN)
Tabla Criterios
Tablas (campo FICHIER)
Aquí se muestran las tablas utilizadas en el modelo de importación/exportación para filtrar los datos exportados.
Criterio (campo FLGEXP)
Este campo define una condición lógica mediante los campos de la tabla. Solo se exportarán las líneas que cumplan esta condición.
Barra de menú
Opciones > Export. esquema de un modelo
Esta función, a la que se puede acceder cuando el formato de exportación es XML, se utiliza para crear un fichero XSD que describa la estructura del fichero creada por el modelo. El fichero se crea en el subdirectorio que sigue al directorio en el que se crean los dossieres, en el servidor de aplicación:
- X3_PUB/FOLDER/GEN/ALL/WEBS (FOLDER es el nombre del dossier actual)
- El nombre del fichero es WWIMPTEMPLATE.xsd (TEMPLATE es el nombre del modelo).
El fichero XSD permite definir el formato de los datos para realizar una comprobación preliminar de la validez de la sintaxis mediante herramientas ETL. La sintaxis obtenida incluye, además de las cabeceras estándar, líneas de los siguientes tipos:
- Líneas que describen grupos y líneas. En el siguiente ejemplo se muestran un modelo ADI y los campos CODE y NUMTAB con las etiquetas ADI_CODE y ADI_NUMTAB):
<xs:complexType name="ADI"><xs:sequence></xs:complexType><xs:element name="ADI_NUMTAB" type="ADI_NUMTAB" minOccurs="1" maxOccurs="1"/><xs:element name="ADI_CODE" type="ADI_CODE" minOccurs="0" maxOccurs="1"/>...</xs:sequence>
- Líneas que describen tipos de datos:
<xs:simpleType name="ADI_NUMTAB"><xs:restriction base="xs:int"></xs:simpleType><xs:simpleType name="ADI_CODE"><xs:minExclusive value="-32768"/><xs:maxExclusive value="32767"/></xs:restriction><xs:restriction base="xs:string"/></xs:simpleType><xs:maxLength value="5"/><xs:pattern value="{[A-Z]}*"/></xs:restriction>
Estos ejemplos corresponden a campos numéricos y, luego, alfabéticos. Observaciones sobre la gestión de la sintaxis:
- Cada nombre de campo (aquí, ADI_CODE y ADI_NUMTAB) corresponde al contenido de la columna tag del modelo.
- La cabecera del modelo procede de la columna pattern del modelo (aquí, la sintaxis propuesta corresponde a cualquier número de caracteres alfabéticos en mayúscula).
- Las cabeceras minOccurs y maxOccurs se introducen teniendo en cuenta la columna mandatory del modelo.
- Los tipos de datos, que pueden ser xs:string, xs:int, xs:decimal, xs:date, xs:base64Binary o xs:boolean, proceden de los datos de X3 correspondientes, al igual que las cabeceras maxLength, maxExclusive, minExclusive, maxInclusive y minInclusive, según el caso.
Documentación > Párrafos
Este elemento de menú permite acceder a la gestión de la documentación; más concretamente, al primer párrafo de la documentación, si existe, asociada a la ficha actual.
Documentación > Vínculos
Este elemento de menú permite acceder a la gestión de los vínculos. Se utiliza para definir los vínculos entre esta y otras fichas; por ejemplo, entre funciones y parámetros. Estos vínculos son específicos de la documentación y se utilizan para cargar la generación de las estructuras.
Documentación > Generación
Este elemento de menú lanza la generación de la documentación. También se puede lanzar mediante el botón Generación en la parte inferior de la pantalla.
Puedes lanzar tres tipos de generación a la vez o individualmente:
- estructura de la documentación desde el diccionario (tablas ADOCUMENT, ADOCBLB y ADOCCLB)
- documentación de las tablas anteriores
- documentación de los campos
El rango propuesto por defecto tiene en cuenta la ficha actual, pero se puede modificar en el lanzamiento.
Mensajes de error
Además de los mensajes genéricos, se pueden mostrar los siguientes mensajes de error durante la entrada:
Importación imposible en este objeto
El objeto no se ha definido para la importación. La casilla Import. no está marcada en la pestaña Varios.
El código ya existe en línea nnn
El código ya se ha introducido con otros grupos.
ZZZ Campo inexistente (XXXXXX, YYYYY, ... )
Este mensaje aparece cuando en la tabla del grupo se ha expresado un vínculo con un campo ZZZ que no está referenciado en ninguna tabla (XXXXX, YYYYY, ...) definida en líneas anteriores.
Separador (/) no registrado en los campos Prohibido en un modelo de importación
En la tabla de campos no hay ninguna línea con el identificador del grupo G (sintaxis /).
Vínculo imposible. Prohibido en un modelo de importación
En las líneas que describen los campos se ha intentado añadir un campo procedente de una tabla que no está vinculada a la tabla principal del grupo.
Longitud incorrecta nnn<>mmm
La longitud definida por el formato numérico (mmm) es diferente de la del campo definido en la columna anterior (nnn).
Tablas utilizadas
Consulta la documentación de Puesta en marcha.
Recomendaciones de implementación
Principios básicos
Ten en cuenta los siguientes principios cuando parametrices un modelo de importación:
- La importación permite acciones de creación y modificación.
- Para determinar la acción por realizar en el registro importado, el sistema controla la existencia del objeto por procesar cargando la clave principal del objeto con la información en el registro importado.
- Si la clave principal no está parametrizada, los registros cambian al modo creación. Estos solo funcionarán si la clave del objeto por crear se puede asignar automáticamente. Por ejemplo, con un contador.
- Una importación corresponde a una simulación de entrada en todas las pantallas vinculadas al objeto importado.
- Los campos de la pantalla se procesan con los mismos controles que una entrada interactiva.
- Los campos que no se pueden introducir no se tienen en cuenta, salvo en casos particulares. Por lo tanto, esos campos no se importan.
- El orden en el que se parametrizan los campos del fichero es irrelevante. Primero, se cargan todos los campos y, luego, se importan en el orden en el que se muestran en las pantallas.
Modelos estándar proporcionados
Los datos siempre se pueden exportar, independientemente del objeto. No obstante, no ocurre lo mismo con las importaciones. Los mecanismos automáticos para descodificar los flujos de datos y la llamada a las condiciones vinculadas al objeto automatizan la importación, pero esto no es suficiente para importar objetos complejos automáticamente. Por lo tanto, no todos los objetos se pueden importar.
En el dossier de referencia, se proporciona un modelo de importación editable para cada objeto importable. La importación también puede estar vinculada a funcionalidades específicas. Esta información se encuentra en la ayuda en línea asociada a los modelos de importación que contienen casos específicos. Puedes acceder a ella seleccionando Alt + F1 cuando se carga el modelo.
Para consultar la lista de la ayuda correspondiente, ordenada por módulo, haz clic aquí.
Tabla de indicadores
La estructura de los ficheros por importar o exportar depende de las opciones de extracción o integración del software externo.
Debes organizar los datos en grupos de líneas lógicos, que pueden ser o no de distintos tipos (cabecera, detalle, subdetalle, etc.). Puedes definir la organización de estos grupos en la tabla de identificadores, en la primera pestaña del modelo.
Cada grupo está asociado a una tabla de la base de datos: la primera es la tabla principal del objeto y las demás se definen con los vínculos de las tablas anteriores. Al utilizar un modelo de exportación, puedes definir los vínculos con cualquier tabla de la base de datos en la que exista un vínculo teórico para extraer los datos vinculados. No obstante, con un modelo de importación, solo puedes utilizar las tablas actualizadas con el objeto. Por ejemplo, no puedes importar el pedido y el cliente de forma simultánea. El objeto del pedido no se ha diseñado de esa manera.
Esta tabla puede estar en blanco si la estructura de datos por importar o exportar está basada únicamente en la tabla principal. En este caso, la columna Código de la página siguiente permanece en blanco. No tienes que crear varios grupos de datos para exportar simultáneamente varias tablas vinculadas. Si hay campos extraídos de varias tablas que se muestran en un solo grupo de datos, el proceso de exportación intenta resolver los vínculos entre las tablas mediante la estructura de vínculos descrita en el diccionario. Esto significa que solo hay un vínculo posible de la tabla principal del grupo a la tabla descrita. De lo contrario, se utiliza el primer vínculo encontrado, aunque no sea el correcto.
Si el modelo se define con una longitud fija, tienes que crear al menos un grupo y definir la longitud del registro desde algún lugar de la tabla de grupos. Si el indicador del grupo no es obligatorio en la lista de campos, basta con definir un código en blanco para el grupo. En este caso, solo se puede definir un grupo y ya no habrá que introducir la columna Código en la pestaña siguiente.
La tabla de identificadores solo está disponible si el objeto es de un único tipo. Si se definen indicadores del grupo, cada uno se asocia a un nivel, a una tabla y a las condiciones que permiten crear vínculos entre ellos.
La tabla principal se define con el valor 1 para una importación o una exportación. Esta no se introduce en la tabla, pero se deduce del objeto asociado al modelo.
El nivel de una tabla vinculada a otra anterior es el de la tabla anterior, en el caso de un vínculo directo entre ambas, o uno superior, en el caso de que haya varios registros vinculados al registro de la tabla anterior. El vínculo se caracteriza por la clave de la tabla de destino por leer y por la expresión del segmento de la clave cuyo valor define las líneas vinculadas.
Si defines los grupos como en este ejemplo:
Nivel |
Grupo |
1 |
A |
2 |
B |
2 |
C |
3 |
D |
Obtendrás esta información superpuesta:
Grupo A registro 1 |
|
|
|
Grupo B registro 1,1 |
|
|
Grupo B registro 1,2 |
|
|
... |
|
|
Grupo B registro 1,N |
|
|
Grupo C registro 1,1 |
|
|
|
Grupo D registro 1,1,1 |
|
|
Grupo D registro 1,1,2 |
|
|
... |
|
|
Grupo D registro 1,1,M |
|
Grupo C registro 1,2 |
|
|
|
Grupo D registro 1,2,1 |
|
|
... |
|
Grupo C registro 1,Q |
|
|
|
Grupo D registro 1,Q,1 |
|
|
... |
|
|
Grupo D registro 1,Q,R |
Grupo A registro 2 |
|
|
|
Grupo B registro 2,1 |
|
|
... |
|
Ejemplo de grupo
Para explicar la parametrización, los siguientes ejemplos contienen un modelo de exportación con sociedades y plantas:
- La tabla principal COMPANY es de nivel 1.
- En este ejemplo, la información de la divisa contable (campo ACCCUR) es obligatoria en el fichero exportado. En este caso, no es necesario definir un grupo nuevo vinculado a la tabla principal. Basta con definir los campos de la tabla TABCUR en el grupo. A continuación, el proceso de exportación buscará el vínculo entre las tablas COMPANY y TABCUR en el diccionario. Al haber varios vínculos, se utilizará el primero. En este caso, es el correcto.
- Si hubieras querido exportar la información de la divisa del capital de stock de la sociedad (campo RGCCUR), tendrías que haber creado un segundo bloque de datos. También habría sido de nivel 1 según la tabla TABCUR. En la columna del vínculo se mostraría RGCCUR. También tendrías que haber hecho esto si el vínculo no fuera explícito. Por ejemplo, si en el campo CREUSR, que corresponde al código del usuario que ha creado el registro, se utiliza un tipo genérico (A) que no permite los vínculos automáticos. Si se tuviera que mostrar la información del usuario que ha creado el registro, tendrías que haber definido el vínculo con un grupo.
- Si se tiene que mostrar la lista de plantas vinculadas a la sociedad, se crea un grupo de nivel 2 desde la tabla FACILITY con un vínculo basado en el índice FCY, con el campo CPY de la tabla principal.
- Si se tienen que extraer los valores de parametrización de cada sociedad, se crea un segundo grupo de nivel 2 desde la tabla ADOVAL. Este segundo grupo tendría un vínculo basado en el índice ADW0, con el valor del campo CPY de la tabla principal.
En la siguiente tabla se muestran los identificadores que habría que introducir:
Nivel |
Código |
Tabla |
Clave |
Vínculo |
Comentarios |
1 |
CPY |
COMPANY |
CPY0 |
|
Registro de grupo principal |
1 |
CUR |
TABCUR |
TCU0 |
[CPY]RGCCUR |
1 registro vinculado |
2 |
FCY |
FACILITY |
FCY1 |
[CPY]CPY |
N registros vinculados |
2 |
ADP |
ADOVAL |
ADW0 |
[CPY]CPY |
M registros vinculados |
Formatos de ficheros
Los formatos de los ficheros vienen determinados por el tipo. Pueden ser:
Separadores de campos (formato 1 ASCII)
Este es un campo de longitud variable donde todos los campos están separados por un separador (el campo del separador es SC).
Campo 1 registro 1 |
SC |
Campo 2 registro 1 |
SC |
... |
Campo N registro 1 |
SC |
Campo 1 registro 2 |
SC |
Campo 2 registro 2 |
SC |
... |
Campo N registro 2 |
SC |
Separadores de registros (formato 2 ASCII)
Este es un fichero de longitud variable donde todos los campos están separados por un separador (el separador de campo). Una vez que el registro está completo, el separador de campo se sustituye por otro; el separador de línea SL).
Campo 1 registro 1 |
SC |
Campo 2 registro 1 |
SC |
... |
Campo N registro 1 |
SL |
Campo 1 registro 2 |
SC |
Campo 2 registro 2 |
SC |
... |
Campo N registro 2 |
SL |
Formato delimitado
Este es un fichero de longitudes variables del mismo tipo que el fichero del separador de registro (dos separadores distintos). Además, los campos de cadenas se encuentran en un delimitador de campos (DC). En el siguiente ejemplo, el segundo campo es alfanumérico.
Campo 1 registro 1 |
SC |
DC |
Campo 2 registro 1 |
DC |
SC |
... |
Campo N registro 1 |
SL |
Campo 1 registro 2 |
SC |
DC |
Campo 2 registro 2 |
DC |
SC |
... |
Campo N registro 2 |
SL |
Formato de longitud fija
Este es un fichero donde los campos se definen con una longitud fija y sin separador de campos. Tienes que definir la longitud total del registro. Puede haber un separador de líneas. En ese caso, no definas su longitud en la longitud del registro.
También puedes definir la longitud de cada grupo cuando se hayan parametrizado bloques de datos en la tabla de indicadores.
Campo 1 registro 1 |
<------Campo 2 registro 1------> |
... |
<--Campo N registro 1--> |
SL |
Campo 1 registro 2 |
<------Campo 2 registro 2------> |
... |
<--Campo N registro 2--> |
SL |
Formato XML
Este es un formato donde los datos se definen en etiquetas XML.
En una exportación, este fichero contiene información sobre el modelo y sobre la extracción. También puedes utilizar el menú Opciones > Export. esquema de un modelo para exportar un fichero XSD que describa la estructura del fichero creada por el modelo.
En una importación, los datos son menos importantes; se pueden limitar en el fichero por importar.
Formato plano
Este formato es el separador de registros variable o, si se ha introducido el campo Delimitador de campo, el formato delimitado.
Si en el modelo se han definido varios niveles, solo se genera una línea.
Nivel 1 |
Campo 1 registro 1 |
SC |
DC |
Campo 2 registro 1 |
DC |
SC |
... |
Nivel 2 |
Campo 1 registro 2 |
SC |
DC |
Campo 2 registro 2 |
SL |
En una importación, el uso de este tipo de formato implica la agrupación de todas las líneas de detalle de un nivel específico en la misma cabecera si los campos de dicha cabecera son idénticos.
Formato con cabecera
Este es el formato plano con una línea de cabecera adicional correspondiente a los títulos de los campos del modelo.
Este formato se utiliza, por ejemplo, en Alemania para los ficheros GDPDU.
Anexos técnicos
Para más información, consulta los siguientes anexos técnicos: