Eventos de personalización ORDERS
Un ORDERS (pedido) es un mensaje que especifica detalles sobre bienes o servicios pedidos bajo condiciones acordadas entre vendedor y comprador. Este mensaje desencadena la creación de un pedido de venta en Business Central con la información contenida en dicho mensaje.
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 ORDERS 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:
Descargar ORDERS desde plataforma EDI
El proceso se inicia descargando y creando en la cola de comunicaciones EDI los mensajes ORDERS disponibles en la plataforma EDI.
OnBeforeDownloadAll
Este evento se ejecuta antes de conectarse a la plataforma EDI para descargar los mensajes ORDERS disponibles. iDynamics EDI, se comunica con la plataforma EDI mediante Servicios Web. Este evento permite alterar la manera en la que se obtienen los mensajes ORDERS, o lanzar algún proceso antes de descargarlos.
Se desencadena desde las siguientes acciones y se ejecuta una sola vez independientemente de la cantidad de mensajes ORDERS que se descarguen:
- Página Comunicaciones EDI: Acciones "Descargar ORDERS", "Sincronizar todo" y "Cargar mensajes".
- Página Comunicaciones EDI detalladas: Acción "Sincronizar todo"
- Cola de proyectos: Automáticamente en función de la programación.
OnBeforeDownloadAll(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.
OnBeforeDownload
Se ejecuta antes de descargar y crear en la cola de comunicaciones EDI cada uno de los mensajes ORDERS disponibles en la plataforma EDI. Este evento permite alterar la manera en la que se obtienen los mensajes ORDERS, o lanzar algún proceso antes de desacargar cada uno de los mensajes ORDERS desde la plataforma EDI.
OnBeforeDownload(var ParCommunication: Record "IDPEDI Communication"; 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. En el caso de que se sustituya el proceso, la variable ParCommunication, permite devolver el registro de la cola de comunicaciones EDI creado por la personalización.
OnAfterDownload
Este evento se ejecuta después de descargar y crear en la cola de comunicaciones EDI cada uno de los mensajes ORDERS disponibles en la plataforma EDI. Permite llevar a cabo modificaciones o comprobaciones antes de que el mensaje ORDERS sea procesado y convertido en pedido de venta en Business Central.
OnAfterDownload(var ParCommunication: Record "IDPEDI Communication")
Recibe como parámetro el registro de la cola de comunicaciones que contiene el mensaje ORDERS.
OnAfterDownloadAll
Se ejecuta después de descargar todos los mensajes ORDERS disponibles en la plataforma EDI. Se desencadena desde las siguientes acciones y se ejecuta una sola vez independientemente de la cantidad de mensajes ORDERS descargados:
- Página Comunicaciones EDI: Acciones "Descargar ORDERS", "Sincronizar todo" y "Cargar mensajes".
- Página Comunicaciones EDI detalladas: Acción "Sincronizar todo"
- Cola de proyectos: Automáticamente en función de la programación.
OnAfterDownloadAll()
Confirmar recepción ORDERS
Cada vez que se descarga un mensaje desde la plataforma EDI y se crea el registro en la cola de comunicaciones EDI, se confirma a la plataforma EDI que se ha recibido correctamente dicho mensaje para que deje de estar disponible en futuras descargas.
OnBeforeConfirmAll
Este evento se ejecuta antes de conectarse a la plataforma EDI para confirmar los mensajes ORDERS descargados. iDynamics EDI, se comunica con la plataforma EDI mediante Servicios Web. Este evento permite alterar la manera en la que se confirman los mensajes ORDERS, o lanzar algún proceso antes de confirmarlos.
Se desencadena desde las siguientes acciones y se ejecuta una sola vez independientemente de la cantidad de mensajes ORDERS que se confirmen:
- Página Comunicaciones EDI: Acciones "Sincronizar todo" y "Cargar mensajes".
- Página Comunicaciones EDI detalladas: Acción "Sincronizar todo"
- Cola de proyectos: Automáticamente en función de la programación.
OnBeforeConfirmAll(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.
OnBeforeConfirm
Se ejecuta antes de confirmar cada uno de los mensajes ORDERS existentes en la cola de comunicaciones EDI que no hayan sido confirmados previamente. Este evento permite alterar la manera en la que se confirman los mensajes ORDERS, o lanzar algún proceso antes de confirmar cada uno de los mensajes ORDERS pendientes.
Se desencadena desde las mismas acciones que el evento OnBeforeConfirmAll y desde la siguiente acción:
- Página Comunicaciones EDI: Acción "Confirmar recepción ORDERS".
OnBeforeConfirm(var EntryNum: Integer; var IdRespuesta: Text; var Handled: Boolean)
Recibe como parámetro el número de registro de la cola de comunicaciones que va a ser confirmado. La variable IdRespuesta permite devolver información sobre el resultado del proceso de confirmación. Posibles valores:
- "1": Respuesta satisfactoria
- "-1": Error general durante la confirmación
- "-3": Estado del documento, no valido para la confirmación. Los documentos, solo pueden ser confirmados, cuando se encuentran en estado suscrito, pendiente de confirmación o bloqueado
- "-4": Documento ya en estado confirmado
- "-x": Cualquier otro valor precedido de "-": "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.
OnAfterConfirm
Este evento se ejecuta después de confirmar cada uno de los mensajes ORDERS pendientes de la cola de comunicaciones EDI.
OnAfterConfirm(var EntryNum: Integer; var IdRespuesta: Text)
Recibe como parámetro el número de registro de la cola de comunicaciones que ha sido confirmado y el código de respuesta recibido al confirmarlo.
OnAfterConfirmAll
Se ejecuta después de confirmar todos los mensajes ORDERS pendientes en la cola de comunicaciones EDI. Se desencadena desde las siguientes acciones y se ejecuta una sola vez independientemente de la cantidad de mensajes ORDERS confirmados:
- Página Comunicaciones EDI: Acciones "Sincronizar todo" y "Cargar mensajes".
- Página Comunicaciones EDI detalladas: Acción "Sincronizar todo"
- Cola de proyectos: Automáticamente en función de la programación.
OnAfterConfirmAll()
Procesar ORDERS
Al procesar los mensajes ORDERS cargados en la cola de comunicaciones EDI, se crean en Business Central los pedidos de venta includos en cada mensaje ORDERS. Este proceso tiene disponibles los siguientes eventos.
OnBeforeDoCreateSalesHeader
Este evento se ejecuta antes de crear un pedido de venta. Se desencadena desde las siguientes acciones y se ejecuta una vez por cada pedido de venta que se vaya a crear:
- Página Comunicaciones EDI: Acciones "Sincronizar todo", "Procesar ORDERS" y "Procesar mensajes".
- Página Comunicaciones EDI detalladas: Acción "Sincronizar todo"
- Cola de proyectos: Automáticamente en función de la programación.
OnBeforeDoCreateSalesHeader(var ParCommunication: Record "IDPEDI Communication"; var SalesOrder: record "Sales Header"; var Handled: Boolean)
Recibe como parámetro el registro de la cola de comunicaciones que contiene el mensaje ORDERS (ParCommunication), a partir del cual se creará el pedido de venta.
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.
En el caso de que se sustituya el proceso estándar, la variable SalesOrder, permite devolver el pedido de venta creado por la personalización.
OnAfterDoCreateSalesHeader
Este evento se ejecuta después de crear un pedido de venta a partir de un registro ORDERS de la cola de comunicaciones EDI.
OnAfterDoCreateSalesHeader(var ParCommunication: Record "IDPEDI Communication"; var SalesOrder: record "Sales Header")
Recibe como parámetros el registro de la cola de comunicaciones que contiene el mensaje ORDERS (ParCommunication) y el pedido de venta creado.
OnAfterControlRecord - Registro de control
Se ejecuta después de procesar cada registro de tipo "RECTL" (Registro de control) contenido en cada mensaje ORDERS procesado.
OnAfterControlRecord(var ParCommunication: Record "IDPEDI Communication"; ReadText: Text)
Recibe como parámetro el registro de la cola de comunicaciones que contiene el mensaje ORDERS (ParCommunication) y el contenido del registro RECTL (ReadText) que se está procesando del mensaje ORDERS.
OnAfterSalesHeaderImport - Cabecera
Se ejecuta después de procesar cada registro de tipo "ERE1C" (Cabecera) contenido en cada mensaje ORDERS procesado.
OnAfterSalesHeaderImport(var ParCommunication: Record "IDPEDI Communication"; var SalesHeader: Record "Sales Header"; ReadText: Text)
Recibe como parámetros el registro de la cola de comunicaciones que contiene el mensaje ORDERS que se está procesando (ParCommunication), el pedido de venta creado y el contenido del registro ERE1C (ReadText) que se está procesando del mensaje ORDERS.
OnAfterHeaderComment - Comentarios
Se ejecuta después de procesar cada registro de tipo "ERE1T" (Comentarios cabecera) contenido en cada mensaje ORDERS procesado.
OnAfterHeaderComment(var SalesCommentLine: Record "Sales Comment Line"; SalesHeader: Record "Sales Header"; ReadText: Text)
Recibe como parámetros el mensaje ORDERS de la cola de comunicaciones EDI que se está procesando, el pedido de venta creado y el contenido del registro ERE1T (ReadText) que se está procesando del mensaje ORDERS.
OnAfterSalesLineImport - Importe línea
Se ejecuta después de procesar cada registro de tipo "ERE1L" (Línea detalle) contenido en cada mensaje ORDERS procesado.
OnAfterSalesLineImport(var ParCommunication: Record "IDPEDI Communication"; var SalesLine: Record "Sales Line"; var SalesHeader: Record "Sales Header"; ReadText: Text)
Recibe como parámetros el registro de la cola de comunicaciones que contiene el mensaje ORDERS que se está procesando (ParCommunication), la línea del pedido de venta creado (SalesLine), el pedido de venta al que pertenece la línea creada (SalesHeader) y el contenido del registro ERE1L (ReadText) que se está procesando del mensaje ORDERS.
OnAfterImportSalesLineComment - Comentario línea
Se ejecuta después de procesar cada registro de tipo "ERE1U" (Observaciones de línea) contenido en cada mensaje ORDERS procesado.
OnAfterImportSalesLineComment(var ParCommunication: Record "IDPEDI Communication"; var SalesLine: Record "Sales Line"; var SalesHeader: Record "Sales Header"; ReadText: Text)
Recibe como parámetros el registro de la cola de comunicaciones que contiene el mensaje ORDERS que se está procesando (ParCommunication), la línea del pedido de venta creado (SalesLine), el pedido de venta al que pertenece la línea creada (SalesHeader) y el contenido del registro ERE1U (ReadText) que se está procesando del mensaje ORDERS.
OnAfterImportSalesLineQuantityForDeliveryAddress - Cantidad por dirección de entrega
Se ejecuta después de procesar cada registro de tipo "ERE1G" (Desglose en cantidad) contenido en cada mensaje ORDERS procesado.
OnAfterImportSalesLineQuantityForDeliveryAddress(var ParCommunication: Record "IDPEDI Communication"; var SalesLine: Record "Sales Line"; var SalesHeader: Record "Sales Header"; ReadText: Text)
Recibe como parámetros el registro de la cola de comunicaciones que contiene el mensaje ORDERS que se está procesando (ParCommunication), la línea del pedido de venta creado (SalesLine), el pedido de venta al que pertenece la línea creada (SalesHeader) y el contenido del registro ERE1G (ReadText) que se está procesando del mensaje ORDERS.
OnAfterSalesLineDiscount - Descuento línea
Se ejecuta después de procesar cada registro de tipo "ERE1E" (Descuentos y cargos línea) contenido en cada mensaje ORDERS procesado.
OnAfterSalesLineDiscount(var SalesLine: Record "Sales Line"; ReadText: Text)
Recibe como parámetros la línea del pedido de venta creado (SalesLine) y el contenido del registro ERE1E (ReadText) que se está procesando del mensaje ORDERS.
OnBeforeAssignUnitPrice
Este evento se ejecuta durante la creación de cada línea del pedido de venta, antes de asignar el precio unitario de la línea.
OnBeforeAssignUnitPrice(var SalesHeader: Record "Sales Header"; SalesLine: Record "Sales Line"; ReadText: Text; var IsHandled: Boolean)
Recibe como parámetros el pedido de venta, la línea que se está creando, el contenido del registro ERE1L (ReadText) que se está procesando del mensaje ORDERS y devuelve la variable Handled, que 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.
OnBeforeFindItem
Este evento se ejecuta durante la creación de cada línea del pedido de venta, antes de buscar en Business Central el producto indicado en el mensaje ORDERS.
OnBeforeFindItem(ReadText: Text; var ItemNo: Code[20]; var VariantCode: Code[10]; var OrderAccepted: Boolean; var Handled: Boolean)
Recibe como parámetros el contenido del registro ERE1L (ReadText); devuelve el producto y variante calculados por la personalización; la variable OrderAccepted indica si se debe aceptar o desestimar la línea que se está creando. Finalmente 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.