Eventos de personalización DESADV
Un DESADV (albarán) es un mensaje que especifica detalles sobre bienes enviados o listos para ser enviados. Se utilizan como mensaje de "aviso de envío" (Delivery Despatch Advice) o como "aviso de devolución" (Returns Despatch Advice). Habitualmente se utiliza el primer término para referirse a ambos.
La intención del mensaje es informar en detalle sobre el contenido de un envío. Cada mensaje procede necesariamente de un único punto de salida y uno o varios puntos de entrega. En cuanto a la cantidad, puede referirse a diferente tipo de bienes y número. El mensaje puede ser usado tanto para indicar la salida de los bienes a entregar como la salida de bienes que se devuelven.
A continuación se detallan los principales eventos disponibles para poder alterar o complementar el comportamiento estándar de iDynamics EDI.
Todos los eventos detallados a continuación están emitidos por la codeunit "IDPEDI DESADV Management"
Para llevar a cabo algunas personalizaciones necesitará conocer la estructura de los mensajes EDI que genera e interpreta iDynamics EDI. En el siguiente enlace encontrará el documento de definición de la estructura del mensaje:
OnBeforeDoCreateDESADV
Se ejecuta antes de generar el registro de comunicación EDI de cada uno de los albaranes pendientes de procesar. Permite excluir albaranes del mensaje DESADV, en función de algún criterio particular.
OnBeforeDoCreateDESADV(var SalesShipmentHeader: Record "Sales Shipment Header"; var RecComm: Record "IDPEDI Communication"; var Handled: Boolean)
Recibe como parámetro el albarán (SalesShipmentHeader) que se va a incorporar al mensaje DESADV. La variable Handled permite determinar si se quiere complementar o sustituir el proceso. Si se asigna a VERDADERO, se considera que la personalización ha sustituido el proceso estándar y lo omite.
OnAfterDoCreateDESADV
Se ejecuta después de cargar el mensaje DESADV en el registro de comunicación EDI de cada uno de los albaranes procesados.
OnAfterDoCreateDESADV(var SalesShipmentHeader: Record "Sales Shipment Header"; var RecComm: Record "IDPEDI Communication")
Recibe como parámetro el albarán (SalesShipmentHeader) que se ha incorporado al mensaje DESADV y el registro de comunicaciones EDI que contiene dicho mensaje DESADV.
OnBeforeWriteRECTL
Este evento permite modificar el identificador del emisor o del receptor del mensaje. Se ejecuta tras inicializar el mensaje DESADV introduciendo el registro de control que contiene información del tipo de mensaje ("DESADV"), el código del emisor, el código del receptor, el identificador único del mensaje (formado por "DESADV" y el número del albarán) y la fecha/hora del mensaje.
OnBeforeWriteRECTL(var OutText: Text[1024]; var "Sales Shipment Header": Record "Sales Shipment Header")
Recibe como parámetros el contenido del registro de control (OutText), que puede ser personalizado, y la cabecera del albarán que se está incluyendo en el mensaje DESADV.
OnBeforeWriteSEH1C - Cabecera
Se ejecuta antes de escribir en el fichero del mensaje DESADV el registro SEH1C, permitiendo modificar la información de la cabecera de la factura que se va a incorporar al mensaje DESADV.
OnBeforeWriteSEH1C(var OutText: Text[1024]; var "Sales Shipment Header": Record "Sales Shipment Header")
Recibe como parámetros el contenido del registro SEH1C (OutText), que puede ser personalizado, y el albarán que se está incluyendo en el mensaje DESADV.
OnBeforeWriteSetSEH1D - Información partes involucradas
Este evento permite modificar la información enviada de los interlocutores de la factura (proveedor, emisor de la factura, comprador, a quien se factura, etc.) Se ejecuta cada vez que se añade un registro de tipo SEH1D procedente de un albarán, en el mensaje DESADV.
OnBeforeWriteSetSEH1D(var OutText: Text[1024]; var "Sales Shipment Header": Record "Sales Shipment Header")
Recibe como parámetros el contenido del registro SEH1D (OutText), que puede ser personalizado, y la cabecera del albarán que se está incluyendo en el mensaje DESADV.
OnBeforeWriteContainerHeaderSetSEH1P - Línea del contenedor de todos los embalajes
Este evento permite modificar o saltarnos la 1ª línea que se escribe en el apartado SEH1P del fichero DESADV, correspondiente al contenedor con el resumen de todos los embalajes.
OnBeforeWriteContainerHeaderSetSEH1P(var OutText: Text[1024]; var "Sales Shipment Header": Record "Sales Shipment Header"; PackageInformation: Record "IDPEDI Package Information"; var Handled: Boolean)
Recibe como parámetros el contenido del registro SEH1P (OutText), que puede ser personalizado, la cabecera del albarán que se está incluyendo en el mensaje DESADV (Sales Shipment Header), la información del bulto que está siendo incluido en el registro SEH1P (PackageInformation), que es el contenedor de todos los embalajes y, si se devuelve el parámetro Handled a true, se evita que se escriba esta línea resumen de los embalajes en el fichero DESADV.
OnBeforeWriteSetSEH1P - Secuencia de embalajes
Este evento permite modificar la información de los embalajes enviados (núm. paquetes, peso, dimensiones, temperatura, etc.). Se ejecuta cada vez que se añade un registro de tipo SEH1P procedente de un albarán, en el mensaje DESADV.
OnBeforeWriteSetSEH1P(var OutText: Text[1024]; var "Sales Shipment Header": Record "Sales Shipment Header"; PackageInformation: Record "IDPEDI Package Information")
Recibe como parámetros el contenido del registro SEH1P (OutText), que puede ser personalizado, la cabecera del albarán que se está incluyendo en el mensaje DESADV (Sales Shipment Header), y la información del bulto que está siendo incluido en el registro SEH1P (PackageInformation).
OnBeforeWriteSEH1L - Línea de artículos
Se ejecuta antes de escribir en el mensaje el registro SEH1L que contiene información del producto del albarán. Permite modificar la información del producto que se va a incorporar al mensaje DESADV.
OnBeforeWriteSEH1L(var OutText: Text[1024]; ItemLedgerEntry: Record "Item Ledger Entry"; PackageContent: Record "IDPEDI Package Content")
Recibe como parámetros el contenido del registro SEH1L (OutText), que puede ser personalizado, el registro del movimiento de producto que se está incluyendo en el mensaje DESADV (ItemLedgerEntry), y la información del contenido del bulto que está siendo incluido en el registro SEH1L (PackageContent).
OnBeforeWriteSEH1B - Información de lotes
Este evento permite modificar la información de los lotes enviados (Fecha de producción, fecha de envasado, fecha de caducidad, etc.). Se ejecuta cada vez que se añade un registro de tipo SEH1B, en el mensaje DESADV.
OnBeforeWriteSEH1B(var OutText: Text[1024]; ItemLedgerEntry: Record "Item Ledger Entry"; PackageContent: Record "IDPEDI Package Content")
Recibe como parámetros el contenido del registro SEH1B (OutText), que puede ser personalizado, el registro del movimiento de producto que se está incluyendo en el mensaje DESADV (ItemLedgerEntry), y la información del contenido del bulto al que pertenece el registro SEH1B (PackageContent).
OnBeforeWriteSEH1G - Cantidad por dirección de entrega
Este evento permite modificar la información del desglose de cantidad por dirección de entrega de los productos incluidos en cada bulto. Se ejecuta cada vez que se añade un registro de tipo SEH1G, en el mensaje DESADV.
OnBeforeWriteSEH1G(var OutText: Text[1024]; "Sales Shipment Header": Record "Sales Shipment Header"; PackageInformation: Record "IDPEDI Package Information"; PackageContent: Record "IDPEDI Package Content"; ItemLedgerEntry: Record "Item Ledger Entry")
Recibe como parámetros el contenido del registro SEH1B (OutText), la cabecera del albarán que se está incluyendo en el mensaje DESADV (Sales Shipment Header), la información del bulto (PackageInformation) y el contenido del bulto (PackageContent) al que pertenece el registro SEH1G.
OnBeforeCheckValues
Antes de generar un mensaje EDI, se ejecutan validaciones de control para asegurar que se dispone de toda la información necesaria para crear el mensaje. Por ejemplo, se verifica que se dispone del código EDI de todos los elementos a incluir en el mensaje (empresa, cliente/proveedor, productos, forma de pago, dirección de envío, dirección de pago, etc.). Este evento, permite añadir validaciones adicionales o sustituir las realizadas por el proceso estándar.
OnBeforeCheckValues(var "Sales Shipment Header": Record "Sales Shipment Header"; var DocumentAccepted: Boolean; NumComun: integer; var Handled: Boolean)
Recibe como parámetros el albarán (Sales Shipment Header) que se va a incorporar al mensaje DESADV y el "Entry No" (NumComun) del registro de comunicación EDI al que se va a incorporar dicho mensaje. La variable DocumentAccepted, permite omitir la generación del mensaje EDI y su incorporación al registro de comunicaciones EDI. Has de tener en cuenta que en este punto ya se ha creado el registro de comunicaciones, por lo que aunque se omita la generación del mensaje EDI, dicho registro no se eliminará. La variable Handled permite determinar si se quiere complementar o sustituir el proceso. Si se asigna a VERDADERO, se considera que la personalización ha sustituido el proceso estándar y lo omite.
OnBeforeDoCreateOutStreamDESADV
Este evento, se ejecuta después de crear el registro de comunicaciones EDI y hacer las validaciones de control (CheckValues), y antes de generar el fichero con el mensaje EDI e incorporarlo al registro de comunicaciones EDI. Este evento permite personalizar el proceso de generación del fichero que contiene el mensaje DESADV y que será enviado a la plataforma EDI.
OnBeforeDoCreateOutStreamDESADV(var SalesShipmentHeader: Record "Sales Shipment Header"; var RecComm: Record "IDPEDI Communication"; var Handled: Boolean)
Recibe como parámetros el albarán (SalesShipmentHeader) que se va a incorporar al mensaje DESADV y el registro de comunicación EDI (RecComm) al que se va a incorporar dicho mensaje. La variable Handled permite determinar si se quiere complementar o sustituir el proceso. Si se asigna a VERDADERO, se considera que la personalización ha sustituido el proceso estándar y lo omite.
OnAfterGetGTIN - Número global de artículo comercial
Se ejecuta después de obtener el código GTIN del producto del albarán que se está incluyendo en el mensaje DESADV. Este evento permite personalizar el código GTIN a utilizar.
OnAfterGetGTIN("Item No.": Code[20]; "Variant Code": Code[10]; "Unit of Measure Code": Code[10]; var GTIN: Code[15])
Recibe como parámetros, el número de producto, la variante y la unidad de medida del producto que se va a incorporar al mensaje DESADV. La variable GTIN, permite devolver el código GTIN personalizado.
OnBeforeUploadAll
Este evento se ejecuta antes de enviar a la plataforma EDI los mensajes de la cola de comunicaciones EDI de tipo DESADV pendientes de enviar.
OnBeforeUploadAll(var Handled: Boolean)
La variable Handled permite determinar si se quiere complementar o sustituir el proceso. Si se asigna a VERDADERO, se considera que la personalización ha sustituido el proceso estándar y lo omite.
OnAfterUploadAll
Se ejecuta una vez se ha procesdo el envío de todos los mensajes de la cola de comunicaciones EDI de tipo DESADV que estaban pendientes de enviar.
OnAfterUploadAll()
OnBeforeUpload
Este evento se ejecuta antes de enviar a la plataforma EDI cada uno de los mensajes de la cola de comunicaciones EDI de tipo DESADV pendientes de enviar.
OnBeforeUpload(var EntryNum: Integer; var IdRespuesta: Text; var Handled: Boolean)
Recibe como parámetros el registro de comunicación EDI (EntryNum) que se va a enviar a la plataforma EDI. La variable IdRespuesta permite devolver información sobre el resultado del proceso de envío. Posibles valores:
- "1": Respuesta satisfactoria
- "-1": Error general durante el envío.
- "-2": Error de autorización.
- "-x": Cualquier otro valor precedido por "-": "Error indeterminado". La variable Handled permite determinar si se quiere complementar o sustituir el proceso. Si se asigna a VERDADERO, se considera que la personalización ha sustituido el proceso estándar y lo omite.
OnAfterUpload
Se ejecuta después de enviar cada uno de los mensajes de la cola de comunicaciones EDI de tipo DESADV.
OnAfterUpload(var EntryNum: Integer; var IdRespuesta: Text)
Recibe como parámetros el registro de comunicación EDI (EntryNum) que se ha enviado a la plataforma EDI y la respuesta (IdRespuesta).