Skip to main content
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Flowheater Download

1. Bedingte Verarbeitung 2. Assoziative Stringersetzung

Mehr
13 Jahre 3 Wochen her #356 von Tim
Hallo, ich brauche mal Hilfe!

Um die Problemstellung zu erörtern, vereinfache ich sie auf das Nötigste:

Datenexport:
READ: Excel-Adapter Felder: ArtID, ArtikelBez ......

Die Artikelbez soll nur dann von Net-Heater 1 bearbeitet werden, wenn ArtikelID mit z. B. "G" beginnt

Beginnt sie jedoch mit z.B. "Q" , soll sie über Net-Heater 2 bearbeitet werden.

Das ist sonst auch nicht schwierig, nur diesmal liegt die Abhängigkeit in einem anderen Feld und genau da hängt es mit der Umsetzung gerade?



Dann noch ein zweites Problem:
Ich muss Strings (Artikelbezeichnungen) assoziativ ergänzen.
Kommt ein LIEBH CM 5509 as Artikelbezeichnung, soll damit ein z.B. LIEBHERR CoffeeMaker 5509 assoziiert und der Datensatz dazu ergänzt werden.

Da es sich dabei um sehr viele Artikelbezeichnungen handelt, kann ich das schlecht komplett per VB.NET in einem NET-HEATER per string.contains() oder String.startsWith() und Select Case regeln, sondern würde das in entsprechende Schlüssel-Wert Datei auslagern, wobei es egal wäre ob CSV oder sonstige.

Gibt es dazu eine Idee oder bereits vorhandene Problemlösung.
Ich habe da etwas Bedenken eventuell zu viel Aufwand zu betreiben, als vieleicht nötig ist.


Das wars erstmal, vielen Dank vorab

Crypto

Bitte Anmelden um der Konversation beizutreten.

Mehr
13 Jahre 3 Wochen her #357 von FlowHeater-Team
Zu Ihrer 1. Frage: Sie können dem .NET Script Heater auch mehrere Parameter übergeben, so können Sie das in einem Skript verarbeiten, siehe Beispiel Skript in VB.NET
Code:
' VB.NET Script Beispiel Public Function DoWork() As Object Dim sArtNr as String Dim sRet as String Dim sBedingung1 as String Dim sBedingung2 as String sArtNr = InValues(0).GetString() If sArtNr is Nothing Then sArtNr = "" sBedingung1 = InValues(1).GetString() If sBedingung1 is Nothing Then sBedingung1 = "" sBedingung2 = InValues(2).GetString() If sBedingung2 is Nothing Then sBedingung2 = "" If sBedingung1 = "G" Then sRet = sArtNr + " G Fall" Else If sBedingung2 = "Q" Then sRet = sArtNr + " Q Fall" Else sRet = sArtNr End If DoWork = sRet End Function

Wenn's denn unbedingt über 2 .NET Script Heater sein muss können Sie das Ergebnis auch nach der Verarbeitung über einen String Append Heater zusammenführen. Hier müssen Sie dann im jeweiligen Skript bei nicht Verarbeitung einen Leerstring zurückliefern. Der String Append Heater fügt dann die 2 Ergebnisse der .NET Script Heater zusammen (1xLeerstring + 1x das Ergebnis). Den Output weisen Sie dann dem Feld auf der WRITE Seite zu.

Zu Ihrer 2. Frage: Das können Sie ebenfalls mit dem .NET Script Heater und folgenden kleinen Skript durchführen, siehe Beispiel Skrip in C#.
Code:
// Beispiel Skript in C# // globales String Array string [] lines = null; public object DoWork() { string sRet = String.Empty; string sCompare = (string)InValues[0].GetString(); if (sCompare == null) sCompare = String.Empty; sCompare = sCompare.ToUpper().Trim(); // ersetzen Liste nur einmalig einlesen if (lines == null) lines = File.ReadAllLines("ersetzen.txt"); if (lines != null) { foreach (string line in lines) { // CSV Datei 1. Feld = Wert der geucht wird, 2. Feld = Rückgabe bei match char[] split = { ';' }; string[] sTemp = line.Split(split); if (sTemp[0].ToUpper().Trim() == sCompare) { sRet = sTemp[1]; break; } } } else { // nicht gefunden! sRet = (string)InValues[0].GetString(); } return sRet; }

Das Skript liest einmalig eine CSV Textdatei "ersetzen.txt" ein. Hier können Sie die zu ersetzenden Werte ein pflegen. Als Eingangsparameter müssen Sie dem Heater die Artikelbezeichnung übergeben. Findet das Skript die Bezeichnung wird der 2. Wert der CSV Datei zurückgegeben, wenn nicht wird der ursprüngliche Eingangsparameter geliefert.

z.B.
FH;FlowHeater
D;Designer
B;Batch

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 um der Konversation beizutreten.

Mehr
13 Jahre 2 Wochen her #363 von Tim
Jo, so ist das :blush:

Man gut das es hier niemand hören konnte, wie es geklatscht hat als ich mir beim Lesen Ihrer Antwort die flache Hand vor die Stirn schlug.
Natürlich kann man NET Heatern mehrere Parameter übergeben, das muss ich allerdings wohl erst noch verinnerlichen.
Naja und so war das Problem dann auch keines mehr.

:) Danke nochmals

Bitte Anmelden um der Konversation beizutreten.

Ladezeit der Seite: 0.269 Sekunden

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


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