Consulta la documentación de Puesta en marcha
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. |
| Permite definir una descripción asociada a cada ficha. |
| 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. |
| 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
Presentación
Esta sección define las características generales del modelo:
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. |
| 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:
Si el código de actividad está desactivado:
|
| 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. |
| 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. |
| 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
| 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. |
| 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. |
| 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 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:
|
| Indica el formato de los caracteres utilizados en el fichero:
|
Export.
| Si esta casilla está marcada, se puede utilizar este modelo para exportar datos. |
| 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
| Con el conjunto de caracteres ASCII, puedes utilizar diferentes formatos estandarizados:
|
| 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 ("."). |
| 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. |
| Descripción asociada al código anterior. |
| 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. |
| Descripción asociada al código anterior. |
Import.
| Si este campo está seleccionado, se puede utilizar este modelo para importar los datos. |
| Utiliza este campo para modificar un registro que ya exista durante la importación. |
| 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. |
| 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:
|
| 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
| Línea en curso de la tabla. |
| 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. |
| 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. |
| 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. |
| 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. |
| En el caso de un tipo de fichero de longitud fija, es necesario indicar el número de caracteres de cada registro. |
Cerrar
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:
Cerrar
Campos
Los campos siguientes están presentes en esta pestaña :
Tabla Campos
| Línea en curso de la tabla. | |
| 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 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:
| |
| Añade un comentario que ayude a entender mejor la configuración. | |
| Hay tres opciones posibles en este campo:
| |
| 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. | |
| Esta zona determina el tamaño del campo en el fichero secuencial. | |
| 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). | |
| 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 mayor información sobre las sintaxis que se pueden utilizar en los modelos, consulta los tutoriales en línea (como este). | |
| 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. | |
| 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'. | |
| 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
| Selecciona el tipo de exportación que quieras realizar. Las opciones son:
|
| 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. |
| 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
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. |
| Línea en curso de la tabla. |
| 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 asociada al código anterior. |
| Si el campo tiene asignado el valor Sí, se incluye en la tabla principal. Por defecto, asigna a los campos:
|
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.
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
Por defecto, los informes siguientes están asociados a la función :
PRTSCR : Impresión pantalla
Pero esto se puede modificar por parametrización.
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
Bloque Número 2
Cerrar |
Los campos siguientes están en la ventana abierta por el botón : Tabla Límites
Tabla Criterios
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.
|
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:
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:
<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>
<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:
Además de los mensajes genéricos, los mensajes siguientes de error pueden aparecer durante la captura :
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.
Se ha introducido dos veces el mismo código asociado a grupos diferentes.
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.
En la tabla de campos, en el grupo G, no hay ninguna línea que indique la ubicación del identificador del grupo (sintaxis /).
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.
La longitud definida por el formato numérico (mmm) es distinta a la del campo definido en la columna anterior (nnn).
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.
Hay que tener en cuenta estos principios al parametrizar un modelo de importación:
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.
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 | ||
... |
Para ilustrar esta parametrización, se puede tomar como ejemplo un modelo (solo de exportación) con sociedades y plantas:
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 |
Los formatos de fichero dependen del tipo de fichero. Se pueden dar estos valores:
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 |
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 |
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 |
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 |
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.
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.
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.