- Beiträge: 8
Mehrfachfilterung
- Steffen
- Autor
- Offline
- Benutzer
Weniger
Mehr
12 Jahre 10 Monate her #760
von Steffen
Mehrfachfilterung wurde erstellt von Steffen
Hallo Gemeinde,
erstmal bin ich sprachlos das es so ein Tool gibt. hab ewig gesucht ! Prima soweit.
Mein Problem
ich bekomme eine .csv Datei die selektiert werden muss.
in der csv sind etwa 150 Kategorien von denen ich nur 4 brauche und aus den 4 Kategorien auch nicht alle Unterkategorien.
die csv sieht wie folgt aus
KATEGORIE;UNTERKATEGORIE1;UNTERKATEGORIE2;ARTIKELNUMMER;ARTIKELNAME;GEWICHT;VK-BRUTTO;EAN
Kann ich in einem Abwasch nur bestimmten KATEGORIEN und gleichzeitig auch nur aus diesen KATEGORIEN nach bestimmten UNGTERKATEGORIEN filtern ?
mein 2. Problem
ist es möglich gleichzeitig mehrere csv dateien erstellen zu lassen oder kann das nur einzeln erfolgen ?
Also eine stamm.csv mit allen Artikeln aus bestimmten KATEGORIEN und dann als bsp. nur eine EAN.csv mit ARTIKELNUMMER;EAN aus der gefilterten stamm.csv ?
Danke für Eure Hilfe oder einen Tip
Steffen
erstmal bin ich sprachlos das es so ein Tool gibt. hab ewig gesucht ! Prima soweit.
Mein Problem
ich bekomme eine .csv Datei die selektiert werden muss.
in der csv sind etwa 150 Kategorien von denen ich nur 4 brauche und aus den 4 Kategorien auch nicht alle Unterkategorien.
die csv sieht wie folgt aus
KATEGORIE;UNTERKATEGORIE1;UNTERKATEGORIE2;ARTIKELNUMMER;ARTIKELNAME;GEWICHT;VK-BRUTTO;EAN
Kann ich in einem Abwasch nur bestimmten KATEGORIEN und gleichzeitig auch nur aus diesen KATEGORIEN nach bestimmten UNGTERKATEGORIEN filtern ?
mein 2. Problem
ist es möglich gleichzeitig mehrere csv dateien erstellen zu lassen oder kann das nur einzeln erfolgen ?
Also eine stamm.csv mit allen Artikeln aus bestimmten KATEGORIEN und dann als bsp. nur eine EAN.csv mit ARTIKELNUMMER;EAN aus der gefilterten stamm.csv ?
Danke für Eure Hilfe oder einen Tip
Steffen
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
12 Jahre 10 Monate her #761
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: Mehrfachfilterung
Hallo Steffen,
dafür gäbe es mehrere Wege. Ich stelle Ihnen hier mal meiner Ansicht nach die einfachste und flexibelste Möglichkeit dar.
Sie benötigen dazu einen String Append , einen String Replace , einen IF-THEN-ELSE Heater für die Filter Bedingung und den Filter Heater .
Der String Append Heater fasst die beiden CSV Felder KATEGORIE und UNTERKATEGORIE zu einer Zeichenkette zusammen. Ich habe hier zwischen den beiden CSV Feldern ein Trennzeichen "#" angegeben. Daraus wird dann z.B.
Kategorie = 1, Unterkategorie = 2, wird zu 1#2
Im String Replace Heater habe ich eine Liste erstellt die dann ersetzt wird.
z.B.
1#2;0
2#2;0
usw.
Hier müssen Sie ihre Kategorien und Unterkategorien eintragen die Sie als CSV Dateien exportieren möchten. Kommt jetzt z.B. 1#2 im Replace Heater an wird dieser Wert komplett mit dem Wert 0 = zweite Spalte der Liste ersetzt. Im String Replace Heater wurde zusätzlich konfiguriert, dass wenn die eingehende Zeichenfolge in der Liste nicht gefunden wird, der Wert "1" zurückgegeben wird.
Auf diesen Wert "1" wird jetzt im IF-THEN-ELSE Heater abgefragt, trifft die Bedingung zu wird die CSV Zeile gefiltert. So landen nur CSV Zeilen auf der WRITE Seite die Sie in der Ersetzen Liste des Replace Heater angegeben haben.
Im Anhang befindet sich dazu ein kleines Beispiel.
Zu Ihrer zweiten Frage) Hierfür müssen Sie momentan noch 2 Definitionen anlegen und nacheinander Ausführen. Über ein CMD Skript und dem Batch Modul können Sie das automatisieren.
z.B.
@echo off
FHBatch.exe CSV-Export-1.fhd
FHBatch.exe CSV-Export-2-fhd
dafür gäbe es mehrere Wege. Ich stelle Ihnen hier mal meiner Ansicht nach die einfachste und flexibelste Möglichkeit dar.
Sie benötigen dazu einen String Append , einen String Replace , einen IF-THEN-ELSE Heater für die Filter Bedingung und den Filter Heater .
Der String Append Heater fasst die beiden CSV Felder KATEGORIE und UNTERKATEGORIE zu einer Zeichenkette zusammen. Ich habe hier zwischen den beiden CSV Feldern ein Trennzeichen "#" angegeben. Daraus wird dann z.B.
Kategorie = 1, Unterkategorie = 2, wird zu 1#2
Im String Replace Heater habe ich eine Liste erstellt die dann ersetzt wird.
z.B.
1#2;0
2#2;0
usw.
Hier müssen Sie ihre Kategorien und Unterkategorien eintragen die Sie als CSV Dateien exportieren möchten. Kommt jetzt z.B. 1#2 im Replace Heater an wird dieser Wert komplett mit dem Wert 0 = zweite Spalte der Liste ersetzt. Im String Replace Heater wurde zusätzlich konfiguriert, dass wenn die eingehende Zeichenfolge in der Liste nicht gefunden wird, der Wert "1" zurückgegeben wird.
Auf diesen Wert "1" wird jetzt im IF-THEN-ELSE Heater abgefragt, trifft die Bedingung zu wird die CSV Zeile gefiltert. So landen nur CSV Zeilen auf der WRITE Seite die Sie in der Ersetzen Liste des Replace Heater angegeben haben.
Im Anhang befindet sich dazu ein kleines Beispiel.
Anhang mehrfachfilter.zip wurde nicht gefunden.
Zu Ihrer zweiten Frage) Hierfür müssen Sie momentan noch 2 Definitionen anlegen und nacheinander Ausführen. Über ein CMD Skript und dem Batch Modul können Sie das automatisieren.
z.B.
@echo off
FHBatch.exe CSV-Export-1.fhd
FHBatch.exe CSV-Export-2-fhd
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.
- Steffen
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 8
12 Jahre 10 Monate her #762
von Steffen
Steffen antwortete auf Aw: Mehrfachfilterung
Vielen Dank
Ich habe das eben mal versucht nachzubauen mit den Namen der Kategorien also SOUND;Kopfhörer usw und habe das in dem Replace auch abgeändert also SOUND#Kopfhörer;0 aber es klappt nicht ?
Ich habe das gestern mit einem Script probiert
public object DoWork()
{
if (InValues.Length == 0)
throw new ArgumentException("min. 1 Eingangsparameter erwartet!");
// der cast ist notwendig, da die Funktionen GetString, ...
// den Datentyp Object liefern!
string cmp = (string)InValues[0].GetString();
string ret = String.Empty;
switch (cmp)
{
case "SOUND":
ret = "Audio";
break;
case "COMPUTER":
ret = "iPad & Tablets";
break;
case "TV VIDEO":
ret = "Tv & Video";
break;
case "Videogames & Konsolen":
ret = "Games";
break;
default:
// Falls keines der oberen vergleiche greift und dem .Net Script Heater
// ein weiterer Parameter übergeben wurde, dann wird dieser
// zurückgeliefert ansonsten der Text "nicht vorhanden"
if (InValues.Length > 1)
ret = (string)InValues[1].GetString();
else
ret = "0";
break;
}
return ret;
}
Und dann eben mit dem Filter den Weg frei gemacht oder nicht.
Das Funktioniert auch Prima und ich kann gleich noch die Kategorien umbenennen wie ich es brauch
Schön wäre jetzt noch eine Möglichkeit die täglich neu erstellte Datei mit der erstellten von gestern zu vergleich, also Die Artikelnummer;VK Brutto;und Availbility und zusätzlich eine Import Datei zu erstellen in denen nur änderungen sind. Ich habe das mit dem Replace probiert und aus einer localen Datei verglichen aber irgendwie kam ich mit den einstellungen nicht zurecht?
Ich habe mir nur den Designer gekauft, kann ich das Batch Modul nachkaufen?
Ich hänge das mal an vielleicht schauen Sie mal über
Danke
Steffen
Ich habe das eben mal versucht nachzubauen mit den Namen der Kategorien also SOUND;Kopfhörer usw und habe das in dem Replace auch abgeändert also SOUND#Kopfhörer;0 aber es klappt nicht ?
Ich habe das gestern mit einem Script probiert
public object DoWork()
{
if (InValues.Length == 0)
throw new ArgumentException("min. 1 Eingangsparameter erwartet!");
// der cast ist notwendig, da die Funktionen GetString, ...
// den Datentyp Object liefern!
string cmp = (string)InValues[0].GetString();
string ret = String.Empty;
switch (cmp)
{
case "SOUND":
ret = "Audio";
break;
case "COMPUTER":
ret = "iPad & Tablets";
break;
case "TV VIDEO":
ret = "Tv & Video";
break;
case "Videogames & Konsolen":
ret = "Games";
break;
default:
// Falls keines der oberen vergleiche greift und dem .Net Script Heater
// ein weiterer Parameter übergeben wurde, dann wird dieser
// zurückgeliefert ansonsten der Text "nicht vorhanden"
if (InValues.Length > 1)
ret = (string)InValues[1].GetString();
else
ret = "0";
break;
}
return ret;
}
Und dann eben mit dem Filter den Weg frei gemacht oder nicht.
Das Funktioniert auch Prima und ich kann gleich noch die Kategorien umbenennen wie ich es brauch
Schön wäre jetzt noch eine Möglichkeit die täglich neu erstellte Datei mit der erstellten von gestern zu vergleich, also Die Artikelnummer;VK Brutto;und Availbility und zusätzlich eine Import Datei zu erstellen in denen nur änderungen sind. Ich habe das mit dem Replace probiert und aus einer localen Datei verglichen aber irgendwie kam ich mit den einstellungen nicht zurecht?
Ich habe mir nur den Designer gekauft, kann ich das Batch Modul nachkaufen?
Ich hänge das mal an vielleicht schauen Sie mal über
Danke
Steffen
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Steffen
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 8
12 Jahre 10 Monate her #763
von Steffen
Steffen antwortete auf Aw: Mehrfachfilterung
der Anhang noch einmal
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Steffen
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 8
12 Jahre 10 Monate her - 8 Jahre 10 Monate her #764
von Steffen
Steffen antwortete auf Aw: Mehrfachfilterung
Ich bekomme die Datei nicht geladen ?
hier zum Download
hier zum Download
Letzte Änderung: 8 Jahre 10 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
12 Jahre 10 Monate her #765
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: Mehrfachfilterung
um einen CSV Abgleich bzw. einen CSV Export zu generieren der nur zum Vortag geänderte CSV Zeilen enthält müssen Sie den
String Replace Heater
mit einer externen CSV Liste füttern.
Hinweis: Sie benötigen für jeden Wert, den Sie vergleichen möchten einen separaten String Replace Heater!
Der Replace Heater erhält als Inputparameter die ArtikelNr. Dann wird der Replace Heater so konfiguriert, dass die Gesamte eingehende Zeichenkette verglichen wird, sowie dass der Wert komplett mit dem gefundenen ersetzt wird. So stellen Sie sicher, dass eine Artikelnummer 1 nicht auch in 11 gefunden wird! Als Rückgabewert müssen Sie die CSV Spalte der gestrigen Datei angeben die den VK bzw. Availbility enthält. Im Beispiel 1x Spalte 2 und 1x Spalte 3.
Somit haben wir eine Art Datenbank Lookup auf eine CSV Datei realisiert. Kommt jetzt eine Artikelnummer 12345 an sucht der Replace Heater die betroffene CSV Zeile mit der gleichen Artikelnummer in der gestrigen Datei und liefert die konfigurierte CSV Spalte zurück. Hier 1x den VK Preis sowie 1x Availbility.
Dann benötigen Sie für die Filterbedingung einen .NET Script Heater mit 4 Eingangsparametern
Und folgenden Script.
Das Skript prüft jetzt ob sich wenigstens ein Wertepaar voneinander unterscheidet. Wird kein unterschied festgestellt wird TRUE zurückgeliefert und der Filter Heater filtert diesen CSV Satz heraus.
So erzeugen Sie einen CSV Abgleich, der nur veränderte CSV Datensätze enthält.
PS: Die Replace Heater in Ihrer Definition die Sie verwenden um Punkt nach Komma zu ersetzen können Sie sich sparen! Wenn Sie die READ Seite so konfigurieren, dass das Zahlenformat Ihrer CSV Eingangsdatei entspricht, wandelt der FlowHeater diese Zahlen automatisch in den richtigen Wert um, siehe Beispiel im Anhang.
Hinweis: Sie benötigen für jeden Wert, den Sie vergleichen möchten einen separaten String Replace Heater!
Der Replace Heater erhält als Inputparameter die ArtikelNr. Dann wird der Replace Heater so konfiguriert, dass die Gesamte eingehende Zeichenkette verglichen wird, sowie dass der Wert komplett mit dem gefundenen ersetzt wird. So stellen Sie sicher, dass eine Artikelnummer 1 nicht auch in 11 gefunden wird! Als Rückgabewert müssen Sie die CSV Spalte der gestrigen Datei angeben die den VK bzw. Availbility enthält. Im Beispiel 1x Spalte 2 und 1x Spalte 3.
Somit haben wir eine Art Datenbank Lookup auf eine CSV Datei realisiert. Kommt jetzt eine Artikelnummer 12345 an sucht der Replace Heater die betroffene CSV Zeile mit der gleichen Artikelnummer in der gestrigen Datei und liefert die konfigurierte CSV Spalte zurück. Hier 1x den VK Preis sowie 1x Availbility.
Dann benötigen Sie für die Filterbedingung einen .NET Script Heater mit 4 Eingangsparametern
- VK aus dem ersten Replace Heater
- CSV VK Feld der READ Seite
- Availbility aus dem zweiten Replace Heater
- CSV Availbility Feld der READ Seite
Und folgenden Script.
Code:
public object DoWork()
{
if (InValues.Length != 4)
throw new Exception("4 Eingangsparameter erwartet");
string sVK1 = (string)InValues[0].GetString();
string sVK2 = (string)InValues[1].GetString();
string sAV1 = (string)InValues[2].GetString();
string sAV2 = (string)InValues[3].GetString();
if (sVK1 != sVK2)
return false;
if (sAV1 != sAV2)
return false;
return true; // keine Änderung, CSV Zeile kann gefiltert werden
}
Das Skript prüft jetzt ob sich wenigstens ein Wertepaar voneinander unterscheidet. Wird kein unterschied festgestellt wird TRUE zurückgeliefert und der Filter Heater filtert diesen CSV Satz heraus.
So erzeugen Sie einen CSV Abgleich, der nur veränderte CSV Datensätze enthält.
PS: Die Replace Heater in Ihrer Definition die Sie verwenden um Punkt nach Komma zu ersetzen können Sie sich sparen! Wenn Sie die READ Seite so konfigurieren, dass das Zahlenformat Ihrer CSV Eingangsdatei entspricht, wandelt der FlowHeater diese Zahlen automatisch in den richtigen Wert um, siehe Beispiel im Anhang.
Anhang csv_abgleich.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.
- Steffen
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 8
12 Jahre 10 Monate her - 8 Jahre 10 Monate her #766
von Steffen
Steffen antwortete auf Aw: Mehrfachfilterung
Oha das sieht sehr gut aus und es ist der Hammer das das so funktioniert.
Nur bei mir nicht
Ich habe das jetzt mit all meinen Möglichkeiten versucht nachzubauen, vom Ansatz her klappt auch alles, aber wenn der Artikel neu ist schreibt er irgendwie die artikelnummer in die VK und Availbility Felder ?
Das verstehe ich nicht, können Sie bitte noch einmal überschauen ?
Vielen Dank für Ihre Hilfe
Nur bei mir nicht
Ich habe das jetzt mit all meinen Möglichkeiten versucht nachzubauen, vom Ansatz her klappt auch alles, aber wenn der Artikel neu ist schreibt er irgendwie die artikelnummer in die VK und Availbility Felder ?
Das verstehe ich nicht, können Sie bitte noch einmal überschauen ?
Vielen Dank für Ihre Hilfe
Letzte Änderung: 8 Jahre 10 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
12 Jahre 10 Monate her #767
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: Mehrfachfilterung
Das liegt daran, da Sie diese Felder über den String Replace Heater befüllen und im Replace Heater angegeben ist, wenn der Wert in der CSV Liste nicht gefunden wird soll der Eingangsparameter zurückgegeben werden. Das Sie den CSV Lookup über die Artikelnummer machen ist das in diesem Fall korrekt.
Lösung)
Lösung)
- Die Felder direkt von der READ zur WRITE Seite verbinden. So ist es denke ich korrekt, s. Beispiel im Anhang.
- Sie geben im String Replace Heater einen anderen Default Wert als den Rückgabewert an der geliefert wird falls die Artikelnummer in der CSV Liste nicht gefunden wird. s. Screenshot
Anhang csv_abgleich-20111230.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.
- Steffen
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 8
12 Jahre 10 Monate her #768
von Steffen
Steffen antwortete auf Aw: Mehrfachfilterung
Vielen Dank,
ich habs verstanden und auch so basteln können wie ich es brauche.
Ein richtig mächtiges Werkzeug.
Guten Rutsch und alles gute für 2012
Steffen
ich habs verstanden und auch so basteln können wie ich es brauche.
Ein richtig mächtiges Werkzeug.
Guten Rutsch und alles gute für 2012
Steffen
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.323 Sekunden