Koppelingen overslaan

Elektronische facturen ontvangen met FileMaker

FileMaker tips en instructies

Elektronische facturen met FileMaker

Let op! Dit voorbeeld is een concept dat niet gegarandeerd precies zo werkt als afgebeeld. Het artikel wordt niet regelmatig bijgewerkt en kan daarom verouderd zijn wat betreft softwareversies.

We bieden geen ondersteuning voor onze gepubliceerde voorbeelden.

De implementatie van elektronische facturen in bestaande FileMaker-oplossingen is een steeds belangrijker onderwerp in de digitale bedrijfswereld. Met name de toenemende wettelijke verplichting om elektronische facturen te gebruiken voor bepaalde bedrijfsprocessen en de daaruit voortvloeiende voordelen, zoals kostenefficiëntie en procesautomatisering, maken het voor bedrijven essentieel om efficiënte oplossingen te ontwikkelen voor de verwerking van dergelijke facturen. In deze context zijn er verschillende standaarden voor elektronische facturen beschikbaar, waaronder XRechnung en ZUGFeRD/Factur-X. Deze standaarden brengen verschillende technische uitdagingen met zich mee, vooral met betrekking tot het lezen en verwerken van de gegevens die ze bevatten.

Uitdagingen bij het importeren van elektronische facturen

Een van de grootste uitdagingen bij het importeren van elektronische facturen is de verscheidenheid aan formaten en soorten gegevens die verwerkt moeten worden. Terwijl de structuur van de XRechnung relatief duidelijk is en er slechts één XML-document hoeft te worden geanalyseerd, vormt de verwerking van een ZUGFeRD- of Factur-X-factuur een grotere uitdaging. Dit zijn hybride documenten die zowel een PDF-document als ingesloten XML-gegevens bevatten.

Verschil tussen XRechnung en ZUGFeRD/Factur-X

XRechnung: Deze standaard bevat alle relevante factuurgegevens in een puur XML-bestand. Voor het inlezen van deze gegevens moet het XML-document worden geparsed om de vereiste informatie te extraheren. De grootste uitdaging ligt hier in de complexiteit van het XML-formaat en de noodzaak om ervoor te zorgen dat alle relevante gegevensvelden correct worden gelezen en geïnterpreteerd.

ZUGFeRD/Factur-X: In deze indeling zijn de XML-gegevens ingesloten in een PDF-bestand. Dit betekent dat de PDF eerst moet worden geëxtraheerd en geanalyseerd om toegang te krijgen tot de XML-gegevens. Dit proces vereist speciale tools of plugins om de ingesloten informatie op betrouwbare wijze uit het PDF-document te halen.

Opties voor het verwerken van PDF's in FileMaker

Een belangrijke uitdaging bij het importeren van ZUGFeRD/Factur-X-facturen is het extraheren van de XML-gegevens uit de PDF. Er zijn verschillende benaderingen en tools die in FileMaker kunnen worden geïntegreerd:

MBS-plugin (MonkeyBread Software)De MBS-plugin is een krachtige uitbreiding voor FileMaker die verschillende functies biedt, waaronder uitgebreide mogelijkheden voor PDF-verwerking. Met deze plugin kan FileMaker PDF's lezen en analyseren om ingesloten XML-gegevens te extraheren. Het biedt ook toegang tot de metadata van de PDF en ondersteunt het parseren en verwerken van de inhoud die het bevat. De MBS-plugin is bijzonder nuttig voor ontwikkelaars die een flexibele en uitgebreide oplossing nodig hebben om PDF's in hun FileMaker-workflows te verwerken.

DynaPDF-pluginDe DynaPDF plugin is een andere krachtige tool voor PDF-verwerking in FileMaker. Het biedt functies voor het maken, wijzigen en lezen van PDF-bestanden en is ideaal voor toegang tot ingesloten XML-gegevens in ZUGFeRD/Factur-X-facturen. Met DynaPDF kunnen de XML-gegevens veilig worden geëxtraheerd en beschikbaar worden gemaakt voor verdere verwerking in FileMaker. Daarnaast biedt de plugin functies voor het analyseren en extraheren van tekst en afbeeldingen uit PDF's, waardoor het een veelzijdige oplossing is voor uitgebreide PDF-verwerking.

Technische vereisten en overwegingen

Er zijn verschillende technische aspecten waar je rekening mee moet houden als je dergelijke plugins en tools gebruikt. Enerzijds omvat dit de licentiëring van de plugins, aangezien voor veel van deze tools een vergoeding moet worden betaald en er verschillende licentiemodellen worden aangeboden, afhankelijk van het aantal functies. Ten tweede is een zorgvuldige planning van de integratie in bestaande FileMaker-oplossingen vereist om ervoor te zorgen dat de plugins naadloos werken en er geen compatibiliteitsproblemen optreden.

Een ander belangrijk punt is de prestatie van de oplossing. Het lezen en verwerken van XML-gegevens uit PDF's kan rekenintensief zijn, vooral als er grote hoeveelheden facturen tegelijk moeten worden verwerkt. Het is daarom raadzaam om de oplossing zo te ontwerpen dat deze efficiënt werkt met de beschikbare bronnen en een hoge verwerkingssnelheid garandeert.

FileMaker ERP-software met geïntegreerde verwerking van elektronische facturen.

Meer informatie
Professionele ERP-software

XRechnung importeren en verwerken in FileMaker

Naast de algemene verplichte velden van de factuur omvat een uitgebreide implementatie van de import van een XRechnung in een FileMaker-oplossing ook de verwerking van documentitems (regelitems) en validatie van de gegevens om de integriteit van de geïmporteerde informatie te waarborgen. Het proces wordt hieronder in detail beschreven.

BaseElements plugin voor XML parsing

De BaseElements plugin vereenvoudigt de verwerking van XML-gegevens in FileMaker aanzienlijk. De plugin biedt verschillende functies om de functionaliteit van FileMaker uit te breiden, waaronder het parsen van XML-gegevens. Een van de meest gebruikte functies hiervoor is BE_XPath, waarmee XML-gegevens uit een bestand of een variabele kunnen worden geëxtraheerd.

Overzicht van de BaseElements plugin

De BaseElements plugin is een gratis plugin die speciaal is ontworpen voor FileMaker om extra functionaliteit te bieden. Het is vooral nuttig voor het werken met XML, JSON, bestandsbeheer en andere speciale vereisten die FileMaker niet van nature ondersteunt. Met de BE_XPath-functie kunnen XML-gegevens snel en nauwkeurig worden geëxtraheerd door XPath-expressies te gebruiken om specifieke delen van het XML-document te lezen.

Stapsgewijze instructies voor het importeren van een XRechnung

1. voorbereidingen in FileMaker

Zorg ervoor dat uw FileMaker database de vereiste tabellen en velden bevat zoals hierboven beschreven:

Hoofdtabel "Facturen":

  • Factuurnummer
  • Factuurdatum
  • Naam koper
  • Adres koper
  • Naam verkoper
  • Adres verkoper
  • Totaal bedrag
  • Bedrag btw
  • Valuta
  • Betalingsvoorwaarden

Gekoppelde tabel "Factuuritems":

  • Artikel beschrijving
  • Hoeveelheid
  • Prijs per eenheid
  • Totaalbedrag van het item
  • BTW-tarief

FileMaker spoedcursus

Snel en effectief FileMaker
leren in 20 hoofdstukken.

Gratis deelname
2. XML-bestand importeren

Laad de inhoud van het XML-bestand in een variabele, bijvoorbeeld met de functie Gegevens importeren of door de inhoud rechtstreeks uit een bestand te lezen.

Variabele instellen [$xmlPath; Waarde: "Path/to/the/XInvoice.xml"].

Variabele instellen [$xmlContent; Waarde: BE_ReadTextFromFile($xmlPath)].

--- Importeren van verplichte velden met BE_XPath --- Importeren van verplichte velden met BE_XPath

Variabele instellen [$Rechnchnchnumber; Waarde: BE_XPath($xmlContent; "//cbc:ID"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2")]

Variabele instellen [$Rechnungsdatum; Waarde: DateTimeMySQLToFMDate ( BE_XPath($xmlContent; "//cbc:IssueDate"; "cbc=urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2") )]

Variabele instellen [$CustomerName; Waarde: 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")].

Variabele instellen [$CustomerAddress; Waarde: 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")].

Variabele instellen [1TP4VendorName; Waarde: 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")].

Variabele instellen [1TP4VendorAddress; Waarde: 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")].

Variabele instellen [$TotalAmount; Waarde: 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")].

Variabele instellen [$axTotal; Waarde: 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")]
Variabele instellen [$Currency; Waarde: BE_XPath($xmlContent; "cbc:DocumentCurrencyCode")]
Variabele instellen [$PaymentTerms; Waarde: 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")].

--- Creëer een nieuw gegevensrecord in de hoofdtabel ---

Nieuwe gegevensrecord/query

Veldwaarde instellen [Facturen::Factuurnummer; $Rfactuurnummer].
Veldwaarde instellen [Facturen::Factuurdatum; $RIfactuurdatum].
Veldwaarde instellen [Facturen::Naam koper; $Buyer naam]
Veldwaarde instellen [Facturen::Koper adres; $Buyer adres].
Veldwaarde instellen [Facturen::Verkopersnaam; 1TP4Verkopersnaam]
Veldwaarde instellen [Facturen::Verkoper adres; 1TP4Vendor adres].
Veldwaarde instellen [Facturen::Totaalbedrag; $Totaalbedrag]
Veldwaarde instellen [Facturen::BTW bedrag; $MVAT bedrag]
Veldwaarde instellen [Facturen::Valuta; $Currency]
Veldwaarde instellen [Facturen::Betalingsvoorwaarden; $T Betalingsvoorwaarden].

--- Import van regelitems

Variabele instellen [$PositionenAnzahl; Waarde: BE_XPath($xmlContent; "count(//c:InvoiceLine)")]

Variabele instellen [$Counter; waarde: 1]

Begin lus

Variabele instellen [$ArticleDescription; Waarde: 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")].

Variabele instellen
[$Menge; Waarde: ReadAsNumber(Uitwisseling(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"); "."; ","))]

Variabele instellen
[$EInvoiceLine; Waarde: 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"); "."; ","))]

Variabele instellen
[$TotalAmountDerPosition; Waarde: BE_XPath($xmlContent; "//cac:InvoiceLine[" & $Counter & "]/cbc:LineExtensionAmount")]

Variabele instellen [$MwStatz; Waarde: 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"); "."; ","))]

Ga naar lay-out "Factuuritems".

Nieuwe gegevensrecord/query

Veldwaarde instellen [Factuurartikelen::Artikelomschrijving; $Artikelomschrijving]
Veldwaarde instellen [Factuuritems::Hoeveelheid; $Hoeveelheid].
Veldwaarde instellen [Factuuritems::Eenheidsprijs; $Unitprijs]
Veldwaarde instellen [InvoiceItems::TotalAmountOfItem; $TotalAmountOfItem].
Veldwaarde instellen [Factuurposten::BTW-tarief; $Mvat-tarief].

Sluit de lus af Wanneer $PositionsNumber = $Counter

Variabele instellen [$Counter; waarde: $Counter + 1]

Lus einde

3. validatie van de geïmporteerde gegevens

Controleer of alle verplichte velden aanwezig zijn en of er geen gegevens ontbreken. Dit kan worden gedaan met behulp van een script dat ervoor zorgt dat alle benodigde variabelen waarden bevatten.

Wanneer [ActualVoid(Facturen::Factuurnummer)].
Je eigen dialoogvenster weergeven [Fout: het factuurnummer ontbreekt.]
Huidig script afsluiten
Einde wanneer

Wanneer [ActualVoid(Facturen::Factuurdatum)].
Je eigen dialoogvenster weergeven [Fout: de factuurdatum ontbreekt.]
Huidig script afsluiten
Einde wanneer

--- Voer verdere validatiecontroles uit voor alle verplichte velden ---

Wanneer [Som van factuuritems::Totaalbedrag van het item ≠ Facturen::Totaalbedrag]
Je eigen dialoogvenster weergeven [Fout: de som van de regelitems komt niet overeen met het totaalbedrag].
Huidig script afsluiten
Einde wanneer

Overige velden en gegevens van elektronische facturen

In onze handleiding hebben we ons gericht op het importeren van de belangrijkste verplichte velden om een basisoverzicht te geven van de integratie van elektronische facturen in FileMaker. Het is echter belangrijk om te vermelden dat elektronische facturen veel meer velden en informatie kunnen bevatten die belangrijk zijn, afhankelijk van de use case.

De routing ID bijvoorbeeld, die vooral in de publieke sector wordt gebruikt om administratieve eenheden te identificeren, kan een cruciale rol spelen bij het bepalen van de juiste ontvanger. Extra velden zoals specifieke referentienummers, betalingsinformatie en belastinggegevens zijn ook relevant om de factuurverwerking te verbeteren en te voldoen aan wettelijke vereisten en individuele bedrijfsbehoeften. Een volledige implementatie moet daarom zorgvuldig worden gecontroleerd en, indien nodig, worden aangevuld met deze extra velden om een allesomvattende oplossing te garanderen. Gebruik de officiële documentatie.

Vier FileMaker ERP-platforms voor geoptimaliseerde bedrijfsprocessen.

Informatie aanvragen
Professionele ERP-software

ZUGFeRD en meer met de MBS en DynaPDF plugin

De MBS FileMaker Plugin is een zeer veelzijdige plug-in voor FileMaker die geavanceerde functionaliteit biedt, waaronder de mogelijkheid om elektronische facturen te lezen en te genereren. Met de MBS-plugin kunnen ontwikkelaars uitgebreide automatiseringsoplossingen implementeren voor het verwerken van XML-gegevens en ingesloten factuurinformatie. Een bijzonder waardevolle functie is de integratie van DynaPDFeen krachtige PDF-bibliotheek die het mogelijk maakt om PDF-documenten te maken en te manipuleren, inclusief documenten die het ZUGFeRD/Factur-X-formaat ondersteunen. Dit betekent dat de plugin niet alleen in staat is om de gegevens uit PDF's te lezen en deze in FileMaker te importeren, maar ook om nieuwe elektronische facturen te genereren die voldoen aan de huidige standaarden.

De MBS plugin wordt geleverd met een uitgebreide verzameling voorbeeldbestanden die verschillende gebruikssituaties behandelen, waaronder het maken en importeren van ZUGFeRD facturen. Deze voorbeelden vormen een uitstekende basis om snel vertrouwd te raken met de werking van de plugin. De fabrikant biedt ook gedetailleerde instructies op zijn website die stap voor stap beschrijven hoe je elektronische facturen kunt maken met behulp van de MBS plugin en DynaPDF. De meest recente instructies zijn beschikbaar op deze link die ook downloadlinks bevat voor voorbeeldbestanden voor elektronische facturen. Dit hulpmiddel is vooral nuttig voor ontwikkelaars die dieper willen ingaan op de automatisering van factuurprocessen in FileMaker en wettelijk conforme elektronische facturen willen maken volgens de ZUGFeRD/Factur-X-normen. 

Forumbericht over de integratie van elektronische facturen

We hebben een nieuw bericht gepubliceerd op ons forum gewijd aan de discussie over de integratie en verwerking van elektronische facturen in FileMaker. In dit bericht nodigen we alle geïnteresseerden uit om persoonlijke vragen te stellen en hun ervaringen te delen. Of het nu gaat over het gebruik van plugins zoals de MBS-plugin of de BaseElements-plugin, de implementatie van scripts of de optimalisatie van workflows - dit forumbericht is de perfecte plaats om ideeën uit te wisselen en te profiteren van de expertise van de community. We willen een levendige discussie aanmoedigen waarin oplossingen, uitdagingen en best practices kunnen worden besproken. Kom langs en maak deel uit van het gesprek!

Samenvatting

De integratie van het lezen van elektronische facturen in bestaande FileMaker-oplossingen brengt verschillende uitdagingen met zich mee, vooral bij de verwerking van ZUGFeRD/Factur-X-facturen. Terwijl XRechnung voornamelijk een op XML gebaseerde uitdaging is, vereist de verwerking van ZUGFeRD/Factur-X het gebruik van speciale PDF-tools en plugins zoals MBS en DynaPDF. Zorgvuldige planning, aandacht voor technische vereisten en de selectie van de juiste plugins zijn cruciaal voor de succesvolle implementatie van een efficiënte en betrouwbare oplossing.

De gratis BaseElements-plugin en het commando BE_XPath maken het mogelijk XML-gegevens in FileMaker te verwerken en gegevens op betrouwbare wijze te importeren. Het gebruik van XPath maakt een nauwkeurige extractie van de relevante informatie en een flexibele aanpassing aan verschillende XML-structuren mogelijk.

Als ZUGFeRD- of Factur-X-bestanden ook geïmporteerd en uitgelezen moeten worden, raden we aan de MBS-plugin te gebruiken in combinatie met de DynaPDF-plugin, die ook wordt geleverd met bijbehorende voorbeeldbestanden.

Elektronische facturen met FileMaker

Deel deze pagina:

ERP-software zo flexibel als uw bedrijf.
We geven je graag advies.

Aanpasbare ERP-software voor Mac, Windows en iOS.

U bevindt zich hier: Elektronische facturen ontvangen & importeren met FileMaker