Begriffserklärung für Gateways
In der Beschreibung der Gateways werden verschiedene Begriffe verwendet, welche hier näher erläutert werden:
SmartSync Unterstützung
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, sollte die Datenbereitstellung das auch tun - oder sehr schnell sein, damit sie immer auf dem Gesamtbestand laufen kann
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
-- SmartSync Konfiguration
AND
CASE
-- für den Abendlauf werden alle Mandanten aktiviert (ggf. Zeitverschiebung UTC bedenken)
WHEN DATEPART(hh,GETDATE()) > 15 THEN 1
-- für den Morgenlauf werden nur die Mandanten aktiviert, die in den letzten 15h noch nicht aktualisiert wurden
WHEN DATEPART(hh,GETDATE()) < 8 THEN IIF(DATEDIFF(HOUR, Last_Data_Extraction, GETDATE())< 15,0,1)
ELSE 0
END = 1
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