ich habe eine generische DataSource und ein bestimmtes Feld als "deltabestimmendes Feld" definiert. Dann ganz normal die "initialisierung des Delta-Verfahrens" laufen lassen.
Später habe ich in der DataSource das deltabestimmende Feld geändert und will nun das Delta-Verfahren neu initialisieren. Ich bekommen die Meldung, daß ich erst den Init-Request REQU_... löschen muss.
Das Problem ist, diesen Request finde ich nirgends mehr, außer im Monitor. Dort kann ich den Status von gelb auf rot oder grün ändern, ihn aber nicht löschen.
Leider funktioniert der Delta-Upload bei mir nicht so wie er soll.
Es geht um eine DataSource, die auf einen eigenentwickelten Funktionsbaustein zurückgreift. Der FB sammelt die Daten und stellt sie bereit.
Ich habe das Delta auf der Belegnummer platziert, beim 2. Versuch auf das Änderungsdatum. Bei beiden Varianten werden aber auch nach der Delta-Initialisierung stets ALLE Daten übertragen, wie bei einem Full-Upload.
Dem Funktionsbaustein werden Parameter übergeben:
I_REQUNR
I_DSOURCE
I_MAXSIZE
I_INITFLAG
I_T_SELECT
I_T_FIELDS
E_T_DATA
Für Delta wird da nix übergeben. Der FB ist komplett selbst für die zu beschaffenden Daten verantwortlich. Mitgeben kann man ihm allerdings Selektionsfelder (aus dem IP).
Man könnte meinen I_INITFLAG wäre für Delta zuständig, aber der Parameter dient nur zur Steuerung/Unterscheidung des ersten Datenpaketes (da BW die Daten ja paketweise - meist 50.000 records pro Paket - erhält). Da ist nämlich ein OPEN CURSER notwendig, die weiteren Datenpakete werden dann per FETCH geholt.
Wenn Du FB verwenden willst musst du wohl oder übel selber eine Deltaverwaltung programmieren (Timestamp in Z-Tabelle etc.)
Hi,
habe zwar noch nichts mit den FB als Datenbeschaffer gemacht aber rein von der Funktion der Datenbeschaffung muss dein FB sich selber um einen Delta-update kümmern welches du in deinen FB Programmierst.
Das System kann ja nicht wissen beim Delta-update welche Daten schon übertragen wurden da du die Datenbschaffung ja selber im FB Programmiert hast.
Ich würde mir in eine Tabelle die höste übertragene Belegnummer wegschreiben und beim nässten Aufruf des FB durch das Delta-update ab dem zuletzt übertragenen Beleg weiter lesen.