Dateistrukturen mit Kopf- und Gegenbuchungen
In Infoniqa ONE 200 treten solche Strukturen z. B. in folgenden Fällen auf.
-
Debitoren-Bewegungen
-
Kreditoren-Bewegungen
-
Kreditoren-Bewegungen-2 (QR-Code)
-
Hauptbuch-Sammelbuchungen
-
Auftragsbelege
Diese besonderen Strukturen erfordern einige spezielle Einstellungen.
Anhand eines Beispiels von Debitoren-Bewegungen werden diese Einstellungen gezeigt.
Es wird empfohlen das Beispiel chronologisch durchzulesen.
Links:
Wie arbeitet Connect (Import), Datenfluss mit Gegenbuchungen, Datenfluss Spezialfälle mit Gegenbuchungen (Positionen).
Input-File
Besonderheiten des Inputfiles in diesem Beispiel:
-
Es hat 3 Titelzeilen.
-
Die Felder sind durch; getrennt.
-
Über Feld 1 (Belegnummer) kann festgestellt werden in welchem Record ein neuer Beleg anfängt: Kopf- und Gegenbuchungsrecords desselben Beleges tragen dieselbe Nummer.
-
Die erste Zeile pro Beleg (Kopfzeile) hat 10 Felder, die anderen Zeilen (Gegenbuchungen) haben 13 Felder.
Darstellung (Datenbeispiel):
BelegNr.;DebitorenNr.;DebName;Valutadatum;Typ / Referenz;ZahlKond / MWStCd;Währung ;WährBetrag ;Kurs ;BasisBetrag;MWStWährBetr;MWStBasBtr;Kostenstelle
1;1000 ;Gerber;15.03.2001;FA / rd;1;sFr.;1260.00 ;1;1260.00 Kopfzeile
1;3200 ;Gerber;;;20;;729.55 ;;729.55 ;55.45 ;55.45 ;PROD Gegenbuchung
1;3210 ;Gerber;;;20;;441.45 ;;441.45 ;33.55 ;33.55 ;PROD Gegenbuchung
2;1001 ;Brandwiler & Co Ag;16.03.2001;GU / JK;1;sFr.;-126.80 ;1;-126.80 Kopfzeile
2;3200 ;Brandwiler & Co Ag;;;20;;-117.85 ;;-117.85 ;-8.95 ;-8.95 ;VERK Gegenbuchung
3;1009 ;Studer GMBh;16.03.2001;FA / rd;1;DEM;500.00 ;85;425.00 Gegenbuchung
3;3200 ;Studer GMBh;;;25;;500.00 ;;425.00 ;0.00 ;0.00 ;PROD Gegenbuchung
Kopf-Records enthalten 10 Gegenbuchungen, 13 Felder.
Darstellung tabellarisch:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
|
BelegNr. |
Debi-Nr / Konto-Nr. |
DebName |
Valuta-Datum |
Typ / Referenz |
ZahlKond / MWStCd |
Währung |
Währ.-Betrag |
Kurs |
Basis-Betrag |
MWSt WährBetr |
MWStBasBetr |
Kosten-stelle |
|
1 |
1000 |
Gerber |
15.03.2001 |
rd / azh |
1 |
sFr. |
1260.00 |
1 |
1260.00 |
|
|
|
|
1 |
3200 |
Gerber |
|
|
20 |
|
729.55 |
|
729.55 |
55.45 |
55.45 |
PROD |
|
1 |
3210 |
Gerber |
|
|
20 |
|
441.45 |
|
441.45 |
33.55 |
33.55 |
PROD |
|
2 |
1001 |
Brandwiler & Co AG |
16.03.2001 |
jk / azh |
1 |
sFr. |
-126.80 |
1 |
|
|
|
|
|
2 |
3200 |
Brandwiler & Co AG |
|
|
20 |
|
-117.85 |
|
-117.85 |
-8.95 |
-8.95 |
VERK |
|
3 |
1009 |
Studer GmbH |
16.03.2001 |
rd / azh |
1 |
DEM |
500.00 |
85 |
425.00 |
|
|
|
|
3 |
3200 |
Studer GmbH |
|
|
25 |
|
500.00 |
|
425.00 |
0.00 |
0.00 |
PROD |
Funktion anlegen
Besondere Felder
Anzahl Titelzeilen
3 Die 3 Titelzeilen werden überlesen.
Trennzeichen ; Dies ist das Feld-Trennzeichen.
Satzwechsel feststellen
Auswahl: "3 wenn Feld ändert"
Feld: 1
Mit dieser Eingabe wird sichergestellt dass die Änderung des Feldes 1 einen Belegwechsel auslöst.
Siehe unter Erweiterung unter Satzwechsel feststellen (erweiterte Möglichkeit)
Gegenbuchung feststellen
Auswahl: "2 Anzahl Felder Kopf/Gegenbuchung".
Im Kopf: 10
In der Gegenbuchung: 13
(siehe unter Inputfiles und Leseverhalten,
Erweiterung unter Gegenbuchung feststellen (erweiterte Möglichkeit))
Für die übrigen Felder siehe Funktionen, Register Datei.
Regeln erfassen für Kopf- und Gegenbuchung
Infoniqa ONE 200 Connect verarbeitet die Daten satzweise, d.h. ein Beleg wird aus einer Input-Tabelle eingelesen, diese Daten werden verarbeitet, der nächste Beleg wird eingelesen usw.
Die allgemeine Arbeitsweise der Regeln finden Sie unter Einstellungen, Regeln
Im Fall von Kopf- und Gegenbuchungen müssen Regeln für 2 Recordarten erfasst werden
Regeln für Recordart 0 für die Kopfbuchung.
Regeln für Recordart 1 für die Gegenbuchungen.
Siehe auch Datenfluss bei Kopf- und Gegenbuchungen.
In diesem Kapitel werden nur die Besonderheiten beschrieben, die im Zusammenhang mit Kopf- und Gegenbuchung stehen.
Die Beschreibung des ActiveX-Moduls, das den "Input" liefert, finden Sie im Module (API-Module), die Beschreibung des ActiveX-Moduls für dieses Beispiel im Modul Debitoren Import: Bewegungen
Kopfbuchung:
Funktion "Import Debitoren-Bewegungen", Recordart 0:
Pro Feld in der "Übersicht Regeln" wird eine Regel erfasst
(siehe unter Regel-Beispiele und Das Regeln-Fenster)
Gegenbuchung
Für Debitoren- und Kreditoren-Bewegungen müssen auch Regeln für die Gegenbuchungen erfasst werden.
Die Regeln für die Gegenbuchungen werden unter der Recordart 1 gepflegt.
In der Input-Tabelle wird pro Gegenbuchung eine relative Nummerierung geführt, welche mit 1 beginnt. Auf diese relative Nummerierung nehmen die Regeln Bezug.
Für die Gegenbuchung einen Satz neuer Regel bilden:
Funktion "Import Debitoren-Bewegungen", Recordart 1:
Pro Feld in der "Übersicht Regeln" wird eine Regel erfasst
Feld 1, Gegenkonto
ist in der Input-Tabelle (in der laufenden Gegenbuchung) Feld 2 enthalten.
vgl. Aktion 1 Bezug.
Als "Feld" 2 angeben:
In der Input-Tabelle fängt die Nummerierung pro Gegenbuchung immer mit 1 an.
vgl. Datenfluss bei Kopf- und Gegenbuchungen.
Feld 2, Fibu Buchungstext
Dieses Feld setzt sich zusammen aus
-
Belegtext aus der Kopfbuchung (Quelle 2 ab Kopfdaten!) (Faktura oder Gutschrift), die schon als Feld 7 der Kopfbuchung in die "Übersicht Regeln" übertragen wurde.
-
Einer Leerstelle und
-
Name des Debitors (Input-Tabelle, laufende Gegenbuchung, Recordart 0, Feld 3) .
Regel 1:
Quelle "2 ab Kopfdaten", weil aus der Kopfbuchung, die bereits in der "Übersicht Regeln" steht.
Regel 3:
Quelle leer oder 0, weil der Debitorenname in der laufenden Gegenbuchung im Feld 3 steht
vgl. Regeln verbinden
Mögliche Varianten für Regel 3 (entspricht jedoch nicht diesem Datenbeispiel):
-
Wenn sich der Debitorenname im Input-File im Kopfrecord, Feld 3 befände, jedoch nicht in die "Übersicht Regeln" übertragen wurde, könnte er mit
Quelle = "4 ab Input-Tabelle", Feld=3 geholt werden.
(Quelle 0 bezieht sich auf die laufende Gegenbuchung, Quelle 4 auf die ganze Input-Tabelle, vgl. Datenfluss bei Kopf- und Gegenbuchungen) -
Wenn der Debitorenname auf Grund der Debitoren-Nummer aus der Infoniqa ONE 200 Datenbank ermittelt werden müsste, könnte dies mit der Aktion 32-02 ausgeführt werden, vgl. 32-02 DEBADR.
Auswahl und Hauptmaske
Über die Auswahlmaske wird die Funktion aktiviert.
Die ausführliche Beschreibung finden Sie unter Auswahl.
Die erstellte Auswahl erscheint in der Hauptmaske, wo sie der Anwender starten kann.
Die ausführliche Beschreibung finden Sie unter Infoniqa ONE 200 Connect im täglichen Gebrauch, Verarbeitung
EDIFACT-Dateien einlesen
EDIFACT ist ein Dateiformat für Bestellungen (Auftrags-Belege). Zum Einlesen solcher Dateien sind folgende Einstellungen erforderlich.
Unter Extras/Edi-Verbindungen können den Debitoren und Adressen in der Infoniqa ONE 200 Datenbank EDI-Angaben zugeordnet werden.
Funktion für EDIFACT-Dateien
Modul: 6 Auftrag Import: Belege
Schalter: "Viele Felder im Input-Record" (Schalter und Werte, Schalter 10013) und "EDIFACT-Format" einschalten!
Register Datei:
Filetyp: z.B. Textfile
Trennz: z.B. #
Satzwechsel feststellen: 4 Merkmal im Feld
Gegenbuchung feststellen: 3 Merkmal im Feld
Regeln für EDIFACT-Dateien
Die sehr variable Struktur von EDIFACT-Dateien erfordert bei "Feld" eine besondere Einstellung. Diese wird am folgenden Beispiel erläutert:
Für das Feld Kundennummer gilt: Auf der Zeile, wo
-
das 1. Feld den Inhalt HADR01 und
-
das 3. Feld den Inhalt BY aufweist
-
steht die gesuchte Nummer im 4. Feld
Als Feldnummer wird 4 eingetragen, weil die Nummer im 4. Feld des Records steht (Feldtrenner ist hier #).
Auf dem Feld "Feld": Rechts-Klick - Record festlegen:
Hier die Bedingung eintragen, die den gesuchten Record identifiziert.
(hier: 1. Feld mit Inhalt HADR01 und 3. Feld mit Inhalt BY)
Die Suche kann auch mit „ungleich“ gemacht werden:
Dazu wird im Feld „Merkmal“ vor dem Wert <> eingetragen
(z.B.:<> 00 bedeutet: ungleich 00)
Sobald eine solche Einstellung vorhanden ist, erscheint neben dem Feld ein Ö:
XML-Dateien
XML-Dateistruktur
XML-Dateien weisen eine relativ komplexe Struktur mit einer Daten-Hierarchie auf.
Vor allem unterscheidet man
-
Stufen: Haben Unter-Ebenen (children)
-
Werte: Daten-Felder mit Werten. Werte haben keine Unter-Ebenen.
Stufen und Werte werden über ihre Namen identifiziert, da ihre Reihenfolge relativ frei ist.
<counterAccount>3211</counterAccount> Wert
<amount>11.11</amount> Wert
</distribution> Stufen-Ende
Beispiel Debitoren-Bewegungen
<voucher> entspricht einem Beleg,
<distribution> entspricht einer Gegenbuchung
<?xml version="1.0"?>
<x:root xmlns:x="urn:arvouchers">
<voucher>
<valueDate>20040101</valueDate>
<accountReceivable>100111</accountReceivable>
<currency>CHF</currency>
<invoiceAmount>11.11</invoiceAmount>
<distributionText>Belegtext 1</distributionText>
<distribution>
<counterAccount>3211</counterAccount>
<amount>11.11</amount>
</distribution>
</voucher>
<voucher>
<valueDate>20040202</valueDate>
<accountReceivable>100222</accountReceivable>
<currency>CHF</currency>
<invoiceAmount>22.22</invoiceAmount>
<distributionText>Belegtext 2</distributionText>
<distribution>
<counterAccount>3221</counterAccount>
<amount>22.21</amount>
<costAllocation>
<costCenterDebit>KST210</costCenterDebit>
</costAllocation>
</distribution>
<distribution>
<counterAccount>3222</counterAccount>
<amount>22.22</amount>
<costAllocation>
<costCenterDebit>KST22</costCenterDebit>
</costAllocation>
</distribution>
... usw.: nächster <voucher>
Für Connect ergibt dies folgende Struktur
Die Nummerierung der Stufen wird unter der Option erläutert.
XML-Import
Übersicht Funktion-Option-Regeln für XML-Input
Die mehrstufige, komplexe XML-Struktur muss für die Connect-Input-Tabelle in eine "flache" Struktur umgesetzt werden. Die Namen der Elemente haben hier eine besondere Bedeutung.
Die Funktion
bestimmt das Leseverhalten.
Hier werden die Merkmale (Namen) festgelegt, die Satz- und Gegenbuchung identifizieren.
Im Beispiel: Beleg und Gegenbuchung.
Eine Option mit Schlüssel "XML"
Ordnet Elemente und Werte innerhalb eines Satzes den entsprechenden Stufen zu. Erstellt die Zeilen und die Feld-Reihenfolge in der Input-Tabelle.
Im Beispiel:
Stufe 0 (der Beleg):
Heisst "voucher" und enthält bestimmte Datenfelder, dazu auch Unter-Elemente (Gegenbuchungen)
Stufe 1 (die Gegenbuchung):
Ist ein Unter-Element von Stufe 0, heisst "distribution" und enthält wiederum bestimmte Datenfelder, dazu auch Unter-Elemente (Kostenstellen).
Stufe 2 (die Kostenstelle):
Ist ein Unter-Element der Stufe 1, heisst "costAllocation" und enthält wiederum bestimmte Datenfelder.
In den Regeln
Setzt die Felder aus der Input-Tabelle in Felder der "Übersicht Regeln" um. Die Namen der Stufen werden zur Feld-Identifikation beigezogen.
Die nachfolgenden Definitionen entsprechen der XML-Filestruktur im vorangehenden Abschnitt (XML-Dateistruktur ) für Debitoren-Bewegungen.
Vgl. auch Kapitel Dateistrukturen mit Kopf- und Gegenbuchungen
Funktion für XML-Import
Regel-Feld über Kennung suchen Einschalten!
Funktion, Register Datei:
Filetyp: 5 XML
Satzwechsel feststellen anhand von:
Auswahl: 4 Merkmal im Feld
Option: Name der Stufe 0 (vgl. XML-Dateistruktur),
gefolgt von folgenden Zeichen: {!}.
Feld: 1 bedeutet: Wenn das 1. Feld = dem Merkmal ist, beginnt ein neuer Satz.
Gegenbuchung feststellen anhand von:
Auswahl: 3 Merkmal im Feld
Option: Name der Stufe 1 (vgl. XML-Dateistruktur),
gefolgt von folgenden Zeichen: {!}.
Feld: 2 bedeutet: Wenn das 2. Feld = dem Merkmal ist, beginnt eine neue Gegenbuchung.
Wichtiger Hinweis zur Anzahl verarbeiteter Records:
Beim Lesen von XML-Files kann es vorkommen, dass aus 1 XML-Satz mehrere Records entstehen.
Beim Import wird laufend angezeigt, wie weit die Verarbeitung fortgeschritten ist. Zu diesem Zweck muss Connect vor der Verarbeitung wissen, wie viele Datensätze zum verarbeiten vorhanden sind. Bei XML-Dateien ist es u.U. sehr aufwendig die exakte Zahl zu eruieren, weil ein gelesener Datensatz mehrere Datensätze zu verarbeiten generieren kann. Hier wurde ein Kompromiss gemacht und es wird Anzahl der gelesenen XML-Sätze angezeigt. Es kann also vorkommen, dass mehr Datensätze verarbeitet als gelesen wurden. Dies führt mitunter zu einer verwirrenden Anzeige, z.B.
15 Sätze gelesen
25 Records geschrieben.
Option für XML-Import
Zu dieser Funktion ist eine Option zu bilden:
Ordnet Elemente und Werte innerhalb eines Satzes den entsprechenden Stufen zu. Erstellt die Zeilen und die Feld-Reihenfolge in der Input-Tabelle.
Schlüssel: XML
Sprache: leer
Code: Name der Stufe 0 (Satz) aus der Datei-Struktur. Hier: voucher
Text:
Hier sind folgende Zeilen erforderlich:
1. Zeile:
10{<} als fixer Wert
2. - n. Zeile:
Für alle Stufen je 1 oder 2 Zeilen:
- eine Zeile mit den Unter-Elementen (sofern solche vorhanden)
- eine Zeile mit den Werten dieser Einheit (sofern solche vorhanden)
Allgemeiner Aufbau dieser Zeilen:
Stufe {<} Elementcode {<} Elementname {<} Namenliste der Unterelemente bzw. Werte
Zeile für die direkt untergeordneten Werte
0{<}0{<}voucher{<}valueDate;accountReceivable;currency;invoiceAmount;distributionText
1. Parameter (Stufe):
die Stufe, gefolgt von {<} Hier: 0
2. Parameter (Elementcode):
0 (Es folgen die Werte (ohne Unter-Elemente).
3. Parameter (Elementname):
Name des Elementes, gefolgt von {<} Hier: voucher
4. Parameter (Namenliste):
Aufzählung aller Werte, die diesem Element direkt untergeordnet sind, ohne die Unter-Elemente.
Ihre Reihenfolge ergibt die Reihenfolge in der Input-Tabelle.
Hier: valueDate;accountReceivable;currency;invoiceAmount;distributionText
Zeile für die Unter-Elemente
0{<}1{<}voucher{<}distribution
1. Parameter (Stufe):
die Stufe, gefolgt von {<} Hier: 0
2. Parameter (Elementcode):
1 (Es folgen die Unter-Elemente)
3. Parameter (Elementname):
Name des Elementes, gefolgt von {<} Hier: voucher
4. Parameter (Namenliste):
Aufzählung der Unter-Elemente, die diesem Element direkt untergeordnet sind, ohne direkt untergeordneteWerte.
Hier: distribution
Regeln für XML-Import
Besonderheiten ergeben sich in den Regeln durch die Namen-Hierarchie, welche in der Input-Tabelle abgelegt wird.
In unserem Beispiel
- der Kopf-Record:
voucher{!}|YYYYMMDD|20040101|100111|CHF|11.11|Belegtext
die Gegenbuchung:
voucher|distribution{!}|3211|11.11
-
Das Valuta-Datum steht im Kopf-Record (Recordart 0)
in der Input-Tabelle, Zeile mit dem Merkmal "voucher",
im 2. Feld
Feld = 2 (= das 2. Feld).
Nach erstmaligem [Speichern]: Darauf Rechts-Klick - Record festlegen:
Aus der Zeile, wo das 1. Feld = "voucher{!}" ist:
Feld = 1 und Merkmal = voucher{!}(einschliesslich {!} )
Mit [Test] ergibt sich:
Das 2. Feld aus der Zeile, wo das 1. Feld = "voucher{!}" ist, hat den Wert 20040101
-
Das Gegenkonto steht im Gegenbuchungs-Record (Recordart 1 !)
in der Input-Tabelle
- in der Zeile mit dem Merkmal "distribution",
- im 3. Feld ":
Feld = 3 (= das 3. Feld).
Nach erstmaligem [Speichern]: Darauf Rechts-Klick - Record festlegen:
Aus der Zeile, wo das 2. Feld = "distribution{!}" ist:
Feld = 2 und Merkmal = distribution{!} (einschliesslich {!} )
Mit [Test] ergibt sich:
Das 3. Feld aus der Zeile, wo das 2. Feld= distribution{!} ist,
hat den Wert 3221
Bemerkung zu diesem Beispiel:
Da die CostAllocation in der Struktur eine neue Stufe ist (vgl. auch unter Option), ergibt sich eine 2. Zeile
voucher|distribution|costAllocation{!}|KST210|
Attribute in XML-Dateien
Attribute in XML-Dateien sind wie folgt zu verarbeiten:
Attribute im "Kopf" im XML-File z.B. <voucher Art="G">
In der Option:
Vor dem ersten Feld:
Nach dem Trenner {<} mit {A,Attributname}
z.B.: 0{<}0{<}voucher{<}{A,Art};valueDate usw.
In den Regeln:
Das Attribut ergibt ein Feld in der Input-Tabelle,
z.B.: voucher{!}|G|20040101 usw.
Attribute in en Feldern im XML-File z.B.
<valueDate Format="YYYYMMDD">20040101</valueDate>
In der Option:
Nach dem Feldnamen: {A,Attributname}
z.B.: 0{<}0{<}voucher{<}{A,Art};valueDate{A,Format}; usw.
In den Regeln:
Das Attribut ergibt ein Feld in der Input-Tabelle,
z.B.: voucher{!}|G|YYYYMMDD|20040101 usw.
Mehrmalige Wiederholung gleichartiger Werte
Wenn in der Datei-Struktur dasselbe Feld mehrmals nacheinander vorkommen kann, lässt sich ein einzelnes Vorkommen herausholen:
z.B. im XML-File:
<distributionText>Belegtext 1A</distributionText>
<distributionText>Belegtext 1B</distributionText>
<distributionText>Belegtext 1C</distributionText>
In der Option
Dem Feldnamen wird die Nummer des Vorkommens mit Ausrufezeichen vorangestellt, z.B.:
0{<}0{<}voucher{<}; ....;1!distributionText;2!distributionText; usw.
In diesem Beispiel wird der 1. und der 2. Text verarbeitet. Weitere werden ignoriert. Falls kein 2. Text vorhanden ist, wird das entsprechende Feld leer.
XML-Export
Einführung
Das Erstellen eines XML-Files erfolgt in 2 Phasen:
-
Bildung eines "Flat"-Files:
Connect erstellt zuerst ein File mit dem Filenamen aus der Funktion. Der Name wird vorne ergänzt mit „flat“, z.B. flat_währungen.xml.
Ist ein xsl-File (Programm) in der Funktion eingebunden (Tab Extras), wird das xsl-Programm automatisch aufgerufen. Dabei wird das flat-File gemäss den Regeln im xsl-File aufbereitet und das eigentliche XML-File gebildet.
Ist kein xsl.file in der Funktion angegeben, erstellt Connect nur das "Flat"-File.
Wie das XSL-File zu erstellen ist, ist nicht Gegenstand dieses Handbuch. In Prinzip beinhaltet das XSL-File die Struktur des XML-Files, die benötigten Daten werden aus dem flat-File geholt.
Für weiterführende Hilfe setzen Sie sich mit den Spezialisten von Infoniqa Schweiz AG in Verbindung.
Geeignetes Modul wählen
Um das geeignete Modul zu bestimmen wird im XML-File Struktur und Inhalt analysiert:
XML-Struktur
Ein XML-File ist oft „stufenmässig“ aufgebaut. Wichtig ist, wie diese „Stufen“ verschachtelt sind.
Beispiel:
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <waehrungen> Stufe 0
- <waehrung> Stufe 1
<Name>AUD</Name>
<text>Australische Dollar</text>
<umrechnungsfaktor>1</umrechnungsfaktor>
</waehrung> Ende Stufe 1
- <waehrung> Stufe 1
<Name>CHF</Name>
<text>Schweizer Franken</text>
<umrechnungsfaktor>1</umrechnungsfaktor>
</waehrung> Ende Stufe 1
...
usw.
</waehrungen> Ende Stufe 0
XML-Beispiel 2 Struktur mit 2 Stufen (hier debitor und nebenadressen), Schleife 0 (hier alle_debitoren) zählt nicht:
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <alle_debitoren> Stufe 0
- <debitor> Stufe 1
<name>MAGMA AG</ name >
<adresse>Bahnstr. 15</ adresse >
…
- <nebenadresse> Stufe 2
< typ >Mahnadresse</ typ >
< nadr_name >Madr-Name</ nadr_name >
…
</ nebenadresse > End Stufe 2
< nebenadresse > Stufe 2
< typ >Bestelladresse</ typ >
< nadr_name >Badr-Name</ nadr_name >
…
</ nebenadresse > End Stufe 2
</debitor> Stufe 1
- <debitor> Stufe 1
<name>MAGMA AG</ name >
<adresse>Giesserstr. 55</ adresse >
…
- <nebenadresse> Stufe 2
< typ >Mahnadresse</ typ >
< nadr_name >Madr-Name</ nadr_name >
…
</ nebenadresse > End Stufe 2
< nebenadresse > Stufe 2
< typ >Bestelladresse</ typ >
< nadr_name >Badr-Name</ nadr_name >
…
</ nebenadresse > End Stufe 2
</debitor> End Stufe 1
</alle_debitoren> End Stufe 0
Inhalt im XML-File
Connect unterscheidet zwischen:
-
Standard-Exportmodule (z.B. „1 Allgemein: Export Währungen“)
Hier sind die vom Modul gelieferten Daten vorgegeben. -
Exportmodule mit indiv. StoredProc
Hier sind die gelieferten Daten von der StoredProc abhängig. Sie können individuell gestaltet werden.
Wahl des Connect-Moduls
Je nach Anzahl Stufen und Inhalt im XML-File gibt es folgende Modulwahl:
-
Wenn das XML-File nur 1 Stufe hat und ein Standard-Exportmodul die benötigten Daten liefert, dann kann ein Standard-Exportmodul benutzt werden, bspw. „1 Allgemein: Export Währungen“
-
„1 Allgemein Export: Export mit indiv. StoredProc“
Kann benutzt werden wenn das XML-File nur 1 Stufe hat aber kein Standard-Exportmodul die geforderte Daten liefert. -
„1 Allgemein Export: Export mit mehreren Rekordarten“
Muss benutzt werden wenn das XML-File mehr als 1 Stufen hat. -
„9 Diverse: Export XML-Files mit Struktur“
Muss benutzt werden, wenn das XML-File mehr als 1 Stufe hat.
Standard-Exportmodul
Generelle Links:
Geeignetes Modul wählen
Allgemeine Einführung zum Thema.
Voraussetzungen:
-
Das XML-File hat nur 1 Stufe (siehe Übersicht XML-Export.
-
Es steht ein Standard-Exportmodul zur Verfügung, das die geforderten Daten liefert.
Register Allgemein:
Sind die Voraussetzungen erfüllt, wird als Modul das entsprechende Standard-Exportmodul gewählt.
Register Datei:
-
Als Filetyp „3 XML“ eingeben.
-
Filename mit .xml
Register Extras:
Als Zusatz 1 wird Pfad und Filename vom .XSL-File eingegeben.
Es sollen Währungen exportiert werden, das zu erstellende XML-File sieht wie folgt aus:
XML-File (waehrungen.xml)
<?xml version="1.0" encoding="ISO-8859-1" ?>
<waehrungen>
<waehrung>
<Name>AUD</Name>
<text>Australische Dollar</text>
<umrechnungsfaktor>1</umrechnungsfaktor>
</waehrung>
<waehrung>
<Name>CHF</Name>
<text>Schweizer Franken</text>
<umrechnungsfaktor>1</umrechnungsfaktor>
</waehrung>
usw.
</waehrungen>
Das XML-Beispiel hat nur 1 Stufe (<waehrung>, siehe auch Geeignetes Modul wählen), Stufe 0 (<waehrungen>) zählt nicht. Alle im File vorkommende Daten können vom Modul „1 Allgemein: Export Währungen“ geliefert werden.
Option einrichten:
Siehe Option für XML-Export
In diesem Beispiel sieht die Option so aus:
Das von Connect erstellte flat-File sieht so aus:
<?xml version="1.0" encoding="ISO-8859-1"?> <root> <query0> <waehrungen waehrung="AUD" text="Australische Dollar" umrechnungsfaktor="1" rundung="0.01" kurstyp="A" fixkurs="0.000000" fixdatum="19000101" status="1"/> <waehrungen waehrung="CHF" text="Schweizer Franken" umrechnungsfaktor="1" rundung="0.05" kurstyp="A" fixkurs="0.000000" fixdatum="19000101" status="1"/> … usw. … </query0> </root>
Das benutzte XSL-File sieht so aus:
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml"/> <xsl:template match="*"> <xsl:apply-templates/> </xsl:template> <xsl:template match="root"> <waehrungen> <xsl:for-each select="query0/waehrungen"> <waehrung> <Name> <xsl:value-of select="@waehrung"/> </Name> <text> xsl:value-of select="@text"/> </text> <umrechnungsfaktor> <xsl:value-of select="@umrechnungsfaktor"/> </umrechnungsfaktor> </waehrung> </xsl:for-each> </waehrungen> </xsl:template> </xsl:stylesheet>
1 Allgemein Export: Export mit indiv. StoredProc
Generelle Links:
Geeignetes Modul wählen
Allgemeine Einführung zum Thema.
Voraussetzungen:
-
Das XML-File hat nur 1 Stufe (siehe Übersicht XML-Export.
-
Es steht kein Standard-Exportmodul zur Verfügung, das die geforderten Daten liefert. Aus diesem Grund muss eine indiv. StoredProc erstellt werden, die die geforderten Daten liefert.
Register Allgemein:
Sind die Voraussetzungen erfüllt, wird als Modul „Allgemein Export: Export mit indiv. StoredProc“ gewählt.
Register Datei:
-
Als Filetyp „3 XML“ eingeben.
-
Filename mit .xml
Register Extras:
Als Zusatz 1 wird Pfad und Filename vom .XSL-File eingegeben.
Es sollen Währungen, ergänzt mit dem neusten Kurs, exportiert werden, das zu erstellende XML-File sieht wie folgt aus:
<?xml version="1.0" encoding="ISO-8859-1"?>
<alle_wae_kurse>
<waehrung>
<Name>AUD</Name>
<text>Australische Dollar</text>
<umrechnungsfaktor>1</umrechnungsfaktor>
<rundung>.01</rundung>
<kurs>.984560</kurs>
</waehrung>
<waehrung>
<Name>CHF</Name>
<text>Schweizer Franken</text>
<umrechnungsfaktor>1</umrechnungsfaktor>
<rundung>.05</rundung>
<kurs>1.000000</kurs>
</waehrung>
…
usw.
…
</alle_wae_kurse>
Option einrichten:
Siehe Option für XML-Export
In diesem Beispiel sehen die Optionen so aus:
und
Das von Connect erstellte flat-File sieht so aus:
<?xml version="1.0" encoding="ISO-8859-1"?> <root> <query0> <?xml version="1.0" encoding="ISO-8859-1"?> <root> <query0> <alle_wae_kurse wae_abk="AUD" wae_text="Australische Dollar" wae_umrfakt="1" wae_frundung=".01" wae_kurs=".984560"/> <alle_wae_kurse wae_abk="CHF" wae_text="Schweizer Franken" wae_umrfakt="1" wae_frundung=".05" wae_kurs="1.000000"/>… usw. … </query0> </root>
Ist keine ACTIVX-Option vorhanden, werden die Feldnamen im flat_File vom System automatisch vergeben, z.B.:
<alle_wae_kurse Field_1="AUD" Field_2="Australische Dollar" Field_3="1" Field_4=".01" Field_5=".984560"/>
Das benutzte XSL-File sieht so aus:
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml"/> <xsl:template match="*"> <xsl:apply-templates/> </xsl:template> <xsl:template match="root"> <waehrungen> <xsl:for-each select="query0/alle_wae_kurse"> <waehrung> <Name> <xsl:value-of select="@wae_abk"/> </Name> <text> <xsl:value-of select="@wae_text"/> </text> <umrechnungsfaktor> <xsl:value-of select="@wae_umrfakt"/> </umrechnungsfaktor> <rundung> <xsl:value-of select="@wae_frundung"/> </rundung> <kurs> <xsl:value-of select="@wae_kurs"/> </kurs> </waehrung></xsl:for-each> </waehrungen> </xsl:template> </xsl:stylesheet>
1 Allgemein Export: Export mit mehreren Rekordarten
Generelle Links:
Geeignetes Modul wählen
Allgemeine Einführung zum Thema.
Voraussetzungen:
-
Das XML-File hat mehr als 1 Stufe (siehe Übersicht XML-Export.
-
In diesem Fall muss immer eine indiv. StoredProc mit einem spezifischen Aufbau erstellt werden.
Siehe Modul „1 Allgemein Export: Export mit mehreren Recordarten“.
Register Allgemein:
Sind die Voraussetzungen erfüllt, wird als Modul „Allgemein Export: Export mit mehreren Rekordarten“ gewählt.
Register Datei:
-
Als Filetyp „3 XML“ eingeben.
-
Filename mit .xml
Register Extras:
Beispiel:
Es sollen Währungen, ergänzt mit dem allen Kursen, exportiert werden, das zu erstellende XML-File sieht wie folgt aus:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<waehrungenundkurse>
<Waehrung>
<Waehrungsid>AUD</Waehrungsid>
<Kurse>
<Datum>20100101</Datum>
<Kurs>0.990000</Kurs>
</Kurse>
</Waehrung>
<Waehrung>
<Waehrungsid>CHF</Waehrungsid>
<Kurse>
<Datum>20100101</Datum>
<Kurs>1.000000</Kurs>
</Kurse>
</Waehrung>
<Waehrung>
<Waehrungsid>EUR</Waehrungsid>
<Kurse>
<Datum>20100101</Datum>
<Kurs>1.607540</Kurs>
</Kurse>
<Kurse>
<Datum>20100721</Datum>
<Kurs>1.450130</Kurs>
</Kurse>
</Waehrung>
<Waehrung>
<Waehrungsid>GBP</Waehrungsid>
<Kurs>
…
usw.
…
<Waehrung>
<Waehrungsid>USD</Waehrungsid>
<Kurse>
<Datum>20100101</Datum>
<Kurs>1.098450</Kurs>
</Kurse>
</Waehrung>
</waehrungenundkurse>
Resultat-Set aus StoredProc
(Für weitere Informationen, siehe Modul Allgemein Export: Export mit mehreren Recordarten.
Option einrichten:
Siehe Option für XML-Export
In diesem Beispiel sehen die Optionen so aus:
Weil die StoredProc 2 Rekordarten (Zeilentyp = 11: Recordart 0 und 1) liefert, müssen 2 ACTIVX- und 2 RECORDS-Optionen vorhanden sein (beachte Feld Code).
Das von Connect erstellte flat-File sieht so aus:
<?xml version="1.0" encoding="ISO-8859-1"?> <WaehrungenUndKurse> <query0> <Waehrung whrgid="AUD"/> <query1> <Kurs valuta="20100101" kurswert="0.990000"/> </query1> </query0> <query0> <Waehrung whrgid="CHF"/> <query1> <Kurs valuta="20100101" kurswert="1.000000"/> </query1> </query0> <query0> <Waehrung whrgid="EUR"/> <query1> <Kurs valuta="20100101" kurswert="1.607540"/> </query1> <query1> <Kurs valuta="20100721" kurswert="1.450130"/> </query1> </query0> <query0> … usw. … <Waehrung whrgid="USD"/> <query1> <Kurs valuta="20100101" kurswert="1.098450"/> </query1> </query0> </WaehrungenUndKurse>
Das benutzte XSL-File sieht so aus:
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml"/> <xsl:template match="*"> <xsl:apply-templates/> </xsl:template> <xsl:template match="WaehrungenUndKurse"> <waehrungenundkurse> <xsl:for-each select="query0/Waehrung"> <Waehrung> <Waehrungsid> <xsl:value-of select="@whrgid"/> </Waehrungsid> <xsl:for-each select="../query1/Kurs"> <Kurse> <Datum> <xsl:value-of select="@valuta"/> </Datum> <Kurs> <xsl:value-of select="@kurswert"/> </Kurs> </Kurse> </xsl:for-each> </Waehrung> </xsl:for-each> </waehrungenundkurse> </xsl:template> </xsl:stylesheet>
9 Diverse: Export XML-Files mit Struktur
Für neue Funktionen, bitte Allgemein Export: Export mit mehreren Rekordarten benutzen.
Option für XML-Export
Generelle Links:
Übersicht XML-Export
Allgemeine Einführung zum Thema.
Option ansteuern:
Je nach gewähltem Modul gibt es folgende Varianten:
Standard-Exportmodule
Gemeint sind hier die vorgefertigten Export-Module, z.B. Währungen exportieren.
Standard-Exportmodule
1. Zeile: 10
fixer Wert
Zeile 2-7 sind Angaben für das "Flat"-File.
2. Zeile: Name der "XML-Elemente".
Hier: waehrungssatz
3. Zeile: Name des "Root"-Elementes
Hier: root
4. Zeile: Die gewünschte XML-Kopfzeile für das "Flat"-File
Hier: <?xml version="1.0" encoding="ISO-8859-1"?>
5. - 7. Zeile:
0 = Defaultwert
<>0 Diese Eingaben werden direkt nach „<?xml version="1.0" encoding="ISO-8859-1"?>“ im File geschrieben.
Die Zeilen 8 und 9 betreffen das XML-File:
8. Zeile: Die gewünschten Attribute der XML-Kopfzeile, ab dem 2. Attibut
Hier: encoding="ISO-8859-1"?>
Oft ist dies derselbe Wert wie der hintere Tel von Zeile 4, einschliesslich Begrenzungszeichen ?> aber hier könnte auch z.B. „"UTF-16"?>“ stehen.
9. Zeile Hier nicht vorhanden.
Wenn vorhanden, besteht die Zeile aus 3 Teile, getrennt durch „{<}“. Connect sucht im File nach dem 1. und dem 2. Teil und setzt den 3. Teil dazwischen.
Beispiel:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<waehrungen>
<whrg>
Steht jetzt im Zeile 9 folgendes (Zeilenumschaltung nicht beachten):
<waehrungen{<}<whrg{<}<waehrungen Status="Original" xmlns="http://www.papinet.org/V2R10/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
sieht der Anfang des XML-Files so aus:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<waehrungen Status="Original" xmlns="http://www.papinet.org/V2R10/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<whrg>
Die Option oben generiert folgendes XML-flat-File (aus Platzgründen werden die Zeilen hier in der Darstellung unterbrochen):
- <root>
- <query0>
<waehrungssatz waehrung="AUD" text="Australische Dollar" umrechnungsfaktor="1" rundung="0.01" kurstyp="A" fixkurs="0.000000" fixdatum="19000101" status="1" />
< waehrungssatz waehrung="CHF" text="Schweizer Franken" umrechnungsfaktor="1" rundung="0.05" kurstyp="A" fixkurs="0.000000" fixdatum="19000101" status="1" /> < waehrungssatz waehrung="EUR" text="Euro" umrechnungsfaktor="1" rundung="0.01" kurstyp="A" fixkurs="0.000000" fixdatum="19000101" status="1" />
< waehrungssatz waehrung="GBP" text="Englische Pfund" umrechnungsfaktor="1" rundung="0.01" kurstyp="A" fixkurs="0.000000" fixdatum="19000101" status="1" />
< waehrungssatz waehrung="HKD" text="Hongkong Dollar" umrechnungsfaktor="100" rundung="0.01" kurstyp="A" fixkurs="0.000000" fixdatum="19000101" status="1" />
< waehrungssatz waehrung="JPY" text="Yen" umrechnungsfaktor="100" rundung="0.01" kurstyp="A" fixkurs="0.000000" fixdatum="19000101" status="1" />
< waehrungssatz waehrung="NOK" text="Norwegische Kronen" umrechnungsfaktor="100" rundung="0.01" kurstyp="A" fixkurs="0.000000" fixdatum="19000101" status="1" />
< waehrungssatz waehrung="NZD" text="Neu Seeland Dollar" umrechnungsfaktor="1" rundung="0.01" kurstyp="A" fixkurs="0.000000" fixdatum="19000101" status="1" />
< waehrungssatz waehrung="TRL" text="Türkische Lira" umrechnungsfaktor="100" rundung="0.01" kurstyp="A" fixkurs="0.000000" fixdatum="19000101" status="1" />
< waehrungssatz waehrung="USD" text="US Dollar" umrechnungsfaktor="1" rundung="0.01" kurstyp="A" fixkurs="0.000000" fixdatum="19000101" status="1" />
</query0>
</root>
<?xml version="1.0" encoding="ISO-8859-1" ?>
Wird direkt ab der Option übernommen.
<root>
Wird, mit <> ergänzt, direkt ab der Option übernommen.
<query0>
Wird automatisch erstellt.
< waehrungssatz waehrung="AUD" text="Australische Dollar" umrechnungsfaktor="1" rundung="0.01" kurstyp="A" fixkurs="0.000000" fixdatum="19000101" status="1" />
waehrungssatz
Wird direkt ab der Option übernommen.
Die Namen der einzelnen Attribute (z.B. waehrung, text, unrechnungsfaktor, usw.) werden aus dem entsprechenden Export-Modul übernommen
(vgl. Module (API-Module))
Werden Regeln eingesetzt, werden die Attributnamen ab den Regelbezeichnungen übernommen.
Connect setzt in den Attributnamen Umlaute und Leerstellen um, z.B.
- ä in ae
- Umr Einheit in Umr_Einheit
XML-File ab Flatfile erstellen
Diese Funktion kann verwendet werden, um nur die zweite Phase der XML-File-Erstellung auszuführen: Das XML-File ab dem Flatfile (aus der ersten Phase) erstellen.
Sie wird vor als Hilfsmittel zum Testen des XSL-Files verwendet, nachdem das Flatfile mit einer Export-Funktion mit Filetyp 3 XML gebildet wurde (vgl. auch Übersicht XML-Export).
Es ist möglich, dass die erste Phase zur Erstellung des Flatfiles recht lange dauert und die zweite Phase mehrmals getestet werden muss, bis alles wunschgemäss funktioniert.
Um in der XML-File-Erstellung nur die erste Phase bis zum Flatfile auszuführen, ist in der Export-Funktion, Register Extras, das Feld Zusatz 1 leer zu lassen. (vgl. Funktion für XML-Export)
XML-File mit XSD-File abgleichen
Diese Funktion überprüft das XML-File mit Hilfe des XSD-Files und der darin enthaltenen Regeln.
Das XSL-File
Das XSL-File ist nicht Gegenstand dieses Handbuches. Zu diesem Thema besteht weiterführende Fach-Literatur.