Import via .dwcontrol - numerische Zahlen mit . oder , prüfen und ggf. ändern
Wir haben mithilfe eines Scriptes Daten aus alten Archiven, welche unterschiedliche Spaltennamen, Reihenfolgen, etc. im Gegensatz zum neuen Archiv besitzen, in das neue eingepflegt. Hierbei wurden für die .dwcontrol Werte die Werte vom SQL Server übernommen.
Über Nacht haben wir nun > 1000 Dokumente eingepflegt.
Dabei ist uns aufgefallen, dass die Werte bei Spalten vom Typ Numerisch auf einmal um zwei Nullen erweiter wurden.
Sprich, aus 123,45 wurde 12.345,00.
Nach kurzer Recherche, scheint das Problem an den Importwerten zu liegen. Hier wurde nämlich vom SQL Server der Wert im amerikanischen Stile, 123.45 ,übernommen.
Mein Vorschlag:
Erstellung einer Prüfung beim Import mithilfe von regulären Ausdrücken oder ähnlichem.
Nach dem Schema:
Wenn Typ = Numerisch:
- Wenn Wert besitzt ". (1) 0-9 (2)$":
Ersätze im Wert Punkt mit Komma
Wenn Wert besitzt ". (1) 0-9 (3)$":
Erweitere Wert um ",00"
Gestaltung der RE in anderer Form, da es sonst als "Verlinkung" gesehen wird.
Da wir jetzt wissen, dass DW unbedinngt das Komma benötigt als Trennzeichen und Punkte einfach ignoriert, könnten wir zwar unseren eigenen Code abändern, alle Dokumente herauslöschen und dann erneut hochladen, aber dennoch wird es in Zukunft jemanden wie uns geben, die solch einen Import durchführen wollen, dies wie wir tun und am Ende sich ärgern.