FlowHeater Demo Video
 
Der Daten Import / Export Spezialist
 
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Schauen Sie sich auch die verfügbaren allgemeinen Beispiele an evtl. kann Ihre Frage hiermit schon beantwortet werden: Hello World 1 / 2 / 3 , Zahlen in Zeichenketten formatieren , Einfache Wenn-Dann-Sonst Bedingung , Komplexe If-Then-ElseIf ... Bedingung , Daten filtern und gruppieren , Daten gruppieren und Werte über die Gruppierung summieren
  • Seite:
  • 1

THEMA: Ursprungs-ID nach Sort(absteigend)

Ursprungs-ID nach Sort(absteigend) 2 Jahre 9 Monate her #3101

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.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ursprungs-ID nach Sort(absteigend) 2 Jahre 9 Monate her #3105

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Beiträge: 1457
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 Bespiel 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
int nextID = -1;

public object DoWork()
{
  if (nextID == -1)
  {
    //Zähler Initialisieren
    nextID = (int)Parameter["StartWert"].GetInt();
  }
  else
  {
    nextID--;
  }

  return nextID;
}

Dateianhang:

Dateiname: autoid-ueb...ript.zip
Dateigröße:2 KB

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.

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.

Ursprungs-ID nach Sort(absteigend) 2 Jahre 9 Monate her #3108

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.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ursprungs-ID nach Sort(absteigend) 2 Jahre 9 Monate her #3109

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Beiträge: 1457
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.
  • 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:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

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.
Letzte Änderung: von FlowHeater-Team.
  • Seite:
  • 1

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

Copyright © 2009-2019 by FlowHeater GmbH.
Alle Rechte vorbehalten.

Follow us on

twitter  facebook

YouTube

 de en