Eventos de personalización INVOIC
INVOIC (factura) es un mensaje que informa al cliente de la emisión de facturas/abonos y sus contenidos. Este mensaje se genera a partir del contenido de una factura o abono de Business Central.
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 INVOIC 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:
Facturas
OnBeforeCreateINVOIC
Se ejecuta antes de generar el registro de comunicación EDI de cada una de las facturas pendientes de procesar. Permite excluir facturas del mensaje INVOIC, en función de algún criterio particular.
OnBeforeCreateINVOIC(var SalesInvoiceHeader: Record "Sales Invoice Header"; var RecComm: Record "IDPEDI Communication"; var Handled: Boolean)
Recibe como parámetro la factura (SalesInvoiceHeader) que se va a incorporar al mensaje INVOIC. 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.
OnAfterCreateINVOIC
Se ejecuta después de cargar el mensaje INVOIC en el registro de comunicación EDI de cada una de las facturas procesadas.
OnAfterCreateINVOIC(var SalesInvoiceHeader: Record "Sales Invoice Header"; var RecComm: Record "IDPEDI Communication")
Recibe como parámetro la factura que se ha incorporado al mensaje INVOIC y el registro de comunicaciones EDI que contiene dicho mensaje INVOIC.
OnBeforeWriteControlRecord (RECTL)
Este evento permite modificar el identificador del emisor o del receptor del mensaje. Se ejecuta tras inicializar el mensaje INVOIC introduciendo el registro de control que contiene información del tipo de mensaje ("INVOIC"), el código del emisor, el código del receptor, el identificador único del mensaje (formado por "INVOIC" y el número de la factura) y la fecha/hora del mensaje.
OnBeforeWriteControlRecord(var OutText: Text[1024]; var SalesInvoiceHeader: Record "Sales Invoice Header")
Recibe como parámetros el contenido del registro de control (OutText), que puede ser personalizado, y la cabecera de la factura que se está incluyendo en el mensaje INVOIC.
OnBeforeWriteInvHeader - Cabecera (SINCC)
Se ejecuta antes de escribir en el fichero del mensaje INVOIC el registro SINCC, permitiendo modificar la información de la cabecera de la factura que se va a incorporar al mensaje INVOIC.
OnBeforeWriteInvHeader(var OutText: Text[1024]; var SalesInvoiceHeader: Record "Sales Invoice Header")
Recibe como parámetros el contenido del registro SINCC (OutText), que puede ser personalizado, y la factura que se está incluyendo en el mensaje INVOIC.
OnBeforeWriteSINCP - 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 SINCP procedente de una factura, en el mensaje INVOIC.
OnBeforeWriteSINCP(var OutText: Text[1024]; SalesInvoiceHeader: Record "Sales Invoice Header")
Recibe como parámetros el contenido del registro SINCP (OutText), que puede ser personalizado, y la cabecera de la factura que se está incluyendo en el mensaje INVOIC.
OnBeforeWriteSINCT - Comentarios cabecera
Este evento permite modificar los comentarios de cabecera de factura que se van a incluir en el mensaje INVOIC. Se ejecuta una vez por cada comentario de cabecera que tenga la factura.
OnBeforeWriteSINCT(var OutText: Text[1024]; var SalesInvoiceHeader: Record "Sales Invoice Header")
Recibe como parámetros el contenido del registro SINCT (OutText), que puede ser personalizado, y la cabecera de la factura que se está incluyendo en el mensaje INVOIC.
OnBeforeWriteSINCV - Vencimientos factura
Este evento permite modificar la información relacionada con los vencimientos de la factura. Se ejecuta una vez por cada vencimientos que tenga la factura; es decir, una vez por cada documento de cartera o una única vez en el caso de que no se hayan generado documentos de cartera.
OnBeforeWriteSINCV(var OutText: Text[1024]; var SalesInvoiceHeader: Record "Sales Invoice Header")
Recibe como parámetros el contenido del registro SINCV (OutText), que puede ser personalizado, y la cabecera de la factura que se está incluyendo en el mensaje INVOIC.
OnBeforeWriteSINCD - Descuentos y cargos de cabecera
Este evento permite modificar la información de los descuentos y cargos que tiene la factura. Se ejecuta una vez por cada tipo de descuento ("Pronto pago" y "Comercial") y por cada cargo aplicado a la factura.
OnBeforeWriteSINCD(var OutText: Text[1024]; var SalesInvoiceHeader: Record "Sales Invoice Header")
Recibe como parámetros el contenido del registro SINCD (OutText), que puede ser personalizado, y la cabecera de la factura que se está incluyendo en el mensaje INVOIC.
OnBeforeWriteSINCL - Línea detalle
Se ejecuta antes de escribir en el mensaje el registro SINCL que contiene información de la línea de la factura. Permite modificar la información a nivel de línea que se va a incorporar al mensaje INVOIC.
OnBeforeWriteSINCL(var OutText: Text[1024]; var SalesInvoiceLine: Record "Sales Invoice Line")
Recibe como parámetros el contenido del registro SINCL (OutText), que puede ser personalizado, y la línea de la factura que se está incluyendo en el mensaje INVOIC.
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 Invoice Header": Record "Sales Invoice Header"; var DocumentAccepted: Boolean; NumComun: integer; var Handled: Boolean)
Recibe como parámetros la factura (Sales Invoice Header) que se va a incorporar al mensaje INVOIC 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. 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.
OnBeforeCheckItem
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. Una de ellas es verificar que todos los productos tienen código GTIN para la variante y unidad de medida indicada en las líneas de la factura. Este evento se ejecuta antes de empezar a validar las líneas de la factura que contienen productos.
OnBeforeCheckItem(var "Sales Invoice Header": Record "Sales Invoice Header"; var DocumentAccepted: Boolean; NumComun: integer; var Handled: Boolean)
Recibe como parámetros la factura que se va a incorporar al mensaje INVOIC 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. 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.
OnBeforeDoCreateOutStreamINVOIC_invoice
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 INVOIC que será enviado a la plataforma EDI.
OnBeforeDoCreateOutStreamINVOIC_invoice(var "Sales Invoice Header": Record "Sales Invoice Header"; var RecComm: Record "IDPEDI Communication"; var Handled: Boolean)
Recibe como parámetros la factura que se va a incorporar al mensaje INVOIC 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.
OnBeforeGetGTIN - Número global de artículo comercial
Se ejecuta antes de obtener el código GTIN de cada producto incluido en la factura que se está procesando. Este evento permite personalizar el código GTIN a utilizar.
OnBeforeGetGTIN(var SalesInvoiceLine: Record "Sales Invoice Line"; var GTIN: Code[15]; var Handled: Boolean)
Recibe como parámetros la línea de la factura que se va a incorporar al mensaje INVOIC. La variable GTIN, permite devolver el código GTIN personalizado. 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.
OnBeforeWriteSINCE - Descuentos y cargos línea de detalle
Este evento permite modificar la información de descuentos a nivel de línea. Se ejecuta cada vez que se añade un registro de tipo SINCE en el mensaje INVOIC.
OnBeforeWriteSINCE(var OutText: Text[1024]; SINCEText: array[40] of Text[50])
Recibe como parámetros el contenido del registro SINCE (OutText), que puede ser personalizado, y un vector que contiene el valor de los campos del registro SINCE.
OnBeforeWriteSINCI - Impuestos
Permite modificar la información de IVA a nivel de línea. Se ejecuta cada vez que se añade un registro de tipo SINCI en el mensaje INVOIC.
OnBeforeWriteSINCI(var OutText: Text[1024]; SINCEText: array[40] of Text[50])
Recibe como parámetros el contenido del registro SINCI (OutText), que puede ser personalizado, y un vector que contiene el valor de los campos del registro SINCI.
Abonos
OnBeforeCreateCrMemoINVOIC
Se ejecuta antes de generar el registro de comunicación EDI de cada una de los abonos pendientes de procesar. Permite excluir abonos del mensaje INVOIC, en función de algún criterio particular.
OnBeforeCreateCrMemoINVOIC(var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; RecComm: Record "IDPEDI Communication"; var Handled: Boolean)
Recibe como parámetro el abono que se va a incorporar al mensaje INVOIC. 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.
OnAfterCreateCrMemoINVOIC
Se ejecuta después de cargar el mensaje INVOIC en el registro de comunicación EDI de cada una de los abonos procesados.
OnAfterCreateCrMemoINVOIC(var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; RecComm: Record "IDPEDI Communication")
Recibe como parámetro el abono que se ha incorporado al mensaje INVOIC y el registro de comunicaciones EDI que contiene dicho mensaje INVOIC.
OnBeforeWriteControlRecordCrMemo (RECTL)
Este evento permite modificar el identificador del emisor o del receptor del mensaje. Se ejecuta tras inicializar el mensaje INVOIC introduciendo el registro de control que contiene información del tipo de mensaje ("INVOIC"), el código del emisor, el código del receptor, el identificador único del mensaje (formado por "INVOIC" y el número del abono) y la fecha/hora del mensaje.
OnBeforeWriteControlRecordCrMemo(var OutText: Text[1024]; SalesCrMemoHeader: Record "Sales Cr.Memo Header")
Recibe como parámetros el contenido del registro de control (OutText), que puede ser personalizado, y la cabecera del abono que se está incluyendo en el mensaje INVOIC.
OnBeforeWriteCrmemoHdr
Se ejecuta antes de escribir en el fichero del mensaje INVOIC el registro SINCC, permitiendo modificar la información de la cabecera del abono que se va a incorporar al mensaje INVOIC.
OnBeforeWriteCrmemoHdr(var OutText: Text[1024]; SalesCrMemoHeader: Record "Sales Cr.Memo Header")
Recibe como parámetros el contenido del registro SINCC (OutText), que puede ser personalizado, y el abono que se está incluyendo en el mensaje INVOIC.
OnBeforeWriteSINCPCrMemo - Información partes involucradas
Este evento permite modificar la información enviada de los interlocutores del abono (proveedor, emisor del abono, cliente, a quien se abona, etc.) Se ejecuta cada vez que se añade un registro de tipo SINCP procedente de un abono, en el mensaje INVOIC.
OnBeforeWriteSINCPCrMemo(var OutText: Text[1024]; var SalesCrMemoHeader: Record "Sales Cr.Memo Header")
Recibe como parámetros el contenido del registro SINCP (OutText), que puede ser personalizado, y la cabecera del abono que se está incluyendo en el mensaje INVOIC.
OnBeforeWriteSINCTCrMemo - Comentarios cabecera
Este evento permite modificar los comentarios de cabecera de abono que se van a incluir en el mensaje INVOIC. Se ejecuta una vez por cada comentario de cabecera que tenga el abono.
OnBeforeWriteSINCTCrMemo(var OutText: Text[1024]; var "Sales CrMemo Header": Record "Sales Cr.Memo Header")
Recibe como parámetros el contenido del registro SINCT (OutText), que puede ser personalizado, y la cabecera del abono que se está incluyendo en el mensaje INVOIC.
OnBeforeWriteSINCDCrMemo - Descuentos y cargos de cabecera
Este evento permite modificar la información de los descuentos y cargos que tiene el abono. Se ejecuta una vez por cada tipo de descuento ("Pronto pago" y "Comercial") y por cada cargo aplicado al abono.
OnBeforeWriteSINCDCrMemo(var OutText: Text[1024]; var "Sales CrMemo Header": Record "Sales Cr.Memo Header")
Recibe como parámetros el contenido del registro SINCD (OutText), que puede ser personalizado, y la cabecera del abono que se está incluyendo en el mensaje INVOIC.
OnBeforeWriteSINCLCrMemo - Línea detalle
Se ejecuta antes de escribir en el mensaje EDI el registro SINCL que contiene información de la línea del abono. Permite modificar la información a nivel de línea que se va a incorporar al mensaje INVOIC.
OnBeforeWriteSINCLCrMemo(var OutText: Text[1024]; var SalesCrMemoLine: Record "Sales Cr.Memo Line")
Recibe como parámetros el contenido del registro SINCL (OutText), que puede ser personalizado, y la línea del abono que se está incluyendo en el mensaje INVOIC.
OnBeforeCheckValuesCrMemo
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.
OnBeforeCheckValuesCrMemo("Sales CrMemo Header": Record "Sales Cr.Memo Header"; var DocumentAccepted: Boolean; NumComun: integer; var Handled: Boolean)
Recibe como parámetros el abono que se va a incorporar al mensaje INVOIC 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. 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.
OnBeforeCheckItemCrMemo
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. Una de ellas es verificar que todos los productos tienen código GTIN para la variante y unidad de medida indicada en las líneas del abono. Este evento se ejecuta antes de empezar a validar las líneas del abono que contienen productos.
OnBeforeCheckItemCrMemo("Sales CrMemo Header": Record "Sales Cr.Memo Header"; var DocumentAccepted: Boolean; NumComun: integer; var Handled: Boolean)
Recibe como parámetros el abono que se va a incorporar al mensaje INVOIC 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. 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.
OnBeforeDoCreateOutStreamINVOIC_crmemo
Este evento, se ejecuta después de crear el registro de comunicaciones EDI y hacer las validaciones de control (CheckValuesCrMemo), 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 con mensaje INVOIC que será enviado a la plataforma EDI.
OnBeforeDoCreateOutStreamINVOIC_crmemo("Sales CrMemo Header": Record "Sales Cr.Memo Header"; var RecComm: Record "IDPEDI Communication"; var Handled: Boolean)
Recibe como parámetros el abono que se va a incorporar al mensaje INVOIC 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.
OnBeforeGetGTINCrMemo - Número global de artículo comercial
Se ejecuta antes de obtener el código GTIN de cada producto incluido en el abono que se está procesando. Este evento permite personalizar el código GTIN a utilizar.
OnBeforeGetGTINCrMemo(SalesCrMemoLine: Record "Sales Cr.Memo Line"; var GTIN: Code[15]; var Handled: Boolean)
Recibe como parámetros la línea del abono que se va a incorporar al mensaje INVOIC. La variable GTIN, permite devolver el código GTIN personalizado. 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.
OnBeforeWriteSINCE - Descuentos y cargos línea de detalle
Este evento permite modificar la información de descuentos a nivel de línea. Se ejecuta cada vez que se añade un registro de tipo SINCE en el mensaje INVOIC.
OnBeforeWriteSINCE(var OutText: Text[1024]; SINCEText: array[40] of Text[50])
Recibe como parámetros el contenido del registro SINCE (OutText), que puede ser personalizado, y un vector que contiene el valor de los campos del registro SINCE.
OnBeforeWriteSINCI - Impuestos
Permite modificar la información de IVA a nivel de línea. Se ejecuta cada vez que se añade un registro de tipo SINCI en el mensaje INVOIC.
OnBeforeWriteSINCI(var OutText: Text[1024]; SINCEText: array[40] of Text[50])
Recibe como parámetros el contenido del registro SINCI (OutText), que puede ser personalizado, y un vector que contiene el valor de los campos del registro SINCI.
Envío a la plataforma EDI
OnBeforeUploadAll
Este evento se ejecuta antes de enviar a la plataforma EDI los mensajes de la cola de comunicaciones EDI de tipo INVOIC 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 INVOIC 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 INVOIC 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 INVOIC.
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).