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.