In der Beschreibung der Gateways werden verschiedene Begriffe verwendet, welche hier näher erläutert werden:
Nachbrenner
Begriff der Pipelinesteuerung (primär im Staging)
Die Pipeline kann mehrmals gestartet werden, bei jedem Start prüft ein Step, welche Mandanten / Geschäftsjahre schon erfolgreich übernommen wurden und nur noch die unerledigten Mandanten werden für den neuen Lauf aktiviert.
Vorteile
-
der zweite Lauf holt nur noch den Rest und beginnt nicht die ganze Arbeit noch einmal
-
falls der erste Lauf schon erfolgreich war, tut der zweite Lauf gar nichts mehr
Anwendungsfälle:
-
Prozess bricht manchmal ab → Prozess abends und früh starten, der Morgenlauf holt dann das, was der Abendlauf nicht geschafft hatte
-
Der Server geht planmäßig abends 22.00 Uhr offline und startet morgens 5.00 Uhr wieder → Prozess 19.00 starten und 5.15 Uhr starten, der Abendlauf holt was er schafft, der Morgenlauf holt den Rest
-
Pipeline jede Stunde starten lassen → es werden immer nur die Mandanten aktualisiert, welche älter als X h sind
Bedenken
-
wenn das Staging diese Funktionalität implementiert, müssen die Folgeprozesse der Pipeline schnell genug sein, bis zum nächsten Lauf abgeschlossen zu sein
Implementierungsbeispiel (ab Zeile 22)
-- Steuerungstabelle zunächst komplett inaktiv schalten
UPDATE staging.tDATEVCONNECT_Steuerungstabelle
SET Activate_FIN = 0
,Activate_KOST = 0
,Activate_OP = 0
,Activate_AV = 0
,Delete_Data = 0
WHERE
DATEV_SystemID = '{{DatenquellenID}}';
-- Mandantenaktivierung mit SmartSync (in Zeile 22 implementiert)
UPDATE
staging.tDATEVCONNECT_Steuerungstabelle
SET Activate_FIN = 1
,Activate_KOST = 1
,Activate_OP = 0
,Activate_AV = 0
WHERE
DATEV_SystemID = '{{DatenquellenID}}'
AND fiscal_year_id >= (YEAR(GETDATE())-1) * 10000 + 101 -- das aktuelle Jahr und das Vorjahr
-- Nachbrenner
AND (Last_Data_Extraction < DATEADD(HOUR,-8,GETDATE()) OR Last_Data_Extraction IS NULL); -- die letzte Extraktion erfolgte vor mehr als 8h oder noch nie
Dynamische Zeitauswahl
Begriff der Pipelinesteuerung
Die Pipeline kann so konfiguriert werden, dass die zu extrahierenden Jahre dynamisch aktualisiert werden.
Anwendungsfälle:
-
extrahiere immer das aktuelle Jahr und das Vorjahr
-
extrahiere immer das aktuelle Jahr und zwei Vorjahre
Implementierungsbeispiel (Zeile 21)
-- Steuerungstabelle zunächst komplett inaktiv schalten
UPDATE staging.tDATEVCONNECT_Steuerungstabelle
SET Activate_FIN = 0
,Activate_KOST = 0
,Activate_OP = 0
,Activate_AV = 0
,Delete_Data = 0
WHERE
DATEV_SystemID = '{{DatenquellenID}}';
-- Mandantenaktivierung mit Dynamischer Zeitauswahl (in Zeile 21 implementiert)
UPDATE
staging.tDATEVCONNECT_Steuerungstabelle
SET Activate_FIN = 1
,Activate_KOST = 1
,Activate_OP = 0
,Activate_AV = 0
WHERE
DATEV_SystemID = '{{DatenquellenID}}'
AND fiscal_year_id >= (YEAR(GETDATE())-1) * 10000 + 101 -- das aktuelle Jahr und das Vorjahr