CSV Anpassung
- FlowHeater-Team
- Autor
- Offline
- Administrator
wir bekommen aus einem ERP täglich CSV-Dateien exportiert, die diverse Information enthalten. Diese sollen in ein CRM System importiert werden. Nun gibt es beispielsweise CSV-Dateien, die aus 13 Spalten bestehen. Spalte 1 enthält die Kundennummer, Spalte 2-13 jeweils die aufgelaufenen Rechnungswerte der Monate 1-12. Für den Import ins CRM (und für die Auswertungen, etc.) benötigen wir aber ein konkretes Datum. Gibt es eine Möglichkeit, jeweils eine Spalte hinzuzufügen und hier ein entsprechendes Datum zu hinterlegen? Also für Spalte 2 (Januar) z.Bsp. den 15.01.XX, für Spalte 3 (Februar) den 15.2.XX.
Vielen Dank
M. Schanzel
Anfrage per EMail erhalten
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.
- FlowHeater-Team
- Autor
- Offline
- Administrator
im Anhang finden Sie ein kleines Beispiel wie Sie das mit dem TextFile Adapter umsetzen können. Das Datum wird hier über mehrere Heater dynamisch gebildet.
Zuerst wird der Monat (1, 2, …) anhand des Namens (Januar, Februar, …) über eine CSV Ersetzungsliste mit Hilfe des String Replace Heater ermittelt. Anschließend wird er Wert über den String Append Heater zusammen mit der Jahreszahl und einem Statischen Wert ( X-Value Heater ) zu einem Datum zusammengefügt.
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.
- FlowHeater-Team
- Autor
- Offline
- Administrator
danke für die Info. Das Problem ist, dass die Spalten nicht bezeichnet sind, sondern nur Werte enthalten (siehe Beispiel im Anhang). Irgendwie stehe ich vermutlich gerade nur auf dem Schlauch.
Quelldatei (siehe Anhang):
Spalte 1: Kundennummer
Spalte 2-13: Werte Januar - Dezember
Das Ziel (CRM) ist eine SQL-Datenbank. Hier habe ich aber leider nur 4 Tabellen: ID, Kundennummer, Wert und Datum:
Der Wert aus der jeweiligen Monatsspalte soll nun mit einem fiktiven Datum (z.Bsp. immer der 15. Des Monats) importiert werden. Aus dem ERP kommen nämlich nicht die einzelnen Rechnungen, sondern immer summierte Monatswerte.
Dasselbe ist bei Anzahl der Angebote pro Monat, etc.
Vielen Dank für Ihre Unterstützung.
M. Schanzel
Anfrage per EMail erhalten
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.
- FlowHeater-Team
- Autor
- Offline
- Administrator
so ganz hab ich das leider noch nicht verstanden. Wenn pro Export immer nur ein Monat gesetzt ist würde es so gehen, siehe Anhang.
Wenn allerdings im Februar, März, … Daten hinzukommen müsste nochmal was gemacht werden. Bitte etwas ausführlicher beschreiben wie Ihr ERP CSV Export genau aussieht und was dann im SQL Server importiert werden soll, Danke.
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.
- Michael
- Offline
- Benutzer
- Beiträge: 11
die Datei wird jeden Tag erzeugt mit den aktuellen Werten aus dem ERP. So bleibt dann ab Ende Januar die zweite Spalte unverändert (Januar ist ja abgeschlossen), die Februarspalte (Spalte 3) wird dann täglich angepasst, usw. Am Ende des Jahres sind dann alle Spalten gefüllt.
Gruß Michael Schanzel
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Autor
- Offline
- Administrator
welche Informationen möchten Sie dann in den SQL Server importieren?
Soll davon lediglich ein Datensatz mit der Summe aus allen importiert zum jeweiligen letzten Stichtag. Also z.B. nur Januar und Februar gefüllt der 15.2.
Oder möchten Sie alle Monate die <> 0 sind importieren bzw. bereits importierte Monate sollen dabei aktualisiert werden.
Bitte etwas genauer beschreiben was genau gemacht werden soll, Danke.
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.
- Michael
- Offline
- Benutzer
- Beiträge: 11
die Daten sollen täglich im CRM dargestellt werden. Die CSV-Datei wird täglich aus dem ERP aktualisiert. Importiert , bzw. aktualisiert werden täglich auch alle Felder, damit im CRM immer die aktuellen Werte dargestellt werden. Dazu habe ich im SQL-Server des CRMs auch entsprechende Felder angelegt. Das klappt auch, die Werte werden in einer Tabelle dargestellt. Nun soll aber eine grafische Auswertung der Werte erfolgen. Für eine grafische Darstellung benötige ich aber ein Datum. Aktuell ist aber kein Datum vorhanden, sondern eben nur der "Monatswert" in der entsprechenden Spalte. Nun würde ich gerne zu diesem summierten Wert ein Datum generieren, damit ich die Grafik erstellen kann. Somit müsste zu jedem Wert ein Datum generiert werden. Im Anhang habe ich eine Muster-CSV erstellt, die z.Bsp. im April so aussehen würde.
Gruß Michael Schanzel
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Autor
- Offline
- Administrator
ich habe jetzt mal ein Beispiel erstellt, so wie ich mir es vorstelle. Bevor ich jetzt das Beispiel groß beschreiben bitte mal kurz ausführen und prüfen. Das Beispiel erstellt basierend auf Ihre CSV Beispieldaten eine weitere CSV Datei in der Ausgabe.
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.
- Michael
- Offline
- Benutzer
- Beiträge: 11
das scheint so zu funktionieren. Vielen Dank. Kann man evtl. auch einbauen, dass nur Werte erzeugt werden, die nicht 0 sind (also die Spalten weggelassen werden, in denen noch keine Werte stehen)? So bleibt die Rechnungsliste überichtlicher, da alle zukünftigen Monate dann ausgeblendet sind.
Gruß, M.Schanzel
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Autor
- Offline
- Administrator
ja natürlich, Sie benötigen dazu lediglich einen Filter Heater und über den IF-THEN-ELSE Heater eine Filterbedingung „wenn Wert 0 dann“, sie angepasstes Beispiel.
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.
- Michael
- Offline
- Benutzer
- Beiträge: 11
so funktioniert das bestens. Ich stecke noch in den Tests, aber bisher sieht alles prima aus. Vielen Dank.
Ich habe zu diesem Szenario noch eine andere Frage. Wir erstellen damit ja eine neue CSV, die täglich neu gefüllt wird mit den Umsätzen aus dem ERP. Parallel dazu läuft dieselbe Aktion noch mit Aufträgen und Angeboten. Am Ende haben wir also 3 CSV-Dateien wir in Ihrem Beispiel. Diese CSVs müssen nun in den SQL-Server des CRMs importiert werden. Das klappt grundsätzlich auch, aber wenn das Script zum zweiten Mal läuft, sind die Daten nicht mehr stimmig. Können Sie sich das Script bitte mal anschauen? Die Daten müssen täglich aktualisiert, neue Daten hinzugefügt werden.
Gruß M.Schanzel
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Autor
- Offline
- Administrator
die Definition sieht erstmal normal aus. Was meinen Sie denn mit nicht stimmig. Für die weitere Analyse bräuchte ich ein paar mehr Informationen. Was erwarten Sie genau und wie sieht das Ergebnis das momentan am Ende in den SQL Server importiert wird?
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.
- Michael
- Offline
- Benutzer
- Beiträge: 11
die Zahlen in der CSV ändern sich täglich, neue Rechnungen kommen hinzu (die bisher auf 0 waren - also nicht vorhanden, oder bereits bestehende Werte ändern sich). Die Werte im SQL-Server sollen täglich aktualisiert werden.
Aktuell ist es so, dass beim ersten Abgleich alle Daten übertragen werden, ab dem zweiten Tag dann nicht mehr alle. Bei jedem Ausführen der Definition ändert sich die Anzahl der aktualisierten Datensätze - auch beim mehrfachen Ausführen direkt hintereinander. Das wird zumindest im Ergebnis angezeigt. Auf dem SQL-Server müsste ich noch prüfen, ob das tatsächlich so ist. Was ich aber definitiv sagen kann, ist, dass die aktualisierten Werte nicht im SQL ankommen.
Stimmen die Einstellungen im Write-Adapter? Und muss evtl. für die ID noch ein "GUID" dazu?
Gruß Michael Schanzel
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Autor
- Offline
- Administrator
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.
- Michael
- Offline
- Benutzer
- Beiträge: 11
nach einiger Zeit ist nun aufgefallen, dass leider alle Zeilen ignoriert werden (Beispiel 4), bei denen der Januar (also erste Spalte) gleich 0 ist. Wenn also ein Kunde erst ab Februar Umsätze erzeugt, bleibt das Ergebnis das ganze Jahr bei 0, da die Zeile ignoriert wird. Kann man das umgehen?
Gruß Michael S.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Autor
- Offline
- Administrator
oh :huh: da war noch was, hatte ich vergessen. Das Problem ist, dass der AutoID Heater per Default gefilterte Datensätze ignoriert, also in dem Fall nicht hochzählt! Soll der erste Satz gefiltert werden zählt so der AutoID Heater nicht hoch und es wird beim nächsten Satz der Gruppe wieder nur der erste geprüft.
Sie können das Verhalten über die Eigenschaften des AutoID Heaters einstellen. Sie müssen dazu lediglich die Option „Gefilterte Datensätze/Zeilen ignorieren“ deaktivieren, siehe Screenshot und Beispiel im Anhang.
Achtung: Die Option muss bei beiden AutoID Heatern deaktiviert werden!
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.