Článek: AN0002410Aktualizováno:: 20.12.2023
Během importování dat se můžeme potkat s různými problémy, na něž jsme upozorněny chybovými hlášeními - např. v odkazované třídě neexistuje hodnota, kterou se snažíme importovat a na záznamy v dané třídě mapovat, importní soubor nemá počet sloupců definovaných v importu nebo že v importním souboru neexistuje sloupec s názvem uvedeným v nastavení importu.
Poslední dva problémy jsou v hlášení spojeny i s kódováním souboru. Hlášení říká, že může jít o jeden z těchto důvodů. Může se vám zdát, že importujete správná data, ale soubor má jiné kódování, než si myslíte.
Dalším problémem mohou být oddělovače, jejich různý počet v jednotlivých řádcích, znak konce řádku v datech a podobně. Při kontrole nespoléhejte na Notepad, ale použijte program jako PSPad Editor.
Informace o kódování není uložena v daném souboru. Textové editory kódování odhadují podle znaků použitých v textu. Pokud chcete zjistit kódování, můžete soubor zkusit otevírat v PSPadu, tak že vždy zvolíte nové kódování a pak znovu otevřete daný soubor. Až se objeví správné znaky, budete mít zvoleno správné kódování.
Může být vhodné otevřít CSV soubor v Excelu, ujistit se, že data jsou ve správné struktuře, eventuelně je upravit a uložit v jednom z následujících dvou formátů:
- Text (oddělený tabulátory) (*.txt) - následně importujte s kódováním podle nastavení vašeho Excelu (např. 1250)
- Text v kódu Unicode (*.txt) - následně importujte s kódováním 1200
Korekce dat
V některých případech máte data z výše uvedeného pohledu v pořádku, ale potřebujete je nějak upravit. To je možné provést před importem např. pomocí CSVUtility, která konvertuje hodnoty enumerované v jednom řádku do více řádků, tak aby importní soubor obsahoval stejný počet sloupců.
Příklad: Soubor s IP adresami serverů
Před konverzí:
Server1, 10.145.23.25
Server2, 10.145.23.26, 10.145.53.26, 10.192.12.189
Server3, 10.145.23.27
Po konverzi CSVUtilitou:
Server1, 10.145.23.25
Server2, 10.145.23.26
Server2, 10.145.53.26
Server2, 10.192.12.189
Server3, 10.145.23.27
Druhou možností je korekce v průběhu importu. Data jsou při importu nejprve importována do dočasné tabulky v textové formě, tak jak byla ve vstupním souboru. Můžete použít Skript po načtení do databáze, který se definuje v nastavení importu. Další možností je importovat data nejprve do pomocné třídy, pak je pomocí skriptů upravit a pak přenést pomocí skriptů do cílové třídy.
Pokud nechcete ve třídě ukládat textové hodnoty ze souboru, ale odkazy do číselníku, můžete během importu provést mapování na záznamy číselníku. Pokud ve vstupním souboru může být jedna hodnota vyjádřena více různými texty, můžeme při importu použít přemapování hodnot ze souboru na žádoucí hodnotu v odkazu.