Folgende Gegebenheiten:
Ich melde Daten an ein Register: interne Vertragsnummer und laufendeNummer_Meldung sind dabei Schlüsselfelder.
Wenn sich an den Daten was ändert muss ich eine neue Meldung schicken.
quasi habe ich ein Archiv in einer Datenbanktabelle mit den Daten der ganzen meldungen:
interne nummer 0100 Meldung 1
intnere nummer 0100 Meldung 2
interne nummer 0101 Meldung 1
interne nummer 0101 Meldung 2
interne nummer 0101 Meldung 3
interne nummer 0101 Meldung 4.
Die Daten umfassen ca. 80 Felder. Sobald eins anders ist, als die letzte Meldung dieser internen Vertragsnummer soll gemeldet werden.
Ich habe nun in einer internen Tabelle alle Daten zu den Geschäften die noch laufen eingelesen und überlege nun wie ich den Datenvergleich
am sinnvollsten gestalten kann.
Für sowas verwende ich gerne Strukturen in DB-Tabelle.
Das heißt, alle Felder die für den Vergleich relevant sind, landen in der Struktur mit Ausnahme der Schlüsselfelder.
Die Struktur wird dann im DDIC mittels .INCLUDE in beide Tabellen eingefügt und ein sog. Gruppenname vergeben.
Der Vergleich läuft dann ungefähr so:
loop at tab1 assigning <line1>.
read table tab2 assigning <line2> with key field = <line1>-field.
if sy-subrc ne 0 or <line1>-group ne <line2>-group.
* Nicht vorhanden oder Unterschiedlich
endif.
endloop.
Bei großen Datenmengen kann man die tab2 sortieren und dann mittels BINARY SEARCH auf die Daten zugreifen.
lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.