Salta i link

Ricevere fatture elettroniche con FileMaker

Suggerimenti e istruzioni per FileMaker

Fatture elettroniche con FileMaker

L'implementazione delle fatture elettroniche nelle soluzioni FileMaker esistenti è un argomento sempre più importante nel mondo del business digitale. In particolare, il crescente obbligo legale di utilizzare le fatture elettroniche per alcuni processi aziendali e i vantaggi che ne derivano, come l'efficienza dei costi e l'automazione dei processi, rendono essenziale per le aziende lo sviluppo di soluzioni efficienti per l'elaborazione di tali fatture. In questo contesto, sono disponibili diversi standard per le fatture elettroniche, tra cui XRechnung e ZUGFeRD/Factur-X. Questi standard presentano diverse sfide tecniche, in particolare per quanto riguarda la lettura e l'elaborazione dei dati in essi contenuti.

Sfide nell'importazione di fatture elettroniche

Una delle maggiori sfide nell'importazione di fatture elettroniche è la varietà di formati e tipi di dati da elaborare. Mentre la struttura della XRechnung è relativamente chiara e deve essere analizzato solo un documento XML, l'elaborazione di una fattura ZUGFeRD o Factur-X rappresenta una sfida maggiore. Si tratta di documenti ibridi che contengono sia un documento PDF che dati XML incorporati.

Differenza tra XRechnung e ZUGFeRD/Factur-X

XRechnung: Questo standard contiene tutti i dati rilevanti della fattura in un file XML puro. La lettura di questi dati richiede l'analisi del documento XML per estrarre le informazioni richieste. La sfida principale risiede nella complessità del formato XML e nella necessità di garantire che tutti i campi di dati rilevanti siano letti e interpretati correttamente.

ZUGFeRD/Factur-X: in questo formato, i dati XML sono incorporati in un file PDF. Ciò significa che il PDF deve essere prima estratto e analizzato per poter accedere ai dati XML. Questo processo richiede strumenti o plugin speciali per estrarre in modo affidabile le informazioni incorporate dal documento PDF.

Opzioni per l'elaborazione dei PDF in FileMaker

Una sfida fondamentale nell'importazione delle fatture ZUGFeRD/Factur-X è l'estrazione dei dati XML dal PDF. Esistono vari approcci e strumenti che possono essere integrati in FileMaker:

Plugin MBS (MonkeyBread Software)Il plugin MBS è una potente estensione per FileMaker che offre una serie di funzioni, tra cui funzionalità complete di elaborazione dei PDF. Con questo plugin, FileMaker può leggere e analizzare i PDF per estrarre i dati XML incorporati. Fornisce inoltre l'accesso ai metadati del PDF e supporta l'analisi e l'elaborazione del contenuto. Il plugin MBS è particolarmente utile per gli sviluppatori che hanno bisogno di una soluzione flessibile e completa per elaborare i PDF nei loro flussi di lavoro FileMaker.

Plugin DynaPDFIl plugin DynaPDF è un altro potente strumento per l'elaborazione dei PDF in FileMaker. Offre funzioni per la creazione, la modifica e la lettura di file PDF ed è ideale per accedere ai dati XML incorporati nelle fatture ZUGFeRD/Factur-X. Con DynaPDF, i dati XML possono essere estratti in modo sicuro e resi disponibili per un'ulteriore elaborazione in FileMaker. Inoltre, il plugin offre funzioni per l'analisi e l'estrazione di testo e immagini dai PDF, rendendolo una soluzione versatile per le esigenze di elaborazione dei PDF.

Requisiti e considerazioni tecniche

Ci sono vari aspetti tecnici da considerare quando si utilizzano questi plugin e strumenti. Da un lato, ciò include le licenze dei plugin, poiché molti di questi strumenti sono a pagamento e offrono diversi modelli di licenza a seconda della gamma di funzioni. Dall'altro lato, è necessaria un'attenta pianificazione dell'integrazione nelle soluzioni FileMaker esistenti per garantire che i plugin funzionino senza problemi e che non si verifichino problemi di compatibilità.

Un altro punto importante è la performance della soluzione. La lettura e l'elaborazione dei dati XML dai PDF può richiedere un'elevata intensità di calcolo, soprattutto se si devono elaborare contemporaneamente grandi quantità di fatture. È quindi consigliabile progettare la soluzione in modo che funzioni in modo efficiente con le risorse disponibili e garantisca un'elevata velocità di elaborazione.

Software ERP FileMaker con elaborazione integrata delle fatture elettroniche.

Ulteriori informazioni
Software ERP professionale

Importazione ed elaborazione di XRechnung in FileMaker

Un'implementazione completa dell'importazione di una XRechnung in una soluzione FileMaker comprende, oltre ai campi obbligatori generali della fattura, l'elaborazione delle voci del documento (voci di riga) e la convalida dei dati per garantire l'integrità delle informazioni importate. Il processo è descritto in dettaglio di seguito.

Plugin BaseElements per l'analisi di XML

Il plugin BaseElements semplifica notevolmente l'elaborazione dei dati XML in FileMaker. Il plugin offre una serie di funzioni per estendere le funzionalità di FileMaker, compreso il parsing dei dati XML. Una delle funzioni più utilizzate a questo scopo è BE_XPath, che può essere usata per estrarre dati XML da un file o da una variabile.

Panoramica del plugin BaseElements

Il plugin BaseElements è un plugin gratuito progettato appositamente per FileMaker per fornire funzionalità aggiuntive. È particolarmente utile per lavorare con XML, JSON, gestione dei file e altri requisiti speciali che FileMaker non supporta in modo nativo. Con la funzione BE_XPath è possibile estrarre i dati XML in modo rapido e preciso utilizzando le espressioni XPath per leggere parti specifiche del documento XML.

Istruzioni passo-passo per l'importazione di una XRechnung

1. preparazione in FileMaker

Assicuratevi che il vostro database FileMaker contenga le tabelle e i campi necessari come descritto sopra:

Tabella principale "Fatture":

  • Numero di fattura
  • Data della fattura
  • Nome dell'acquirente
  • Indirizzo dell'acquirente
  • Nome del venditore
  • Indirizzo del venditore
  • Importo totale
  • Importo dell'imposta sul valore aggiunto
  • Valuta
  • Condizioni di pagamento

Tabella collegata "Voci di fatturazione":

  • Descrizione dell'articolo
  • Quantità
  • Prezzo unitario
  • Importo totale dell'articolo
  • Aliquota IVA

Corso accelerato di FileMaker

FileMaker veloce ed efficace
apprendimento in 20 capitoli.

Partecipare gratuitamente
2. importare il file XML

Caricare il contenuto del file XML in una variabile, ad esempio con la funzione Importa dati o leggendo il contenuto direttamente da un file.

Impostare la variabile [$xmlPath; Value: "Path/to/the/XInvoice.xml"].

Impostare la variabile [$xmlContent; Value: BE_ReadTextFromFile($xmlPath)]

--- Importazione di campi obbligatori con BE_XPath ---

Impostare la variabile [$Rechnchnchnumber; Value: BE_XPath($xmlContent; "//cbc:ID"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")].

Impostare la variabile [$Rechnungsdatum; Value: DateTimeMySQLToFMDate ( BE_XPath($xmlContent; "//cbc:IssueDate"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2") )].

Impostare la variabile [$CustomerName; Value: BE_XPath($xmlContent; "//*[local-name()='AccountingCustomerParty']/*[local-name()='Party']/*[local-name()='PartyName']/*[local-name()='Name']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")].

Impostare la variabile [$CustomerAddress; Value: BE_XPath($xmlContent; "//*[local-name()='AccountingCustomerParty']/*[local-name()='Party']/*[local-name()='PostalAddress']/*[local-name()='StreetName']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2") & ", " & BE_XPath($xmlContent; "//*[local-name()='AccountingCustomerParty']/*[local-name()='Party']/*[local-name()='PostalAddress']/*[local-name()='CityName']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")].

Impostare la variabile [1TP4VendorName; Value: BE_XPath($xmlContent; "//*[local-name()='AccountingSupplierParty']/*[local-name()='Party']/*[local-name()='PartyName']/*[local-name()='Name']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")].

Impostare la variabile [1TP4VendorAddress; Value: BE_XPath($xmlContent; "//*[local-name()='AccountingSupplierParty']/*[local-name()='Party']/*[local-name()='PostalAddress']/*[local-name()='StreetName']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2") & ", " & BE_XPath($xmlContent; "//*[local-name()='AccountingSupplierParty']/*[local-name()='Party']/*[local-name()='PostalAddress']/*[local-name()='CityName']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")].

Impostare la variabile [$TotalAmount; Value: BE_XPath($xmlContent; "//cac:LegalMonetaryTotal/cbc:PayableAmount"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")].

Impostare la variabile [$axTotal; Value: BE_XPath($xmlContent; "//cac:TaxTotal/cbc:TaxAmount"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")].
Impostare la variabile [$Currency; Value: BE_XPath($xmlContent; "cbc:DocumentCurrencyCode")].
Impostare la variabile [$PaymentTerms; Value: BE_XPath($xmlContent; "//cac:PaymentTerms/cbc:Note"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")].

--- Creare un nuovo record di dati nella tabella principale ---

Nuovo record di dati/query

Impostare il valore del campo [Fatture::Numero di fattura; $Rnumero di fattura].
Impostare il valore del campo [Fatture::Data fattura; $RIdata fattura].
Impostare il valore del campo [Fatture::Nome dell'acquirente; nome dell'acquirente $B].
Impostare il valore del campo [Fatture::Indirizzo dell'acquirente; indirizzo dell'acquirente $B].
Impostare il valore del campo [Fatture::Nome del fornitore; 1TP4Nome del fornitore].
Impostare il valore del campo [Fatture::Indirizzo del fornitore; indirizzo 1TP4Vendor].
Impostare il valore del campo [Fatture::Importo totale; $Totale].
Impostare il valore del campo [Fatture::Importo IVA; Importo $MVAT]
Impostare il valore del campo [Fatture::Valuta; $Currency]
Impostare il valore del campo [Fatture::Condizioni di pagamento; $Termini di pagamento].

--- Importazione di voci di linea.

Impostare la variabile [$PositionenAnzahl; Value: BE_XPath($xmlContent; "count(//cac:InvoiceLine)")].

Impostare la variabile [$Counter; valore: 1]

Avvio del loop

Impostare la variabile [$ArticleDescription; Value: BE_XPath($xmlContent; "//*[local-name()='InvoiceLine'][" & $lineIndex & "]/*[local-name()='Item']/*[local-name()='Name']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2")].

Impostare la variabile
[$Menge; Value: ReadAsNumber(Exchange(BE_XPath($xmlContent; "//*[local-name()='InvoiceLine'][" & $lineIndex & "]/*[local-name()='InvoicedQuantity']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"); "."; ","))]

Impostare la variabile
[$EInvoiceLine; Value: ReadAsNumber(Exchange(BE_XPath($xmlContent; "//*[local-name()='InvoiceLine'][" & $lineIndex & "]/*[local-name()='Price']/*[local-name()='PriceAmount']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"); "."; ","))]

Impostare la variabile
[$TotalAmountDerPosition; Value: BE_XPath($xmlContent; "//cac:InvoiceLine[" & $Counter & "]/cbc:LineExtensionAmount")].

Impostare la variabile [$MwStatz; Value: ReadAsNumber(Exchange(BE_XPath($xmlContent; "//*[local-name()='InvoiceLine'][" & $lineIndex & "]/*[local-name()='Item']/*[local-name()='ClassifiedTaxCategory']/*[local-name()='Percent']"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2|cac=urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"); "."; ","))]

Vai al layout "Voci di fattura"

Nuovo record di dati/query

Impostare il valore del campo [Articoli della fattura::Descrizione dell'articolo; $ADescrizione dell'articolo].
Impostare il valore del campo [Articoli di fatturazione::Quantità; $Quantità]
Impostare il valore del campo [Articoli di fatturazione::Prezzo unitario; $U Prezzo unitario].
Impostare il valore del campo [InvoiceItems::TotalAmountOfItem; $TotalAmountOfItem]
Impostare il valore del campo [Voci di fatturazione::aliquota IVA; $M aliquota IVA].

Esce dal ciclo Quando $PositionsNumber = $Counter

Impostare la variabile [$Counter; valore: $Counter + 1].

Fine del ciclo

3. convalida dei dati importati

Verificare che tutti i campi obbligatori siano presenti e che non manchino dati. Questo può essere fatto utilizzando uno script che assicuri che tutte le variabili necessarie contengano dei valori.

Quando [ActualVoid(Invoices::Invoice number)]
Visualizzare la propria finestra di dialogo ["Errore: manca il numero di fattura"].
Esce dallo script corrente
Fine quando

Quando [ActualVoid(Invoices::Invoice date)]
Visualizzare la propria finestra di dialogo ["Errore: manca la data della fattura"].
Esce dallo script corrente
Fine quando

--- Eseguire ulteriori controlli di convalida per tutti i campi obbligatori ---

Quando [Somma delle voci della fattura::Importo totale della voce ≠ Fatture::Importo totale].
Visualizzare la propria finestra di dialogo ["Errore: la somma delle voci non corrisponde all'importo totale"].
Esce dallo script corrente
Fine quando

Ulteriori campi e dati delle fatture elettroniche

Nella nostra guida ci siamo concentrati sull'importazione dei campi obbligatori più importanti, per fornire una panoramica di base sull'integrazione delle fatture elettroniche in FileMaker. Tuttavia, è importante ricordare che le fatture elettroniche possono contenere molti altri campi e informazioni importanti a seconda del caso d'uso.

Ad esempio, l'ID di instradamento, utilizzato principalmente nel settore pubblico per identificare le unità amministrative, può svolgere un ruolo decisivo nel determinare il destinatario corretto. Anche campi aggiuntivi come numeri di riferimento specifici, informazioni sul pagamento e dettagli fiscali sono importanti per migliorare l'elaborazione delle fatture e soddisfare i requisiti legali e le esigenze delle singole aziende. Un'implementazione completa dovrebbe quindi essere controllata attentamente e, se necessario, integrata con questi campi aggiuntivi per garantire una soluzione completa. Utilizzate il documentazione ufficiale.

Quattro piattaforme ERP FileMaker per ottimizzare i processi operativi.

Richiesta di informazioni
Software ERP professionale

ZUGFeRD e molto altro ancora con il plugin MBS e DynaPDF

Il MBS FileMaker Plugin è un plugin altamente versatile per FileMaker che fornisce funzionalità avanzate, tra cui la capacità di leggere e generare fatture elettroniche. Con il plugin MBS, gli sviluppatori possono implementare soluzioni di automazione complete per la gestione dei dati XML e delle informazioni di fattura incorporate. Una caratteristica particolarmente preziosa è l'integrazione di DynaPDFuna potente libreria PDF che permette di creare e manipolare documenti PDF, compresi quelli che supportano il formato ZUGFeRD/Factur-X. Ciò significa che il plugin non solo è in grado di leggere i dati dai PDF e importarli in FileMaker, ma anche di generare nuove fatture elettroniche conformi agli standard attuali.

Il plugin MBS viene fornito con un'ampia raccolta di file di esempio che coprono vari casi d'uso, tra cui la creazione e l'importazione di fatture ZUGFeRD. Questi esempi costituiscono un'ottima base per familiarizzare rapidamente con il funzionamento del plugin. Il produttore fornisce anche istruzioni dettagliate sul suo sito web che descrivono passo dopo passo come creare fatture elettroniche utilizzando il plugin MBS e DynaPDF. Le istruzioni più recenti sono disponibili all'indirizzo questo link che contiene anche i link per il download di file di fatture elettroniche di esempio. Questa risorsa è particolarmente utile per gli sviluppatori che vogliono approfondire l'automazione dei processi di fatturazione in FileMaker e creare fatture elettroniche conformi agli standard ZUGFeRD/Factur-X. 

Post sul forum sull'integrazione delle fatture elettroniche

Abbiamo pubblicato un nuovo post nel nostro forum dedicato alla discussione sull'integrazione e l'elaborazione delle fatture elettroniche in FileMaker. In questo post, invitiamo tutti gli interessati a porre domande personali e a condividere le proprie esperienze. Che si tratti dell'uso di plugin come il plugin MBS o il plugin BaseElements, dell'implementazione di script o dell'ottimizzazione dei flussi di lavoro, questo post del forum è il luogo ideale per scambiare idee e beneficiare dell'esperienza della comunità. Vogliamo incoraggiare una discussione vivace in cui si possano discutere soluzioni, sfide e best practice. Venite a trovarci e partecipate alla conversazione!

Sintesi

L'integrazione della lettura delle fatture elettroniche nelle soluzioni FileMaker esistenti pone diverse sfide, soprattutto nell'elaborazione delle fatture ZUGFeRD/Factur-X. Mentre la XRechnung è principalmente una sfida basata su XML, l'elaborazione di ZUGFeRD/Factur-X richiede l'uso di strumenti e plugin PDF speciali come MBS e DynaPDF. Un'attenta pianificazione, la considerazione dei requisiti tecnici e la scelta dei plugin giusti sono fondamentali per il successo dell'implementazione di una soluzione efficiente e affidabile.

Il plugin gratuito BaseElements e il comando BE_XPath consentono di elaborare i dati XML in FileMaker e di importare i dati in modo affidabile. L'uso di XPath consente di estrarre con precisione le informazioni rilevanti e di adattarsi in modo flessibile a diverse strutture XML.

Se si desidera importare e leggere anche i file ZUGFeRD o Factur-X, si consiglia di utilizzare il plugin MBS insieme al plugin DynaPDF, fornito con i relativi file di esempio.

Fatture elettroniche con FileMaker

Condividi questa pagina:

Un software ERP flessibile come la vostra azienda.
Saremo lieti di consigliarvi.

Software ERP personalizzabile per Mac, Windows e iOS.

Siete qui: Ricevere e importare fatture elettroniche con FileMaker