Skip to content

Tablas y suscriptores

Esta sección pretende detallar la extensibilidad de la solución.

Se indicarán las tablas y los suscritores del sistema para facilitar la creación de extensiones que pueden utilizarse para adecuar la solución a las necesidades del cliente.

Aclaración

Dado que la finalidad de la solución es generar ficheros XML que cumplan la normativa de facturación electrónica de las administraciones públicas, las tablas y suscriptores del sistema detallados en esta sección serán los afectados por dicha generación de ficheros XML.

Tablas

Las tablas del sistema que permiten la generación de ficheros XML se describen en los siguientes apartados.

Estas tablas se rellenan a partir de tablas del sistema (facturas/abonos de venta/servicio), y a partir de estas tablas, se generan los ficheros XML que serán firmados digitalmente por la solución.

Documentos

  • Nombre de la tabla: INNESGFeHeaders
  • Caption: eSign Facturae Headers
  • Clave primaria: INNESGFeDocumentType, INNESGFeDocumentNo

Esta tabla se crea a partir de una factura/abono de venta/servicio.

Versión documentos

  • Nombre de la tabla: INNESGFeHeadersVersion
  • Caption: eSign Facturae headers version
  • Clave primaria: INNESGFeDocumentType, INNESGFeDocumentNo, INNESGFeId

Esta tabla se crea a partir de un documento Facturae.

Atención

Disponible desde la versión 21.0.0.0

Líneas

  • Nombre de la tabla: INNESGFeLines
  • Caption: eSign Facturae Lines
  • Clave primaria: INNESGFeDocumentType, INNESGFeDocumentNo, INNESGFeLineNo

Esta tabla se crea a partir de una línea de factura/abono de venta/servicio.

Salida impuestos

  • Nombre de la tabla: INNESGFeTaxesOutput
  • Caption: eSign Facturae Taxes Outputs
  • Clave primaria: INNESGFeDocumentType, INNESGFeDocumentNo, INNESGFeLineNo

Esta tabla se crea a partir de los impuestos de una factura/abono de venta/servicio.

Detalle pagos

  • Nombre de la tabla: INNESGFePaymentDetails
  • Caption: eSign Facturae Payment Details
  • Clave primaria: INNESGFeDocumentType, INNESGFeDocumentNo, INNESGFeLineNo

Esta tabla se crea a partir de los movimientos de cliente, que contienen la forma de pago, de una factura/abono de venta/servicio.

Documentos adjuntos

  • Nombre de la tabla: INNESGFeHeadersAttachment
  • Caption: eSign Facturae Document attachment
  • Clave primaria: INNESGFeDocumentType, INNESGFeDocumentNo, INNESGFeLineNo

Esta tabla permite añadir documentos adjuntos a los documentos Facturae para su posterior envío a conectores (puertas de enlace).

Documentos adjuntos 21.0.0.0

  • Nombre de la tabla: INNESGFeAttachment
  • Caption: eSign Facturae attachments
  • Clave primaria: INNESGFeDocumentType, INNESGFeDocumentNo, INNESGFeLineNo

Esta tabla permite añadir documentos adjuntos a distintas entidades del sistema para hacerlos llegar a los documentos Facturae. Desde el documento Facturae se enviarán a los conectores (puertas de enlace).

Documentos importados

  • Nombre de la tabla: INNESGFeHeadersRead
  • Caption: eSign Facturae headers read
  • Clave primaria: INNESGFeDocumentNo

Esta tabla se crea a partir de la importación de documentos Facturae.

Atención

Todas las tablas tienen en común los campos INNESGFeDocumentType y INNESGFeDocumentNo en la clave primaria. INNESGFeDocumentType es un option con los valores: Invoice, Credit Memo, Invoice Service, Credit Memo Service. INNESGFeDocumentNo se corresponde con el nº de factura/abono de venta/servicio cuyas tablas son: Sales Invoice Header, Sales Cr.Memo Header, Service Invoice Header y Service Cr.Memo Header. A partir de cualquier registro de las tablas, y utilizando estos campos, se podría obtener la factura/abono de venta/servicio para realizar las modificacoines oportunas.

Suscriptores

Los suscriptores del sistema permiten modificar los siguientes flujos de trabajo:

  • Generación del documento Facturae
  • Generación del fichero XML a partir del documento Facturae
  • Envío del fichero XML a distintos conectores (puertas de enlace)
  • Importación de ficheros XML para generación de facturas/abonos de compra

Todos los suscriptores se encuentran en las codeunits INNESGFePublishers y INNESGFeImportDocumentHeader.

Creación de tablas

Para cada tabla de las anteriores, se ha añadido un suscriptor que permite modificar el valor de un campo del registro antes de ser insertado.

OnBeforeInsertHeaders

INNESGFePublishers.OnBeforeInsertHeaders(var Header: INNESGFeHeaders)

Se ejecuta antes de hacer el insert en la tabla INNESGFeHeaders.

A partir de la clave primaria de INNESGFeHeader se puede obtener el documento original (factura/abono de venta/servicio).

OnBeforeInsertLines

INNESGFePublishers.OnBeforeInsertLines(var Lines: Record INNESGFeLines; Headers: Record INNESGFeHeaders)

Se ejecuta antes de hacer el insert en la tabla INNESGFeLines.

A partir de la clave primaria de INNESGFeLines se puede obtener la línea del documento original (factura/abono de venta/servicio). El campo INNESGFeLineNo se corresponde con el campo Line No. del la línea del documento original.

OnBeforeInsertTaxesOutputs

INNESGFePublishers.OnBeforeInsertTaxesOutputs(var TaxesOutputs: Record INNESGFeTaxesOutputs, TempVATAmountLine: "VAT Amount Line" temporary; Headers: Record INNESGFeHeaders)

Se ejecuta antes de hacer el insert en la tabla INNESGFeTaxesOutputs.

A partir de la clave primaria de INNESGFeTaxesOutputs se puede obtener el documento original (factura/abono de venta/servicio). Las líneas de impuestos se calculan según el estándar del sistema y se almacenan en la tabla temporal TempVATAmountLine. El campo INNESGFeLineNo se corresponde con cada línea de la tabla temporal TempVATAmountLine (ejemplo de números de líneas: 10.000, 20.000, 30.000, etc.).

OnBeforeInsertPaymentDetails

INNESGFePublishers.OnBeforeInsertPaymentDetails(var PaymentDetails: Record INNESGFePaymentDetails, CustLedgerEntry: "Cust. Ledger Entry"; Headers: Record INNESGFeHeaders)

Se ejecuta antes de hacer el insert en la tabla INNESGFePaymentDetails.

A partir de la clave primaria de INNESGFePaymentDetails se puede obtener el documento original (factura/abono de venta/servicio). Las líneas de pagos se calculan según los movimientos de cliente del sistema, que están en la tabla CustLedgerEntry. El campo INNESGFeLineNo se corresponde con cada línea de la tabla CustLedgerEntry (ejemplo de números de líneas: 10.000, 20.000, 30.000, etc.).

Generación del XML

La generación del XML se divide en 3 nodos básicos contenidos dentro del nodo principal. Este es el esquema básico que se ve afectado por los suscriptores:

<Facturae>

..<FileHeader>

..<Parties>

..<Invoices>

....<Invoice>

......<TaxesOutputs>

........<Tax>

......<Items>

........<InvoiceLine>

......<PaymentDetails>

........<Installment>

  • FileHeader se rellena con información relativa a la factura/abono de venta/servicio: indentificación, versión, totales, etc.
  • Parties se rellena con información relativa al vendedor y comprador de la factura/abono de venta/servicio.
  • Invoices se rellena con información relativa a la factura/abono de venta/servicio.
  • InvoiceLine se rellena con información relativa a las líneas de la factura/abono de venta/servicio.

Los suscriptores existentes hacen referencia a los nodos Facturae, FileHeader, Parties, Invoices, Items y InvoiceLine.

OnBeforeGenerateXML

INNESGFePublishers.OnBeforeGenerateXML(var XmlElemRoot: XmlElement; var ExecuteNext: Boolean; Headers: Record INNESGFeHeaders)

Se ejecuta antes de crear los nodos FileHeader, Parties e Invoices dentro del nodo Facturae del XML.

La variable XmlElemRoot contiene únicamente el nodo Facturae y las definiciones de este.

La variable ExecuteNext permite que no se ejecute el código estándar de generación de los 3 nodos principales FileHeader, Parties e Invoices y sea el usuario quien rellene todo el XML a partir del nodo Facturae. Para ello, es necesario que esta variable tenga el valor false.

A partir de la clave primaria de INNESGFeHeader se puede obtener el documento original (factura/abono de venta/servicio). Este registro contiene la información necesaria para rellenar el XML.

OnAfterGenerateXML

INNESGFePublishers.OnAfterGenerateXML(var XmlElemRoot: XmlElement; var ExecuteNext: Boolean; Headers: Record INNESGFeHeaders)

Se ejecuta después de crear los nodos FileHeader, Parties y Invoices dentro del nodo Facturae del XML.

La variable XmlElemRoot contiene todos los nodos rellenos y la definición de estos.

La variable ExecuteNext no aplica.

A partir de la clave primaria de INNESGFeHeader se puede obtener el documento original (factura/abono de venta/servicio). Este registro contiene la información necesaria para completar el XML con la información necesaria.

OnBeforeSetFileHeader

INNESGFePublishers.OnBeforeSetFileHeader(var XmlElemRoot: XmlElement; var ExecuteNext: Boolean; Headers: Record INNESGFeHeaders)

Se ejecuta antes de crear el nodo FileHeader dentro del XML.

La variable XmlElemRoot contiene únicamente el nodo Facturae y las definiciones de este.

La variable ExecuteNext permite que no se ejecute el código estándar de generación del nodo FileHeader y sea el usuario quien rellene dicho nodo. Para ello, es necesario que esta variable tenga el valor false.

A partir de la clave primaria de INNESGFeHeader se puede obtener el documento original (factura/abono de venta/servicio). Este registro contiene la información necesaria para rellenar el XML.

OnAfterSetFileHeader

INNESGFePublishers.OnAfterSetFileHeader(var XmlElemRoot: XmlElement; var ExecuteNext: Boolean; Headers: Record INNESGFeHeaders)

Se ejecuta después de crear el nodo FileHeader dentro del XML.

La variable XmlElemRoot contiene el nodo FileHeader dentro del nodo Facturae y las definiciones de este.

La variable ExecuteNext no aplica.

A partir de la clave primaria de INNESGFeHeader se puede obtener el documento original (factura/abono de venta/servicio). Este registro contiene la información necesaria para rellenar el XML.

OnBeforeSetParties

INNESGFePublishers.OnBeforeSetParties(var XmlElemRoot: XmlElement; var ExecuteNext: Boolean; Headers: Record INNESGFeHeaders)

Se ejecuta antes de crear el nodo Parties dentro del XML.

La variable XmlElemRoot contiene el nodo FileHeader dentro del nodo Facturae y las definiciones de este.

La variable ExecuteNext permite que no se ejecute el código estándar de generación del nodo Parties y sea el usuario quien rellene dicho nodo. Para ello, es necesario que esta variable tenga el valor false.

A partir de la clave primaria de INNESGFeHeader se puede obtener el documento original (factura/abono de venta/servicio). Este registro contiene la información necesaria para rellenar el XML.

OnAfterSetParties

INNESGFePublishers.OnAfterSetParties(var XmlElemRoot: XmlElement; var ExecuteNext: Boolean; Headers: Record INNESGFeHeaders)

Se ejecuta después de crear el nodo Parties dentro del XML.

La variable XmlElemRoot contiene los nodos FileHeader y Parties dentro del nodo Facturae y las definiciones de este.

La variable ExecuteNext no aplica.

A partir de la clave primaria de INNESGFeHeader se puede obtener el documento original (factura/abono de venta/servicio). Este registro contiene la información necesaria para rellenar el XML.

OnBeforeSetInvoices

INNESGFePublishers.OnBeforeSetInvoices(var XmlElemRoot: XmlElement; var ExecuteNext: Boolean; Headers: Record INNESGFeHeaders)

Se ejecuta antes de crear el nodo Invoices dentro del XML.

La variable XmlElemRoot contiene los nodos FileHeader y Parties dentro del nodo Facturae y las definiciones de este.

La variable ExecuteNext permite que no se ejecute el código estándar de generación del nodo Invoices y sea el usuario quien rellene dicho nodo. Para ello, es necesario que esta variable tenga el valor false.

A partir de la clave primaria de INNESGFeHeader se puede obtener el documento original (factura/abono de venta/servicio). Este registro contiene la información necesaria para rellenar el XML.

OnAfterSetInvoices

INNESGFePublishers.OnAfterSetInvoices(var XmlElemRoot: XmlElement; var ExecuteNext: Boolean; Headers: Record INNESGFeHeaders)

Se ejecuta después de crear el nodo Invoices dentro del XML.

La variable XmlElemRoot contiene los nodos FileHeader, Parties e Invoices dentro del nodo Facturae y las definiciones de este.

La variable ExecuteNext no aplica.

A partir de la clave primaria de INNESGFeHeader se puede obtener el documento original (factura/abono de venta/servicio). Este registro contiene la información necesaria para rellenar el XML.

OnBeforeSetItems

INNESGFePublishers.OnBeforeSetItems(var XmlElemItems: XmlElement; Headers: Record INNESGFeHeaders; var ExecuteNext: Boolean)

Se ejecuta antes de crear el nodo Invoices/Invoice/Items dentro del XML.

La variable XmlElemItems está vacía.

La variable ExecuteNext permite que no se ejecute el código estándar de generación del nodo Invoices/Invoice/Items y sea el usuario quien rellene dicho nodo. Para ello, es necesario que esta variable tenga el valor false.

A partir de la clave primaria de INNESGFeHeader se puede obtener el documento original (factura/abono de venta/servicio). Este registro contiene la información necesaria para rellenar el XML.

OnAfterSetItems

INNESGFePublishers.OnAfterSetItems(var XmlElemItems: XmlElement; Headers: Record INNESGFeHeaders)

Se ejecuta después de crear el nodo Invoices/Invoice/Items dentro del XML.

La variable XmlElemItems contiene los nodos InvoiceLine creados a partir de las líneas.

A partir de la clave primaria de INNESGFeHeader se puede obtener el documento original (factura/abono de venta/servicio). Este registro contiene la información necesaria para rellenar el XML.

OnBeforeSetInvoiceLine

INNESGFePublishers.OnBeforeSetInvoiceLine(var XmlElemInvoiceLine: XmlElement; Lines: Record INNESGFeLines; var ExecuteNext: Boolean; Headers: Record INNESGFeHeaders)

Se ejecuta antes de crear el nodo Invoices/Invoice/Items/InvoiceLine dentro del XML.

La variable XmlElemInvoiceLine está vacía.

La variable ExecuteNext permite que no se ejecute el código estándar de generación del nodo Invoices/Invoice/Items/InvoiceLine y sea el usuario quien rellene dicho nodo. Para ello, es necesario que esta variable tenga el valor false.

A partir de la clave primaria de INNESGFeLines se puede obtener la línea del documento original (factura/abono de venta/servicio). Este registro contiene la información necesaria para rellenar el XML.

OnAfterSetInvoiceLine

INNESGFePublishers.OnAfterSetInvoiceLine(var XmlElemInvoiceLine: XmlElement; Lines: Record INNESGFeLines; Headers: Record INNESGFeHeaders)

Se ejecuta después de crear el nodo Invoices/Invoice/Items/InvoiceLine dentro del XML.

La variable XmlElemInvoiceLine contiene los nodos rellenados a partir de las líneas.

A partir de la clave primaria de INNESGFeLines se puede obtener la línea del documento original (factura/abono de venta/servicio). Este registro contiene la información necesaria para rellenar el XML.

OnAfterSetTax

INNESGFePublishers.OnAfterSetTax(var XmlElemTax: XmlElement; TaxesOutput: Record INNESGFeTaxesOutputs)

Se ejecuta después de crear el nodo Invoices/Invoice/TaxesOutputs/Tax dentro del XML.

La variable XmlElemTax contiene los nodos rellenados a partir de los impuestos.

A partir de la clave primaria de INNESGFeTaxexOutputs se puede obtener la línea de impuestos del documento original (factura/abono de venta/servicio). Este registro contiene la información necesaria para rellenar el XML.

OnAfterSetTaxBlank

INNESGFePublishers.OnAfterSetTaxBlank(var XmlElemTax: XmlElement; Header: Record INNESGFeHeaders)

Se ejecuta después de crear el nodo Invoices/Invoice/TaxesOutputs/Tax dentro del XML en el caso de que no hayan impuestos (es necesario informar los impuestos con valor 0).

La variable XmlElemTax contiene los nodos rellenados con valor 0.

A partir de la clave primaria de INNESGFeHeader se puede obtener el documento original (factura/abono de venta/servicio). Este registro contiene la información necesaria para rellenar el XML.

OnAfterSetInstallment

INNESGFePublishers.OnAfterSetInstallment(var XmlElemInstallment: XmlElement; PaymentDetails: Record INNESGFePaymentDetails)

Se ejecuta después de crear el nodo Invoices/Invoice/PaymentDetails/Installment dentro del XML.

La variable XmlElemInstallment contiene los nodos rellenados a partir de los detalles de pago.

A partir de la clave primaria de INNESGFePaymentDetails se puede obtener la línea de detalle de pago del documento original (factura/abono de venta/servicio). Este registro contiene la información necesaria para rellenar el XML.

OnAfterProcessDocumentAdd

INNESGFePublishers.OnAfterProcessDocumentAdd(Headers: Record INNESGFeHeaders; HeadersVersion: Record INNESGFeHeadersVersion)

Se ejecuta después de generar y firmar el XML.

La variable Headers contiene el registro del documento Facturae creado a partir de la factura/abono.

La variable HeadersVersion contiene el registro de la versión del documento Facturae creada a partir del documento Facturae.

Este evento puede ser util si se quiere obtener el XML una vez generado y firmado.

Importación del XML

La importación del XML se divide en 3 nodos básicos contenidos dentro del nodo principal. Este es el esquema básico que se ve afectado por los suscriptores:

<Facturae>

..<FileHeader>

..<Parties>

..<Invoices>

....<InvoiceTaxOutput>

....<Items>

......<InvoiceLines>

....<InvoicePaymentDetails>

  • FileHeader se rellena con información relativa al nodo FileHeader del XML.
  • Parties se rellena con información relativa al nodo Parties del XML.
  • Invoices se rellena con información relativa a los nodos Invoices del XML.
  • InvoiceTaxOutput se rellena con información relativa al nodo TaxOutput de las facturas del XML.
  • InvoiceLine se rellena con información relativa al nodo InvoiceLine de las facturas del XML.
  • InvoicePaymentDetails se rellena con información relativa al nodo PaymentDetails de las facturas del XML.

OnAfterGetFacturae

INNESGFeImportDocumentHeader.OnAfterGetFacturae(var XmlDoc: XmlDocument; var HeadersRead: Record INNESGFeHeadersRead)

Se ejecuta después de crear el registro en la tabla INNESFFeHeadersRead a partir del XML.

La variable XmlDoc contiene todo el fichero XML.

La variable HeadersRead contiene el registro creado a partir del XML.

OnAfterGetFileHeader

INNESGFeImportDocumentHeader.OnAfterGetFileHeader(var XmlNodeFileHeader: XmlNode; var HeadersRead: Record INNESGFeHeadersRead)

Se ejecuta después de rellenar los campos de la tabla INNESFFeHeadersRead referidos al nodo FileHeader y antes de hacer Modify.

La variable XmlNodeFileHeader contiene el nodo FileHeader del fichero XML.

La variable HeadersRead contiene el registro creado a partir del XML.

OnAfterGetParties

INNESGFeImportDocumentHeader.OnAfterGetParties(var XmlNodeParties: XmlNode; var HeadersRead: Record INNESGFeHeadersRead)

Se ejecuta después de rellenar los campos de la tabla INNESFFeHeadersRead referidos al nodo Parties y antes de hacer Modify.

La variable XmlNodeParties contiene el nodo Parties del fichero XML.

La variable HeadersRead contiene el registro creado a partir del XML.

OnAfterGetInvoice

INNESGFeImportDocumentHeader.OnAfterGetInvoice(var XmlNodeInvoice: XmlNode; var Invoices: Record INNESGFeInvoices; HeadersRead: Record INNESGFeHeadersRead)

Se ejecuta después de rellenar los campos de la tabla INNESGFeInvoices referidos a cada línea del nodo Invoices y antes de hacer Insert.

La variable XmlNodeInvoice contiene el nodo Invoice del fichero XML.

La variable Invoices contiene el registro creado a partir de cada línea del XML.

La variable HeadersRead contiene el registro creado a partir del XML.

OnAfterGetInvoiceLine

INNESGFeImportDocumentHeader.OnAfterGetInvoiceLine(var XmlNodeInvoiceLine: XmlNode; var InvoicesLine: Record INNESGFeInvoicesLines; HeadersRead: Record INNESGFeHeadersRead)

Se ejecuta después de rellenar los campos de la tabla INNESGFeInvoicesLines referidos a cada línea del nodo Items\InvoiceLine y antes de hacer Insert.

La variable XmlNodeInvoiceLine contiene el nodo Item\InvoiceLine del fichero XML.

La variable InvoicesLine contiene el registro creado a partir de cada línea del XML.

La variable HeadersRead contiene el registro creado a partir del XML.

OnAfterGetInvoiceTaxOutput

INNESGFeImportDocumentHeader.OnAfterGetInvoiceTaxOutput(var XmlNodeInvoiceTaxOutput: XmlNode; var InvoicesTaxOutput: Record INNESGFeInvoicesTaxOutput; HeadersRead: Record INNESGFeHeadersRead)

Se ejecuta después de rellenar los campos de la tabla INNESGFeInvoicesTaxOutput referidos a cada línea del nodo TaxesOutputs\Tax y antes de hacer Insert.

La variable XmlNodeInvoiceTaxOutput contiene el nodo TaxexOutputs\Tax del fichero XML.

La variable InvoicesTaxOutput contiene el registro creado a partir de cada línea del XML.

La variable HeadersRead contiene el registro creado a partir del XML.

OnAfterGetInvoicePaymentDetail

INNESGFeImportDocumentHeader.OnAfterGetInvoicePaymentDetail(var XmlNodeInvoicePaymentDetail: XmlNode; var InvoicesPaymentDetail: Record INNESGFeInvoicesPaymDetail; HeadersRead: Record INNESGFeHeadersRead)

Se ejecuta después de rellenar los campos de la tabla INNESGFeInvoicesPaymentDetail referidos a cada línea del nodo PaymentDetails\Installment y antes de hacer Insert.

La variable XmlNodeInvoicePaymentDetail contiene el nodo PaymentDetails\Installment del fichero XML.

La variable InvoicesPaymentDetail contiene el registro creado a partir de cada línea del XML.

La variable HeadersRead contiene el registro creado a partir del XML.

OnBeforeCreateInvoice

INNESGFeImportDocumentHeader.OnBeforeCreateInvoice(var PurchaseHeader: Record "Purchase Header"; Invoice: Record INNESGFeInvoices)

Se ejecuta después de rellenar los campos de la tabla Purchase Header y antes de hacer el Insert.

La variable PurchaseHeader contiene el registro de la tabla que se está rellenando.

La variable Invoice contiene el registro de los datos utilizados para rellenar la tabla Purchase Header.

OnBeforeCreateInvoiceLine

INNESGFeImportDocumentHeader.OnBeforeCreateInvoiceLine(var PurchaseLine: Record "Purchase Line"; PurchaseHeader: Record "Purchase Header"; Invoice: Record INNESGFeInvoices; InvoiceLine: Record INNESGFeInvoicesLines)

Se ejecuta después de rellenar los campos de la tabla Purchase Line y antes de hacer el Insert.

La variable PurchaseLine contiene el registro de la tabla que se está rellenando.

La variable Invoice contiene el registro de los datos utilizados para rellenar la tabla Purchase Header.

La variable InvoiceLine contiene el registro de los datos utilizados para rellenar la tabla Purchase Line.

Puertas de enlace (conectores)

Existen los siguientes conectores generales y dependientes de la puerta de enlace.

Atención

No disponible en versión 21.0.0.0

Generales

OnAfterGenerateXMLBeforeSendToGateway

INNESGFePublishers.OnAfterGenerateXMLBeforeSendToGateway(var Headers: Record INNESGFeHeaders; Customer: Record Customer; var SendToGateway: Boolean)

Se ejecuta una vez generado el documento Facturae y antes de poder ser enviado a la puerta de enlace.

La variable Headers contiene el registro del documento Facturae.

La variable Customer contiene el registro del cliente del documento Facturae.

La variable SendToGateway permite indicar si se envia a la puerta de enlace al regisrar el documento de venta.

Aclaración

Esta variable no se tiene en cuenta si en Configuración eSign Facturae está activo el campo Enviar a puerta de enlace. Se puede utilizar si para ciertos clientes se quiere enviar el documento Facturae a los conectores. En dicho caso, se puede tener deactivado el campo en Configuración eSign Facturae y a través del suscriptor poner la variable SendToGateway = true.

Este suscriptor está pensado para poder añadir archivos adjuntos al documento Facturae. Para ello, existe la siguiente función:

Headers.AddAttachmentStream(var IStream: InStream; NameWithFormat: Text)

Se debe llamar a dicha función con un InStream que contenga un archivo PDF y con el nombre de este y su formato.

Face

OnBeforeAddAttachmentFace

INNESGFePublishers.OnBeforeAddAttachmentFace(var Name: Text; var Attachment: Text; HeadersAttachment: Record INNESGFeHeadersAttachment; Headers: Record INNESGFeHeaders)

Se ejecuta antes de rellenar los datos del fichero adjunto que se envía a la plataforma Face.

La variable AttachmentName contiene el valor del nombre del fichero adjunto.

La variable Attachment contiene el fichero adjunto (PDF) codificado en base 64.

La variable HeadersAttachment contiene el registro del fichero adjunto.

La variable Headers contiene el registro del documento Facturae.

OnBeforeSendFace

INNESGFePublishers.OnBeforeSendFace(var Email: Text; var Name: Text; var InvoiceBase64: Text; Headers: Record INNESGFeHeaders)

Se ejecuta antes de rellenar los datos del documento que se envía a la plataforma Face.

La variable Email contiene el email de notificación que utiliza la plataforma Face para notificar los distintos estados del documento.

La variable InvoiceBase64 contiene el documento Facturae (XML) codificado en base 64.

La variable Headers contiene el registro del documento Facturae.

Osakidetza

OnBeforeSendOsak

INNESGFePublishers.OnBeforeSendOsak(var InvoceName: Text; var InvoiceBase64: Text; Headers: Record INNESGFeHeaders)

Se ejecuta antes de rellenar los datos del documento que se envía a la plataforma Osakidetza.

La variable InvoiceBase64 contiene el documento Facturae (XML) codificado en base 64.

La variable Headers contiene el registro del documento Facturae.

eFact

OnBeforeAddAttachmenteFact

INNESGFePublishers.OnBeforeAddAttachmenteFact(var Extension: Text; var Attachment: Text; HeadersAttachment: Record INNESGFeHeadersAttachment; Headers: Record INNESGFeHeaders)

Se ejecuta antes de rellenar los datos del fichero adjunto que se envía a la plataforma eFact.

La variable Extension contiene el valor de la extensión del fichero adjunto.

La variable Attachment contiene el fichero adjunto (PDF) codificado en base 64.

La variable HeadersAttachment contiene el registro del fichero adjunto.

La variable Headers contiene el registro del documento Facturae.

OnBeforeSendeFact

INNESGFePublishers.OnBeforeSendeFact(var Receptor: Text; var InvoiceBase64: Text; Headers: Record INNESGFeHeaders)

Se ejecuta antes de rellenar los datos del documento que se envía a la plataforma eFact.

La variable Receptor contiene el valor del campo Id. partner de los Códigos dirección utilizados en la plataforma eFact.

La variable InvoiceBase64 contiene el documento Facturae (XML) codificado en base 64.

La variable Headers contiene el registro del documento Facturae.

OnBeforeCheckeFact

INNESGFePublishers.OnBeforeCheckeFact(var Reference: Text; var InvoiceNumber: Code[20]; var InvoiceDate: Integer; var InvoiceSupplier: Text; var InvoiceBuyer: Text; var InvoiceTotal: Text; Headers: Record INNESGFeHeaders)

Se ejecuta antes de rellenar los datos del documento que se comprueba en la plataforma eFact.

La variable Reference contiene el valor del campo Referencia del documento Facturae.

La variable InvoiceNumber contiene el valor del campo Nº documento del documento Facturae.

La variable InvoiceDate contiene el valor del campo Fecha emisión (año en 4 dígitos) del documento Facturae.

La variable InvoiceSupplier contiene el valor del campo Nif de la empresa.

La variable InvoiceBuyer contine el valor del campo Alias partner (Nif partner) del cliente del documento Facturae.

La variable InvoiceTotal contiene el valor del campo Total factura del documento Facturae.

La variable Headers contiene el registro del documento Facturae.

Generales 21.0.0.0

Existen los siguientes suscriptores generales.

OnBeforeSendToGateway

INNESGFePublishers.OnBeforeSendToGateway(Headers: Record INNESGFeHeaders; Customer: Record Customer; var SendToGateway: Boolean)

Se ejecuta antes de enviar a la puerta de enlace correspondiente.

La variable Headers contiene el registro del documento Facturae.

La variable Customer contiene el registro del cliente.

La variable SentToGateway indica si debe enviarse a la plataforma.

Puede ser util cuando está configurado el envío directo a la plataforma al registrar el documento y para algún cliente no se quiere enviar directamente.

OnBeforeSendByEmail

INNESGFePublishers.OnBeforeSendByEmail(Customer: Record Customer; var Email: Text)

Se ejecuta antes de enviar por email un documento Facturae.

La variable Customer contiene el registro del cliente.

La variable Email contienen inicialmente el email que hay indicado en la ficha del cliente. Este pude modificarse o dejarse en blanco si no se quiere enviar email.

Puede ser util para cambiar el email al que se envía un documento o bien no enviarlo.

Idiomas

Este documento está disponible en los siguientes idiomas: