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
: INNESGFeHeadersCaption
: eSign Facturae HeadersClave primaria
: INNESGFeDocumentType, INNESGFeDocumentNo
Esta tabla se crea a partir de una factura/abono de venta/servicio.
Versión documentos
Nombre de la tabla
: INNESGFeHeadersVersionCaption
: eSign Facturae headers versionClave 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
: INNESGFeLinesCaption
: eSign Facturae LinesClave 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
: INNESGFeTaxesOutputCaption
: eSign Facturae Taxes OutputsClave 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
: INNESGFePaymentDetailsCaption
: eSign Facturae Payment DetailsClave 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
: INNESGFeHeadersAttachmentCaption
: eSign Facturae Document attachmentClave 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
: INNESGFeAttachmentCaption
: eSign Facturae attachmentsClave 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
: INNESGFeHeadersReadCaption
: eSign Facturae headers readClave 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 nodoFileHeader
del XML.Parties
se rellena con información relativa al nodoParties
del XML.Invoices
se rellena con información relativa a los nodosInvoices
del XML.InvoiceTaxOutput
se rellena con información relativa al nodoTaxOutput
de las facturas del XML.InvoiceLine
se rellena con información relativa al nodoInvoiceLine
de las facturas del XML.InvoicePaymentDetails
se rellena con información relativa al nodoPaymentDetails
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: