Skip to main content

xSuite Interface Windows Prism 5.x – Online-Hilfe

Allgemeine Eigenschaften

Die folgenden Eigenschaften sind für alle Indexdatenleser gültig.

Die spezifischen Eigenschaften der Indexdatenleser sind in den Abschnitten der einzelnen Leser beschrieben. Dort wird für jeden Indexdatenleser auch die individuelle Syntax der Eigenschaft ProcessReadIndex[].Field[].InputName erläutert. Durch diese Eigenschaft wird ein Indexwert aus einer Dateianlage extrahiert.

Die Zuordnung eines Feldkatalog zu einem Dokument erfolgt erst, wenn der Indexdatenleser ausgeführt wird. Zunächst wird der Standardfeldkatalog herangezogen, um alle Indexdatenleser in der Reihenfolge ihrer Definition auszuführen und die gelesenen Inhalte in die Zielfelder zu übernehmen. Wenn kein Indexdatenleser definiert ist oder bedingungsabhängig kein Leser ausgeführt wird, verbleiben die Felder des Kataloges auf den Initialwerten. Wenn auf Basis der gelesenen Inhalte ein alternativer Feldkatalog herangezogen wird, wird der Standardkatalog vollständig verworfen und der beschriebene Ablauf wird für den neuen Katalog wiederholt.

Eigenschaft

Beschreibung

ProcessReadIndex[].Type*

Art des Indexdatenlesers, d.h. das zu lesende Datenformat:

  • Csv: Textdatei im CSV-Format

  • Custom: benutzerdefinierter Indexdatenleser

  • EasySid: EASY-Standardimportdatei

  • FileName: beliebige Datei

  • InternalJson: internes Dokumentobjekt im JSON-Format

  • Json: JSON-Datei

  • Mail: E-Mail-Datei, d.h. EML-Datei oder MSG-Datei

  • MsExcel: Microsoft-Excel-Datei

  • MsWord: Microsoft-Word-Datei

  • Pdf: PDF-Datei

  • PeppolInvoice: PEPPOL-XML-Datei im Format "BIS Billing 3.0" (Rechnung oder Gutschrift)

  • PeppolPintInvoice: PEPPOL-XML-Datei im Format "PINT BIS Billing 1.0" (Rechnung oder Gutschrift)

  • UblInvoice: UBL-XML-Datei in Version 2.4 (Rechnung oder Gutschrift)

  • WebService: Indexdatei aus "WebServiceIndexClient", "WebServiceInput" oder "WebServiceOutputClient"

  • Xml: XML-Datei

  • XRechnung: XRechnung-XML-Datei

  • XSuiteBus2: Indexdatei aus xSuite Bus Prism 2.x

  • XSuiteEDnaInvoice: Eingangsrechnung aus xSuite eDNA

  • XtractDat: Indexdatei para.dat eines IRISXtract-Stapels

  • Zugferd: ZUGFeRD-PDF-Datei oder XML-Datei in der Version 2.x

Der Indexdatenleser FileName interpretiert die Daten abweichend von den anderen Lesern nicht inhaltlich, sondern extrahiert nur Werte aus dem Eingabedateipfad oder Eingabedateinamen.

Einige Indexdatenleser, z. B. WebService oder die Leser für die E-Rechnungsformate, sind spezialisierte Formen des generischen Lesers Json und Xml. Im Vergleich zu den generischen Lesern erleichtern diese spezialisierten Leser die Konfiguration, da in diesen Fällen der Aufbau der Datenstrukturen bekannt ist.

ProcessReadIndex[].ConditionMacro

optionaler Feldmakroausdruck, wenn die Verarbeitung eines Indexdatenlesers nur unter bestimmten Bedingungen ausgeführt werden soll

Der Feldmakroausdruck muss einen entsprechenden Wahrheitswert zurückliefern. Bei fehlendem Eigenschaftswert gilt die Bedingung implizit als erfüllt.

ProcessReadIndex[].FileFilter(%)

Namensfilter zur Auswahl der auszulesenden Indexdatei aus den Dateianlagen des Dokumentes

Bei fehlendem Wert wird standardmäßig ein Filterwert gesetzt, der zu dem betreffenden Datenformat passt, z. B. *.json für das JSON-Format.

Für die Extraktion der Indexdaten wird grundsätzlich nur die erste gefundene Dateianlage herangezogen, die dem Filtermuster entspricht. Bei Mehrdeutigkeiten findet zur Ermittlung der Datei eine Priorisierung statt. Eine Datei, die aus den Eingabedaten explizit als Indexdatei oder als Primärdatei bekannt ist, wird im Vergleich zu einer Datei, die eine ergänzende Anlage zu einer solchen Datei ist, priorisiert.

Wenn einem Indexdatenleser gemäß Filter eine Datei übergeben wird, die nicht vom passenden Typ ist, läuft die Verarbeitung in der Regel auf einen Fehler. Nur für die E-Rechnungsformate PEPPOL, XRechnung und ZUGFeRD findet vorab eine explizite Prüfung auf ein gültiges Format statt, um eine Datei zu überspringen, anstatt einen Fehler zu werfen.

ProcessReadIndex[].ReadMultiValues

Wahrheitswert, ob mehrere Werte in ein einzelnes Zielfeld übernommen werden

Standardwert: false (nur der erste Wert wird übernommen)

Diese Eigenschaft ist relevant, wenn für eine Eingabefelddefinition mehrere Werte in einer Indexdatei gefunden werden, das Zielfeld dafür aber ein einzelnes Feld ist. Das kann ein Kopfdatenfeld sein oder auch ein Positionsdatenfeld, wenn innerhalb einer Positionszeile mehrere Werte für ein Feld gefunden werden. Diese Eigenschaft wird von den folgenden Indexdatenlesern unterstützt:

  • Custom

  • Csv

  • Json

  • Mail

  • Pdf

  • PeppolInvoice

  • PeppolPintInvoice

  • UblInvoice

  • Xml

  • XRechnung

  • Zugferd

Die Übernahme mehrerer Werte erfolgt in Form eines Arrays, und zwar dynamisch in Abhängigkeit von der Anzahl tatsächlich gelesener Werte. Wenn mehrere Werte gelesen werden, wird somit ein Array übernommen. Wenn nur ein Wert gelesen wird, wird ein Einzelwert übernommen. Bei der Weiterverarbeitung der Werte kann eine Fallunterscheidung erforderlich sein oder eine Konvertierung in ein einheitliches Format. Mit der Prüfung !IsArray() und der anschließenden Ausführung des Makros ToArray() kann ein Einzelwert in ein Array überführt werden. Alternativ kann ein Array mit der Feldmakrofunktion ToText() in einen Einzelwert konvertiert werden, der durch Trennzeichen separiert ist.

ProcessReadIndex[].Field[].Name*

ProcessReadIndex[].Field[].InputName

ProcessReadIndex[].Field[].InputFormat

Definition der Zuordnung von einzulesenden Feldern zu deren Zielfeldern im Feldkatalog

Unter .Name ist der Name des Zielfeldes analog zur gleichnamigen Eigenschaft im Feldkatalog anzugeben. Unter .InputName ist die Definition des betreffenden Quellfeldes aus den Indexdaten anzugeben. Die zu verwendende Syntax ist abhängig vom Datenformat und wird im Kontext des jeweiligen Indexdatenlesers beschrieben.

Wenn die Benennung des Zielfelds im Feldkatalog identisch zu der Benennung des Quellfelds ist, kann der .InputName weggelassen werden. Der Name des Zielfelds wird dann als Standardwert herangezogen. Der Wert kann allerdings nur weggelassen werden, wenn der .InputName abhängig vom Datenformat keine spezielle Syntax erfordert, sondern analog zum Zielfeld aus einem einfachen Feldnamen besteht.

Die Bedeutung eines .InputFormat ist kontextabhängig. Prinzipiell wird ein typisierter Wert aus den Indexdaten unverändert als dieser Typ in das Zielfeld übernommen. Wenn es keine direkte Entsprechung gibt, wird der Wert als ein äquivalenter Typ übernommen. Wenn der Quelltyp ein String ist, der Zieltyp hingegen nicht (Eigenschaft FieldCatalog[].Field[].InitType), wird versucht, den String anhand des definierten Eingabeformats zu parsen und in den gewünschten Zieltyp zu konvertieren. Das ist beispielsweise bei dem generischen XML-Indexdatenleser erforderlich, weil keine XML-Schemata ausgewertet werden und somit alle Indexdaten technisch nur Textzeichenfolgen darstellen. Beim spezialisierten XRechnung-XML-Leser sind die konkreten Indexfelder und deren Datentypen hingegen bekannt und können somit direkt typgerecht eingelesen werden.

Die Syntax für das Eingabeformat ist abhängig vom Zieldatentyp. Wenn kein Eingabeformat definiert ist, wird mit einem generischen Parser versucht, den Indexwert dem Datentyp entsprechend zu interpretieren.

Folgende Syntax ist für die Zieldatentypen zu verwenden:

  • Number: Nur das Dezimaltrennzeichen ist anzugeben:

    • . (Punkt)

    • , (Komma)

  • Date: Ein Muster des Datumsformataufbaus ist anzugeben, z. B. yyyy-MM-dd für ein Datum der Form 2021-12-31. Die gängigsten Bezeichner in einem solchen Muster sind:

    • yy oder yyyy: zweistellige oder vierstellige Jahreszahl

    • M oder MM: Monat von 1 bis 12 oder von 01 bis 12

    • d oder dd: Tag von 1 bis 31 oder von 01 bis 31

    • H oder HH: Stunde von 0 bis 23 oder von 00 bis 23

    • m oder mm: Minute von 0 bis 59 oder 00 bis 59

    • s oder ss: Sekunde von 0 bis 59 oder 00 bis 59

  • Bool: Keine explizite Angabe erforderlich. Implizit werden die Werte 0 und 1 sowie true und false unterstützt (unabhängig von Groß-/Klein­schreibung).