Skip to content

Instantly share code, notes, and snippets.

@kathrin77
Last active August 6, 2020 15:08
Show Gist options
  • Save kathrin77/a8eece24a37a32be43faa4a64ede5d94 to your computer and use it in GitHub Desktop.
Save kathrin77/a8eece24a37a32be43faa4a64ede5d94 to your computer and use it in GitHub Desktop.
aleph-sap-schnittstelle

Doku SAP Schnittstelle HSG-Bibliothek

Aufbau einer Alma Invoice

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.

Aufbau der CSV-Datei

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

Weitere Rechnungsbeispiele

Written with StackEdit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment