Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

InhaltsübersichtTable of contents

Table of Contents
maxLevel3

...

overview:

...

what is ZUGFerD?

Der PDF-Standard In addition to transporting the document, the PDF standard PDF/A-3 erlaubt neben dem Transport des Belegs die gleichzeitige Auslieferung der Rechnungsdaten im XML-Format. Dies erfolgt sozusagen als interner „Anhang" einer PDF-Datei. Der Empfänger wird so in die Lage versetzt, die wichtigen Daten einer Rechnung in eine Datenbank zu exportieren. Die manuelle Erfassung durch Ablesen vom Beleg entfällt.

Einige große Unternehmen haben diese Methode des Datentransfers bereits zur Bedingung bei der Rechnungsschreibung in Form einer PDF-Datei gemacht oder sie für die nahe Zukunft als notwendig angekündigt.

DirectSpool (früher Automail) wurde erweitert, um die Rechnungsdaten aus der Spooldatei (SPLF) abzugreifen und der PDF-Datei als XML-Daten mitzugeben. Für den Absender ist keine Programmierung erforderlich. Der Empfänger kann mit dem Adobe Reader den Beleg anzeigen und über das Symbol „Büroklammer" den Export der XML-Daten vornehmen (dazu mehr weiter unten).

FeRD oder ZUGFeRD?

Die Begriffe allows the invoice data to be delivered in XML format at the same time. This is done as an internal "attachment" of a PDF file, so to speak. The recipient is thus enabled to export the important data of an invoice to a database. There is no need for manual data entry by reading from the receipt.

Some large companies have already made this method of data transfer a requirement when writing invoices in the form of a PDF file, or have announced it as a requirement for the near future.

DirectSpool (formerly Automail) has been extended to retrieve the invoice data from the spool file (SPLF) and add it to the PDF file as XML data. No programming is required for the sender. The recipient can use Adobe Reader to view the document and use the "paperclip" icon to export the XML data (more on this below).

FeRD or ZUGFeRD?

The terms FeRD (Forum elektronische Rechnung Deutschland) und and ZUGFeRD (Zentraler User Guide vom vom Forum elektronische Rechnung Deutschland) meinen in der Regel das gleiche.

Das Forum hat eine Verfahrensbeschreibung ZUGFeRD erstellt, die für Unternehmen aller Art als Norm oder Orientierung dienen soll, damit der Datenaustausch vom Absender zum Empfänger auf digitalem Weg rasch und fehlerfrei erfolgen kann. Dies ist Teil der Digitalisierungsbestrebungen der deutschen Wirtschaft.

Weitere Informationen zum System "ZUGFeRD" finden Sie unter generally mean the same thing

The Forum has created a ZUGFeRD process description that is intended to serve as a standard or orientation for companies of all kinds so that data can be exchanged from sender to recipient quickly and without errors via digital means. This is part of the digitization efforts of the German economy.

For more information on the "ZUGFeRD" system, visit https://www.zugferd-tech.de/.

...

Variants: BASE / EXTENDED / COMFORT

Der ZUGFeRD-Standard kennt verschiedene "ProfileThe ZUGFeRD standard recognizes different "profiles". directmail unterstützt derzeit currently supports BASE, EXTENDED und and COMFORT .

Jedes dieser Profile bietet "Raum" für die Daten von Rechnungen.

Darüber hinaus sind noch die Profile XRECHNUNG und BASIC WL definiert.

Image Removed

...

Each of these profiles offers "space" for invoice data

In addition, the profiles XRECHNUNG and BASIC WL are defined

Image Added

Extract from ZUGFeRD-2.1.1 - SpezifikationSpecification.pdf - siehesee: https://www.ferd-net.de/standards/zugferd-2.1.1/index.html

Für den erfolgreichen Einsatz von For the successful use of ZUGFeRD in directmail ist es zunächst erforderlich, sich mit den Geschäftspartnern über das zu verwendende Profil abzustimmen: welche Daten sollen übertragen werden?

Das Profil EXTENDED wird in den meisten Fällen allen Anforderungen gerecht.

...

, it is first necessary to agree with the business partners on the profile to be used: which data should be transferred?

The EXTENDED profile meets all requirements in most cases.

Requirements for using directmail for ZUGFeRD

  • DirectSpool/DirectMail ab Version version 5.50 or higher
  • Toolmaker Lizenz für license for ZUGFeRD XML (ggf. auch für possibly also for XMR)
  • Spooldateien mit SCS oder IPDS Datenstrom (Standard)
  • Ausgabeformat Spool files with SCS or IPDS data stream (standard)
  • Output format *EPDF
  • Wert Value *ZUGFERD in den PDF Formularangaben bei Parameterthe PDF form specifications at ParameterCreate PDF/A erstellen
  • Fontdatei im IFS unter Font filein IFS under /Toolmaker/DirectMail400/Fonts (ze.Bg. cour.ttf)
  • Dateien Files ZUG.XML und and ZUG.XMP im in IFS unter under /Toolmaker/DirectMail400/Zugferd

...


...

Define indexes for ZUGFeRD

...

Wie As usual in DirectSpool üblich, werden variable Daten per Definition aus der Spooldatei abgegriffen und als Indizes gespeichert (Beispiel &RGNR). Außerdem können per SQL Werte aus einer Datei gelesen und auch als Indizes definiert werden.

Seitens ZUGFeRD gibt es fest vordefinierte Felder sowohl für die Kopf- als auch die Postendaten einer Rechnung, denen über eine komfortable Funktion die gesammelten Indizes aus der SPLF zugeordnet werden. Auch die Verwendung von konstanten Werten und die Nutzung von Datumsroutinen zur Formatumsetzung sind möglich.

Ausgehend von einer funktionierenden Automail-Definition wird nachfolgend beschrieben, wie die Funktion ZUGFeRD aktiviert und die Indizes zugeordnet werden.

Rufen Sie DirectSpool (Automail) mit WRKATMDEF auf. Drücken Sie dann Taste F7 ZUGFeRD Definition. variable data is retrieved by definition from the spool file and stored as indexes (example &RGNR). In addition, values can be read from a file via SQL and also defined as indices.

On the part of ZUGFeRD there are fixed predefined fields for both the header and the post data of an invoice, to which the collected indices from the SPLF are assigned via a convenient function. The use of constant values and date routines for format conversion are also possible.

Based on a working Automail definition, the following describes how to activate the ZUGFeRD function and assign the indices.

Call DirectSpool (Automail) with WRKATMDEF. Then press key F7 ZUGFeRD Definition

Image Modified

Image Modified

Image Modified


X-File Template  - Definiert Die Einbettungsstruktur für das Template - defines the embedding structure for the PDF

X-ADD Template - zug.xmp definiert das Muster für die Zugferd Struktur

Anfang Position / Ende Position - bestimmt die Vervielfältigung der Positionen. Z.B Rechnungspositionen

API Programm - es kann ein Programm hinterlegt werden, in welchem das XML erzeugt wird

Das Programm muss in der Bibliothek DIRMAIL stehen und einen beliebigen neuen Namen Haben

...

defines the pattern for the Zugferd structure

Start Position / End Position - defines the duplication of the positions. E.g. invoice positions

API program - a program can be defined in which the XML will be generated

The program must be in the DIRMAIL library and have any new name

Below is a sample API program:

Code Block
languagetext
titleMuster für ein API-ProgrammSample API program
collapsetrue
        CTL-OPT DEBUG(*YES)   OPTION(*NODEBUGIO)  ;
        CTL-OPT DECEDIT('0,') DATEDIT(*DMY.)                    ;
       //********************************************************************
       //   Example ZugFeRD API Programm                                    *
       //                                                                   *
       // Autor: Roman Tutschka   07.2019                                   *
       //********************************************************************
       //  CREATE  COMMANDS:
       // Replace PGMLIB , SRCLIB , PGMNAM with your own Names
       // PGMLIB is normaly DIRMAIL  use an NEW !!! Programm Name 
       // COMMANDS:
       // ADDLIBLE DIRMAIL 
       //
       // CRTSQLRPGI OBJ(PGMLIB/PGMNAM) SRCFILE(SRCLIB/QRPGLESRC) 
       // SRCMBR(PGMNAM) COMMIT(*NONE) OBJTYPE(*MODULE) USER(*CURRENT) 
       // REPLACE(*YES) DBGVIEW(*SOURCE) 
       //
       // CRTPGM PGM(PGMLIB/PGMNAM) BNDSRVPGM((DIRMAIL/DMLIB))
       //
       // Entry
    ?   DCL-PR  DMWRKZUX ;
         ID   PACKED(11:0);       // Identifikation
         SEGMENT   PACKED(9:0);   // Identifikation
         PXML POINTER ;           // Returns Pointer for embedded XML
         siz INT(10) ;            // Returns Size of the XML
        END-PR;
       // Internal Definition
    ?   DCL-PI  DMWRKZUX ;
         ID   PACKED(11:0);       // Identifikation
         SEGMENT   PACKED(9:0);   // Identifikation
         PXML POINTER ;      // Returns Pointer for embedded XML
         siz INT(10) ;       // Size of the XML
        END-PI;

      
       DCL-PR dm_etoa  INT(10) extproc('dm_etoa') ;
        buffer      CHAR(32767) options(*varsize)  ;
        bufferlen   INT(10)  value ;    
       END-PR;

        DCL-S PRETCHAR char(999999)  based(PXML) ;
       //
        DCL-DS DSHDR EXTNAME('DMEXCHDR') END-DS;             // Datastucture for Header Information
        DCL-DS DSZUG EXTNAME('DMATMZUG') QUALIFIED END-DS;   // Datastucture for ZUGFERD Information
        DCL-DS DSIDX EXTNAME('DMEXCIDX') QUALIFIED END-DS;   // Datastucture for INDEX Information
        DCL-S INDEXNAM LIKE(DSIDX.EINAM)  ;   // Name of the Index
       //********************************************************************
       // Main Programm
       //********************************************************************
         PXML = %ALLOC(10000000);       // Allocate MAX space for Return FREED in DIRMAIL

         // Read DIRMAIL Header Information OPTIONAL
         EXEC SQL  SELECT * INTO :DSHDR FROM DMEXCHDR
           WHERE   EASEQ = :ID ;
         // Read Indexes Values from DIRMAIL
         clear DSIDX;  // init
         INDEXNAM = 'RGNR';  //  Example in this case the result 
         // is the Value from the DIRMAIL Index for Example the Invoice Number 
         EXEC SQL SELECT I.* INTO :DSIDX  from DMEXCSEG as S 
           join DMEXCIDX as I on ESSEQ = EISEQ
           WHERE   ESSEQ = :ID AND ESNUM = :SEGMENT  AND
           EIPAG >= ESSTR AND EIPAG <= ESEND
            AND  EINAM = :INDEXNAM
            FETCH FIRST 1 ROWS ONLY;
         // Result value for the example Index ''RGNR'' in in DSIDX.DSIDX   

         // Create Embedded XML
         // EXAMLE  Value
         IF SQLCOD = 0;
           // Example embed INVOICE Number INDEXNAM RGNR exist 
           PRETCHAR = DSIDX.EIVAL ;     // Example embed INVOICE Number INDEXNAM
         ELSE;
           // Example embed INVOICE Number INDEXNAM RGNR do not exist 
           PRETCHAR = 'RETURN XML'  ;  // Example
         ENDIF;
         // Convert to ASCII  needed if the valoue is in EBDIC
         dm_etoa(PRETCHAR: %LEN(%TRIM(PRETCHAR))) ;
         siz = %LEN(%TRIM(PRETCHAR))     ;
         // if the Value of the XML is in ASCII only  return the address of PXML
         // and the Size of DATA

         return;

ZUGFeRD

...

Nach dem Druck auf Enter erscheint folgendes Dialogprogramm, mit dem Sie die Standardwerte je FeRD Feld erfassen und abspeichern können.

Image Removed

Hinweise zu den Spalten:

...

definitions and default values

After pressing Enter, the following dialog program appears, allowing you to enter and save the default values for each FeRD field.

Image Added

Notes on the columns:

Type: H=Header (Kopfinfos der Rechnungheader info of the invoice), P=Positionen Items (ze.B. für Artikelzeileg. for article line)

Variablen Variable Name: Der von der ZUGFeRD Organisation festgelegte Name für ein MerkmalDefault Wert: Ein von Ihnen für Ihre Firma vorgegebener konstanter Wert für ein MerkmalThe name defined by the ZUGFeRD organization for a feature

Default Value: A constantvalue for a characteristic, specified by you for your company

XML Format: Hier kann bei Bedarf mit F4 die Funktion für Dezimal- und Datumsformate ausgewählt werden. Die angezeigten Möglichkeiten sind in der Parameter Kontrolldatei von WOPiXX unter ZUGFORMAT definiert.

Image Removed

Herkunft Format: Angeben, wenn unbedingt erforderlich. Normalerweise wird das Datumsformat automatisch erkannt. Auch hier kann mit F4 das Format ausgewählt werden. Die angezeigten Möglichkeiten sind in der Parameter Kontrolldatei von WOPiXX unter ZUGOFORMAT definiert.

Reihenfolge: Sequenz für die Darstellung in dieser Anzeige.

Image Removed

Falls die Variablen Namen nicht verständlich sind, kann mit F11 die Sicht umgeschaltet und eine Bezeichnung eingeblendet werden.

Erforderliche Indizes prüfen

Image Removed

Alle variablen Werte aus der Spooldatei, die als XML-Daten mit in die PDF-Datei eingefügt werden sollen, müssen als Indizes definiert worden sein. Beispiel:

Image Removed

Das Thema Indizes definieren und bedingen wird als bekannt vorausgesetzt (siehe Kapitel "Index erstellen" auf der Seite directspool Dokumentation). Das Bild zeigt die grafische Darstellung der definierten Indizes in Umkehranzeige und deren Bedingungskonstanten mittels Unterstreichung. Die Farben können abweichen. Die Detailangaben werden im folgenden Bild dargestellt.

Die Auflistung und Verwaltung der Indexeinträge kann über Pulldown Menü Index und Punkt 4 Mit Indizes arbeiten erreicht werden. Jeder Indexname kann durch ein vorangestellte & an den gewünschten Stellen in der Automail Definition verwendet werden.

ZUGFeRD Zuordnungen

Image Removed

Für die Zuordnung der einzelnen Indizes aus der Spooldatei zu den festen Feldnamen der XML-Struktur wird folgendes Bild verwendet. Es kann über das Pulldown Menü Extras und Punkt 3 erreicht werden.

Es werden alle ZUGFeRD Default Werte angezeigt (Beschreibung siehe oben) und man kann jetzt mit F4 bei den noch leeren Zeilen die Indizes aus einer Liste mit 1 auswählen. Ein Index ist an dem führenden Zeichen & zu erkennen (Beispiele If required, the function for decimal and date formats can be selected here with F4. The displayed possibilities are defined in the parameter control file of WOPiXX under ZUGFORMAT.

Image Added

Origin format: Specify if absolutely necessary. Normally the date format is recognized automatically. The format can also be selected here with F4. The displayed options are defined in the parameter control file of WOPiXX under ZUGOFORMAT.

Sequence: Sequence for the representation in this display.

Image Added

If the variable names are not understandable, the view can be switched with F11 and a designation can be shown.

Check required indices

Image Added

All variable values from the spool file that are to be included in the PDF file as XML data must have been defined as indices. Example:

Image Added

The topic Define and Condition Indexes is assumed to be known (see chapter "Create Index" on the directspool documentation page). The picture shows the graphical representation of the defined indices in reverse display and their condition constants by means of underlining. The colors may differ. The details are shown in the following image.

The listing and administration of the index entries can be reached via pulldown menu Index and item 4 Work with indexes. Each index name can be used in the desired places in the automail definition by prefixing it with &.

ZUGFeRD Assignments

Image Added

The following screen is used to map the individual indexes from the spool file to the fixed field names of the XML structure. It can be reached via the pulldown menu Extras and item 3.

All ZUGFeRD default values are displayed (description see above) and one can now select the indices from a list of 1 with F4 for the still empty lines. An index can be recognized by the leading character & (examples &RGDAT, &KDNR, &RGNR).

Falls die Variablen Namen nicht verständlich sind, kann mit F11 die Sicht umgeschaltet und eine Bezeichnung eingeblendet werden.

Format der PDF-Datei

Innerhalb der directspool-Definition ist zu prüfen, ob das Spoolausgabe Format richtig gesetzt ist, es muss *EPDF seinIf the variable names are not understandable, the view can be switched with F11 and a designation can be shown.

Format of the PDF file

Within the directspool definition it must be checked if the spool output format is set correctly, it must be *EPDF.

In directspool (Automail) finden Sie dieses Fenster unter dem Pulldown Menü Email bei 3. Ausgabeformat.

...

you find this window under the pulldown menu Email at 3. output format.

PDF form specifications - Parameters font and PDF/A *ZUGFERD

Unter dem Punkt Under the item 5. Formular/Papier im Menü Email müssen 2 Parameter gesetzt werden.

Schriftart - muss den Namen einer Fontdatei enthalten.

Dieses ist üblicherweise COUR.TTF.  (Diese Schriftart stammt aus dem Windows Umfeld und wird nicht von Toolmaker geliefert).

...

form/paper in the menu Email 2 parameters must be set.

Font - must contain the name of a font file

This is usually COUR.TTF (this font is from the Windows environment and is not supplied by Toolmaker)

The font file must be located in the IFS directory under

/Toolmaker/Directmail400/Fonts

existieren .

Grund: Fontdateien können Copyrights unterliegen! Wird keine Fontdatei bereitgestellt und hier angegeben, tritt ein Fehler auf. Der hier allgemein angegebene Sonderwert *COURIER ist nicht ausreichend, weil das PDF/A Format die Einbettung der Fontdatei erzwingt.

PDF/A erstellen - Hier muss *ZUGFERD angegeben werden, damit die XML-Daten auch in die PDF-Datei eingefügt werden.

Definition abspeichern

Nachdem alle erforderlichen Indizes den ZUGFeRD Variablen zugeordnet wurden, kann die Definition mit F3 und J=Ja abgespeichert werden.

Die XADD-Dateien

Eine XADD-Datei bearbeiten

Rufen Sie DirectSpool (Automail) mit WRKATMDEF auf. Drücken Sie dann Taste F7 ZUGFeRD Definition.

Image Removed

Wählen Sie Auswahl 8 für die zu ändernde Datei

Image Removed

Damit öffnet sich der Editor mit dieser Datei. Sie können jetzt die anstehenden Änderungen vornehmen.

Image Removed

...

Reason: Font files may be subject to copyrights! If no font file is provided and specified here, an error will occur. The special value *COURIER generally specified here is not sufficient because the PDF/A format forces the font file to be embedded.

Create PDF/A - *ZUGFERD must be specified here so that the XML data is also inserted in the PDF file.

Save definition

After all required indexes have been assigned to the ZUGFeRD variables, the definition can be saved with F3 and J=Yes.


...

The XADD files

Edit an XADD file

Call DirectSpool (Automail) with WRKATMDEF. Then press key F7 ZUGFeRD Definition

Image Added

Select choice 8 for the file you want to modify

Image Added

This opens the editor with this file. You can now make the pending changes.

Image Added



...

Not allowed special characters (&, <, >, "

...

and ')

Es gibt fünf Zeichen, die nicht in XML-Dateien erlaubt sind. An ihrer Stelle muss man eine sog. "escape"-Sequenz eintragen. Es sind dies:

...

There are five characters that are not allowed in XML files. In their place you have to enter a so-called "escape" sequence. These are:

CharactersEscape sequence
"&quot;
'

&apos;

<&lt;
>&gt;
&&amp;


(siehe zsee e.Bg. https://stackoverflow. com/questions/1091945/what-characters-do-i-need-to-escape-in-xml-documents)

...

The ampersand (&)

...

is corrected automatically

Example in a spoolmail definition, an index is fetched from a database file. The field contains the name of a company:

ACME GmbH & Co. KG

Wenn dieser String If this string would be taken over "as is" in die XML-Datei übernommen würde, käme es zu einem Syntaxfehler.
Directspool korrigiert jedoch den String bei der Übernahme automatisch und setzt ihn um ininto the XML file, a syntax error would occur.

However, Directspool automatically corrects the string during the transfer and converts it to:

<ram:SellerTradeParty>
  <ram:Name>ACME GmbH &amp; Co . KG</ram:Name>

Für den Entwickler der directspool-Definition besteht also kein besonderer Handlungsbedarf.

...

So there is no special need for action for the developer of the directspool definition.

Special cases: surround the string with <![CDATA[....]]>

...

Die Sequenz The sequence <![CDATA[<beliebiger<any_text> ]]> sorgt dafür, dass in <beliebieger_text> auch Sonderzeichen angegeben werden können. Der XML-Parser ignoriert diese. Damit kann der Inhalt des Feldes ohne Änderung ausgegeben werdenensures that special characters can be specified in <any_text>. The XML parser ignores these. This allows the contents of the field to be output without modification.

Code Block
languagexml
titleLösung mit Solution with <![CDATA
<ram:SellerTradeParty>
  <ram:Name>
     <![CDATA[
         Artikel "Kerzenständer 30cm" nicht lieferbar
     ]]> 
  </ram:Name>
...

Weitere Hinweise zu Further hints for <![CDATA: (https://stackoverflow.com/questions/2784183/what-does-cdata-in-xml-mean)

Ergebnis prüfen

Davon ausgehend, dass es sich um eine funktionierende Automail Definition handelt, die jetzt um die ZUGFeRD Funktion erweitert wurde, kann eine passende Spooldatei in der überwachten OUTQ eingefügt und das Ergebnis der Konvertierung geprüft werden. Es kann sich bei dem von Ihnen definierten Ablauf um eine E-Mail mit PDF-Anhang, eine ins IFS exportierte PDF-Datei oder um eine archivierte PDF-Datei handeln.

XML-Datei aus dem PDF-Dokument exportieren

Klicken Sie die PDF-Datei doppelt. Es sollte sich der Adobe Reader öffnen und den Inhalt anzeigen. An dieser Anzeige hat sich nichts geändert, aber es wird in der linken, senkrechten Symbolleiste eine Büroklammer angezeigt.

Diese anklicken und die Liste der Dateianlagen prüfen. Die ZUGFeRD XML Datei doppelklicken – es öffnet sich die Anwendung, die mit der Endung XML verbunden ist und zeigt den XML Code an. Möglicherweise kommt vorher noch ein Warnhinweis wg. potentieller Risiken beim Öffnen.

Image Removed

...



...

Check result

Assuming that this is a working automail definition that has now been extended to include the ZUGFeRD feature, a matching spool file can be inserted into the monitored OUTQ and the result of the conversion can be checked The process you have defined can be an e-mail with a PDF attachment, a PDF file exported to IFS or an archived PDF file.

Export XML file from PDF document

Double click the PDF file. Adobe Reader should open and display the contents. Nothing has changed in this display, but it is shown in the left, vertical toolbar a paperclip displayed

Click on it and check the list of file attachments. Double-click the ZUGFeRD XML file - the application associated with the XML extension will open and display the XML code. You may see a warning about potential risks when opening the file.


Image Added

With right click on the name of the file you can save the XML file in a directory.


Falls Sie z.B. von Ihren Lieferanten Rechnungen im
Note
iconfalse
titleHinweise
Hints

If you receive e.g. invoices from your suppliers in PDF/A-3 Format bekommen, wird genau wie zuvor beschrieben vorgegangen, um den XML Anhang zu exportieren.

Auf der IBM i ist es möglich, eine XML-Datei automatisiert in's IFS zu exportieren und zu verarbeiten. Weitere Informationen hierzu:

Mit dem Befehl

format, the procedure for exporting the XML attachment is exactly the same as described above

On IBM i it is possible to export and process an XML file automatically in IFS. More information about this:

XML mit einem PC-Editor bearbeiten

Einige Editor-Programme für PCs bieten die Möglichkeit XML-Dateien "vernünftig" anzuzeigen und auch die Syntax zu prüfen.

Zum Beispiel Notepad++

...

  • allows to export an email attachment with a CL program
  • With a Posteingangsassistenten von directmail it is possible to control the whole process from the receipt of a mail to the transfer to an accounting software


Editing XML with a PC editor

Some editor programs for PCs offer the possibility to display XML files "reasonably" and also to check the syntax.

For example Notepad++

For example, there are so-called "plug-ins" for the open source software Notepad++ (https://notepad-plus-plus.org/) für diese Zwecke. Hier wären zu nennen for these purposes. Here would be

  • XML Tools - Saubere Darstellung, SyntaxprüfungClean display, syntax checking
  • Npp Xml Treeview - Darstellung der XML-Datei als Baumdisplay of XML file as tree


ZUGFeRD

...

validation portals

www.din-zugferd-validation.org

Unter At www.din-zugferd-validationvalidat ion.org gibt es die Möglichkeit eine XML-Datei auf ihre Gülitgkeit zu überprüfen.Es ist erforderlich, sich dort zu registrieren. Die Registrierung und das Validieren von ZUGFeRD-XML-Dateien ist kostenlos (Stand: Dez there is a possibility to validate an XML file.

It is necessary to register there. Registration and validation of ZUGFeRD XML files is free of charge (as of Dec. 2020).

Disclaimer: Wir haben keinen Einfluss auf die Inhalte dieser Website und übernehmen keine Gewähr für sieWe have no influence on the content of this website and do not assume any liability for it.

https://portal3.gefeg.com/invoice/validation

Diesem Portal kann man die PDF-Datei komplett übergeben, in der die ZUGFeRD-XML-Datei eingebettet ist.

Auch hier ist es erforderlich sich zu registrierenTo this portal you can submit the complete PDF file in which the ZUGFeRD XML file is embedded.

It is also necessary to register here.




...

Export

...

API DMEXPPDA

...

for PDF/A-3

...

Diese Schnittstelle wird gesondert lizenziert und kann mit dem Lizenzcode XMR von Toolmaker freigeschaltet werden.

Sie haben eine PDF/A-3 Datei erhalten. Wenn Sie den Export der XML Daten in der IBM i Welt automatisiert durchführen und die XML Daten gleich verarbeiten wollen, können Sie das DirectSpool API Programm DMEXPPDA aus Ihrer Anwendung aufrufen und 3 Parameter übergeben.

...

files

This interface is licensed separately and can be unlocked with the license code XMR from Toolmaker.

You have received a PDF/A-3 file If you want to automate the export of the XML data in the IBM i world and process the XML data immediately, you can call the DirectSpool API program DMEXPPDA from your application and pass 3 parameters

RPGLE example (test program excerpt):
// Definitions
DCL-S ifsobj char(250) inz('/A/Zugferd_Testhw1_QPRINT.PDF') ;
DCL-S ifsout char(250) inz('/A/Zugferd_Testhw1_OUTPUT.xml') ;
DCL-S retcod char(80) inz ;
Dcl-Pr DMexppda ExtPgm('DMEXPPDA') ;
PDFDocument CHAR(250) ;
resultFile CHAR(250) ;
returnCode CHAR(80) ;
End-Pr ;
// Call the program
DMexppda(ifsobj:ifsout:retcod) ;
if retcod = *blank ;
// PDF Attachment attachment has been exported
Else ;
// error handling
Endif ;