Přenosy skladových karet

Z K.A.P.
Skočit na navigaciSkočit na vyhledávání

Menu: Karty/Přehled karet
Klávesa: Alt + F5

Pi stisku klávesy Alt + F5 se vyvolá následující okno:
KartyKopirovani.PNG
ve kterém si uživatel vybere činnost, kterou chce s kartami provádět:

Připravit pro přenos:

KartyKopirovaniDopln1.PNG

Při přenosu skladových karet lze určit, zda se mají do přenosových souborů ukládat individuální ceny (pokud ne, pak se přenosový soubor s individuálními cenami generuje prázdný) a pokud je program nakonfigurován pro práci s více čárovými kódy ve skladových kartách, pak lze také do přenosových souborů generovat soubor s čárovými kódy, které přísluší k vybraným kartám.

Exportovat indiv. ceny jen pro určená střediska - pokud je přepínač zapnutý, pak se exportují pouze ty individuální ceny, které buď mají v hlavičce individuální ceny vypnuté omezení na určená střediska nebo alespoň jedno středisko (písmeno) v seznamu vyhovuje seznamu středisek určených pro export.


Poznámka
V exportu skladových karet (Alt+F5 v přehledu skladových karet) lze exportovat i poznámky ke skladovým kartám (ukládané v MEMO.BTR). Je možné určit, které druhy poznámek se mají přenášet (poznámky 1, 2, 3 nebo obrázky ke kartám). Při přenosu karet se spolu s poznámkou karty přenášejí také příznaky. Exportovaná data lze také komprimovat do přenosového souboru. Při exportu obrázku ke kartám se exportují jen odkazy na soubory s obrázky (nikoli samotné obrázky)
Při exportu dat pro notebooky program exportuje pro každou skladovou kartu nákupní operace podle jednotlivých datumů spotřeby. Informace o datech spotřeby je pak vidět v přehledu nákupních operací dané skladové karty nebo např. v nabídce Info o zboží. Nastavení exportu je možné ovlivnit v dialogu pro nastavení přenosů.


Technická poznámka
Do souboru NTB_MEM se exportují také poznámky a obrázky ke skladovým kartám. Pomocí proměnné NtbExpDat,12 lze ovlivnit,které informace se mají exportovat:

+1 - poznámky 1
+2 - poznámky 2
+4 - poznámky 3
+8 - obrázky ke kartám
+16 - alternativní karty
Podobně pomocí proměnné NtbImpObj,12 lze nastavit import záznamů ke kartám v rámci aktualizace dat po přenosu na notebook.

Pomocí proměnné KarIdStred,0 lze určit interní "domácí" číslo střediska pro dané středisko. Hodnota musí být z rozsahu 0 až 255 a musí být odpovídat aktuálnímu středisku z číselníku středisek pro karty. Při přenosu skladových karet se pak provádí import karet jen pro střediska, která mají v přenosovém souboru dané středisko aktuální (pokud proměnná není určená nebo má zápornou hodnotu, tak se toto omezení neuplatňuje).

Načíst ze souboru:

KartyKopirovaniNact.PNG

KartyKopirovaniNact Str2.PNG

Pokud je v importu skladových karet (Přehled karet/Alt+F5/Načíst ze souboru) povolen import karet pouze z určeného střediska, tak se toto omezení uplatní také na individuální ceny, které mají v hlavičce omezen přenos pouze na určená střediska.

Poznámka
Při importu skladových karet je možné v kartách pomocí klávesy Backspace přepnout celou sadu přepínačů pod volbou Opravit existující karty.
V importu skladových karet byly osamostatněny přepínače pro položky Minimum, Optimum, Maximum, Hmotnost, Záruka, Objem, Poznámka, Příznaky, Na paletě, Ve vrstvě, Obj.množství, Účt.předpis a Sp.cena (resp. doh.NC2/Sp.rabat). Tyto položky mají nyní samostatný přepínač, který povoluje import. (viz. předchozí obrázek)
Při importu čárových kódů (se zapnutým přepínačem Importovat čárové kódy ze souboru) program postupuje takto:

Postupně se prochází záznamy z přenosového souboru čárových kódů a čárový kód se zkusí dohledat v aktuální tabulce čárových kódů. Pokud není nalezen a současně je nalezena odpovídající skladová karta ze záznamu čárového kódu, tak se záznam z přenosového souboru přidá do aktuální tabulky čárových kódů (přidá se ke kartě). Pokud je záznam čárového kódu nalezen v aktuální databází, tak se aktualizace provádí jen pokud souhlasí kód zboží v přenosové i aktuální tabulce čárových kódů (může se tím změnit např. zda jde o čárový kód k balení nebo k MJ) a nebo se provádí pokud je v aktuální databázi nalezena i karta, na kterou se odkazuje záznam v přenosovém souboru (dojde tím k přesunutí čárového kódu na tuto jinou kartu).

Pokud přenosový soubor neobsahuje samostatný soubor s čárovými kódy (byl vygenerován bez přenosu čárových kódů), pak je přepínač Importovat čárové kódy do souboru automaticky vypnut.
Import ovlivňují také přepínače skladové karty
Při importu se používají názvy importovaných polí, které mohou být ovlivněny názvy určenými ve strukturách souborů (musí být zapnutý příznak Jméno pole do dialogů).
Pomocí přenosů skladových karet (Alt+F5 v přehledu karet) lze aktualizovat také položku Typ karty. Při změně karty se aktualizují také informace ve všech operacích skladové karty. Přenos typu karet lze zapnout v dialogu pro import na druhé podstránce, kterou lze vyvolat pomocí PageDn.
Změna způsobu aktualizace čárových kódů při přenosu skladových karet (Alt+F5). Při přenosu karet nyní může dojít k přesunu čárového kódu k jiné skladové kartě, pokud je v přenosovém souboru čárový kód připojen k jiné kartě nebo je připojen k nově importované kartě. Navíc na druhé podstránce importu karet nová volba pro určení režimu importu karet:
  • aktualizace nebo doplnění - pokud je čárový kód z přenosového souboru nalezen v hlavní databázi (u libovolné karty), tak se aktualizuje dle přenosového souboru a pokud ne, tak se doplní
  • vymazání dle karet+doplnění - ze všech karet, které jsou v přenosovém souboru (i když třeba nebyly aktuálně importovány) jsou odstraněny všechny čárové kódy, které jsou navíc oproti přenosovému souboru a stejné čárové kódy jsou aktualizovány dle přenosového souboru
  • doplnění bez kontroly karet - tomto režimu jsou doplněny záznamy čárových kódů i v případě, že neexistuje odpovídající skladová karta v aktuální databázi (vhodné v případě, pokud jsou skladové karty přenášeny samostatně)
Nový režim aktualizace čárových kódů při přenosu skladových karet doplnění bez kontroly karet. V tomto režimu jsou doplněny záznamy čárových kódů i v případě, že neexistuje odpovídající skladová karta v aktuální databázi (vhodné v případě, pokud jsou skladové karty přenášeny samostatně). Nastavuje se v dialogu pro načtení skladových karet po stisku klávesy PageUp.
Přepínač Režim výpočtu JC určuje, zda se má v rámci importu karet přenášet také nastavení režimu výpočtu jednotkové ceny


Klávesa Popis
F2:Start spustí načtení karet z přenosového souboru
F5:Ukaž zobrazí karty v přenosovém souboru, které se mají načíst
F6:Vybrat soubor umožní vybrat jednotlivé soubory, pro karty, zásoby a individuální ceny a čárové kódy (toto je také možné na kliknutí tlačítka za zadávacím polem)
F8:Ulož nast. uloží aktuální nastavení buď pouze pro právě přihlášeného uživatele nebo pro všechny uživatele - taktéž je možno obnovit původní nastavení
F10:Kompr. soubor je možno vybrat komprimovaný soubor (*.KRX, který obsahuje všechny výše zmíněné soubory)
PageDown, PageUp druhá strana s přepínači


Technická poznámka
V importu karet ze souboru (Alt + F5 v kartách) je možnost pomocí proměnné KarImport,38 ovlivnit, zda je povolen import karet určených pro jedno středisko. Proměnná může mít následující hodnoty:
0 import karet bez kontroly údaje střediska
1 import karet s možností volby, zda se budou nebo nebudou vybírat karty určené dle čísla střediska
2 podobně jako bod 1, uživatele mají volbu a středisko určené napevno (týká se pouze přidávání nových karet)
3 jako bod 2 (týká se přidávání i aktualizace karet)
Proměnná KarImport,38 může být závislá na uživateli a aktuálním skladu
Pomocí proměnné KarImportN,0 s hodnotou 0 lze vypnout aktualizaci data založení skladové karty v rámci přenosu skladových karet (Alt+F5 v kartách)
Pomocí proměnné KarPrvNove s hodnotou 1 lze povolit, aby i uživatelé, kteří mají vypnuté přístupové právo 51 Právo zakládat nové skladové karty, mohli založit skladovou kartu v rámci přenosu skladových karet pomocí přenosových souborů skladových karet (např. KRX soubor)
Při přenosu skladových karet je možnost exportovat i importovat hlavičky individuálních cen. Přenos hlaviček je proveden pouze pokud jsou importovány také samostatné individuální ceny. Standardní jméno přenosového souboru hlavicek je CISSSL.BTR. Soubor může být také přenášen v rámci komprimovaného souboru KARTY.KRX spolu s ostatními přenosovými soubory a obsah souboru před importem je možné prohlížet pomocí F5 na jménu souboru.
Import skladových karet z přenosového souboru používá nyní nový transakční režim, který by měl méně blokovat ostatní uživatele při rozsáhlejších přenosech karet. Pomocí proměnné KarImport,2 lze tento transkační režim změnit

0: uzamčení SKLADINI (po dobu importu karet není možno evidovat doklady)
1..transakce po jednotlivých kartách-výchozí
2: transakce za celý přenos
3: bez transakce

Úprava přenosu informací o čárových kódech v rámci komprimovaného přenosového souboru (KARTY.KRX). Pokud přenosový soubor obsahuje samostatný soubor s čárovými kódy, tak se tento soubor při importu rozbalí a použije (pokud i na straně příjemce existuje SKLADEAN.BTR). Pokud komprimovaný soubor neobsahuje soubor s čárovými kódy, pak je přenos čárových kódů automaticky vypnut.


Technická poznámka
V nabídce pro import skladových karet z přenosového souboru je možnost zakázat změnu vybraných hlavních přepínačů. Pomocí proměnné KarImport, 0 lze určit povolené přepínače (hodnotu zadejte jako součet následujících hodnot):
Hodnota Popis
+1 načíst individuální ceny ze souboru
+2 soubor hlaviček individuálních cen
+4 přidat nové karty
+8 opravit existující karty
+16 importovat čárové kódy
+32 režim importu čárových karet
+64 importovat poznámky
+256 poznámky 1
+512 poznámky 2
+1024 poznámky 3
+2048 obrázky
+4096 šablony
+8192 alternativní karty

Porovnání souboru:

KartyKopirovaniPorovnani.PNG


Přenos karet do XML

Kód menu : 3,96

Program si v klasickém open dialogu vyžádá jméno XML souboru, který pak zkontroluje a načte z něj požadované změny v kartách nebo založí nové karty. U nových karet nechte pole Kod prázdné a do pole KodVzor určete jméno karty, která se má použít jako vzor. Při zakládání karet se automaticky nuluje EAN a EAN balení (můžete ale v XML poslat novou hodnotu). Před načtením údajů XML se také provádí načtení výchozích hodnot dle číselníku 177. Pokud kód určíte přímo v poli Kod, tak se pro novou kartu použije přímo vámi určený kód. Pokud karta s kódem existuje, tak se provádí jen aktualizace.

Akceptována je také aktualizace záznamů souvisejících s kartou v MEMO. Např. MEMOC2 aktualizuje běžné parametry karty v MEMO s číslem řádku 2. Pokud je údaj v MEMO ukládán ve více řádcích, tak je potřeba poslat každý údaj jako samostatné pole v DATAPACKET. Struktury v seznamu systémových struktur ale nemusíte mít založené (vše se vyčte ze jména pole).

Aplikace pak zobrazuje protokol o změnách v jednotlivých kartách, resp. pro každý váš záznam s požadavkem na změnu zobrazí jeden řádek v protokolu s informací, jak kartu zpracoval a v případě chyby vypíše důvod chyby. Pokud je při zpracování import u hlášena databázová chyba, tak je přenos přerušen. Pokud je požadováno zpracování v globální transakci, tak je celý přenos zrušen a vrácen do původního stavu (u nedatabázových chyb se pokračuje – např. pokud karta podle kódu nebyla nalezena). Pokud není požadováno globální zpracování transakcí, tak je v případě databázové chyby přenos také přerušen, ale dosud zapsané změny zůstanou uložené v databázi (a z přehledu vrácených záznamů se dozvíte, co se změnilo).

V protokolu je vidět stavový kód záznamu (StatusCode):

Hodnota Popis
0 žádné změny nebyly potřeba
1 zaevidována nová karta (kód nové karty by měl být v poli kód)
2 karta aktualizována
3 chyba při zpracování záznamu, popis je v poli StatusTex

Stejný protokol vrací i skladweb (jen ve formě datové XML struktury DATAPACKET). Vrací se zde __ID (nebo GUID pokud ve vstupním souboru použijete namísto __ID toto pole), Kod (nebo ProductCode pokud ve vstupním souboru použijete namísto Kod toto pole), StatusCode (výše popsané číslo), StatusText (jen chyby nebo varování).

Struktura Datapacket je v XML „zabalena“ ještě do <MaximTransferResponse>, který obsahuje:

  • <Completed>1 .. pokud je úloha zpracována kompletně, 0 .. když došlo k přerušení zpracování
  • <ResultMessage> ,, text chyby nebo varování (prázdné, pokud je vše OK)
  • <RecordsInserted> <RecordsUpdated> <RecordsError> počet vložených, aktualizovaných či chybných záznamů. Záznamy bez změny nejsou započítané.
  • <MasterTab> .. obsahuje strukturu DATAPACKET s protokolem zpracování jednotlivých záznamů ze vstupního požadavku.

Při komunikaci přes Skeleton je celé toto XML součástí odpovědi ve standardní struktuře Skeletonu (uzel pro komunikaci najdete pod UpdateDataset). Pokud dojde k závažné chybě (např. chybná struktura vstupního datapacketu), tak je namísto běžné odpovědi vrácena chyba ve struktuře SkeletonError, která v podstatě obsahuje jen popis chyby.


Struktura XML se malinko změnila. V podstatě jsme ale jen atributy TransferData, TransferMode, TransferId, Version, Created a CreatedBy převedli na samostatné tagy (viz příklad v příloze).

  • Pole TransferData musí obsahovat SKLADKAR.
  • Pole TransferMode může obsahovat:
  1. Insert..pokud je povoleno zakládání nových karet
  2. Update..povoluje aktualizaci karet
  3. Transaction..povoluje globální transakci (doporučujeme jen pokud se aktualizuje menší počet karet, např. stovky)
  4. GUID=pole.. určuje jméno pole s identifikátorem záznamu (stejné pole se pak dává i do odpovědi) - výchozí je __ID nebo GUID
  5. PRODUCTCODE=pole..určuje jméno pole pro kód zboží (stejné pole se pak dává i do odpovědi) – výchozí je Kod nebo ProductCode
  6. TEMPLATEPRODUCTCODE=pole..určuje jméno pole pro kód vzorové karty pro nové zboží – výchozí je KodVzor nebo TemplateProductCode

Pole TransferId se zapisuje do logu při změně karet

Ostatní pole jsou spíše informativní.


Příklad vstupního souboru, který Sklad6 umí načíst najdete v příloze (KartyDATAPACKET.xml). Při komunikaci přes Skeleton je stejné XML (bez <?xml… ) dát jako součást zprávy UpdateDataset a výsledek pak vyčtete z odpovědi, která přijde – to co je v KartyResponse2.XML je tedy uloženo jako jeden z tagů ve standardní odpovědi Skeletonu.


Nová verze také už umožňuje definování vazby mezi MEMO parametry karty a novými kategoriemi karet. Nastavení se provádí pomocí Alt+F6/Nastavení parametrů karet pro kategorii menu pro definici stromu kategorií. V další verzi by pak mělo být dořešeno zobrazování parametrů karet na základě kategorií (pokud bude pro daný parametr definována alespoň jedna kategorie, tak se parametr bude zobrazovat jen v určených kategoriích).