Export do CRM: Porovnání verzí

Z K.A.P.
Skočit na navigaciSkočit na vyhledávání
m (Zamyká „Export do CRM“ [edit=sysop:move=sysop])
 
(Není zobrazeno 58 mezilehlých verzí od stejného uživatele.)
Řádek 1: Řádek 1:
=Definice ve skeletonu=
+
=Definice ve Skeletonu=
  
==a) Tabulky bez závislostí (nezávislé)==
+
== Tabulky bez závislostí (nezávislé)==
==='''Databáze (pouze pro potřeby exportu do CRM):===
+
===Databáze (pouze pro potřeby exportu do CRM)===
 
[[Soubor:CRM_Skeleton1.PNG]]
 
[[Soubor:CRM_Skeleton1.PNG]]
  
obsahuje VZOR připojovacího řetězce (Connection string) k databázi. Defaultní  
+
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: <br/>
hodnota je uvedena níže. Vlastní hodnoty jsou nastaveny přes parametry skriptu: <br/>
 
  
pro „datovou“ databázi (v závorce jsou defaultní hodnoty):
+
{| border=1 style="background:#ddddff; color:black" class = "wikitable"
 +
|-
 +
|'''pro „datovou“ databázi''' (v závorce jsou defaultní hodnoty)||
 
DataComputerName(localhost\SQLEXPRESS), DataDBName(Maxim.CRM.Data),  
 
DataComputerName(localhost\SQLEXPRESS), DataDBName(Maxim.CRM.Data),  
 
DataUserName(„“), DataPassword(„“)<br/>
 
DataUserName(„“), DataPassword(„“)<br/>
 +
|-
 +
|'''pro „synchronizační“ databázi'''||
 +
SyncComputerName(localhost\SQLEXPRESS), SyncDBName(Maxim.SyncGen), SyncUserName(„“), SyncPassword(„“).
 +
|}
 +
<br/>
 +
 +
{| border=1 class = "wikitable" style="text-align:left"
 +
|bgcolor="#FFE68C"| '''Poznámka - Defaultní Connection string'''
 +
|-
 +
|Provider=SQLOLEDB.1;Integrated Security=SSPI;Password=;Persist Security<br/>Info=True;User ID=;Initial Catalog=;Data Source=;Keep connection=True<br/>- obsahuje  parametr „Integrated Security=SSPI“, takže jméno a heslo není nutné.
 +
|}
 +
<br/>
 +
 +
===Tabulky===
 +
[[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 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
 +
|}
  
pro „synchronizační“ databázi:
+
----
SyncComputerName(localhost\SQLEXPRESS), SyncDBName(Maxim.SyncGen),
 
SyncUserName(„“), SyncPassword(„“).<br/>
 
  
{| border=1 class = "wikitable" style="text-align:left" width=1000
+
==Předdefinované konstanty pro hlavní úlohy==
|colspan="2" bgcolor="#FFE68C"| '''Poznámka - Defaultní Connection string'''
+
{| 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
 
|-
 
|-
|Provider=SQLOLEDB.1;Integrated Security=SSPI;Password=;Persist Security Info=True;User ID=;Initial Catalog=;Data Source=;Keep connection=True<br/>- obsahuje  parametr „Integrated Security=SSPI“, takže jméno a heslo není nutné.
+
|gmIndCenyVse||gmUpdate, gmIndCeny
 
|}
 
|}
 +
 
----
 
----
  
=Parametry skriptu=
+
==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)||&nbsp;
 +
|-
 +
|'''DataDBName'''||Jméno „datové“ databáze (Maxim.CRM.Data)||&nbsp;
 +
|-
 +
|'''DataUserName'''||Jméno datového uživatele||&nbsp;
 +
|-
 +
|'''DataPassword'''||Heslo datového uživatele||&nbsp;
 +
|-
 +
|'''SyncComputerName'''|| Jméno serveru se „synchronizační“ databází (Maxim.SyncGen)||&nbsp;
 +
|-
 +
|'''SyncDBName'''||Jméno synchronizační databáze (Maxim.SyncGen)||&nbsp;
 +
|-
 +
|'''SyncUserName'''||Jméno synchronizačního uživatele||&nbsp;
 +
|-
 +
|'''SyncPassword'''||Heslo synchronizačního uživatele||&nbsp;
 +
|-
 +
|'''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''') || &nbsp;
 +
|-
 +
|'''DayCount'''||Počet dní pro výpočet „časových“ dat||&nbsp;
 +
|-
 +
|'''UserWhiteListAdd'''||Zapíná částečný výpočet časových dat – parametry || &nbsp;
 +
|-
 +
|'''DateFrom'''||&nbsp;||připravuje se
 +
|-
 +
|'''DayCount'''||&nbsp;|| 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.||&nbsp;
 +
|-
 +
|'''Packages'''||Nastavte na true (Boolean hodnota:Y,N,T,F) chcete-li exportovat i vratné obaly, které nejsou u žádného zboží. Default: false||&nbsp;
 +
|-
 +
|'''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í||&nbsp;
 +
|-
 +
|'''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)||&nbsp;
 +
|-
 +
|'''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.||&nbsp;
 +
|-
 +
|'''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.||&nbsp;
 +
|}
 
----
 
----
 +
----
 +
 
=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)

CRM Skeleton1.PNG

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

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

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

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

CRM SkeletonTabulkyPlanovani.png

Popis tabulky – viz Postup zadávání


Omezení spouštění

CRM SkeletonTabulkySpousteni.png

Popis – viz Postup zadávání


Postup zadávání

  1. Jméno skupiny a její popis – tabulka Skupiny úloh
  2. 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).
  3. 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í).