Endpunkt EIS
Im Rahmen der Schnittstelle für das EIS stehen folgende Endpunkte zur Verfügung:
API Endpunkt | interner Tabellenname | eindeutiger Schlüssel | Transaktionsauftrag | |
|---|---|---|---|---|
/eis/rohmilchabrechnung | RM_Abrechnung | RM_Abrechnung, E4_MandantID | X | |
/eis/rohmilchanlieferung | RM_Anlieferung | RM_AnlieferungID, E4_MandantID | X | |
/eis/milchgeldabrechnung | MGA | MGAID, E4_MandantID | X | |
/eis/archiv | Archiv | ArchivID, E4_MandantID | X | |
/eis/sonderprobe | RM_Sonderprobe | RM_SonderprobeID, E4_MandantID | X | |
/eis/a2untersuchung | QM_A2_Untersuchung | QM_A2_UntersuchungID, E4_MandantID | X | |
/eis/rohmilchprobe | RM_Probe | RM_ProbeID, E4_MandantID | X |
Jeder Endpunkt kann technisch als eigene Tabelle (Entität) betrachtet werden.
Zu jedem Endpunkt gibt es einen eindeutigen internen Tabellennamen sowie die zugehörigen eindeutigen Schlüssel (Primary Keys).
Ablauf anhand eines Beispiels
Die Endpunkte arbeiten über die auf den ersten Blick als Umweg erscheinenden Transaktionsaufträgen.
Der Grund hierfür lässt sich am einfachsten über ein Beispiel erläutern.
Bei der Bereitstellung der Daten für das Onlineportal können sich zurückliegende Datenänderungen über einen Zeitraum von mehreren Monaten erstrecken. Beim Abruf der Rohmilchabrechnung werden daher neue und alte Daten in Form von eindeutigen Transaktionsaufträgen bereitgestellt:
Die Schnittstelle sendet mit dem Transaktionsauftrag (ID=180821) Daten für die Rohmilchabrechnung (RM_AbrechnungID=25588), die übernommen (Upsert) werden soll. Außerdem wird ein Transaktionsauftrag (ID=180822) übergeben, bei dem die Rohmilchabrechnung (RM_AbrechnungID=25770) gelöscht werden soll.
Wenn diese Transaktionsaufträge durch das abrufende Client-System lokal fehlerfrei ausgeführt und übernommen wurden, kann der Transaktionsauftrag auf dem RestAPI-Server gelöscht werden. Dies wird über den Aufruf des Endpunkts /eis/loescheTransaktionsauftrag realisiert.
Wenn der Transaktionsauftrag nicht gelöscht wird, werden die Daten beim nachfolgenden Abruf erneut bereitgestellt. Eine erneute Verarbeitung der Daten ist dabei fehlerfrei möglich, da die Transaktionsaufträge immer in der korrekten Reihenfolge übergeben werden.
Durch die Transaktionsaufträge wird somit sichergestellt, dass das lesende Clientsysteme nur Daten aus der Übergabe entfernt, die fehlerfrei übernommen wurden.
Transaktionsauftrag
Die ID eines Transaktionsauftrag ist im Zusammenspiel mit dem Endpunkt (aka Datenbereich aka internem Schlüssel) eindeutig.
Bei Upserts ist der übergebene Satz anzulegen oder - falls der Schlüssel schon existiert - zu überschreiben.
Bei Deletes ist der Schlüssel aus der mitgelieferten Tabelle (aka Datenbereich aka Endpunkt) zu löschen.