Skip to content

Instantly share code, notes, and snippets.

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

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