Parametrización > Utilización > Importaciones/Exportaciones > Modelos import./export. 

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

SEEREFERTTO Consulta la documentación de Puesta en marcha

Gestión de la pantalla

Cabecera

Presentación

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.

Cerrar

 

Campos

Los campos siguientes están presentes en esta pestaña :

Este código identifica el modelo de importación o exportación.

  • Descripción (campo INTIT)

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:

  • otros registros como los documentos y parámetros
  • los procesos en masa

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.

Cerrar

 

Pestaña Cabecera

Presentación

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

Cerrar

 

Campos

Los campos siguientes están presentes en esta pestaña :

General

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.

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 (campo MODULE)

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.

Un código de actividad permite:

  • definir como opcional un elemento del diccionario si el valor asociado al código de actividad es nulo;
  • identificar elementos específicos si se marcan con un código que comienza por X, Y o Z;
  • asignar un número máximo de líneas cuando el código de actividad marca elementos desde una tabla.

Si el código de actividad está desactivado:

  • el elemento marcado no se puede utilizar;
  • el código asociado no se puede gestionar ni activar.

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.

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. Nota: 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 estos:

  • el carácter de "avance de línea" (\010), que corresponde al final de la línea en los ficheros de texto Unix;
  • la combinación de dos caracteres de "retorno de carro" y de "avance de línea" (\013\010), que corresponde al final de la línea en los ficheros de texto Windows.
  • 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:

  • comillas simples: '...'
  • comillas dobles: "..."
  • Formato fichero (campo CODDBA)

Indica el formato de los caracteres utilizados en el fichero:

  • ASCII es el formato clásico en el que un carácter equivale a un byte en el fichero. Este tipo de formato permite tratar los caracteres occidentales clásicos, con varios conjuntos de caracteres posibles, definidos en el campo correspondiente.
  • UTF-8 corresponde a un formato UNICODE en el que el número de caracteres es variable (de 1 a 4; 1 es el conjunto de caracteres latinos no acentuados). Este formato permite gestionar todos los tipos de caracteres, especialmente los chinos.
  • UCS-2 corresponde a un formato estándar de Microsoft, en el que los caracteres se almacenan sistemáticamente en 2 bytes.

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:

  • el código ISO 8859 (que es, por otro lado, el conjunto interno de Adonix cuando se trabaja en ASCII)
  • el código del tercero IBM
  • el código ASCII de 7 bits sin acentos (las letras acentuadas se convierten en letras en minúscula sin acento)
  • 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:

  • un valor inferior o igual a 40 se considera parte del siglo XXI;
  • un valor superior a 40 se considera parte del siglo XX.

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:

  • 0 : 0. La elección es un número que indica el rango del menú en la tabla. 1 para la primera opción, 2 para la segunda, etc. Esto también corresponde al formato interno donde se almacena el menú local en la base de datos.
  • 1 : 1. La elección se introduce utilizando el código, en un carácter, asociado a cada elección del menú local. Este código no se puede visualizar en la gestión de menús locales. Se puede definir en la gestión de mensajes de las funciones de desarrollo, donde se puede introducir este código interno. Esta es la única utilidad de este código interno, a diferencia de las versiones anteriores de los caracteres, donde se utilizaba como acelerador de entrada.
  • n : (n>1). Los n primeros caracteres de la descripción que aparecen en la introducción. Cuando se utiliza esta opción, el algoritmo de reconocimiento busca en el primer carácter, después en el segundo y así sucesivamente hasta que se encuentra aquel al que corresponde el título. De esta forma, si se quiere buscar CHQ en un menú local cuyos campos son Metálico, Transferencia, Cheque, Letra, Tarjeta, el algoritmo reconocerá Cheque, al coincidir en las dos primeras letras.

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 erróneos. 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:

  • $RAZCRE con llamada directa desde la importación
  • $SAIMSK con llamada directa desde la importación en cada registro leído (reemplaza la llamada SAIMSK estándar; asignación y control de los campos de la pantalla a partir de la clase [F])
  • 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.

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.

Cerrar

 

Pestaña Campos

Presentación

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.

Cerrar

 

Campos

Los campos siguientes están presentes en esta pestaña :

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.

Este campo indica la tabla de la base de datos donde se definen los datos que se van a importar o exportar. Notas:

  • Este campo es obligatorio, incluso si no se utiliza. Si, en el modelo de exportación, se indica una expresión del cálculo, esta puede hacer referencia a campos de tablas diferentes.
  • La tabla correspondiente no siempre es la tabla principal del grupo; puede tratarse se una tabla vinculada a la tabla principal de este grupo o de uno de los grupos anteriores del nivel superior. Si no se encuentra ningún vínculo, se muestra un mensaje de advertencia: Enlace automático no gestionado. Esto significa que el proceso de importación o de exportación (indicado en la primera sección) debe establecer el vínculo manualmente, por ejemplo, definiendo la tabla en la acción IMP_OUVRE y la lectura de la tabla en la acción IMP_LIENS.
  • 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:

  • La barra (/) indica que un indicador de grupo se introduce en la exportación o se busca durante este proceso. Cuando hay varios grupos en un modelo compatible con la importación, este separador es obligatorio para cada uno. Si se utiliza un modelo de tipo Delimitado, el separador de grupo se considera un campo normal acotado por separadores de campos y delimitadores.
  • La sintaxis más sencilla es FIELD(index); cuando se importa o exporta un campo procedente de la tabla referenciada en la columna anterior. Una ventana de selección muestra las opciones disponibles.
  • Si aquí se introduce una cadena de caracteres constante entre comillas dobles, el campo se incluirá tal y como consta en el fichero que se va a exportar y se omitirá en la importación.
  • Si no se introduce nada, habrá un campo en blanco en el fichero exportado acotado por delimitadores de campo si el modelo es de tipo Delimitado. En el modo de importación, esto significa que el campo correspondiente se debe ignorar.
  • La sintaxis *N, donde N equivale a un número entre 1 y 99, también se puede utilizar. Esta permite asignar (en la importación) o leer (en la exportación) la variable GIMP(N). GIMP es una variable global que consta de una cadena de hasta 100 caracteres, y hay que asignarla a un proceso personalizado asociado a la importación o la exportación.
  • La última opción, aplicable únicamente a la exportación, consiste en definir una expresión calculada cualquiera precedida del signo igual (=). Esta expresión permite realizar llamadas a constantes, funciones, variables, operadores o campos que proceden de otras tablas. La sintaxis se verifica en el momento en que se introduce. El control del contexto, que por ejemplo permite comprobar la existencia de variables, no se puede verificar.
  • 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:

  • No entrada implica que no se introducirá ningún rango de inicio y de fin al inicializar la exportación.
  • Entrada implica que se introducirá un rango de inicio y de fin al inicializar la exportación.
  • No transferido implica que se podrá introducir un rango de inicio y de fin al inicializar la exportación sin que el campo se transfiera durante el proceso.
  • 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:

  • Las cifras pueden tener el prefijo < o > y justificación izquierda o derecha completada con ceros (la derecha se debe utilizar por defecto).
  • Las cifras pueden tener + como prefijo o sufijo. Este signo es obligatorio antes o después de la cifra.
  • Las cifras pueden tener el prefijo *. El separador decimal no debe aparecer. En la siguiente tabla se muestran ejemplos de cómo se formatea un importe. Los espacios se sustituyen por #:

Formato

Importe

Resultado del formateo

7,2

123,456

####123,45

7,2

-123,456

### -123,45

>7,2

123,456

0000123,45

>7,2

-123,456

-000123,45

<7,2

123,456

123,45####

<7,2

-123,456

-123,45###

6,2+

123,456

###123,45+

>6,2+

123,456

000123,45+

<6,2+

-123,456

123,45-###

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:
pattern value='value_entered_in_the_pattern_field'

Para mayor 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 , el fichero XSL contiene una especificación de tipo minOccurs='1'.

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:

  • cliente
  • servidor
  • 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):

  • En el modo de importación, se buscan todos los ficheros cuyo modelo coincide con la ruta y el # representa 5 cifras. Los ficheros se integran en orden ascendente según el número.
  • En el modo de exportación, se crea un fichero con el valor formateado del contador [C]EXPORT en 5 cifras. Esto implica que la casilla Gestión contador esté marcada al iniciar la función de exportación.

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.

Cerrar

 

Icono Acciones

Selección de un campo

Campos

Los campos siguientes están presentes en esta ventana :

Bloque Número 1

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 , se incluye en la tabla principal. Por defecto, asigna a los campos:

  • que no se incluyen en la tabla principal el valor ;
  • que se incluyen en la tabla principal el valor No.

Cerrar

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.

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.

 

Cerrar

 

Informes

Por defecto, los informes siguientes están asociados a la función :

 PRTSCR : Impresión pantalla

Pero esto se puede modificar por parametrización.

Botones específicos

Haz clic en este botón para validar el modelos de importación/exportación.

Los campos siguientes están en la ventana abierta por el botón :

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.

Cerrar

Los campos siguientes están en la ventana abierta por el botón :

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 los rangos de inicio y de fin para cada campo definido como criterio introducido o no mostrado en la tabla de campos. Si se introduce un campo vacío, se considerará que no tiene rangos. Estos rangos se propondrán por defecto en el momento de la exportación.

  • Valor fin (campo BFIN)

 

Tabla Criterios

Las tablas que se utilizan en el modelo de importación/exportación se incluyen aquí para poder filtrar los datos exportados.

  • Criterio (campo FLGEXP)

Este campo permite definir una condición lógica utilizando los campos de la tabla. Solo se exportan las líneas que cumplan esta condición.

Cerrar

Este botón da acceso a una pantalla en la que se pueden definir los valores por defecto de los criterios para filtrar los datos exportados.

  • Cuando se lanza una exportación, los criterios se muestran y se pueden modificar.
  • Cuando se lanza una cadena de exportaciones, los criterios se aplican automáticamente, sin entrada, en cada uno de los modelos para los que se han definido.

Barra de menú

Opciones/Export. esquema de un modelo

Esta función, disponible únicamente cuando el formato de exportación es XML, permite crear un fichero XSD que define la estructura del fichero creado por el modelo. Este fichero se crea en el subdirectorio que sigue al directorio en el que se encuentran los dossieres en el servidor de aplicación:

  • X3_PUB/FOLDER/GEN/ALL/WEBS, donde FOLDER es el nombre del dossier en curso.
  • El nombre de este fichero es WWIMPTEMPLATE.xsd, donde TEMPLATE es el nombre del modelo de importación/exportación.

Este fichero XSD define el formato de los datos para permitir un control preliminar de validez sintáctica mediante herramientas de tipo ETL. La sintaxis obtenida integra (además de las cabeceras estándar) líneas del siguiente tipo:

  • Líneas que describen grupos y líneas; en este caso, un modelo ADI y los campos CODE y NUMTAB, cuyas etiquetas son ADI_CODE y ADI_NUMTAB):

<xs:complexType name='ADI'>

<xs:sequence>

<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>

</xs:complexType>

  • Líneas que describen tipos de datos:

<xs:simpleType name='ADI_NUMTAB'>

<xs:restriction base='xs:int'>

<xs:minExclusive value='-32768'/>

<xs:maxExclusive value='32767'/>

</xs:restriction>

</xs:simpleType>

<xs:simpleType name='ADI_CODE'>

<xs:restriction base='xs:string'/>

<xs:maxLength value='5'/>

<xs:pattern value='{[A-Z]}*'/>

</xs:restriction>

</xs:simpleType>

Estos son ejemplos de campos de tipo numérico y alfanumérico. Algunas observaciones sobre la forma en la que se gestiona la sintaxis:

  • El nombre de cada campo (ADI_CODE y ADI_NUMTAB) corresponde al contenido de la columna Etiqueta del modelo.
  • El campo de modelo procede de la columna Modelo (la sintaxis propuesta corresponde a un número cualquiera de caracteres alfabéticos en mayúscula).
  • Los campos minOccurs y maxOccurs se completan teniendo en cuenta la columna obligatoria del modelo.
  • Los tipos de datos (que pueden ser, según el caso, xs:string, xs:int, xs:decimal, xs:date, xs:base64Binary o xs:boolean) proceden de los datos X3 correspondientes y del campo maxLength, además de los campos maxExclusive, minExclusive, maxInclusive y minInclusive según el caso.

Mensajes de error

Además de los mensajes genéricos, los mensajes siguientes de error pueden aparecer durante la captura :

Importación imposible en este objeto

La opción de importación no se ha definido en el objeto. La casilla Import. no se ha marcado en la sección Varios.

El código ya existe en línea nnn

Se ha introducido dos veces el mismo código asociado a grupos diferentes.

ZZZ campo inexistente (XXXXXX, YYYYY, ... )

Este mensaje aparece cuando se expresa un vínculo en la tabla de grupos utilizando un campo ZZZ no referenciado en ninguna de las tablas (XXXXX, YYYYY, …) definidas en las líneas anteriores.

G separador (/) no registrado en los campos. Prohibido en un modelo de importación

En la tabla de campos, en el grupo G, no hay ninguna línea que indique la ubicación del identificador del grupo (sintaxis /).

Vínculo imposible. Prohibido en un modelo de importación

En las líneas que describen los campos, se ha intentado insertar un campo procedente de una tabla que no puede estar vinculada a la tabla principal del grupo.

Longitud errónea nnn<>mmm

La longitud definida por el formato numérico (mmm) es distinta a la del campo definido en la columna anterior (nnn).

Nota:

No se realiza ninguna prueba de existencia del directorio en la ruta definida por defecto en el modelo; es posible que el directorio no exista todavía. Este control solo se realiza en el lanzamiento de la importación/exportación.

Tablas utilizadas

SEEREFERTTO Consulta la documentación de Puesta en marcha

Consejos de implementación

Principios básicos

Hay que tener en cuenta estos principios al parametrizar un modelo de importación:

  • La importación permite crear y modificar.
  • Para determinar la acción que quieres realizar en un registro importado, el sistema lleva a cabo una prueba de existencia del objeto que se va a procesar. La prueba se lleva a cabo cargando la clave principal del objeto con los datos del registro importado.
  • Por tanto, si la clave principal no está definida, todos los registros pasan al modo de creación. Los registros solo funcionan si la clave del objeto que se va a crear se puede asignar automáticamente; por ejemplo, con un contador (números de secuencia).
  • Una importación corresponde a una simulación de entrada de todas las pantallas vinculadas al objeto importado.
  • Procesa todos los campos de la pantalla realizando los mismos controles que una entrada interactiva.
  • No tiene en cuenta los campos de la pantalla que no se pueden completar, salvo casos específicos y referenciados. Por lo tanto, los campos parametrizados en un modelo que corresponde a un campo que no se puede completar no se importan.
  • El orden en el que se parametrizan los campos en el registro es irrelevante. La importación carga todos los campos del fichero y, a continuación, los importa en el orden de los campos en las pantallas.

Modelos estándar proporcionados

A pesar de que los datos se puedan exportar siempre independientemente del objeto, este no es el caso de la importación. Los mecanismos automáticos de decodificación de flujos de datos y la llamada a los controles vinculados al objeto suponen un elevado nivel de automatización de la importación. No obstante, esto no es suficiente para importar objetos complejos de forma automática. Por lo tanto, no se pueden importar todos los objetos.

En el dossier de referencia, se proporciona un modelo de importación modificable para cada objeto que se puede importar, aunque esta importación también se puede vincular a determinadas funcionalidades. En el centro de ayuda en línea de los modelos de importación con casos particulares, hay información al respecto. Para consultar esta documentación, presiona a la vez las teclas Alt + F1 del teclado una vez que le modelo se haya cagado.

Haz clic aquí para ver una lista de las ayudas relacionadas clasificadas por módulo.

Tabla de identificadores

La elección de la estructura de los ficheros de importación/exportación depende de la posibilidad de extracción o integración del sistema con el que se va a trabajar.

En todos los casos, los datos deben estar organizados en grupos lógicos de líneas, que pueden ser de varios tipos (cabecera, detalle, subdetalle, por ejemplo) o de uno solo. Puedes definir la organización de los grupos en la tabla de identificadores, en la primera sección del modelo.

Cada grupo está asociado a una de las tablas de la base de datos. La primera es la tabla principal del objeto. Las otras se definen mediante vínculos que redirigen a las tablas anteriores. Cuando utilizas el modelo para exportar un objeto, puedes definir vínculos con cualquier tabla de la base que cuente con un vínculo teórico para poder extraer los datos asociados. En el caso de un modelo de importación, solo puedes utilizar las tablas que ha actualizado el objeto; por ejemplo, no puedes importar el pedido y el cliente a la vez, pues el objeto "pedido" no se ha concebido para este fin.

Esta tabla se puede quedar en blanco si la estructura de los datos que se van a importar o exportar se basa únicamente en el uso de la tabla principal. En tal caso, la columna Código permanece en blanco en la siguiente página. Si se exportan simultáneamente varias tablas vinculadas, no es necesario crear varios grupos de datos. De hecho, si los campos extraídos de las tablas se muestran en un mismo grupo de datos, el proceso de exportación va a intentar definir los vínculos entre tablas utilizando la estructura de vínculos descrita en el diccionario. Esto significa que solo puede haber un vínculo entre la tabla principal y la tabla descrita. De lo contrario, se utiliza el primer vínculo que se encuentre, aunque no sea el correcto.

Hay un caso particular: si el modelo se define con una longitud fija, es necesario crear al menos un grupo. En ese caso, debes definir la longitud del registro en la tabla de los grupos. Si el indicador de grupo no es obligatorio en la lista de campos, basta con dejar en blanco el código del grupo. De esta forma, solo se podrá definir un grupo y ya no se completará la columna Código en la sección siguiente.

La tabla de identificadores solo se puede completar cuando el objeto es simple. Si se definen identificadores de grupo, hay que asociar cada uno a un nivel, una tabla y las condiciones de vínculo que permiten crear vínculos entre ellos.

La tabla principal se define en el nivel 1 para la importación y la exportación. Esta no se puede introducir en la tabla, pero se deduce según el objeto asociado al modelo.

En todas las tablas vinculadas a una tabla anterior, el nivel es igual al nivel de la tabla anterior cuando hay un vínculo unívoco entre ambas tablas. Este nivel será superior si se vinculan varios registros a un registro de la tabla anterior. El vínculo se caracteriza por la clave de la tabla de destino que se va a leer y por la expresión de los segmentos de claves cuyo valor define las líneas vinculadas.

Si defines grupos como en el siguiente ejemplo:

Nivel

Grupo

1

A

2

B

2

C

3

D

Obtendrás estos datos, que se superponen:

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 grupos

Para ilustrar esta parametrización, se puede tomar como ejemplo un modelo (solo de exportación) con sociedades y plantas:

  • La tabla principal COMPANY está en el nivel 1.
  • En este ejemplo, los datos vinculados a la divisa contable (campo ACCCUR) deben constar en el fichero exportado. En este caso, no es necesario definir un nuevo grupo vinculado a la tabla de la sociedad; basta con definir los campos de la tabla TABCUR en el grupo. El motor de exportación recorrerá el diccionario para buscar un vínculo entre las tablas COMPANY y TABCUR. Como varios, utilizará el primero, En ese caso, es el necesario.
  • Si hubiéramos querido exportar los datos vinculados a la divisa del capital social (campo RGCCUR), habría que haber creado un segundo grupo de datos, también de nivel 1, basado en la tabla TABCUR, con RGCCUR en la columna de los vínculos. Este también habría sido el caso si el vínculo no fuera explícito. Por ejemplo, el campo CREUSR, que corresponde al código del usuario que ha creado la ficha, utiliza un tipo genérico (A) que no permite vincular automáticamente. Si hubiéramos querido mostrar los datos del usuario que ha creado la ficha, habría que haber definido el vínculo mediante un grupo.
  • Supongamos que ahora queremos mostrar la lista de plantas asociadas a la sociedad. Creamos un grupo de nivel 2, mediante la tabla FACILITY, con un vínculo basado en el índice FCY que tomará el valor del campo CPY de la tabla principal.
  • Por último, si es necesario extraer los valores de la parametrización vinculados a cada sociedad, se crea un segundo grupo de nivel 2 a partir de la tabla ADOVAL. Este segundo grupo tendría un vínculo basado en el índice ADW0 tomando el valor del campo CPY de la tabla principal.

La siguiente tabla resume los Identificadores tal y como habría que introducirlos:

Nivel

Código

Tabla

Clave

Vínculo

Comentarios

1

CPY

COMPANY

CPY0

Registro principal del grupo

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 fichero

Los formatos de fichero dependen del tipo de fichero. Se pueden dar estos valores:

Separadores de campo (formato ASCII 1)

Es un fichero de longitud variable cuyos campos están separados mediante un separador (el separador de campo 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

Separador de registro (formato ASCII 2)

Es un fichero de longitud variable cuyos campos están separados mediante un separador (el separador de campo). Una vez terminado un registro, otro separador (el separador de línea denominado SL) sustituye al separador del campo.

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

Es un fichero de longitud variable del mismo tipo que el fichero "separador de registro" (dos separadores distintos). Asimismo, los campos de tipo cadena de caracteres están delimitados mediante un delimitador de campo (denominado DC). En este ejemplo, el segundo campo es de tipo 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

Es un fichero cuyos campos están definidos con una longitud fija, sin separador de campo. Debes indicar la longitud total del registro en la parametrización. Puede haber un separador de línea. En este caso, no es necesario incluir su longitud en la longitud del registro.

También puedes definir la longitud de cada grupo cuando los bloques de datos están definidos 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

Es un formato en el que los datos se definen en etiquetas XML.

En la exportación, se recupera un gran volumen de datos vinculados al modelo y a la extracción simultáneamente. El menú Opciones/Export. esquema de un modelo también permite exportar un fichero XSD que describe la estructura del fichero creado por el modelo.

En la importación, los datos tienen menos relevancia. Es posible limitar los datos en el fichero que se va a importar.

Formato plano

Este formato es el formato variable Separador de registro o el formato delimitado (si se ha completado el campo Delimitador de campo).

Si se definen varios niveles en el modelo de importación/exportación, solo se genera una línea.

Indicador nivel 1

Campo 1 registro 1

SC

DC

Campo 2 registro 1

DC

SC

...

Indicador nivel 2

Campo 1 registro 2

SC

DC

Campo 2 registro 2

SL

En la importación, este tipo de formato conlleva la agrupación de todas las líneas de detalle de un nivel determinado en la misma cabecera cuando todos los campos repetidos de la cabecera son idénticos.

Formato de cabecera

Es el mismo que el formato plano, pero con una línea de cabecera adicional correspondiente a los títulos de los campos del modelo.

Por ejemplo, en Alemania, este formato se utiliza para los ficheros GDPDU.

Anexos técnicos

Para mayor información, consulta los siguientes anexos técnicos: