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.