- Beiträge: 132
Ursprungs-ID nach Sort(absteigend)
- Ralf Birk
- Autor
- Offline
- Benutzer
Weniger
Mehr
7 Jahre 8 Monate her #3101
von Ralf Birk
Ursprungs-ID nach Sort(absteigend) wurde erstellt von Ralf Birk
Hallo Herr Stark,
ich habe folgendes Problem:
Ich muss Daten in der im Read vorgegebenen Reihenfolge verarbeiten.
Hier habe ich bisher ein ID eingefügt, das im Write auf einen Satzzähler (6 Stellen mit Vornullen) und eine Lfd.Nr (Integer) geht.
Jetzt muss ich die Daten anschließend absteigend verarbeiten. Der Satzzähler soll, nach wie vor mit 000001 beginnen, da dies die Verarbeitungsreihenfolge ist. Die Laufende Nummer sollte aber mit der höchsten Nummer beginnen (bei 10.000 Datensätzen z.B 10000, 9999,9998 usw.)
Mit den eingebauten "Bordmitteln" ist mir keine Lösung eingefallen.
Haben Sie mir vielleicht noch einen Tip?
Vielen Dank im Voraus
Ralf B.
ich habe folgendes Problem:
Ich muss Daten in der im Read vorgegebenen Reihenfolge verarbeiten.
Hier habe ich bisher ein ID eingefügt, das im Write auf einen Satzzähler (6 Stellen mit Vornullen) und eine Lfd.Nr (Integer) geht.
Jetzt muss ich die Daten anschließend absteigend verarbeiten. Der Satzzähler soll, nach wie vor mit 000001 beginnen, da dies die Verarbeitungsreihenfolge ist. Die Laufende Nummer sollte aber mit der höchsten Nummer beginnen (bei 10.000 Datensätzen z.B 10000, 9999,9998 usw.)
Mit den eingebauten "Bordmitteln" ist mir keine Lösung eingefallen.
Haben Sie mir vielleicht noch einen Tip?
Vielen Dank im Voraus
Ralf B.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
7 Jahre 8 Monate her #3105
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Ursprungs-ID nach Sort(absteigend)
Hallo Herr Birk,
ich bin mir nicht sicher ob ich es richtig verstanden habe. Hier mal grob wie das realisiert werden könnte.
Leider unterstützt der AutoID Heater keine Parameter als Startwert, so dass der Zähler über ein Skript abgebildet werden muss. Diese Anforderung wird mit der nächsten Version umgesetzt Bis dahin können Sie das u.s. C# Skript für den .NET Script Heater verwenden.
Das Skript liest einmalig einen Parameter „StartWert“ aus und gibt diesen beim ersten Datensatz zurück. Bei allen weiteren Datensätzen wird pro Satz lediglich vom Initialwert der Wert 1 abgezogen und zurückgeleitet.
Das Formatieren der Zahl auf 6 Stellen mit führenden Nullen kann durch den String Format Heater erledigt werden. Im Anhang finden Sie ein Beispiel dazu.
Im Beispiel wird der Parameter „StartWert“ über den Parameter Standardwert gesetzt. In Ihrem Fall benötigen Sie einen SQL Heater , der beim „Start“ der Definition einen „SELECT COUNT ..“ auf die Datenquelle absetzt um dynamisch den max. Startwert zu setzen.
C# Skript für AutoID über Parameter
ich bin mir nicht sicher ob ich es richtig verstanden habe. Hier mal grob wie das realisiert werden könnte.
Leider unterstützt der AutoID Heater keine Parameter als Startwert, so dass der Zähler über ein Skript abgebildet werden muss. Diese Anforderung wird mit der nächsten Version umgesetzt Bis dahin können Sie das u.s. C# Skript für den .NET Script Heater verwenden.
Das Skript liest einmalig einen Parameter „StartWert“ aus und gibt diesen beim ersten Datensatz zurück. Bei allen weiteren Datensätzen wird pro Satz lediglich vom Initialwert der Wert 1 abgezogen und zurückgeleitet.
Das Formatieren der Zahl auf 6 Stellen mit führenden Nullen kann durch den String Format Heater erledigt werden. Im Anhang finden Sie ein Beispiel dazu.
Im Beispiel wird der Parameter „StartWert“ über den Parameter Standardwert gesetzt. In Ihrem Fall benötigen Sie einen SQL Heater , der beim „Start“ der Definition einen „SELECT COUNT ..“ auf die Datenquelle absetzt um dynamisch den max. Startwert zu setzen.
C# Skript für AutoID über Parameter
Code:
int nextID = -1;
public object DoWork()
{
if (nextID == -1)
{
//Zähler Initialisieren
nextID = (int)Parameter["StartWert"].GetInt();
}
else
{
nextID--;
}
return nextID;
}
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Ralf Birk
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 132
7 Jahre 8 Monate her #3108
von Ralf Birk
Ralf Birk antwortete auf Ursprungs-ID nach Sort(absteigend)
Hallo Herr Stark,
leider habe ich die Stellen im Write erwähnt und Sie damit verwirrt. Das ist natürlich kein Problem.
Ihre Lösung sieht im ersten Moment gut aus.
Leider kann ich den Parameter nicht statisch setzen, da die Anzahl der Datensätze im Vorfeld nicht bekannt ist.
Da ich mit dem SQL-Header Syntax nicht sehr weit gekommen bin, habe ich es auf folgende weiße versucht:
Ein Max hinter AutoID und das Ergebnis als Variable "Max" setzen. Ihren Netscript-Code habe ich so geändert: "nextID = (int)Parameter["$Max$"].GetInt();"
Geht leider nicht (Ich denke die Anzahl der Datensätze muss schon beim Start ermittelt werden).
Wie müsste denn der SQL Befehl für den SQL-Heater aussehen?
Wenn der Aufwand zu groß ist, warte ich eben noch auf die Start_Implementierung im AutoID Heater.
Gruß Ralf B.
leider habe ich die Stellen im Write erwähnt und Sie damit verwirrt. Das ist natürlich kein Problem.
Ihre Lösung sieht im ersten Moment gut aus.
Leider kann ich den Parameter nicht statisch setzen, da die Anzahl der Datensätze im Vorfeld nicht bekannt ist.
Da ich mit dem SQL-Header Syntax nicht sehr weit gekommen bin, habe ich es auf folgende weiße versucht:
Ein Max hinter AutoID und das Ergebnis als Variable "Max" setzen. Ihren Netscript-Code habe ich so geändert: "nextID = (int)Parameter["$Max$"].GetInt();"
Geht leider nicht (Ich denke die Anzahl der Datensätze muss schon beim Start ermittelt werden).
Wie müsste denn der SQL Befehl für den SQL-Heater aussehen?
Wenn der Aufwand zu groß ist, warte ich eben noch auf die Start_Implementierung im AutoID Heater.
Gruß Ralf B.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
7 Jahre 8 Monate her - 7 Jahre 8 Monate her #3109
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Ursprungs-ID nach Sort(absteigend)
Hallo Herr Birk,
die Verwendung des SQL Heater um dynamisch Parameter zu setzen ist eigentlich relativ einfach. Im Screenshot sehen Sie die notwendigen Einstellungen dazu.
Wichtig ist, dass Sie folgenden Einstellungen vornehmen.
die Verwendung des SQL Heater um dynamisch Parameter zu setzen ist eigentlich relativ einfach. Im Screenshot sehen Sie die notwendigen Einstellungen dazu.
Wichtig ist, dass Sie folgenden Einstellungen vornehmen.
- Ausführen bei Start
- Mit Rückgabewert -> Speichern in Parameter „Wert“
- Und evtl. einen Standardwert vergeben falls das SQL Statement keinen Wert bzw. NULL/DBNULL zurückliefert.
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Letzte Änderung: 7 Jahre 8 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.283 Sekunden