- Beiträge: 9
Preisdatei mit (teilweise) Mehrfach-Ersetzungen einlesen
- Heiko H.
- Autor
- Offline
- Benutzer
Weniger
Mehr
12 Jahre 9 Monate her #808
von Heiko H.
Preisdatei mit (teilweise) Mehrfach-Ersetzungen einlesen wurde erstellt von Heiko H.
Hallo,
ich nutze FlowHeater um verschiedene Preisdateien unserer Lieferanten in ein bestimmtes Ausgabeformat zu bringen.
Bei einer Datei komme ich jedoch so ohne weiteres nicht zum Ergebnis. Die Besonderheit ist, dass in der Datei auch Artikel gibt, die sich in eine neue Nummer ersetzen und manche Artikel ersetzten sich in mehrere(!) andere Artikel, sog. Mehrfachersatz.
Es gibt 6 Spalten: Teilenummer, TeilenummerNeu, Bezeichnung, Menge, Positionsnummer, Preis
Wenn es sich um eine ganz normale, noch bestellbare Artikelnummer handelt, dann ist Menge=0 und Positionsnummer=9999 und das Feld TeilenummerNei ist leer.
Im Beispiel die Zeilen 2, 3, 4, 13, 17, 20, 23, 24, 25 und 27.
Wenn es sich um eine Artikelnummer handelt, die sich in eine andere (einzelne) Artikelnummer ersetzt hat, dann steht in der Spalte TeilenummerNeu die neue Artikelnummer und bei Positionsnummer eine 8888. Das Feld Menge ist ebenfalls leer.
Im Beispiel die Zeilen 1, 11, 12, 14, 15, 16, 26 und 28
Wenn es nun ein Teil gibt, welches sich in mehrere andere Teile ersetzt, oder für das von einem neuen Teil mehrere Stück bestellt werden müssen, dann steht in TeilenummerNEU die (erste) neue Teilenummer, bei Menge steht die Anzahl der davon benötigten Teile und bei Positionsnummer steht eine (bis zu dreistellige) Zahl kleiner als 8888. Wenn in der nächsten Zeile dann die gleiche 'Teilenummer' steht, dann weiß mann, dass zu dieser Teilenummer ein weiteres (neues) Teil gehört. die weitere Nummer steht dann wiederum in der Spalte TeilenummerNeu, bei Menge steht die benötigte Menge und bei Positionsnummer steht wiederum eine (bis zu) dreistellige Zahl.
Erst wenn in einer der nächsten Zeilen eine andere Teilenummer steht, gibt es wieder ein neues Teil.
Im Beispiel die Zeilen 5-10 (ein Teil, welches sich in insgesamt 6 neue Teile ersetzt)
oder die Zeile 15 (Ein Teil, für das man von der neuen Teilenummer zwei Stück bestellen muss)
oder die Zeilen 18 bis 19 und 21 bis 22
Die Datenbank auf der Ausgabeseite hat einen Primärindey auf dem Feld Teilenummer. Hier kann also jede Teilenummer nur in einer Zeile stehen.
Die WRITE-Seite hat die Felder:
Teilenummer (indiziert)
Bezeichnung
Teilenummer neu
Die Teile mit 8888 und 9999 in den Positionsnummern sind kein Problem, hier komme ich mit ganz einfachen Abfragen klar.
Bei den Teilen, welche sich in mehrere andere Teile ersetzen möchte ich allerdings folgende Lösung auf der WRITE-Seite haben:
1.)
Wenn es sich lediglich um den Fall handelt, dass man von einer anderen Teilenummer mehrere Stückzahlen bestellen muss, dann soll in die 'Bezeichnung' auf der WRITE-Seite eingesetzt werden: 'Ersetz durch: #Menge# Stück #TeilenummerNeu#'
2.)
Wenn es sich um mehrere Artikel handelt, soll folgendes auf der WRITE-Seite passieren:
Die erste Zeile dieser Ersetzungskette soll in der Artikelnummer die 'Teilenummer' stehen haben und in der Bezeichnung: 'Mehrfachersatz wie folgt:'.
Dann soll eine weitere Zeile eingefügt werden. Die Teilenummer soll sein '#Teilenummer# 1', die Bezeichnung soll lauten: '#Menge# x #TeilenummerNeu#'
Nun soll es für jede weitere Zeile dieser Teilenummer eine weitere Zeile auf der WRITE-Seite geben:
Teilenummer: '#Teilenummer# 2'
Bezeichnung: '#Menge# x #TeilenummerNeu#'
Für die Zeilen 5-10 des Beispiels also:
Teilenummer Bezeichnung
0.3.01.001 Mehrfachersatz wie folgt:
0.3.01.001 1 1 x 24.6483.72
0.3.01.001 2 1 x 26.1027.00
0.3.01.001 3 1 x 26.1027.06
0.3.01.001 4 2 x 28.3592.30
0.3.01.001 5 1 x 712-0637
0.3.01.001 6 1 x 736-0702
Kann mir jemand helfen???
ich nutze FlowHeater um verschiedene Preisdateien unserer Lieferanten in ein bestimmtes Ausgabeformat zu bringen.
Bei einer Datei komme ich jedoch so ohne weiteres nicht zum Ergebnis. Die Besonderheit ist, dass in der Datei auch Artikel gibt, die sich in eine neue Nummer ersetzen und manche Artikel ersetzten sich in mehrere(!) andere Artikel, sog. Mehrfachersatz.
Es gibt 6 Spalten: Teilenummer, TeilenummerNeu, Bezeichnung, Menge, Positionsnummer, Preis
Anhang Preise.zip wurde nicht gefunden.
Wenn es sich um eine ganz normale, noch bestellbare Artikelnummer handelt, dann ist Menge=0 und Positionsnummer=9999 und das Feld TeilenummerNei ist leer.
Im Beispiel die Zeilen 2, 3, 4, 13, 17, 20, 23, 24, 25 und 27.
Wenn es sich um eine Artikelnummer handelt, die sich in eine andere (einzelne) Artikelnummer ersetzt hat, dann steht in der Spalte TeilenummerNeu die neue Artikelnummer und bei Positionsnummer eine 8888. Das Feld Menge ist ebenfalls leer.
Im Beispiel die Zeilen 1, 11, 12, 14, 15, 16, 26 und 28
Wenn es nun ein Teil gibt, welches sich in mehrere andere Teile ersetzt, oder für das von einem neuen Teil mehrere Stück bestellt werden müssen, dann steht in TeilenummerNEU die (erste) neue Teilenummer, bei Menge steht die Anzahl der davon benötigten Teile und bei Positionsnummer steht eine (bis zu dreistellige) Zahl kleiner als 8888. Wenn in der nächsten Zeile dann die gleiche 'Teilenummer' steht, dann weiß mann, dass zu dieser Teilenummer ein weiteres (neues) Teil gehört. die weitere Nummer steht dann wiederum in der Spalte TeilenummerNeu, bei Menge steht die benötigte Menge und bei Positionsnummer steht wiederum eine (bis zu) dreistellige Zahl.
Erst wenn in einer der nächsten Zeilen eine andere Teilenummer steht, gibt es wieder ein neues Teil.
Im Beispiel die Zeilen 5-10 (ein Teil, welches sich in insgesamt 6 neue Teile ersetzt)
oder die Zeile 15 (Ein Teil, für das man von der neuen Teilenummer zwei Stück bestellen muss)
oder die Zeilen 18 bis 19 und 21 bis 22
Die Datenbank auf der Ausgabeseite hat einen Primärindey auf dem Feld Teilenummer. Hier kann also jede Teilenummer nur in einer Zeile stehen.
Die WRITE-Seite hat die Felder:
Teilenummer (indiziert)
Bezeichnung
Teilenummer neu
Die Teile mit 8888 und 9999 in den Positionsnummern sind kein Problem, hier komme ich mit ganz einfachen Abfragen klar.
Bei den Teilen, welche sich in mehrere andere Teile ersetzen möchte ich allerdings folgende Lösung auf der WRITE-Seite haben:
1.)
Wenn es sich lediglich um den Fall handelt, dass man von einer anderen Teilenummer mehrere Stückzahlen bestellen muss, dann soll in die 'Bezeichnung' auf der WRITE-Seite eingesetzt werden: 'Ersetz durch: #Menge# Stück #TeilenummerNeu#'
2.)
Wenn es sich um mehrere Artikel handelt, soll folgendes auf der WRITE-Seite passieren:
Die erste Zeile dieser Ersetzungskette soll in der Artikelnummer die 'Teilenummer' stehen haben und in der Bezeichnung: 'Mehrfachersatz wie folgt:'.
Dann soll eine weitere Zeile eingefügt werden. Die Teilenummer soll sein '#Teilenummer# 1', die Bezeichnung soll lauten: '#Menge# x #TeilenummerNeu#'
Nun soll es für jede weitere Zeile dieser Teilenummer eine weitere Zeile auf der WRITE-Seite geben:
Teilenummer: '#Teilenummer# 2'
Bezeichnung: '#Menge# x #TeilenummerNeu#'
Für die Zeilen 5-10 des Beispiels also:
Teilenummer Bezeichnung
0.3.01.001 Mehrfachersatz wie folgt:
0.3.01.001 1 1 x 24.6483.72
0.3.01.001 2 1 x 26.1027.00
0.3.01.001 3 1 x 26.1027.06
0.3.01.001 4 2 x 28.3592.30
0.3.01.001 5 1 x 712-0637
0.3.01.001 6 1 x 736-0702
Kann mir jemand helfen???
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
12 Jahre 9 Monate her #809
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: Preisdatei mit (teilweise) Mehrfach-Ersetzungen einlesen
Hallo Herr Halaschka,
Für Ihr Vorhaben wird es denke ich notwendig sein mehrere Definitionen nacheinander auszuführen. Ich gehe jetzt mal auf Ihre erste Frage ein, die ist etwas einfacher umzusetzen. Wenn Sie das verstanden haben können wir das zweite Problem lösen. Bitte dann über eine neue Frage im Forum.
Zuerst brauchen Sie den SQL Heater um zu prüfen ob eine Teilenummer mehrmals vorkommt. Hierzu verwende ich den SQL Befehl
select count(*) from [Deut0001] where teilenummer = '$TNR$'
Der Parameter Platzhalter $TNR$ wird benötigt um dynamische SQL Statements während der Ausführung auszuführen.
Dann werden über die Filter Heater alle nicht benötigten Datensätze gefiltert. Für Ihr erstes Problem alle Datensätze die als count(*) > (größer) 1 zurückgeben sowie alle mit Positionsnummer >= (größer gleich) 8888.
Die Bezeichnung wird nun über einen X-Value Heater gebildet hier in dem Beispiel
Ersetzt durch #Menge#$Menge$#$TeilenummerNeu$#
Die Parameter $Menge$ sowie $TeilenummerNeu$ werden wieder dynamisch zur Laufzeit mit den gerade aktuellen Werten ersetzt. Die Parameter werden vorher über den Parameter Heater zur weiteren Verwendung gesetzt.
Im Anhang finden Sie ein kleines Beispiel basierend auf Ihren Daten. Ihr zweite Problem lässt sich ebenfalls über diesen Mechanismus lösen. Es könnte evtl. sein, dass dazu insgesamt zwei Definitionen notwendig sind. 1x um den zusätzlichen Datensatz zu erzeugen und 1x im die Daten zu importieren.
Bitte beachten: Damit das Beispiel funktioniert musste eine kleine Änderung an der Parametersteuerung in Bezug auf den Filtermechanismus durchgeführt werden. Das Beispiel funktioniert daher erst mit der hier erhältlichen Beta Version oder aber dann ab Version 2.2.6 oder höher.
Für Ihr Vorhaben wird es denke ich notwendig sein mehrere Definitionen nacheinander auszuführen. Ich gehe jetzt mal auf Ihre erste Frage ein, die ist etwas einfacher umzusetzen. Wenn Sie das verstanden haben können wir das zweite Problem lösen. Bitte dann über eine neue Frage im Forum.
Zuerst brauchen Sie den SQL Heater um zu prüfen ob eine Teilenummer mehrmals vorkommt. Hierzu verwende ich den SQL Befehl
select count(*) from [Deut0001] where teilenummer = '$TNR$'
Der Parameter Platzhalter $TNR$ wird benötigt um dynamische SQL Statements während der Ausführung auszuführen.
Dann werden über die Filter Heater alle nicht benötigten Datensätze gefiltert. Für Ihr erstes Problem alle Datensätze die als count(*) > (größer) 1 zurückgeben sowie alle mit Positionsnummer >= (größer gleich) 8888.
Die Bezeichnung wird nun über einen X-Value Heater gebildet hier in dem Beispiel
Ersetzt durch #Menge#$Menge$#$TeilenummerNeu$#
Die Parameter $Menge$ sowie $TeilenummerNeu$ werden wieder dynamisch zur Laufzeit mit den gerade aktuellen Werten ersetzt. Die Parameter werden vorher über den Parameter Heater zur weiteren Verwendung gesetzt.
Im Anhang finden Sie ein kleines Beispiel basierend auf Ihren Daten. Ihr zweite Problem lässt sich ebenfalls über diesen Mechanismus lösen. Es könnte evtl. sein, dass dazu insgesamt zwei Definitionen notwendig sind. 1x um den zusätzlichen Datensatz zu erzeugen und 1x im die Daten zu importieren.
Bitte beachten: Damit das Beispiel funktioniert musste eine kleine Änderung an der Parametersteuerung in Bezug auf den Filtermechanismus durchgeführt werden. Das Beispiel funktioniert daher erst mit der hier erhältlichen Beta Version oder aber dann ab Version 2.2.6 oder höher.
Anhang import_preise.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.
Ladezeit der Seite: 0.270 Sekunden