Angabe von wichtigen Informationen oder Notizen im PDF-Bild von XML-Rechnungen

XML-Rechnungen können wichtige Informationen enthalten, die nicht extrahiert werden müssen, aber in den Rechnungen sichtbar sein sollten, damit Verify-Betreiber ihre Aufgabe erledigen können. Das könnten zum Beispiel Kontaktdaten oder spezielle Anweisungen sein. Ein einzelnes Notizfeld kann zu diesem Zweck am Ende des PDF-Bilds angezeigt werden.

Um diese Funktion anzubieten, finden Sie das Rechnungsnotiz-Feld am Ende der Felder-Kategorie auf der Registerkarte Felder des XML Mappers. Das XML-Element <Notes></Notes> ist dem zugeordnet.

Für XML-Rechnungsstandards, die ein einzelnes Notizelement für weitere Informationen nutzen

Diese Funktion ist automatisch in jenen unterstützten XML-Rechnungsstandards enthalten, die zusätzliche Informationen in einem einzelnen XML-Element anzeigen (Svefaktura, OIOUBL, OIOXML, General XML).

  • Falls das Element <Notes> am erwarteten Ort gefunden wird, werden die enthaltenen Informationen am Ende der Rechnung als Anhang hinzugefügt (falls die Informationen lang genug sind, werden zusätzliche Anhangsseiten hinzugefügt).
  • Falls sich das Element in der Rechnung, aber nicht am richtigen Ort befindet, können Sie die die Daten dem Feld Rechnungsnotiz zuordnen.
  • Falls das Element in der XML-Datei vorhanden, aber leer ist, wird im Rechnungsbild nichts angezeigt.
  • XSL kann in Verbindung mit dem Rechnungsnotiz-Feld genutzt werden, um den gesamten XML-Code im PDF-Bild anzuzeigen (siehe Beispiele unten).

Für XML-Rechnungsstandards, die mehrere Notizelement für weitere Informationen zulassen

XML-Rechnungsstandards, wie E2B und Finvoice, ermöglichen es, Rechnungen zusätzliche Informationen aus mehreren XML-Elementen hinzuzufügen. Um diese Informationen am Ende der Rechnungen anzuzeigen, müssen XSL-Snippets für das Rechnungsnotiz-Feld angegeben werden:

  1. Während Sie sich für die Optimierung einer E2B- oder Finvoice-Rechnungsdefinition im XML Mapper befinden, wählen Sie die Registerkarte Felder auf der rechten Seite, öffnen Sie den Abschnitt Felder und wählen Sie das Rechnungsnotiz-Feld im unteren Bereich der Liste.
  2. Wählen Sie in der Registerkarte Feldzuordnungsregeln auf der unteren linken Seite des Fensters XSL verwenden.
  3. Fügen Sie das passende nachfolgende XSL-Snippet in das Textfeld ein:
    • E2B-Snippet

Das erste unten angeführte Code-Beispiel sollte verwendet werden, wenn ein Standard-XML-Namensraum in der XML-Datei vorhanden ist und xmlns verwendet, wie <Invoice xmlns="http://www.e2b.no/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance":

<xsl:template match="/">
     <xsl:for-each select="x:Invoice/x:InvoiceHeader/x:FreeText">
               <xsl:value-of select="."/>
               <xsl:text>&#13;</xsl:text>
     </xsl:for-each>
</xsl:template>

Falls keine solche Angabe vorhanden ist, verwenden Sie dieses Code-Snippet:

<xsl:template match="/">
     <xsl:for-each select="Invoice/InvoiceHeader/FreeText">
               <xsl:value-of select="."/>
               <xsl:text>&#13;</xsl:text>
     </xsl:for-each>
</xsl:template>
  • Finvoice-Snippet

Das erste unten angeführte Code-Beispiel sollte verwendet werden, wenn ein Standard-XML-Namensraum in der XML-Datei vorhanden ist und xmlns verwendet, wie <Invoice xmlns="http://www.e2b.no/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance:

<xsl:template match="/">
     <xsl:for-each select="x:Finvoice/x:SpecificationDetails/x:SpecificationFreeText">
               <xsl:value-of select="."/>
               <xsl:text>&#13;</xsl:text>
     </xsl:for-each>
</xsl:template>

Falls keine solche Angabe vorhanden ist, verwenden Sie dieses Code-Snippet:

<xsl:template match="/">
     <xsl:for-each select="Finvoice/SpecificationDetails/SpecificationFreeText">
               <xsl:value-of select="."/>
               <xsl:text>&#13;</xsl:text>
     </xsl:for-each>
</xsl:template>
  1. Klicken Sie auf Extrahieren und prüfen Sie, dass der entnommene Kommentarwert im Feld Rechnungsnotiz in der Liste angezeigt wird. Klicken Sie dann auf die Registerkarte Bild, um sicherzustellen, dass er im Rechnungsbild vorhanden ist.

Überlegen Sie, ob die Änderung(en) auf alle Rechnungen oder nur jene der aktuellen XML-Rechnungsdefinition angewandt werden soll(en). Klicken Sie auf XML-Definition speichern, um die Änderung nur für die aktuelle XML-Rechnungsdefinition (also den aktuellen Lieferanten) zu speichern. Klicken Sie auf XML-Profil speichern, falls Sie die Regel unabhängig von der XML-Rechnungsdefinition auf alle XML-Rechnungen anwenden möchten, die mit dem XML-Rechnungsprofil übereinstimmen.

  1. Denen Sie daran, Rechnungen und Rechnungsdefinitionen, die mit der optimierten XML-Rechnungsdefinition verbunden sind, zu löschen, bevor die Rechnungen neu interpretiert werden. (Weitere Informationen.)
Hinweis Jede E2B- oder Finvoice-Rechnungsdefinition, in der dem PDF-Bild eine Notiz oder zusätzliche Information hinzugefügt werden muss, muss auf diese Art optimiert werden, damit dies möglich ist.

Beispiele

Befolgen Sie die im vorherigen Abschnitt beschriebenen Schritte für jeden XML-Rechnungsstandard (also nicht nur E2B und Finvoice), verwenden Sie in Schritt 3 aber stattdessen die folgenden XSL-Snippets:

  • Zeigt den gesamten XML-Code ohne spezielle Formatierung am Ende der Rechnung an
    <xsl:template match="/">
    <xsl:copy-of select="."/>
    </xsl:template>
  • Listet XML-Codelemente am Ende der Rechnung in alphabetischer Reihenfolge gemeinsam mit dem entsprechenden Wert in der Rechnung auf
<xsl:template match="/">
<xsl:variable name="unique-list" select="//*[not(.=following::*)]"/>
<xsl:for-each select="$unique-list">
<xsl:sort select="name(.)"/>
<xsl:value-of select="name(.)"/>=<xsl:value-of select="."/>
<xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
  • Zeigt am Ende der Rechnung eine einfache Rechnungszusammenfassung pro Person an
<xsl:template match="/">
<!-- Get all unique values of ‘Description‘ -->
      <xsl:for-each select="//cac:InvoiceLine[not(cac:Item/cbc:Description = preceding::cac:Item/cbc:Description)]">
                               <xsl:sort select="cac:Item/cbc:Description"/> <!-- Sort by Description  -->
                             <!-- For each Description -->
                             <xsl:variable name='CurrentPerson' select="cac:Item/cbc:Description" />      <!-- Get value of Description -->
                             <xsl:variable name='NodeForCurrentPerson' select="//cac:InvoiceLine[cac:Item/cbc:Description=$CurrentPerson]" />         <!-- Get node set of Description -->
                             <xsl:variable name='NumOfRows' select="count($NodeForCurrentPerson)" />      <!-- Count number of nodes for Description -->
                             <xsl:variable name='SumOfCost' select="sum($NodeForCurrentPerson/cac:Item/cac:BasePrice/cbc:PriceAmount)" />       <!-- Sum of value of all PriceAmount nodes for Description -->
             Person: <xsl:value-of select="$CurrentPerson"/> #Rows: <xsl:value-of select="$NumOfRows"/>  Totalt:<xsl:value-of select="$SumOfCost"/>         <!-- Compose the value of the Note field -->
      </xsl:for-each>
</xsl:template>