| 
 |  | Allgemeines
  |  | Unter einem DELTA-Transfer im weiteren Sinn werden in der
    Query-Language HIT-QL mehrere verschiedene Möglichkeiten zum Abrufen von veränderten
    Daten bezeichnet. |  |  | Aktion RETRIVE mit Subcodes /D /H /M /N |  |  | Aufsetzen auf dem Zeitpunkt der letzten Übertragung, beachten aller Änderungen,
    festgemacht am Timestamp. |  |  | Mit Speichern des Startzeitpunkts nach erfolgreicher Aktion, so dass beim nächsten
    DELTA automatisch dort weitergemacht wird. |  |  | Durch die optionale Angabe einer Generation kann auf frühere Startzeitpunkte aufgesetzt
    werden |  |  | Beim Speichern des Startzeitpunkts wird: 
      nicht nach DELTA und HISTO unterschieden,unter der Logon-Kennung (BNR und ggf .MBN) gespeichert (siehe Begriffsklärung Logon vs.
        Melde-BNR) |  |  | Viele, aber nicht alle Entitäten unterstützen Historisierung und damit auch
    Delta-Abfragen, siehe Felder FELDVON und FELDBIS in der
    Meldungsbeschreibung. |  |  | Der Timestamp am Server wird erst bei der
    nächsten Aktion des Clients gespeichert. Z.b. sendet der
    HitBatch-Client am Ende das LOGOFF-Command und meldet sich damit noch mal 
  beim Server, so dass dieser den Timestamp speichert. |  Verschiedene Sub-CodesÜbersicht
  
    | Sub-Code | Definition | Bedeutung | Nur aktuelle | Merken |  
    | 
        |  | /D/D<n>
 |  | Delta | "Delta" im engeren Sinn überträgt alle
    geänderten aber noch aktuellen Daten seit der letzten gleichartigen RETRIEVE-Aktion eines
    angemeldeten Benutzers. Nach Erzeugen der Abfrage, wird in den System-Protokoll-Tabellen
    RETRIEVE und RETRCOND überprüft, ob und wann der angemeldete Betrieb diese Abfrage das
    letzte mal ausgeführt hat. Wenn die Entität Timestamp-Abfragen unterstützt erhält
    werden nur Datensätze deren Änderungs-Zeitstempel neuer als der Zeitpunkt der letzten
    Ausführung ist zurückgegeben. Nach erfolgreicher Transfer wird der Zeitstempel
    (Timestamp) des Übertragungsbeginns in die Tabelle RETRIEVE abgespeichert, so dass bei
    dem nächsten Delta auf die selbe Entität dort automatisch wieder aufgesetzt wird.  
    Die Variante /N<n> siehe Hinweis *1) und 
      /D<ts>
    siehe Hinweis *2).. | JA | JA |  
    | 
        |  | /H/H<n>
 /H<ts>
 |  | Histo | "Histo" als erweiterte Form des Delta
    überträgt nicht nur die aktuellen Sätze sondern auch die zwischenzeitlich
    abgeschlossenen, d.h. die historisierten Teile geänderter Sätze und stornierte Sätze. | NEIN | JA |  
    | 
        |  | /M/M<n>
 /M<ts>
 |  | Modified | "Modified" funktioniert analog zu Delta,
    schreibt aber den Ausführungszeitpunkt nicht weg. Und kann so als Test für Delta dienen. | JA | NEIN |  
    | 
        |  | /N/N<n>
 /N<ts>
 |  | Neue | "Neue" funktioniert analog zu Histo, schreibt
    aber den Ausführungszeitpunkt nicht weg. | NEIN | NEIN |  
    | 
        |  | /B/B<ts>
 |  | Basis | "Basis" speichert eine Abfrage und schreibt
    den Ausführungszeitpunkt weg, überträgt aber keine Daten. | -- | JA |  Erläuterungen
  |  | Nur aktuelle - beachtet nur Sätze die noch gültig also nicht
    historisert abgeschlossen sind. |  |  | Merken - bedeutet dass der Zeitpunkt der erfolgreichen Ausführung in
    der Tabelle RETRIEVE abgespeichert wird. |  |  | Hinweis *1) : Für diese Subcodes gibt es
    noch eine Variante mit Angabe eine Generationenangabe <n> wenn nicht auf dem letzten
    sondern einem früheren abgespeicherten Delta-Ausführungs-Timestamp aufgesetzt werden
    soll. Dabei bedeutet /x1 eine Generation, /x2 zwei Generationen vor dem letzten Delta. |  |  | Hinweis *2) : Bei
    verschiedenen Subcodes (siehe /)
    kann auch direkt ein Timestamp angegeben werden, der dann anstelle des in
    der RETRIEVE-Tabelle gespeicherten verwendet wird. |  Interne UmsetzungZur Vereinfachung der Darstellung: 
  |  | werden VON und BIS hier als DATE dargestellt. Intern handelt es sich um Timestamps! |  |  | wird die Bedingung "VON <= aktueller Startzeitpunkt" zur
    Vermeidung von "dirty reads" und damit Doppelübertragung nicht dargestellt.
    Intern ist sie verwirklicht. |  Folgende Beispiele sind im MS Excel Tabellenblatt "Deltatransfer von Daten.XLS"
nachvollziehbar. 
  
    |  | 
      
        | DELTA nur
        aktuelle |  
        | HITP-Aktion:
        RS/D oder RS/M |  | 
      
        | DELTA mit
        Historie |  
        | HITP-Aktion:
        RS/H oder RS/N |  |  
    | siehe
    AAA_1997 
      
        |  | Nr | LOM | Wert | VON | BIS |  
        | aktuell | 1 | 276000900000001 | Wert-1 | 01.01.1997 | 31.12.2100 |  
        | aktuell | 2 | 276000900000002 | Wert-2 | 01.01.1997 | 31.12.2100 |  
        | aktuell | 3 | 276000900000003 | Wert-3 | 01.01.1997 | 31.12.2100 |  
        | bereits
        storniert | 4 | 276000900000004 | Wert-4 | 01.01.1997 | 31.08.1997 |  | siehe
    AAA_1997_Akt 
      
        | Beliebiges
        VON und aktuelles BIS |  
        | SELECT *FROM AAA_1997
 WHERE VON > ''
 AND BIS = '31.12.2100';
 |  | siehe
    AAA_1997_Inc 
      
        | Beliebiges
        VON oder beliebiges geändertes BIS |  
        | SELECT *FROM AAA_1997
 WHERE VON > ''
 OR ( BIS > '' AND BIS < '31.12.2100' );
 |  |  
    | siehe
    AAA_1998 
      
        |  | Nr | LOM | Wert | VON | BIS |  
        | unverändert | 1 | 276000900000001 | Wert-1 | 01.01.1990 | 31.12.2100 |  
        | geändert | 2 | 276000900000002 | Wert-2 | 01.01.1990 | 01.04.1998 |  
        |  | 2 | 276000900000002 | Wert-2a | 01.04.1998 | 31.12.2100 |  
        | alten
        storniert | 3 | 276000900000003 | Wert-3 | 01.01.1990 | 01.05.1998 |  
        | neu | 5 | 276000900000005 | Wert-5 | 04.04.1998 | 31.12.2100 |  
        | neu
        & geändert | 6 | 276000900000006 | Wert-6 | 04.04.1998 | 01.06.1998 |  
        |  | 6 | 276000900000006 | Wert-6a | 01.06.1998 | 31.12.2100 |  
        | neu
        & gelöscht | 7 | 276000900000007 | Wert-7 | 04.04.1998 | 31.08.1998 |  | siehe
    AAA_1998_Akt 
      
        | Geändertes
        VON und aktuelles BIS |  
        | SELECT *FROM AAA_1998
 WHERE VON > '01.01.1998'
 AND BIS = '31.12.2100';
 |  | siehe
    AAA_1998_Inc 
      
        | Geändertes
        VON oder geändertes BIS |  
        | SELECT *FROM AAA_1998
 WHERE VON > '01.01.1998'
 OR ( BIS > '01.01.1998' AND BIS < '31.12.2100' );
 |  |  |