- Beiträge: 132
Einzelne Datensätze nach Markierung filtern
- Ralf Birk
- Autor
- Offline
- Benutzer
Weniger
Mehr
1 Jahr 8 Monate her #4774
von Ralf Birk
Einzelne Datensätze nach Markierung filtern wurde erstellt von Ralf Birk
Hallo Robert,
Ich habe mal wieder eine Frage, die ich schlecht erklären kann....Ich versuche es mal:
Ich muss aus einer sehr großen Datenbank einige Datensätze zu Prüfzwecken exportieren. Diese werden nach verschiedenen Kriterien markiert.
Seit längerer Zeit habe ich in einem Verarbeitungsschritt mehrere If-Then abfragen drin, die bei Übereinstimmung einen XValue-Wert ausgeben (sonst Null), anschliesend mit einem Append in ein Ausgangsfeld geschrieben werden. Im nächsten Inmemory Arbeitsschritt sortiere ich nach diesem Feld, mache eine ID auf gleiche Werte, frage die "1" ab und schreibe diese in den Write, die ich im nächsten Arbeitsschritt rausfiltere und Exportiere.
Diese Methode ging lange Zeit gut. Bei jeder Bedingung geht die Zahl der markierten Datensätze aber Expotential in die Höhe. (Sollte aber möglich gering gehalten werden).
Beispiel: Ich will in der Ausgabe einen Herrn, eine Frau, eine Adresse mit Zusatz, ein Postfach usw. Wenn ich dann noch einen Datensatz ohne Kundennummer will bekomme ich zusätzlich alle anderen Markierten Kriterien (Ein Herr ohne Kdnr, eine Frau ohne Kdnr usw.) Da auf diese Weise mittlerweile zu viele Datensätze gefiltert werden habe ich versucht eine effektivere Methode zu finden.
Ich will die Ausgabe der if-Then's mit ID (Count auf bestimmte Werte) zählen, und den InMemory-Write ein mit einem Wert (z.B. 1) aktualisieren. Nach diesem würde ich im nächsten Arbeitsschritt filtern.
Ich dachte, das ich bei dieser Vorgehensweise maximal die Anzahl der abgefragten Kriterien filtern könnte.
Leider funktioniert die "Count auf bestimmte Werte in ID-Adapter" Funktion nicht wie erwartet und erzählt nicht die eingestellten Werte des abgefragten Datenfelds hoch.
Ich habe mal zum veranschaulichen eine CSV mit einigen Daten eingetippt und eine einfache Definition gebastelt in der man sieht was ich meine.
Habe ich irgendwo einen Denkfehler und die Funktion ist für ganz andere Zwecke. Wenn ja....gibt es eine andere Lösung?
Die Ausgabe von genausoviel Datensätzen wie abgefragt wäre schon ein riesen Erfolg. Die Krönung wäre, wenn es eine Lösung geben würde, wenn bei den oben beschriebenen Breispielen zb. Bei einem Mann mit Zusatz und keiner Kundennummer nur 1 Datensatz gefiltert werden würde, da diese ja alle 3 gewünschten Marker hat. Da dies vermutlich nicht so einfach zu realisieren wäre, würde mir schon ausreichen die Count-Funktion bei bestimmten Werten"´zu verstehen um vielleicht weiter zu kommen.
Gruß Ralf
Ich habe mal wieder eine Frage, die ich schlecht erklären kann....Ich versuche es mal:
Ich muss aus einer sehr großen Datenbank einige Datensätze zu Prüfzwecken exportieren. Diese werden nach verschiedenen Kriterien markiert.
Seit längerer Zeit habe ich in einem Verarbeitungsschritt mehrere If-Then abfragen drin, die bei Übereinstimmung einen XValue-Wert ausgeben (sonst Null), anschliesend mit einem Append in ein Ausgangsfeld geschrieben werden. Im nächsten Inmemory Arbeitsschritt sortiere ich nach diesem Feld, mache eine ID auf gleiche Werte, frage die "1" ab und schreibe diese in den Write, die ich im nächsten Arbeitsschritt rausfiltere und Exportiere.
Diese Methode ging lange Zeit gut. Bei jeder Bedingung geht die Zahl der markierten Datensätze aber Expotential in die Höhe. (Sollte aber möglich gering gehalten werden).
Beispiel: Ich will in der Ausgabe einen Herrn, eine Frau, eine Adresse mit Zusatz, ein Postfach usw. Wenn ich dann noch einen Datensatz ohne Kundennummer will bekomme ich zusätzlich alle anderen Markierten Kriterien (Ein Herr ohne Kdnr, eine Frau ohne Kdnr usw.) Da auf diese Weise mittlerweile zu viele Datensätze gefiltert werden habe ich versucht eine effektivere Methode zu finden.
Ich will die Ausgabe der if-Then's mit ID (Count auf bestimmte Werte) zählen, und den InMemory-Write ein mit einem Wert (z.B. 1) aktualisieren. Nach diesem würde ich im nächsten Arbeitsschritt filtern.
Ich dachte, das ich bei dieser Vorgehensweise maximal die Anzahl der abgefragten Kriterien filtern könnte.
Leider funktioniert die "Count auf bestimmte Werte in ID-Adapter" Funktion nicht wie erwartet und erzählt nicht die eingestellten Werte des abgefragten Datenfelds hoch.
Ich habe mal zum veranschaulichen eine CSV mit einigen Daten eingetippt und eine einfache Definition gebastelt in der man sieht was ich meine.
Habe ich irgendwo einen Denkfehler und die Funktion ist für ganz andere Zwecke. Wenn ja....gibt es eine andere Lösung?
Die Ausgabe von genausoviel Datensätzen wie abgefragt wäre schon ein riesen Erfolg. Die Krönung wäre, wenn es eine Lösung geben würde, wenn bei den oben beschriebenen Breispielen zb. Bei einem Mann mit Zusatz und keiner Kundennummer nur 1 Datensatz gefiltert werden würde, da diese ja alle 3 gewünschten Marker hat. Da dies vermutlich nicht so einfach zu realisieren wäre, würde mir schon ausreichen die Count-Funktion bei bestimmten Werten"´zu verstehen um vielleicht weiter zu kommen.
Gruß Ralf
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
1 Jahr 8 Monate her #4775
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 Einzelne Datensätze nach Markierung filtern
Hallo Ralf,
Deine Anforderung ist schon sehr speziell und kann vernünftig eigentlich nur mit einem C# Skript für den .NET Script Heater durchgeführt werden. Ich habe Dir im Angang mal eine Beispieldefinition erstellt.
Du kannst dem .NET Script Heater beliebig viele Eingangsparameter hinzufügen. Pro Wert wird immer nur ein Wert ausgegeben. Also z.B. Anrede 1x Herr, 1x Frau, 1x ohne, dann 1x mit Zusatz und 1x ohne, etc. Du kannst auch zusammengefügte Felder verwenden, oder aber wie im Beispiel eine Prüfung mit dem If-Then-Else Heater auf IsEmpty, etc.
So ist das erstmal relativ einfach und flexibel. Das Ganze kann natürlich auch auf die Spitze getrieben werden und individuell noch weiter angepasst werden. Dann wird es aber sehr aufwendig!
Ich denke damit kann man schon sehr viel erreichen.
Deine Anforderung ist schon sehr speziell und kann vernünftig eigentlich nur mit einem C# Skript für den .NET Script Heater durchgeführt werden. Ich habe Dir im Angang mal eine Beispieldefinition erstellt.
Du kannst dem .NET Script Heater beliebig viele Eingangsparameter hinzufügen. Pro Wert wird immer nur ein Wert ausgegeben. Also z.B. Anrede 1x Herr, 1x Frau, 1x ohne, dann 1x mit Zusatz und 1x ohne, etc. Du kannst auch zusammengefügte Felder verwenden, oder aber wie im Beispiel eine Prüfung mit dem If-Then-Else Heater auf IsEmpty, etc.
So ist das erstmal relativ einfach und flexibel. Das Ganze kann natürlich auch auf die Spitze getrieben werden und individuell noch weiter angepasst werden. Dann wird es aber sehr aufwendig!
Ich denke damit kann man schon sehr viel erreichen.
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.
- Ralf Birk
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 132
1 Jahr 8 Monate her #4777
von Ralf Birk
Ralf Birk antwortete auf Einzelne Datensätze nach Markierung filtern
Hallo Robert,
das sieht ja aufgeräumt aus...
Vielen Dank schon einmal für die Mühe. Das Ergebnis entspricht in etwa meiner "alten" Lösung, die aber nur mit wesentlich größerem Aufwand erzielt wurde.
Ich muss jetzt mal schauen, ob ich das ganze auf dieser Basis noch eingedampft bekomme.
Im Idealfall sollte ja mit den Parametern aus deinem Beispiel 3 Datensätze ausgegeben werden (Wenn z.B. ein Herr ohne Zusatz, Postfach und Kundennummer gefiltert wird fehlt nur noch eine Frau und einer ohne Anrede da die Anderen Kriterien ha schon mit dem "Herr"-Datensatz erfüllt sind.
Muss mal testen was da noch rauszuholen ist. Wenn ich nur dein Script lesen (besser gesagt verstehen) würde.
Ich bin übrigens nicht der Ansicht, dass dies eine so spezielle Anforderung ist, da mir die Aufgabe, einzelne Datensätze nach speziellen Kriterien heraus zu suchen schon von einigen Kunden gestellt wurde.
Wie immer eine schnelle und super einsetzbare Hilfe...Man kann nur den Hut vor dir ziehen.
PS: Die Vorgehensweise bei AutoID mit dem Count auf bestimmte Werte ist mir immer noch nicht klar..
Wünsche dir ein schönes Wochenende
LG Ralf
das sieht ja aufgeräumt aus...
Vielen Dank schon einmal für die Mühe. Das Ergebnis entspricht in etwa meiner "alten" Lösung, die aber nur mit wesentlich größerem Aufwand erzielt wurde.
Ich muss jetzt mal schauen, ob ich das ganze auf dieser Basis noch eingedampft bekomme.
Im Idealfall sollte ja mit den Parametern aus deinem Beispiel 3 Datensätze ausgegeben werden (Wenn z.B. ein Herr ohne Zusatz, Postfach und Kundennummer gefiltert wird fehlt nur noch eine Frau und einer ohne Anrede da die Anderen Kriterien ha schon mit dem "Herr"-Datensatz erfüllt sind.
Muss mal testen was da noch rauszuholen ist. Wenn ich nur dein Script lesen (besser gesagt verstehen) würde.
Ich bin übrigens nicht der Ansicht, dass dies eine so spezielle Anforderung ist, da mir die Aufgabe, einzelne Datensätze nach speziellen Kriterien heraus zu suchen schon von einigen Kunden gestellt wurde.
Wie immer eine schnelle und super einsetzbare Hilfe...Man kann nur den Hut vor dir ziehen.
PS: Die Vorgehensweise bei AutoID mit dem Count auf bestimmte Werte ist mir immer noch nicht klar..
Wünsche dir ein schönes Wochenende
LG Ralf
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Ralf Birk
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 132
1 Jahr 8 Monate her #4778
von Ralf Birk
Ralf Birk antwortete auf Einzelne Datensätze nach Markierung filtern
Hallo Robert,
ich wollte mich nochmals kurz melden. Ich habe etwas "gebastelt" und eine Möglichkeit gefunden das ganze weiter einzugrenzen.
Leider ist es dann mit der Übersichtlichkeit schon wieder vorbei.
Ich frage z.B. den Zusatz ab. Bei True Verkette ich das True mit der Anrede ansonsten nehme ich nur die Anrede. Mit dem Ergebis gehe ich in dein Script. Werde das in der Form ausbauen.
Danke Nochmals...
Gruß Ralf
ich wollte mich nochmals kurz melden. Ich habe etwas "gebastelt" und eine Möglichkeit gefunden das ganze weiter einzugrenzen.
Leider ist es dann mit der Übersichtlichkeit schon wieder vorbei.
Ich frage z.B. den Zusatz ab. Bei True Verkette ich das True mit der Anrede ansonsten nehme ich nur die Anrede. Mit dem Ergebis gehe ich in dein Script. Werde das in der Form ausbauen.
Danke Nochmals...
Gruß Ralf
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
1 Jahr 8 Monate her #4780
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 Einzelne Datensätze nach Markierung filtern
Hallo Ralf,
bzgl. dem Count) Wenn du nur gleiche Eingangsparameter zählen wills musst du hier im AutoID Heater den Startwert auf 0 stellen. So wird solange 0 zurückgeliefert bis der erste passende Wert eingegangen ist.
bzgl. dem Count) Wenn du nur gleiche Eingangsparameter zählen wills musst du hier im AutoID Heater den Startwert auf 0 stellen. So wird solange 0 zurückgeliefert bis der erste passende Wert eingegangen ist.
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.
- Ralf Birk
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 132
1 Jahr 8 Monate her #4784
von Ralf Birk
Ralf Birk antwortete auf Einzelne Datensätze nach Markierung filtern
Hallo Robert,
dann war ja die Denkweise im Prinzip doch richtig. Ich "Dödel" hab nur die 1 drin stehen lassen anstatt eine 0 als Start zu nehmen.
Danke dir nochmals und wünsche dir ein schönes Wochenende...
Gruß Ralf
dann war ja die Denkweise im Prinzip doch richtig. Ich "Dödel" hab nur die 1 drin stehen lassen anstatt eine 0 als Start zu nehmen.
Danke dir nochmals und wünsche dir ein schönes Wochenende...
Gruß Ralf
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.286 Sekunden