- Beiträge: 14
Information speichern und mit net.script heater verwenden
- Martin
- Autor
- Offline
- Benutzer
Weniger
Mehr
13 Jahre 4 Monate her #507
von Martin
Information speichern und mit net.script heater verwenden wurde erstellt von Martin
Ich hätte mal eine Frage:
Ich importierte Daten aus einem ASCII-Format in eine SQL-Datenbank. In einem Feld steht die Filiale, jedoch nicht in jedem Datensatz.
Gibt es die Möglichkeit, erst einmal einen Datensatz mit Filiale zu suchen, den gefundenen Wert zwischen zu speichern, und diese Information anschließend bei jedem Datensatz wieder zu verwenden?
Vielen Dank
Ich importierte Daten aus einem ASCII-Format in eine SQL-Datenbank. In einem Feld steht die Filiale, jedoch nicht in jedem Datensatz.
Gibt es die Möglichkeit, erst einmal einen Datensatz mit Filiale zu suchen, den gefundenen Wert zwischen zu speichern, und diese Information anschließend bei jedem Datensatz wieder zu verwenden?
Vielen Dank
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
13 Jahre 4 Monate her #508
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 Aw: Information speichern und mit net.script heater verwenden
Folgendes Skript merkt sich jeweils den letzten Wert einer Spalte. Falls beim nächsten Datensatz kein Wert bzw. ein leerer Wert ankommt wird der gemerkte Wert zurückgegeben.
Damit das jetzt in Ihrer Konstellation funktioniert müssen Sie ihre ASCII (CSV) Daten mittels des Sort Heaters anhand des Feldes FilialID absteigend sortieren. Siehe Beispiel im Anhang.
Hinweis: Der Sort Heater funktioniert nur im Memory Modus!
Damit das jetzt in Ihrer Konstellation funktioniert müssen Sie ihre ASCII (CSV) Daten mittels des Sort Heaters anhand des Feldes FilialID absteigend sortieren. Siehe Beispiel im Anhang.
Hinweis: Der Sort Heater funktioniert nur im Memory Modus!
Code:
string letzterWert = String.Empty;
public object DoWork()
{
if (InValues.Length != 1)
throw new ArgumentException("1 Eingangsparameter erwartet!");
string wert = (string)InValues[0].GetString();
if (wert != null && wert.Trim().Length != 0)
{
// wenn der Wert gefüllt ist dann merken ansonsten
letzterWert = wert;
}
// letzten gefüllten Wert zurückliefern
return letzterWert ;
}
Anhang wert_merken.zip wurde nicht gefunden.
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.
- Heinz-Bernd Monschau
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 63
13 Jahre 3 Wochen her #676
von Heinz-Bernd Monschau
Heinz-Bernd Monschau antwortete auf Aw: Information speichern und mit net.script heater verwenden
Hallo,
mit meinen rudimentären Programmierkenntnissen verstehe ich nicht warum der Wert beim verlassen der Function nicht verlorengeht.
Ich suche gerade nach einem Weg nicht nur einen Wert zwischenzuspeicher,, sondern eine Liste. Wenn sich bei Prüfung eines Datensatzes ein Wert in einem bestimmten Feld befindet, der schon in der Liste ist, dann soll er true zurückgeben, ansonsten den Wert zu Liste hinzufügen und false zurückgeben.
Hintergrund: Aus dem Wert der ersten drei Zeichen eines Feldes wird ein Code generiert. Wenn ein weiterer Datensatz in deisem Feld in den ersten drei Zeichen mit einem vorigen übereinstimmt, die restlichen Zeichen aber nicht muss ein neuer Code gebildet werden.
mit meinen rudimentären Programmierkenntnissen verstehe ich nicht warum der Wert beim verlassen der Function nicht verlorengeht.
Ich suche gerade nach einem Weg nicht nur einen Wert zwischenzuspeicher,, sondern eine Liste. Wenn sich bei Prüfung eines Datensatzes ein Wert in einem bestimmten Feld befindet, der schon in der Liste ist, dann soll er true zurückgeben, ansonsten den Wert zu Liste hinzufügen und false zurückgeben.
Hintergrund: Aus dem Wert der ersten drei Zeichen eines Feldes wird ein Code generiert. Wenn ein weiterer Datensatz in deisem Feld in den ersten drei Zeichen mit einem vorigen übereinstimmt, die restlichen Zeichen aber nicht muss ein neuer Code gebildet werden.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
13 Jahre 3 Wochen her #677
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 Aw: Information speichern und mit net.script heater verwenden
Hallo Herr Monschau,
Aus dem Code den Sie im .NET Script Heater eingeben generiert der FlowHeater eine komplette temporäre Klasse. Hier sind dann auch noch weitere Methoden bzw. Objekte wie der Zugriff auf die Eingangsparameter, etc. vorhanden.
Von dieser Klasse wird dann vor jedem Lauf eine Instanz erstellt, von der dann die Funktion DoWork pro Datensatz aufgerufen wird. Somit bleibt der Inhalt von Variablen, die außerhalb der DoWork Methode deklariert wurden erhalten. Würde die Variable in der Funktion DoWork deklariert werden wäre der Inhalt nach dem Verlassen der Funktion nicht mehr vorhanden.
Wenn Sie eine Liste benötigen können Sie folgendes Verwenden.
VB.NET
Oder
C#
Wenn Sie den Namespace "System.Collections.Generic" weglassen funktioniert das hier leider nicht, da momentan noch der Import darauf fehlt. In der nächsten Version wird das aber gehen, sowie können Sie hier auch Klassen/Methoden aus eigenen DLLs einbinden.
Aus dem Code den Sie im .NET Script Heater eingeben generiert der FlowHeater eine komplette temporäre Klasse. Hier sind dann auch noch weitere Methoden bzw. Objekte wie der Zugriff auf die Eingangsparameter, etc. vorhanden.
Von dieser Klasse wird dann vor jedem Lauf eine Instanz erstellt, von der dann die Funktion DoWork pro Datensatz aufgerufen wird. Somit bleibt der Inhalt von Variablen, die außerhalb der DoWork Methode deklariert wurden erhalten. Würde die Variable in der Funktion DoWork deklariert werden wäre der Inhalt nach dem Verlassen der Funktion nicht mehr vorhanden.
Code:
public class TempClassNameXYZ
{
public TempClassNameXYZ()
{
}
// Benutzer Code aus Script Heater Anfang
int i = 0; // "Globale" Variable
public object DoWork()
{
i++; // "Globale" Variable hochzählen
return i;
}
// Benutzer Code aus Script Heater Ende
// weitere FlowHeater Funktionen
}
Wenn Sie eine Liste benötigen können Sie folgendes Verwenden.
VB.NET
Code:
Dim myList As New System.Collections.Generic.List(Of String)
Oder
C#
Code:
System.Collections.Generic.List<String> myList = new System.Collections.Generic.List<String>();
Wenn Sie den Namespace "System.Collections.Generic" weglassen funktioniert das hier leider nicht, da momentan noch der Import darauf fehlt. In der nächsten Version wird das aber gehen, sowie können Sie hier auch Klassen/Methoden aus eigenen DLLs einbinden.
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.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Heinz-Bernd Monschau
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 63
13 Jahre 3 Wochen her #678
von Heinz-Bernd Monschau
Heinz-Bernd Monschau antwortete auf Aw: Information speichern und mit net.script heater verwenden
Hallo Herr Stark,
vielen Dank.
Ich hatte es zwischenzeitlich dann schon selbst begriffen das man dem .net-heater eine Klasse ist und man somit weiter Sub- und Funktionsprozeduren hinzufügen kann.
vielen Dank.
Ich hatte es zwischenzeitlich dann schon selbst begriffen das man dem .net-heater eine Klasse ist und man somit weiter Sub- und Funktionsprozeduren hinzufügen kann.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.277 Sekunden