Alma exportiert die Rechnungen als XML-Datei. Die Struktur einer Alma-Invoice sieht so aus:
https://developers.exlibrisgroup.com/alma/apis/docs/xsd/invoice_payment.xsd/#XML
Invoice XSD:
https://developers.exlibrisgroup.com/wp-content/uploads/alma/xsd/invoice_payment.xsd
Alle für die Buchhaltung relevanten Infos finden sich unter dem tag invoice
. Folgende tags werden benötigt:
XML tag | Bezeichnung |
---|---|
invoice_number | Rechnungsnummer (string) |
vendor_additional_code | SAP-Code (alt) |
vendor_FinancialSys_Code | SAP-Code (neu) |
invoice_ref_num | ESR (Kontonr., Referenznr.) |
vendor_liable_for_vat | MwSt-Pflicht (boolean) |
vat_percentage | MwSt-Satz |
invoice_amount/currency | Währung |
invoice_amount/sum | Rechnungsbetrag |
invoice_date | Rechnungsdatum (string) |
fund_info_list/fund_info/external_id | Konto/Kostenstelle oder Konto/Auftrag |
invoice_line_list/invoice_line/po_line_title | Bestelltitel |
invoice_line_list/invoice_line/note | Rechnungsnotiz |
invoice_line_list/invoice_line/price | Betrag pro Bestellposten |
invoice_line/line_type | Art der Rechnung |
Anmerkungen:
external_id
ist zusammengesetzt: Zeichenfolge vor ‘/’ ist das Konto, Zeichenfolge nach ‘/’ ist der Auftrag (wenn ‘/S…’) oder die Kostenstelle (wenn nach ‘/’ kein S folgt)
Das Konto ist immer eine der folgenden Zahlen:
- “310420” (Zeitschrift),
- “310430” (Buchbinder)
- “310500” (eMedien)
- “310410” (Rest)
invoice_ref_num
enthält die ESR.
Beispiel: 0100000142001>1099910291360382+ 010517891>
Daraus lässt sich die Bankverbindung 01-51789-1 sowie die Rechnungsreferenz 1099910291360382 extrahieren.
SAP benötigt eine CSV-Datei, welche von der durch Yvonne Messerli (Firma Novo) im Jahr 2005 geschriebene Routine für “Import von FI-Buchungen von verschiedenen Vorsystemen” verarbeitet werden kann. Die Bibliothek hat keine genaue Beschreibung dieses SAP-Programms. Immerhin sind die Namen der Eingabefelder bekannt. Jede Rechnung besteht aus einem Block von einer Kopf-Zeile “K”, einer oder mehreren Rechnungspositionen “P;40”, und einer Ausgleichszeile “P;31”. Alle Zeilen einer Rechnung haben in Kolonne 3 die gleiche fortlaufende Belegnummer. Die Fuss-Zeile (“S”) enthält den Gesamtbetrag der Export-Datei.
Aufbau der Kopfzeile
Spalte | Inhalt | xml tag |
---|---|---|
1 | fortlaufende Satznummer | |
2 | Satztyp: “K” für Kopfzeile | |
3 | fortlaufende Belegnummer | |
4 | Rechnungsdatum in der Form “14.03.2019” | invoice_date |
5 | entweder “KY” (Schuld/Debit) oder “KX” (Guthaben/Credit) | TODO: woher kommt diese Info? |
6 | Buchungskreis: immer “101” (steht wohl für Bibliothek) | |
7 | Währung 3 Grossbuchstaben, z.B. CHF oder EUR | invoice_amount/currency |
8-10 | leer | |
11 | Vom Buchhändler vergebene Rechnungsnummer | invoice_number |
Aufbau einer Positionzeile
Spalte | Inhalt | xml tag |
---|---|---|
1 | fortlaufende Satznummer | |
2 | Satztyp: “P” für Positionszeile | |
3 | fortlaufende Belegnummer | |
4 | Buchungsschlüssel: “40” (Debit) oder “50” (Credit) | TODO, evtl.: invoice_line/line_type |
5 | Konto | external_id, erster Teil |
6-8 | leer | |
9 | Kostenstelle, wenn vorh. | external_id, zweiter Teil, wenn nicht mit S beginnt |
10 | Auftragsnummer, wenn vorh. | external_id, zweiter Teil, wenn mit S beginnt |
11-12 | leer | |
13 | Beschreibung, z.B. Buchtitel, max. 50 Zeichen; | po_line_title, wenn leer: note |
14-26 | leer | |
27 | Betrag in Fremdwährung, Format 16V2 | price |
28 | leer | |
29 | Mehrwertsteuer-Flag: entweder “V0” (ohne), oder “V5” (8.5%) oder “V6” (2.5%) | abhängig von vat_percentage |
30-40 | leer |
Aufbau der Ausgleichszeile
Spalte | Inhalt | xml tag |
---|---|---|
1 | fortlaufende Satznummer | |
2 | Satztyp: immer “P” | |
3 | fortlaufende Belegnummer | |
4 | Buchungsschlüssel: “31” | |
5 | SAP-Code | vendor_FinancialSys_Code, wenn leer: vendor_additional_code |
6-12 | leer | |
13 | “Ausgleich für Buchhändler-Rechnung” | |
14-26 | leer | |
27 | Summe der Einzelposten | |
28-37 | leer | |
38 | ESR-Konto | |
39 | leer | |
40 | ESR-Referenz |
Aufbau der Fusszeile
Spalte | Inhalt | xml tag |
---|---|---|
1 | Satznr | |
2 | Satztyp “S” | |
3 | Höchste Satznr | |
4 | Totalbetrag | sum |
Beispiel einer CSV-Datei
00000001;K;0001;16.03.2020;KY;101;USD;;;;6650240150
00000002;P;0001;40;310500;;;;1019310;;;;Bloomberg Terminal 10.03.2020-09.06.2020;;;;;;;;;;;;;;0000000031385.40;;V0;;;;;;;;;;
00000003;P;0001;31;46566;;;;;;;;Ausgleich für Buchhändler-Rechnung;;;;;;;;;;;;;;0000000031385.40;;;;;;;;;;;;;;
00000004;K;0002;05.03.2020;KY;101;CHF;;;;41086982
00000005;P;0002;40;310410;;;;;S06530040;;;Steinlin, Matthias : Patentschutz für Arzneimittel;;;;;;;;;;;;;;0000000000081.60;;V0;;;;;;;;;;
00000006;P;0002;31;2888;;;;;;;;Ausgleich für Buchhändler-Rechnung;;;;;;;;;;;;;;0000000000081.60;;;;;;;;;;;01-84212-2;;2112239410869828;
00000007;K;0003;10.03.2020;KY;101;EUR;;;;20-08834
00000008;P;0003;40;310410;;;;;S06530027;;;Benigno, Francesco : La mala setta;;;;;;;;;;;;;;0000000000046.89;;V0;;;;;;;;;;
00000009;P;0003;40;310410;;;;;S06530027;;;Mottola, Giorgio : Fratelli di truffa;;;;;;;;;;;;;;0000000000024.11;;V0;;;;;;;;;;
00000010;P;0003;31;45271;;;;;;;;Ausgleich für Buchhändler-Rechnung;;;;;;;;;;;;;;0000000000071.00;;;;;;;;;;;;;;
...
00000383;S;00000383;0000000124825.22
Written with StackEdit.