Hallo Christan,
würde gehen, momentan benötigen Sie dazu noch einen Workaround über den
File Heater
zum temporären speichern der letzten ID in einer zusätzlichen Textdatei „last-export-id.txt„ sowie einem
.NET Script Heater
der während bzw. vor der Ausführung den letzten exportierten AutoID Wert aus dieser Textdatei liest und damit einen
Parameter
für die Einschränkung des SELECT auf der READ Seite setzt.
Klingt jetzt etwas kompliziert im Anhang finden Sie ein kleines Beispiel wie es geht. Das Beispiel verwendet anstatt einer
MySQL Datenbank
eine
Accessdatenbank
. So können Sie das Beispiel komplett ohne Änderung zum Test bei sich laufen lassen.
Beschreibung
- Auf der MySQL READ müssen Sie Ihren SELECT anpassen. z.B. select * from t_export where ID > $LAST-EXPORT-ID$ order by id
Der Parameter $LAST-EXPORT-ID$ wird bei jedem Lauf dynamisch gesetzt. Wichtig ist, dass Sie anhand des AutoID Wertes sortieren!
- Damit der Parameter $LAST-EXPORT-ID$ vor jedem Lauf dynamisch geladen bzw. gesetzt wird, benötigen Sie einen .NET Script Heater. Das verwendete Skript finden Sie weiter unten bzw. im Beispiel. Wichtig ist hier, dass Sie im Skript „ausführen bei“ auf „Start“ stellen.
- Jetzt müssen Sie den FlowHeater noch beibringen, dass der letzte AutoID Wert in die Datei „last-export-id.txt“ geschrieben wird. Dazu verwende ich im Beispiel den File Heater. Dieser benötigt als Parameter einmal den Dateinamen sowie den eigentlichen Wert, der in die Datei geschrieben wird. Der Dateiname wird hier statisch über den X-Value Heater übergeben. Den AutoID Wert jage ich vorher noch in einen String Format Heater, dieser formatiert den Zahlenwert als Ganzzahl sowie ohne tausender Trennzeichen.
.NET Script Codepublic object DoWork()
{
string lastID = "0";
// Datei mit dem letzten EXPORT AutoID Wert öffnen und lesen, wenn nicht vorhanden wird 0 verwendet.
if (File.Exists("last-export-id.txt"))
lastID = File.ReadAllText("last-export-id.txt");
// Parameter für den SELECT setzen
Parameter["LAST-EXPORT-ID"].Value = lastID;
return null;
}