Export do CRM: Porovnání verzí
m (Zamyká „Export do CRM“ [edit=sysop:move=sysop]) |
|||
(Není zobrazeno 52 mezilehlých verzí od stejného uživatele.) | |||
Řádek 1: | Řádek 1: | ||
− | =Definice ve | + | =Definice ve Skeletonu= |
− | == | + | == Tabulky bez závislostí (nezávislé)== |
− | === | + | ===Databáze (pouze pro potřeby exportu do CRM)=== |
[[Soubor:CRM_Skeleton1.PNG]] | [[Soubor:CRM_Skeleton1.PNG]] | ||
Řádek 24: | Řádek 24: | ||
|} | |} | ||
<br/> | <br/> | ||
− | + | ||
+ | ===Tabulky=== | ||
[[Soubor:CRM_SkeletonTabulky.png]] | [[Soubor:CRM_SkeletonTabulky.png]] | ||
+ | |||
+ | Obsahuje parametry pro jednotlivé tabulky (určeno pro budoucí použití) a | ||
+ | pole '''CompanySyncId''', které obsahuje číslo střediska (je možno použít univerzální hodnotu ze skriptu: '''_AktualniSklad_'''. Ta obsahuje číslo střediska (skladu) pod kterým běží skript. | ||
+ | |||
+ | |||
+ | ===Úlohy=== | ||
+ | [[Soubor:CRM_SkeletonUlohy.png]] | ||
+ | |||
+ | Tato tabulka obsahuje seznam úloh a je závislá na skriptu. Není třeba ji měnit - pouze pokud nová verze skriptu obsahuje nové úlohy (typy exportu). Popis stávajících hodnoty viz parametr '''GenMode''' - tento parametr je ale určen pouze pro jednorázové spuštění úlohy. Při plánovaném spuštění úlohy (parametry '''TaskGUID''', '''TaskGroupGUID''' a plánovaný parametr TaskName) je vždy přepsán hodnotou z této tabulky ! | ||
+ | |||
+ | |||
+ | ===Skupiny úloh=== | ||
+ | [[Soubor:CRM_SkeletonSkupiny.png]] | ||
+ | |||
+ | Obsahuje ID skupiny úloh a popis skupiny úloh. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==Tabulky se závislostí== | ||
+ | (určuje pořadí zadávání – viz postup zadávání) | ||
+ | |||
+ | ===Plánování úloh=== | ||
+ | [[Soubor:CRM_SkeletonTabulkyPlanovani.png]] | ||
+ | |||
+ | Popis tabulky – viz Postup zadávání | ||
+ | |||
+ | |||
+ | ===Omezení spouštění=== | ||
+ | [[Soubor:CRM_SkeletonTabulkySpousteni.png]] | ||
+ | |||
+ | Popis – viz Postup zadávání | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==Postup zadávání== | ||
+ | #Jméno skupiny a její popis – tabulka '''Skupiny úloh''' | ||
+ | #Vlastní úloha – tabulka '''Plánování úloh''':<br/>Zde zadáváme skupinu úloh (výběr ze skupin), pořadí ve skupině, vlastní úlohu (kterou chceme spustit – výběr ze seznamu úloh), popis úlohy (stejná úloha může být spuštěna s rozdílnými parametry), Databázi (výběr ze seznamu databází), frekvenci (zadaná jako část dne, tj. 1 = jednou denně, 0,5 = 2x za den. Hodnotu spočteme výrazem 1/ „Počet Opakování“. Pro zjednodušení: 0,00069444444 * počet minut nebo 0,0416666666 * počet hodin), maximální dobu běhu (určeno pro budoucí použití. V tuto chvíli lze nastavit parametrem RunningTime – viz. níže), povolení úlohy (hodnota 0-1, 0= zakázaná) a parametry úlohy (jsou závislé na skriptu). | ||
+ | #Omezení úlohy – tabulka '''Omezení spouštění''':<br/>Zde zadáváme úlohu kterou chceme omezit (výběr ze seznamu), pořadí omezení, popis omezení, typ omezení (0 – časové údaje, 1 – nespustit pokud běží jiná úloha – pole související úloha, 2 – omezení pomocí funkce (určeno pro budoucí použití) | ||
+ | |||
+ | ---- | ||
+ | |||
---- | ---- | ||
=Parametry skriptu= | =Parametry skriptu= | ||
+ | |||
+ | '''Parametry jsou ve formátu JmenoParametru:Hodnota'''. Obsahuje-li hodnota mezeru(y), pak musí být v uvozovkách. Pro logické (Boolean) parametry je možno použít:A,N,Y,N,T,F,0,1 popř. dlouhé varianty Ano, Ne, Yes, No, True, False.<br/> | ||
+ | |||
+ | '''GenMode''': dovoluje nastavit rozšířené parametry pro úlohu. Pro hlavní úlohy jsou přednastaveny předdefinované konstanty níže. Lze použít konstanty gmXXX nebo hexadecimální hodnotu (např. $1001)<br/> | ||
+ | |||
+ | ==Předdefinované konstanty pro hlavní části exportu== | ||
+ | {| border=1 style="background:#ddddff; color:black" class = "wikitable" | ||
+ | |- | ||
+ | |width =300|'''Konstanta'''||width = 150|'''Hodnota''' | ||
+ | |- | ||
+ | |gmUpdate||1 (použijte vždy pro update SQL tabulek) | ||
+ | |- | ||
+ | |gmCiselniky||$10 | ||
+ | |- | ||
+ | |gmSazbyDPH|$20 | ||
+ | |- | ||
+ | |gmTypyDokladu||$40 | ||
+ | |- | ||
+ | |gmGlobalniTagy||$80 | ||
+ | |- | ||
+ | |gmZalistovaneZbozi||$100 | ||
+ | |- | ||
+ | |gmKarty||$1000 | ||
+ | |- | ||
+ | |gmOdberatele||$2000 | ||
+ | |- | ||
+ | |gmZasoby||$4000 | ||
+ | |- | ||
+ | |gmZasobyOstatni||$8000 | ||
+ | |- | ||
+ | |gmIndCeny||$10000 | ||
+ | |} | ||
---- | ---- | ||
+ | |||
+ | ==Předdefinované konstanty pro hlavní úlohy== | ||
+ | {| border=1 style="background:#ddddff; color:black" class = "wikitable" | ||
+ | |- | ||
+ | |'''Konstanta'''||'''Hodnota''' | ||
+ | |- | ||
+ | |gmCiselnikyVse||gmUpdate, gmCiselniky, gmSazbyDPH, gmGlobalniTagy, | ||
+ | gmTypyDokladu | ||
+ | |- | ||
+ | |gmKartyVse||gmUpdate, gmSazbyDPH, gmGlobalniTagy, gmKarty | ||
+ | |- | ||
+ | |gmOdberateleVse||gmUpdate, gmSazbyDPH, gmGlobalniTagy, | ||
+ | gmTypyDokladu, gmOdberatele, gmZalistovaneZbozi | ||
+ | |- | ||
+ | |gmOdberateleBZL||gmUpdate, gmSazbyDPH, gmGlobalniTagy, | ||
+ | gmTypyDokladu, gmOdberatele (bez zalistovaného zboží) | ||
+ | |- | ||
+ | |gmZasobyVse||gmUpdate, gmSazbyDPH, gmZasoby | ||
+ | |- | ||
+ | |gmZasobyOstatniVs||gmUpdate, gmSazbyDPH, gmZasobyOstatni | ||
+ | |- | ||
+ | |gmIndCenyVse||gmUpdate, gmIndCeny | ||
+ | |} | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==Logování== | ||
+ | ===LogLevel=== | ||
+ | úroveň logování binární hodnota 0-15. | ||
+ | |||
+ | <u>'''Význam hodnot:'''</u> | ||
+ | |||
+ | {| border=1 style="background:#ddddff; color:black" class = "wikitable" | ||
+ | |- | ||
+ | |'''Hodnota'''||'''Popis''' | ||
+ | |- | ||
+ | |0||úplné potlačení chybových hlášení (jen ve výjimečných případech – není doporučeno) | ||
+ | |- | ||
+ | |1||kritické chyby | ||
+ | |- | ||
+ | |2||vyšší úroveň logování (další údaje se logují podle jednotlivých míst logování) | ||
+ | |- | ||
+ | |4||vyšší úroveň logování (další údaje se logují podle jednotlivých míst logování) | ||
+ | |} | ||
+ | |||
+ | ===Místa logování=== | ||
+ | |||
+ | {| border=1 style="background:#ddddff; color:black" class = "wikitable" | ||
+ | |- | ||
+ | |'''ProductOK''' (test platnosti skladové karty)||width = 150|0||width = 150|$F (0 - 3) | ||
+ | |- | ||
+ | |'''UserAllowed'''(test platnosti odběratele)||$10||$F0 (4 - 7) | ||
+ | |- | ||
+ | |'''GetUser'''(export odběratelů)||$100||$F00 (8 - 11) | ||
+ | |- | ||
+ | |'''GetProduct'''(export karet)||$1000||$F000 (12 - 15) | ||
+ | |- | ||
+ | |'''práce s DB'''(comapre, insert, update, delete)||$10000||$F0000 (16 - 19) | ||
+ | |- | ||
+ | |'''práce s ADO'''(SQL prepare, exec)||$100000||$F00000 (20 - 23) | ||
+ | |- | ||
+ | |'''plánovač'''||$1000000||$F000000 (24 - 31) | ||
+ | |} | ||
+ | |||
+ | <br/> | ||
+ | {| border=1 class = "wikitable" style="text-align:left" | ||
+ | |bgcolor="#FFE68C"| '''Poznámka''' | ||
+ | |- | ||
+ | |Vyšší úrovně logování (2 a 4) v místech ProductOK a UserAllowed a plánovač vytvářejí obrovské logy – doporučuje se zapínat jen dočasně !Defaultní hodnota: $1111111 – všechny kritické chyby | ||
+ | |} | ||
+ | |||
+ | ===Ident=== | ||
+ | Rozlišující text do log souboru. Odlišuje stejné typy úloh v logu. Vhodné např. při částečných (rozdělených) exportech např. zalistovaného zboží. | ||
+ | |||
+ | {| border=1 style="background:#ddddff; color:black" class = "wikitable" | ||
+ | |- | ||
+ | |'''Text'''||'''Popis'''||'''Poznámka''' | ||
+ | |- | ||
+ | |'''DataComputerName'''||Jméno serveru s „datovou“ databází (Maxim.CRM.Data)|| | ||
+ | |- | ||
+ | |'''DataDBName'''||Jméno „datové“ databáze (Maxim.CRM.Data)|| | ||
+ | |- | ||
+ | |'''DataUserName'''||Jméno datového uživatele|| | ||
+ | |- | ||
+ | |'''DataPassword'''||Heslo datového uživatele|| | ||
+ | |- | ||
+ | |'''SyncComputerName'''|| Jméno serveru se „synchronizační“ databází (Maxim.SyncGen)|| | ||
+ | |- | ||
+ | |'''SyncDBName'''||Jméno synchronizační databáze (Maxim.SyncGen)|| | ||
+ | |- | ||
+ | |'''SyncUserName'''||Jméno synchronizačního uživatele|| | ||
+ | |- | ||
+ | |'''SyncPassword'''||Heslo synchronizačního uživatele|| | ||
+ | |- | ||
+ | |'''DateFrom'''||Datum, od kdy se mají exportovat „časová“data (individuální ceny, letáky). <br/>Formát: dd/mm/yy|[+]Offset (datum nebo offset). Offset je v počtu dní od aktuálního data. Lze tak reexportovat data např. za určený den(viz. parametr '''DayCount''') || | ||
+ | |- | ||
+ | |'''DayCount'''||Počet dní pro výpočet „časových“ dat|| | ||
+ | |- | ||
+ | |'''UserWhiteListAdd'''||Zapíná částečný výpočet časových dat – parametry || | ||
+ | |- | ||
+ | |'''DateFrom'''|| ||připravuje se | ||
+ | |- | ||
+ | |'''DayCount'''|| || připravuje se. | ||
+ | |- | ||
+ | |'''BalanceFromStore'''||Nastavte na true (Boolean hodnota:Y,N,T,F) pro výpočet salda ze skladu (false pro výpočet z účta)||připravuje se | ||
+ | |- | ||
+ | |'''DefDateTaxSupplay'''||Nastavte na true (Boolean hodnota:Y,N,T,F) má-li se splatnost počítat od datumu UZP, jinak se bude počítat od data vystavení dokladu – výchozí hodnota.|| | ||
+ | |- | ||
+ | |'''Packages'''||Nastavte na true (Boolean hodnota:Y,N,T,F) chcete-li exportovat i vratné obaly, které nejsou u žádného zboží. Default: false|| | ||
+ | |- | ||
+ | |'''TaskGUID'''||uveďte GUID úlohy pro plánované spuštění. Lze tak spustit zvlášť i jednotlivou úlohu ze skupiny||rowspan = 3|Není-li uveden žádný z parametrů TaskGUID, TaskGroupGUID, TaskName, bude proveden jednorázový export dle parametru GenMode | ||
+ | |- | ||
+ | |'''TaskGroupGUID'''||uveďte GUID skupiny pro plánované spuštění | ||
+ | |- | ||
+ | |'''TaskName'''||uveďte jméno skupiny nebo úlohy pro plánované spuštění–připravuje se | ||
+ | |- | ||
+ | |'''RunTask'''||interní použití|| | ||
+ | |- | ||
+ | |'''RunningTime'''||Maximální doba běhu úlohy. Default: 60 minut. Pokud úloha ještě běží, bude ukončena po svém dokončení (nebude již dále plánována)|| | ||
+ | |- | ||
+ | |'''TaskErrorTimeOut'''||Pokud již není žádná vhodná úloha podle plánu ke spuštění, pak bude další test proveden až po této době (v sekundách). Default: 300.||Není vhodné nastavovat na dlouhý interval, protože se tím oddálí načtení případné aktualizace plánování z tabulek Max.SyncGen databáze. I v době čekání sklad nezatěžuje processor (je v sleep módu) | ||
+ | |- | ||
+ | |'''ExitAfterGroup'''||ukončení při úspěšném dokončení všech úloh ve skupině. Skupina již nebude znovu naplánována.|| | ||
+ | |- | ||
+ | |'''StartNow'''||nastavte true, chcete-li úlohu nebo skupinu spustit ihned (Boolean value:Y,N,T,F), jinak bude spuštěna dle vypočteného plánu.|| | ||
+ | |} | ||
+ | ---- | ||
+ | ---- | ||
+ | |||
=Batch soubory= | =Batch soubory= | ||
+ | Ovládání exportu je nyní ve dvou adresářích ('''C:\CRM\Export a Sklad6\ExportCRM''')a jako uživatelský adresář je použit '''Sklad6\UZIVCRM'''. | ||
+ | |||
+ | ==Adresář C:\CRM\Export== | ||
+ | Je na lokálním disku a batch soubory jsou určeny pro plánovač úloh a řeší | ||
+ | mapování síťového disku. Parametry pro připojení síťového disku jsou v souboru '''cesty.bat'''. Hlavní jsou dávky: | ||
+ | |||
+ | ===Spust.bat=== | ||
+ | (společný bod pro spouštění jednotlivých úloh z plánovače – dávky | ||
+ | '''Ciselniky.bat, HlavniData.bat, IndCeny.bat, IndCenyOZ.bat, Karty.bat, | ||
+ | Odberatele.bat, OstZasoby.bat, Zasoby.bat'''). | ||
+ | <br/> | ||
+ | {| border=1 class = "wikitable" style="text-align:left" | ||
+ | |bgcolor="#FFE68C"| '''Poznámka''' | ||
+ | |- | ||
+ | |Dávky '''Karty.bat, Ciselniky.bat a Odberatele.bat''' se v běžném režimu nepoužívají, protože se spouští dávka '''HlavniData.bat''', která spouští skupinu Hlavní data a tato obsahu všechny zmíněné úlohy. | ||
+ | |} | ||
+ | |||
+ | ===Stop.bat a VymazStop.bat=== | ||
+ | slouží k vytvoření a vymazání souboru '''Sklad6\ExportDoCRM.Stop''', který slouží pro korektní '''nouzové ukončení''' všech exportů. Existence tohoto souboru je testována v sleep módu, tedy v okamžiku kdy skončí aktuální úloha a je spouštěna buď další úloha podle plánu nebo se čeká na naplánovanou úlohu. Jedná se tedy o zastavení všech dalších plánů (současně běžící úlohy neskončí ihned, ale „doběhnou“). | ||
+ | <br/> | ||
+ | {| border=1 class = "wikitable" style="text-align:left" | ||
+ | |bgcolor="#FFE68C"| '''Poznámky''' | ||
+ | |- | ||
+ | |Obsah souboru Sklad6\ExportDoCRM.Stop je zalogován jako důvod ukončení exportů. | ||
+ | |- | ||
+ | |Pokud export skončí a provede se jen jednou, pravděpodobně že existuje tento soubor. | ||
+ | |} | ||
+ | ---- | ||
+ | ==Adresář: Sklad6\ExportCRM== | ||
+ | obsahuje jednotlivé dávky pro spouštění samostatných úloh a pomocné dávky: | ||
+ | |||
+ | {| border=1 style="background:#ddddff; color:black" class = "wikitable" | ||
+ | |- | ||
+ | |'''Dávka'''||'''Popis''' | ||
+ | |- | ||
+ | |'''ExCRMDate.bat'''||vrací v proměnných CRMDate a CRMTime aktuální datum a čas ve formátu použitelném pro jména souborů. | ||
+ | |- | ||
+ | |'''ExCRMLogVersion.bat'''||přejmenovává logy – rozšíření o „timestamp“ | ||
+ | |- | ||
+ | |'''ExCRMRunningTime.bat'''||nastavuje do proměnné RunningTime hodnotu pro tento parametr (ve vteřinách) do půlnoci. Měl by zaručit (stejně jako dávky Stop.bat a VymazStop.bat, že naplánované úlohy skončí do půl noci (pokud právě neběží). | ||
+ | |- | ||
+ | |'''ExCRMVersion.bat'''||určuje verzi (jméno) spouštěného skriptu. | ||
+ | |- | ||
+ | |'''ExportDoCRMCiselniky.bat'''||samostatný export číselníků. V normálním režimu se exportují číselníky v rámci hlavních dat. | ||
+ | |- | ||
+ | |'''ExportDoCRMCiselnikyEdit.bat'''||pomocná ladící dávka | ||
+ | |- | ||
+ | |'''ExportDoCRMHlavniData.bat'''||export hlavních dat (Číselníky, karty, odběratelé) | ||
+ | |- | ||
+ | |'''ExportDoCRMHlavniDataEdit.bat'''||pomocná ladící dávka | ||
+ | |- | ||
+ | |'''ExportDoCRMIndCeny.bat'''||export individuálních cen | ||
+ | |- | ||
+ | |'''ExportDoCRMIndCenyEdit.bat'''||pomocná ladící dávka | ||
+ | |- | ||
+ | |'''ExportDoCRMIndCenyOZ.bat'''||Export individuálních cen obchodních zástupců | ||
+ | |- | ||
+ | |'''ExportDoCRMIndCenyOZEdit.bat'''||pomocná ladící dávka | ||
+ | |- | ||
+ | |'''ExportDoCRMKarty.bat'''||samostatný export skladových karet. V normální režimu se karty exportují v rámci hlavních dat. | ||
+ | |- | ||
+ | |'''ExportDoCRMKartyEdit.bat'''||pomocná ladící dávka | ||
+ | |- | ||
+ | |'''ExportDoCRMOdberatele.bat'''||samostatný export odběratelů včetně zalistovaného zboží. V normálním režimu se odběratelé exportují v rámci hlavních dat. | ||
+ | |- | ||
+ | |'''ExportDoCRMOdberateleBZZ.bat'''||samostatný export odběratelů bez zalistovaného zboží. V normálním režimu se odběratelé včetně zalistovaného zboží exportují v rámci hlavních dat. Dávku je možno použít pro zrychlené přeexportování odběratelů bez zalistovaného zboží. | ||
+ | |- | ||
+ | |'''ExportDoCRMOdberateleBZZEdit.bat'''||pomocná „ladící“ dávka | ||
+ | |- | ||
+ | |'''ExportDoCRMOdberateleEdit.bat'''||pomocná „ladící“ dávka | ||
+ | |- | ||
+ | |'''ExportDoCRMOstZasoby.bat'''||export zásob ze souboru operací (SkladOPE.BTR). | ||
+ | |- | ||
+ | |'''ExportDoCRMOstZasobyEdit.bat'''||pomocná „ladící“ dávka | ||
+ | |- | ||
+ | |'''ExportDoCRMTaskName.bat'''||pro budoucí zjednodušené spouštění úloh. Zatím NEPOUŽÍVAT !! | ||
+ | |- | ||
+ | |'''ExportDoCRMZasoby.bat'''||export aktuálních zásob ze souboru skladových zásob (SkladZAS.BTR) | ||
+ | |- | ||
+ | |'''ExportDoCRMZasobyEdit.bat'''||pomocná „ladící“ dávka S6CRM.BAT – pomocná dávka pro dávky ….Edit – nespouští přímo skript. Je určená pro ladění v editoru skriptů (spustí se sklad s patřičnými parametry pro danou úlohu. | ||
+ | |- | ||
+ | |'''S6CRMEx.BAT'''||hlavní dávka pro spouštění skriptu exportů s danými parametry pro danou úlohu. Parametry jsou uvedeny v konktrétních dávkách – viz. výše | ||
+ | |- | ||
+ | |'''CiselnikyFiltr.txt'''||soubor pro filtrování exportu číselníků. Soubor má tvar:<br/>CisloCiselniku=MaskaProKonkretniCiselnik<br/>CisloCiselniku=MaskaProKonkretniCiselnik …,<br/>kde MaskaProKonkretniCiselnik je předána funkci MatchMasks.<br/>Příklad pro vyfiltrování položek číselníku 161 (INI hodnoty), které obsahují ve jménu (Klic) slova exp a imp (Pozn.: PRVNÍ * je nutná !!):'''161=*/!*exp*/!*imp*''' | ||
+ | |} | ||
+ | ---- | ||
---- | ---- | ||
+ | |||
=Nasazení skriptu= | =Nasazení skriptu= | ||
Před kompilací je třeba zkontrolovat nastavení proměnné '''Debug := false''', aby skript zbytečně nevypisoval ladící hlášení nebo nezůstal viset v některém z kontrolních zobrazení generovaných paměťových nebo načtených SQL tabulek. <br/>(Také je vhodné nastavit defaultní hodnotu cLogLevel na $1111111 a případně ji ovlivňovat parametrem LogLevel při spuštění). | Před kompilací je třeba zkontrolovat nastavení proměnné '''Debug := false''', aby skript zbytečně nevypisoval ladící hlášení nebo nezůstal viset v některém z kontrolních zobrazení generovaných paměťových nebo načtených SQL tabulek. <br/>(Také je vhodné nastavit defaultní hodnotu cLogLevel na $1111111 a případně ji ovlivňovat parametrem LogLevel při spuštění). |
Aktuální verze z 18. 11. 2019, 15:11
Definice ve Skeletonu
Tabulky bez závislostí (nezávislé)
Databáze (pouze pro potřeby exportu do CRM)
obsahuje VZOR připojovacího řetězce (Connection string) k databázi. Defaultní hodnota je uvedena níže. Vlastní hodnoty jsou nastaveny přes parametry skriptu:
pro „datovou“ databázi (v závorce jsou defaultní hodnoty) |
DataComputerName(localhost\SQLEXPRESS), DataDBName(Maxim.CRM.Data),
DataUserName(„“), DataPassword(„“) |
pro „synchronizační“ databázi |
SyncComputerName(localhost\SQLEXPRESS), SyncDBName(Maxim.SyncGen), SyncUserName(„“), SyncPassword(„“). |
Poznámka - Defaultní Connection string |
Provider=SQLOLEDB.1;Integrated Security=SSPI;Password=;Persist Security Info=True;User ID=;Initial Catalog=;Data Source=;Keep connection=True - obsahuje parametr „Integrated Security=SSPI“, takže jméno a heslo není nutné. |
Tabulky
Obsahuje parametry pro jednotlivé tabulky (určeno pro budoucí použití) a pole CompanySyncId, které obsahuje číslo střediska (je možno použít univerzální hodnotu ze skriptu: _AktualniSklad_. Ta obsahuje číslo střediska (skladu) pod kterým běží skript.
Úlohy
Tato tabulka obsahuje seznam úloh a je závislá na skriptu. Není třeba ji měnit - pouze pokud nová verze skriptu obsahuje nové úlohy (typy exportu). Popis stávajících hodnoty viz parametr GenMode - tento parametr je ale určen pouze pro jednorázové spuštění úlohy. Při plánovaném spuštění úlohy (parametry TaskGUID, TaskGroupGUID a plánovaný parametr TaskName) je vždy přepsán hodnotou z této tabulky !
Skupiny úloh
Obsahuje ID skupiny úloh a popis skupiny úloh.
Tabulky se závislostí
(určuje pořadí zadávání – viz postup zadávání)
Plánování úloh
Popis tabulky – viz Postup zadávání
Omezení spouštění
Popis – viz Postup zadávání
Postup zadávání
- Jméno skupiny a její popis – tabulka Skupiny úloh
- Vlastní úloha – tabulka Plánování úloh:
Zde zadáváme skupinu úloh (výběr ze skupin), pořadí ve skupině, vlastní úlohu (kterou chceme spustit – výběr ze seznamu úloh), popis úlohy (stejná úloha může být spuštěna s rozdílnými parametry), Databázi (výběr ze seznamu databází), frekvenci (zadaná jako část dne, tj. 1 = jednou denně, 0,5 = 2x za den. Hodnotu spočteme výrazem 1/ „Počet Opakování“. Pro zjednodušení: 0,00069444444 * počet minut nebo 0,0416666666 * počet hodin), maximální dobu běhu (určeno pro budoucí použití. V tuto chvíli lze nastavit parametrem RunningTime – viz. níže), povolení úlohy (hodnota 0-1, 0= zakázaná) a parametry úlohy (jsou závislé na skriptu). - Omezení úlohy – tabulka Omezení spouštění:
Zde zadáváme úlohu kterou chceme omezit (výběr ze seznamu), pořadí omezení, popis omezení, typ omezení (0 – časové údaje, 1 – nespustit pokud běží jiná úloha – pole související úloha, 2 – omezení pomocí funkce (určeno pro budoucí použití)
Parametry skriptu
Parametry jsou ve formátu JmenoParametru:Hodnota. Obsahuje-li hodnota mezeru(y), pak musí být v uvozovkách. Pro logické (Boolean) parametry je možno použít:A,N,Y,N,T,F,0,1 popř. dlouhé varianty Ano, Ne, Yes, No, True, False.
GenMode: dovoluje nastavit rozšířené parametry pro úlohu. Pro hlavní úlohy jsou přednastaveny předdefinované konstanty níže. Lze použít konstanty gmXXX nebo hexadecimální hodnotu (např. $1001)
Předdefinované konstanty pro hlavní části exportu
Konstanta | Hodnota |
gmUpdate | 1 (použijte vždy pro update SQL tabulek) |
gmCiselniky | $10 |
$20 | |
gmTypyDokladu | $40 |
gmGlobalniTagy | $80 |
gmZalistovaneZbozi | $100 |
gmKarty | $1000 |
gmOdberatele | $2000 |
gmZasoby | $4000 |
gmZasobyOstatni | $8000 |
gmIndCeny | $10000 |
Předdefinované konstanty pro hlavní úlohy
Konstanta | Hodnota |
gmCiselnikyVse | gmUpdate, gmCiselniky, gmSazbyDPH, gmGlobalniTagy,
gmTypyDokladu |
gmKartyVse | gmUpdate, gmSazbyDPH, gmGlobalniTagy, gmKarty |
gmOdberateleVse | gmUpdate, gmSazbyDPH, gmGlobalniTagy,
gmTypyDokladu, gmOdberatele, gmZalistovaneZbozi |
gmOdberateleBZL | gmUpdate, gmSazbyDPH, gmGlobalniTagy,
gmTypyDokladu, gmOdberatele (bez zalistovaného zboží) |
gmZasobyVse | gmUpdate, gmSazbyDPH, gmZasoby |
gmZasobyOstatniVs | gmUpdate, gmSazbyDPH, gmZasobyOstatni |
gmIndCenyVse | gmUpdate, gmIndCeny |
Logování
LogLevel
úroveň logování binární hodnota 0-15.
Význam hodnot:
Hodnota | Popis |
0 | úplné potlačení chybových hlášení (jen ve výjimečných případech – není doporučeno) |
1 | kritické chyby |
2 | vyšší úroveň logování (další údaje se logují podle jednotlivých míst logování) |
4 | vyšší úroveň logování (další údaje se logují podle jednotlivých míst logování) |
Místa logování
ProductOK (test platnosti skladové karty) | 0 | $F (0 - 3) |
UserAllowed(test platnosti odběratele) | $10 | $F0 (4 - 7) |
GetUser(export odběratelů) | $100 | $F00 (8 - 11) |
GetProduct(export karet) | $1000 | $F000 (12 - 15) |
práce s DB(comapre, insert, update, delete) | $10000 | $F0000 (16 - 19) |
práce s ADO(SQL prepare, exec) | $100000 | $F00000 (20 - 23) |
plánovač | $1000000 | $F000000 (24 - 31) |
Poznámka |
Vyšší úrovně logování (2 a 4) v místech ProductOK a UserAllowed a plánovač vytvářejí obrovské logy – doporučuje se zapínat jen dočasně !Defaultní hodnota: $1111111 – všechny kritické chyby |
Ident
Rozlišující text do log souboru. Odlišuje stejné typy úloh v logu. Vhodné např. při částečných (rozdělených) exportech např. zalistovaného zboží.
Text | Popis | Poznámka |
DataComputerName | Jméno serveru s „datovou“ databází (Maxim.CRM.Data) | |
DataDBName | Jméno „datové“ databáze (Maxim.CRM.Data) | |
DataUserName | Jméno datového uživatele | |
DataPassword | Heslo datového uživatele | |
SyncComputerName | Jméno serveru se „synchronizační“ databází (Maxim.SyncGen) | |
SyncDBName | Jméno synchronizační databáze (Maxim.SyncGen) | |
SyncUserName | Jméno synchronizačního uživatele | |
SyncPassword | Heslo synchronizačního uživatele | |
DateFrom | [+]Offset (datum nebo offset). Offset je v počtu dní od aktuálního data. Lze tak reexportovat data např. za určený den(viz. parametr DayCount) | |
DayCount | Počet dní pro výpočet „časových“ dat | |
UserWhiteListAdd | Zapíná částečný výpočet časových dat – parametry | |
DateFrom | připravuje se | |
DayCount | připravuje se. | |
BalanceFromStore | Nastavte na true (Boolean hodnota:Y,N,T,F) pro výpočet salda ze skladu (false pro výpočet z účta) | připravuje se |
DefDateTaxSupplay | Nastavte na true (Boolean hodnota:Y,N,T,F) má-li se splatnost počítat od datumu UZP, jinak se bude počítat od data vystavení dokladu – výchozí hodnota. | |
Packages | Nastavte na true (Boolean hodnota:Y,N,T,F) chcete-li exportovat i vratné obaly, které nejsou u žádného zboží. Default: false | |
TaskGUID | uveďte GUID úlohy pro plánované spuštění. Lze tak spustit zvlášť i jednotlivou úlohu ze skupiny | Není-li uveden žádný z parametrů TaskGUID, TaskGroupGUID, TaskName, bude proveden jednorázový export dle parametru GenMode |
TaskGroupGUID | uveďte GUID skupiny pro plánované spuštění | |
TaskName | uveďte jméno skupiny nebo úlohy pro plánované spuštění–připravuje se | |
RunTask | interní použití | |
RunningTime | Maximální doba běhu úlohy. Default: 60 minut. Pokud úloha ještě běží, bude ukončena po svém dokončení (nebude již dále plánována) | |
TaskErrorTimeOut | Pokud již není žádná vhodná úloha podle plánu ke spuštění, pak bude další test proveden až po této době (v sekundách). Default: 300. | Není vhodné nastavovat na dlouhý interval, protože se tím oddálí načtení případné aktualizace plánování z tabulek Max.SyncGen databáze. I v době čekání sklad nezatěžuje processor (je v sleep módu) |
ExitAfterGroup | ukončení při úspěšném dokončení všech úloh ve skupině. Skupina již nebude znovu naplánována. | |
StartNow | nastavte true, chcete-li úlohu nebo skupinu spustit ihned (Boolean value:Y,N,T,F), jinak bude spuštěna dle vypočteného plánu. |
Batch soubory
Ovládání exportu je nyní ve dvou adresářích (C:\CRM\Export a Sklad6\ExportCRM)a jako uživatelský adresář je použit Sklad6\UZIVCRM.
Adresář C:\CRM\Export
Je na lokálním disku a batch soubory jsou určeny pro plánovač úloh a řeší mapování síťového disku. Parametry pro připojení síťového disku jsou v souboru cesty.bat. Hlavní jsou dávky:
Spust.bat
(společný bod pro spouštění jednotlivých úloh z plánovače – dávky
Ciselniky.bat, HlavniData.bat, IndCeny.bat, IndCenyOZ.bat, Karty.bat,
Odberatele.bat, OstZasoby.bat, Zasoby.bat).
Poznámka |
Dávky Karty.bat, Ciselniky.bat a Odberatele.bat se v běžném režimu nepoužívají, protože se spouští dávka HlavniData.bat, která spouští skupinu Hlavní data a tato obsahu všechny zmíněné úlohy. |
Stop.bat a VymazStop.bat
slouží k vytvoření a vymazání souboru Sklad6\ExportDoCRM.Stop, který slouží pro korektní nouzové ukončení všech exportů. Existence tohoto souboru je testována v sleep módu, tedy v okamžiku kdy skončí aktuální úloha a je spouštěna buď další úloha podle plánu nebo se čeká na naplánovanou úlohu. Jedná se tedy o zastavení všech dalších plánů (současně běžící úlohy neskončí ihned, ale „doběhnou“).
Poznámky |
Obsah souboru Sklad6\ExportDoCRM.Stop je zalogován jako důvod ukončení exportů. |
Pokud export skončí a provede se jen jednou, pravděpodobně že existuje tento soubor. |
Adresář: Sklad6\ExportCRM
obsahuje jednotlivé dávky pro spouštění samostatných úloh a pomocné dávky:
Dávka | Popis |
ExCRMDate.bat | vrací v proměnných CRMDate a CRMTime aktuální datum a čas ve formátu použitelném pro jména souborů. |
ExCRMLogVersion.bat | přejmenovává logy – rozšíření o „timestamp“ |
ExCRMRunningTime.bat | nastavuje do proměnné RunningTime hodnotu pro tento parametr (ve vteřinách) do půlnoci. Měl by zaručit (stejně jako dávky Stop.bat a VymazStop.bat, že naplánované úlohy skončí do půl noci (pokud právě neběží). |
ExCRMVersion.bat | určuje verzi (jméno) spouštěného skriptu. |
ExportDoCRMCiselniky.bat | samostatný export číselníků. V normálním režimu se exportují číselníky v rámci hlavních dat. |
ExportDoCRMCiselnikyEdit.bat | pomocná ladící dávka |
ExportDoCRMHlavniData.bat | export hlavních dat (Číselníky, karty, odběratelé) |
ExportDoCRMHlavniDataEdit.bat | pomocná ladící dávka |
ExportDoCRMIndCeny.bat | export individuálních cen |
ExportDoCRMIndCenyEdit.bat | pomocná ladící dávka |
ExportDoCRMIndCenyOZ.bat | Export individuálních cen obchodních zástupců |
ExportDoCRMIndCenyOZEdit.bat | pomocná ladící dávka |
ExportDoCRMKarty.bat | samostatný export skladových karet. V normální režimu se karty exportují v rámci hlavních dat. |
ExportDoCRMKartyEdit.bat | pomocná ladící dávka |
ExportDoCRMOdberatele.bat | samostatný export odběratelů včetně zalistovaného zboží. V normálním režimu se odběratelé exportují v rámci hlavních dat. |
ExportDoCRMOdberateleBZZ.bat | samostatný export odběratelů bez zalistovaného zboží. V normálním režimu se odběratelé včetně zalistovaného zboží exportují v rámci hlavních dat. Dávku je možno použít pro zrychlené přeexportování odběratelů bez zalistovaného zboží. |
ExportDoCRMOdberateleBZZEdit.bat | pomocná „ladící“ dávka |
ExportDoCRMOdberateleEdit.bat | pomocná „ladící“ dávka |
ExportDoCRMOstZasoby.bat | export zásob ze souboru operací (SkladOPE.BTR). |
ExportDoCRMOstZasobyEdit.bat | pomocná „ladící“ dávka |
ExportDoCRMTaskName.bat | pro budoucí zjednodušené spouštění úloh. Zatím NEPOUŽÍVAT !! |
ExportDoCRMZasoby.bat | export aktuálních zásob ze souboru skladových zásob (SkladZAS.BTR) |
ExportDoCRMZasobyEdit.bat | pomocná „ladící“ dávka S6CRM.BAT – pomocná dávka pro dávky ….Edit – nespouští přímo skript. Je určená pro ladění v editoru skriptů (spustí se sklad s patřičnými parametry pro danou úlohu. |
S6CRMEx.BAT | hlavní dávka pro spouštění skriptu exportů s danými parametry pro danou úlohu. Parametry jsou uvedeny v konktrétních dávkách – viz. výše |
CiselnikyFiltr.txt | soubor pro filtrování exportu číselníků. Soubor má tvar: CisloCiselniku=MaskaProKonkretniCiselnik CisloCiselniku=MaskaProKonkretniCiselnik …, kde MaskaProKonkretniCiselnik je předána funkci MatchMasks. Příklad pro vyfiltrování položek číselníku 161 (INI hodnoty), které obsahují ve jménu (Klic) slova exp a imp (Pozn.: PRVNÍ * je nutná !!):161=*/!*exp*/!*imp* |
Nasazení skriptu
Před kompilací je třeba zkontrolovat nastavení proměnné Debug := false, aby skript zbytečně nevypisoval ladící hlášení nebo nezůstal viset v některém z kontrolních zobrazení generovaných paměťových nebo načtených SQL tabulek.
(Také je vhodné nastavit defaultní hodnotu cLogLevel na $1111111 a případně ji ovlivňovat parametrem LogLevel při spuštění).