Import dokladů z CSV/DBF formátu

Z K.A.P.
Verze z 10. 9. 2019, 16:49, kterou vytvořil Greplová Alena (diskuse | příspěvky) (→‎Kódy menu PrevodyImp)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaciSkočit na vyhledávání

Menu :

Služby / Převody dat / Importy dat / Import př. dokladů z CSV/DBF

Služby / Převody dat / Importy dat / Import dod.. dokladů z CSV/DBF

Program nabízí možnost importovat doklady z externích skladových systémů. Import dokladu je možné vyvolat z menu nebo spuštěním skladového programu s parametrem CSV:jméno_souboru. Program nejdříve načte data do přenosového souboru a odtud je možné doklad zaevidovat do příjemky (nebo i do jiného dokladu).
Pomocí číselníku 98 Importní formáty CSV lze definovat výrazy umožňující mapování zdrojových dat na databázová pole skladového programu.

ImportCSV.PNG

Položka Popis
Dodavatel je buď nastaven automaticky, pokud je nalezen (je vyhledáván podle pole kód v dodavatelích) nebo je zobrazen text adresa neurčena a musíme vybrat dodavatele pomocí kl. F9
Ozn. dodavatele ve skl. kartě U nových karet se může nastavovat označení dodavatele dle vašeho výběru
Předčíslí kódu zboží Pokud při importu karet přebíráte z přenosového souboru také kódy skladových karet, tak můžete tento kód upravit pomocí předčíslí a celkového počtu znaků. Toto nastavení si můžete předvolit v číselníku dodavatelů.
Celk. počet míst kódu zboží Pokud při importu karet přebíráte z přenosového souboru také kódy skladových karet, tak můžete tento kód upravit pomocí předčíslí a celkového počtu znaků. Toto nastavení si můžete předvolit v číselníku dodavatelů.
Náhradní znak za úvodní nulu program může při importu nahradit úvodní nuly v kódu zboží za vámi určený znak. Toto nastavení si můžete předvolit v číselníku dodavatelů.
Importní formát je zpravidla určen automaticky (např. Cezar-DBF, Scala-XML, CyberSoft-XML, EDI-ORDER) nebo jej můžeme vybrat pomocí kl. F9
Import cen (cenové pásmo) buď bude cena určena automaticky z importovaného souboru nebo lze určit cenové pásmo - pracuje ale pouze u dohledaných skladových karet

Po uložení výše uvedených údajů kl.F2 vybereme typ dokladu z číselníku typů dokladů. Předdedfinovaný typ lze nastavit pomocí proměnné IMPCSV+ pro příjmové doklady a ImpCSV- pro dodací doklady (kl.F12 v opravě INI hodnot. Následně se nám objeví seznam karet - odsouhlasení položek dokladů

ImportCSVOdsPolozek.PNG

Sloupec Popis
S určuje stav dohledání nebo nalezení skladové karty (mezera nalezeno, ? nenalezeno)
N.cena cena ze zdrojového souboru
Nová PC nově vypočítaná prodejní cena
Ext. název přenosového souboru původní název karty ze zdrojového souboru

Tabulka - ovládání:

Klávesa Popis
Enter objeví se menu :
1. pro nalezenou kartu (opravit kartu, kalkulace ceny, zaměnit tuto kartu za jinou - pokud chceme zboží přijmout na jinou skladovou kartu)
2. pro nenalezenou kartu (vybrat správnou kartu ze seznamu, založit skladovou kartu) - jsou předvyplněny údaje ze zdrojového souboru
3. při předdefinovaném menu ImportCSV je zobrazeno toto menu (viz. technická poznámka)
F2:Pokračovat bude vytvořen doklad (viz. technická poznámka) v přenosovém souboru - objeví se dialog pro načtení přenosového souboru a po stisku tlačítka Načíst doklady ze schránky bude doklad načten a bude :
1. automaticky zaevidován
2. čekat na opravu a ruční evidování
F6:Nová karta založení nové karty s předdefinovanými údaji ze zdrojového souboru
F8:Kód dod. kód dodavatele v kartě bude nahrazen kódem ze zdrojového souboru
Ctrl+Y:Vypustit zboží bude smazáno, nebude naimportováno


Technická poznámka - Menu "ImportCSV"
Kód menu pol.2 Popis
1 oprava karty
2 kalkulace ceny
3 změna karty
4 nová karta
5 prohlížení nákupních operací
6 prohlížení všech operací

Pokud menu není definováno, pak se zobrazí pouze volby 1, 2, 3.


Upraven import dokladů z DBF souborů. Program nyní využívá informace z prvního řádku současně jako hlavičku dokladu. Lze tak zobrazovat informace z polí ICO/Doklad/Jmeno/Datum v rámci importu dokladu


Technická poznámka - Formát CSV souborů
Pro přenos dat je jednodušší, pokud jsou data umístěny v jednom souboru

(umožní to např. po kliknutí na přílohu v poštovním programu rovnou otevřít skladový program).
Používá se proto tato struktura souboru (platí pro import z textového formátu):
 *DOKHL;Doklad,TypDokladu,Datum,DatumUZP,ICO,DIC,Jmeno,Jmeno2,Ulice,Mesto,PSC,CisloDL,Poznamka,Mena,Sleva
....hlavička dokladu....
 *DOKRD;KodZbozi,Mnoz,Cena,SazbaDPH,KsBal,Sleva,TypKarty,Nazev,Skupina,Skupina2,Jednotka,EAN,EANbal,Poznamka,Vyrobce,Hmotnost
....položky dokladu....

Příklad
*DOKHL;Doklad,TypDokladu,Datum,DatumUZP,ICO,DIC,Jmeno,Jmeno2,Ulice,Mesto,PSC,CisloDL,Poznamka,Mena,Sleva

165123,5,18/02/2002,"18/02/2002","48154393","238-48154393","VESKO Jičín, spol. s r.o.",,"Dělnická 15","Jičín","506 01","916512","Pokus",,,

*DOKRD;KodZbozi,Mnoz,Cena,SazbaDPH,KsBal,Sleva,TypKarty,Nazev,Skupina,Skupina2,Jednotka,EAN,EANbal,Poznamka,Vyrobce,Hmotnost

"6J548451",1,182.12,22,1,0,,"Tyč kavárenská bílá 135","6001",,"ks",,,"Pokus",,
"6J549030",5,44.61,22,6,0,"Z","Tyč kavárenská bílá 135","6001","AB","ks",
"8590000000000","85920000000000","Pokus","XY",0.37


Každá položka dokladu (řádek faktury) je v souboru na jednom samostatném řádku. Na jednom samostatném řádku jsou i záhlaví (dokladu i položek) a data z hlavičky dokladu. Řádky jsou odděleny znaky CR LF.

Jednotlivé položky v řádku jsou odděleny čárkou nebo tabelátorem. Řádky mohou být zakončeny středníkem. Údaje mohou být umístěny v uvozovkách (a to i číselné údaje). Případné uvozovky uvnitř textu je vhodné nahradit dvojicí uvozovek nebo uvozovky nahradit jiným obdobným znakem např. `. Kódování češtiny je libovolné (z hlediska programu je to výhodné v pořadí: Kamenicky / LATIN2 / Windows).

Ceny jsou uváděny v cenách bez DPH. Typ zboží může rozlišovat např. obaly. Většina položek z hlavičky dokladu není využívána. Podstatné údaje jsou Doklad, Datum, ICO (IČO dodavatele). Ostatní údaje v CSV databázi vůbec nemusí existovat (ale neuškodí). V databázi mohou být navíc také libovolné další údaje (např. Zakazka, Banka, OdbICO, OdbJmeno, OdbMesto, OdbPSC apod.), importní program je bude ignorovat.

Pořadí položek v řádku je nevýznamné, samozřejmě to co je v nadpisu musí být na odpovídajícím místě v datové části. Prázdné a nulové údaje vůbec nemusí být uvedeny (za čárkou následuje další čárka).

Podobně to platí i pro položky faktury (pro změnu ale zde většina údajů bude využita). Mimo některé klíčové položky nemusí být ale většina údajů v databázi definována.

Pojmenování souboru může být libovolné (vč. dlouhých názvů – doporučujeme však raději použít klasické max.8 znaků pro jméno souboru). Přípona souboru by měla být CSV (může to však kolidovat s Excelem, který tyto tabulky taky umí načíst). Může však být i jiná, ale raději taková, která se běžně nepoužívá (nevhodné je např .TXT). Pro snazší orientaci by snad bylo dobré, pokud by jméno souboru obsahovalo číslo dokladu.

Pokud by dělalo problémy rozdělení jednoho souboru do 2 sekcí (hlavička *DOKHL a položky *DOKRD), pak je možné do CSV souboru uvádět pouze položky dokladu (*DOKRD), ale je třeba do nich doplnit ještě Doklad, Datum a ICO (do každého řádku dokladu).

Naopak určitým zjednodušením může být, pokud by data obsahovala i třetí sekci:
 *DOKKARTY; KodZbozi, Cena, SazbaDPH, KsBal, TypKarty, Nazev,Skupina, Skupina2, Jednotka, EAN, EANbal, Poznamka, Vyrobce,Hmotnost
...skladové karty (pouze za položky z dokladu)...
V takovémto případě by tyto údaje již nemusely být v sekci *DOKRD (musí tam zůstat KodZbozi, Mnoz, Cena, SazbaDPH). Údaj "Cena" je v tomto případě ceníková prodejní cena dodavatele (může se lišit od ceny v položce v dokladu).
Program nabízí obdobnou možnost importu dokladů z DBF formátu. Jména položek jsou analogická se jmény v textovém formátu CSV (pouze sekce *DOKRD) - program nevyžaduje sekci s hlavičkou dokladu (*DOKHL), stačí pokud DOKLAD, DATUM a IČO je v položkách dokladu (*DOKRD). V jednom DBF souboru může být uložen pouze jeden doklad

Upraven import dokladů z CSV nebo DBF: lze definovat vstupní převodní číselník, ve kterém lze určit, která položka ve vstupním souboru odpovídá jaké položce v databázi (př. OPE.Pocet=FMnozstvi).

Zpracovány jsou tyto položky:DOK.CISLODOKL, DOK.CISLOOBJ, DOK.DATODESLAN, DOK.CISLODL, DOK.POZNAMKA, OPE.CISLODOKL, OPE.DATUM, OPE.STAVPOL, OPE.XKOD,OPE.KOD, OPE.EAN, OPE.TYPKARTY, OPE.POCET, OPE.CENASDPH, OPE.CENA, OPE.PROCDPH, OPE.NAZEV, OPE.JEDNOTKA, OPE.SKUPINA, OPE.SKUPINA, OPE.ZARAZENI, OPE.BALENI, OPE.HMOTNOST, OPE.ODBERU, OPE.ZARUKA, OPE.VYROBCE, OPE.EANBALENI, OPE:CISLOSHODA, OPE.POZNAMKA a také obdobné položky s předponou KAR. Lze používat i výrazy (např. OPE.Kod=FSkp+FMater)


Kódy menu PrevodyImp

Technická poznámka - Kódy menu PrevodyImp
Kód menu Položka Poznámka
2,49 Import př.dokladů z &CSV/DBF  
1,49 Import &dod.dokladů z CSV/DBF  
4,9 &Import objednávek z DBF/EDI  
1,94 Import dokladů z &XML - dod.dokl. hromadný import dokladů z XML souborů pro dodací doklady
1,95 Hrom. import dokladů z XML - dod.dokl. hromadný import dokladů z XML souborů pro dodací doklady při automatizovaném zpracování
2,94 Import dokladů z XML - přij.dokl. hromadný import dokladů z XML souborů pro přijaté doklady
2,95 Hrom. import dokladů z XML - přij.dokl. hromadný import dokladů z XML souborů pro přijaté doklady při automatizovaném zpracování
  Objednávky PAS  
  Objednávky KOFOLA  
7,19 I&mport - aut.pokladní Funkce projde v určené složce soubory dle zadané masky (proměnná AutPokl,0 např. PRENOST*.CSV) a zkontroluje, zda mají správnou strukturu. Pokud ano, tak dohledá průvodku k rozvozu dle čísla určeného v importním souboru a zapíše do ní příjem hotovosti dle souboru. Při každém zpracování se vytváří (resp. doplňuje) LOG soubor, který obsahuje podrobnosti o zpracovávaných datech. Přístup k menu 8 zajistí minimum hlášení na obrazovku (hlášení pouze do LOG souboru). Při úspěšném zpracování je importní soubor přejmenován na *.BAK.
7,70 Import d&at - řidiči  



Technická poznámka - Proměnné
FiltrCSV, 1 určuje masku souborů včetně adresáře, která se použije při ručním importu souboru v menu
DirCSV, 1 (použije se, pokud není definována proměnná FiltrCSV) určuje adresář, který se použije při ručním importu souboru v menu (pokud není definováno, použije se přenosový adresář dle nastavení konfigurace); jako maska souborů se použije *.csv
ImpCSV+ Typ dokladu (pro příjmové doklady)
ImpCSV- Typ dokladu (pro dodací doklady)


Technická poznámka - položky pro import.
Program hledá níže uvedená datová pole v číselníku importních formátů (zde jsou uloženy výrazy ve formátu: jméno_datového_pole=výraz_používající_pole_z_importního_souboru; např. OPE.Pocet=PocetzDBF/100). Pokud datová pole nejsou v číselníku definována, tak se údaj hledá v importním DBF/CSV souboru. Minimální struktura vstupního souboru je například INTKOD, POCET, DOKLAD, PROCDPH (položky mohou být definovány ve vstupním souboru nebo v číselníku importních formátů; u položek DOKLAD a PROCDPH stačí když jsou naplněny pouze u prvního řádku vstupního souboru)
Doklad/Operace Datové pole Povinné Popis
Adresa DOK.EANMISTAD/EANMISTAD Ne Číslo odběrného místa z adresáře firem (použije se pro dohledání firmy)
Nastavení DOK.AUTOADRESA Ne Výraz, jehož nenulová hodnota určuje, že se může provádět automatické založení adresy do adresáře
Nastavení DOK.AUTODOKLAD Ne Výraz, jehož nenulová hodnota určuje, že se může vynechat dialog pro nastavení importu dokladu
Doklad DOK.ICO/ICO Ano IČO partnera (dohledává se v adresáři odběratelů)
Operace OPE.ICO/ICO Ano IČO partnera (dohledává se v adresáři odběratelů) - povinné pole, pokud není definováno IČO z hlavičky dokladů
Doklad DOK.CISLODOKL/DOKLAD/CISLODOKL Ne číslo dokladu (pokud není definováno, použije se číslo dokladu z operací)
Operace OPE.CISLODOKL/DOKLAD/CISLODOKL/POLE_10 Ano číslo dokladu (pokud není definováno číslo dokladu ve struktuře hlavičky dokladu, tak je toto pole povinné)
Doklad DOK.CISLOOBJ/EXPLIST/CISLOOBJ Ne číslo objednávky
Doklad DOK.DATODESLAN/DOK.DATUM/DATUM/DATUMUZP/DATUMVYST Ne Datum vystavení (pokud není definováno, použije se datum vystavení z operací)
Operace OPE.DATUM/DATUM/DATUMUZP/DATUMVYST/POLE_11 Ne Datum vystavení (pokud není definováno nebo neobsahuje datum, tak se použije dnešní datum)
Doklad DOK.CISLODL/DODLIST/DL Ne Číslo dodacího listu
Doklad DOK.POZNAMKA/POZNAMKA Ne Poznámka dokladu
Operace OPE.STAVPOL/OPE.INTKOD/INTKOD/CISLODOKL/STAVPOL Ne Interní kód zboží (kód může být upraven pomocí předčíslí a náhradního znaku a zarovnán na určený počet znaků dle nastavení číselníku dodavatelů)
Operace OPE.XKOD/XKOD Ne Interní kód zboží (využívá se pouze při importu z CSV pro dohledání karty ze struktury *DOKKARTY)
Operace OPE.KOD/KODZBOZI/KOD/CISLOMAT/MATERIAL/POLE_02 Ne Kód zboží dodavatele (dohledání zboží se provádí dle tohoto údaje ze skladové karty)
Operace OPE.EAN/EAN/CARKOD Ne EAN kód karty (dohledání zboží se provádí dle tohoto údaje ze skladové karty)
Operace OPE.TYPKARTY Ne Typ karty (číselná hodnota 0..účet, 1..zboží, 2..výrobek,...)
Operace OPE.POCETBAL/POCETBAL Ne Pomocí pole POCETBAL nebo výrazu OPE.POCETBAL lze definovat počet přijímaných/vydávaných balení z importovaného dokladu. Pokud imp. soubor neobsahuje pole pro počet kusů v jednom balení, tak se balení bere ze stávající skladové karty (pokud byla nalezena).
Operace OPE.POCET/MNOZ/POCET/MNOZSTVI/POCETMJ/POLE_04 Ano Počet MJ (povinné pole, pokud není definováno pole Počet balení)
Operace OPE.CENASDPH/CENAPR Ne Cena vč. DPH za MJ
Operace OPE.CENA/CENAMJ/POLE_06 Ne Cena bez DPH za MJ (použije se, pokud není definované předchozí pole)
Operace CENASDPH/CENADPH Ne Cena vč. DPH za MJ (použije se, pokud není definované předchozí pole)
Operace CENA Ano Cena bez DPH za MJ (povinné pole, pokud není definované předchozí pole)
Operace OPE.PROCDPH/PROCDPH/SAZBADPH/DPH/POLE_08 Ano Sazba DPH (údaj v procentech); může obsahovat znak %; pokud je hodnota nulová a program dohledá skladovou kartu, tak se automaticky nastaví DPH dle skladové karty
Operace OPE.JEDNOTKA/MJ/JEDNOTKA/POLE_05 Ne Měrná jednotka (pokud není definována, použije se ks)
Operace OPE.NAZEV/NAZEV/NAZEVZBOZI/POLE_03 Ne Název zboží
Operace OPE.DATUMVYR/OPE.DATSPOTR/DATSPOTR/DATUMVYR Ne Datum výroby (může být uvedeno i ve zkráceném formátu MMRR)
Operace OPE.SKUPINA Ne Skupina zboží (ze skladové karty)
Operace OPE.SKUPINA2 Ne Skupina zboží 2 (ze skladové karty)
Operace OPE.ZARAZENI Ne Zařazení zboží (ze skladové karty)
Operace OPE.BALENI Ne Počet MJ v balení
Operace OPE.HMOTNOST Ne Hmotnost zboží (ze skladové karty)
Operace OPE.TYPODBERU Ne Typ odběru (ze skladové karty)
Operace OPE.ZARUKA Ne Záruka ve dnech (ze skladové karty)
Operace OPE.VYROBCE Ne Výrobce (ze skladové karty)
Operace OPE.EANBALENI Ne EAN balení (ze skladové karty)
Operace OPE.CISLOSHODA Ne Číslo-shoda (ze skladové karty)
Operace OPE.POZNAMKA Ne Poznámka (ze skladové karty)
Operace OPE.XPOZNAMKA Ne Poznámka k operaci (u typu dokladu musí být povolena práce s poznámkami k operacím)
Operace OPE.ID Ne Indentifikace umístění operace (u typu dokladu musí být povolena práce s identifikací umístění)
Operace OPE.KARCENA1 Ne Cena 1 (ze skladové karty)

Pro import informací do hlavičky dokladu lze využít i jména polí ze struktury DOKLAD. Musí se k tomu využít alias DOK. následovaný jménem pole. V číselníku, kterým se definují importní formáty můžete použít např. následující výraz (Jmeno2 je údaj z DBF/CSV souboru): DOK.ExtJmeno2=Mid(DelLeft(Jmeno2),21,20)

Technická poznámka - Import hlavičky
Pro import údajů z hlavičky dokladu je nutné definovat výraz

DOK.JmenoPole pole z importovaného souboru nebo výraz. Jméno pole musí odpovídat jménu položky ze struktury DOKLAD . Import dále reaguje na několik speciálních výrazů:

DOK.AutoDoklad=1 pokud je detekována správná struktura souboru, tak se automaticky spustí import (bez úvodního dialogu)
DOK.AutoKarty=1 pokud jsou v pořádku rozpoznány všechny skladové karty, tak je přeskočen dialog pro odsouhlasení karet
DOK.AutoEvid=1 automatické spuštění zaevidovaní dokladu. Pokud při evidování vznikne problém, pak se objeví standardní editace nového dokladu s možností opravy a následného zaevidování.


Následující nastavení je použito pro import karet z CSV souborů (viz. příklad souboru *DOKKARTY)

Technická poznámka - položky pro import (lze využít pro definici v číselníku výrazů)
Struktura Datové pole Povinné Popis
Karta KAR.STAVPOL/STAVPOL/XKOD Ne Kód karty (použije se, pokud není definován interní kód u operací)
Karta KAR.KOD/KODZBOZI/KOD/CISLOMAT/MATERIAL Ne Kód dodavatele
Karta KAR.NAZEV/NAZEV/NAZEVZBOZI Ne Název karty
Karta KAR.EAN/EAN/CARKOD Ne Čárový kód
Karta KAR.TYPKARTY/TYPKARTY Ne Typ karty
Karta KAR.SKUPINA/PODSK/SKUPINA/SKUPINA1 Ne Skupina zboží
Karta KAR.SKUPINA2/UCET/SKUPINA2 Ne Skupina zboží 2
Karta KAR.ZARAZENI/KAR.CELNISAZEB/ZARAZENI/SKUPINA3 Ne Zařazení
Karta KAR.BALENI/KSBAL/VBAL/VBALENI Ne Počet MJ v balení
Karta KAR.HMOTNOST/HMOTNOST Ne Hmotnost
Karta KAR.ODBERU/TYPODBERU Ne Typ odběru
Karta KAR.ZARUKA/ZARUKA/ZARUKADNY Ne Záruka ve dnech
Karta KAR.POZNAMKA/POZNAMKA Ne Poznámka v kartě
Karta KAR.CISLOSHODA/CISLOSHODA/PROHLSHODA/SHODA Ne Číslo-shoda
Karta KAR.VYROBCE/VYROBCE Ne Výrobce
Karta KAR.JEDNOTKA/MJ/JEDNOTKA Ne Měrná jednotka
Technická poznámka - automaticky detekované importní formáty
Importní formát Označení Formát Popis
1010 Cézar DBF obsahuje pole P1 až P9
1011 Scala XML umožňuje import více dokladů do různých skladů
1012 SWS/Cybersoft XML umožňuje import více dokladů
1020 EDI ORDER TXT Inhouse objednávka v EDI formátu


Technická poznámka
Upravena detekce CSV souboru pro import do příjmového nebo dodacího dokladu. Pomocí proměnných CSVautoFmt,x lze detekovat vhodný formát vstupního CSV souboru. Hodnotu proměnné zadejte ve formátu:
seznam_polí=ÇísloFormátu_Oddelovače_KódováStránka.

Pokud ve vstupním souboru najde program v hlavičce CSV souboru všechna pole ze seznamu polí, tak použije pro nastavení dané číslo formátu (v číselníku 98 lze definovat výrazy pro daný formát).
Program prochází všechny proměnné (x = 0, 1, ...) až po proměnnou, která má prázdnou hodnotu nebo proměnná není definována.
Příklad: CISDOK/CENAJEDN=1050;4
- čili pokud se ve vstupním souboru vyskytuje pole CISDOK a současně i pole CENAJEDN, tak se použije formát 1050 s oddělovačem polí ; a kódovou stránkou 4 (tj. Windows 1250)

Technická poznámka
V importním formátu (číselník 98) popisujícím import jednotlivých polí operací a hlavičky dokladu z CSV/DBF souboru je možné definovat výraz DOK.AutoCeny (např. DOK.AutoCeny="0"), který určí zda se pro daný imp.formát mají načítat ceny ze vstupního souboru nebo se mají importovat automaticky dle určeného cenového pásma ze skladové karty (nenulová hodnota znamená automaticky).
V rámci importu CSV/DBF souborů do přijatých nebo dodacích dokladů je nově přímo podporován import EDI zpráv ve formátu DESADV. Současně je podporován přímý import souboru v obdobném formátu DESADV GECO.