Export do CRM: Porovnání verzí

Z K.A.P.
Skočit na navigaciSkočit na vyhledávání
Řádek 70: Řádek 70:
  
 
=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:<br/>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:<br/>
 +
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:
 +
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;
 +
gmZasobyOstatniVse= gmUpdate, gmSazbyDPH, gmZasobyOstatni;
 +
gmIndCenyVse          = gmUpdate, gmIndCeny;
 +
 +
LogLevel: úroveň logování binární hodnota 0-15. Význam hodnot:
 +
 +
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áces ADO(SQL prepare, exec):             $100000 -        $F00000 (20 - 23)
 +
plánovač:           $1000000 -      $F000000 (24 - 31)
 +
Pozn. 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ží.
 +
 +
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). 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, 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
 +
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í
 +
Není-li uveden žádný z parametrů TaskGUID, TaskGroupGUID, TaskName, bude
 +
proveden jednorázový export dle parametru GenMode
 +
 +
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. Pozn.: 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.
  
 
----
 
----

Verze z 17. 11. 2019, 17:55

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:
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: 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; gmZasobyOstatniVse= gmUpdate, gmSazbyDPH, gmZasobyOstatni; gmIndCenyVse = gmUpdate, gmIndCeny;

LogLevel: úroveň logování binární hodnota 0-15. Význam hodnot:

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áces ADO(SQL prepare, exec): $100000 - $F00000 (20 - 23) plánovač: $1000000 - $F000000 (24 - 31) Pozn. 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ží.

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). 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, 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 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í Není-li uveden žádný z parametrů TaskGUID, TaskGroupGUID, TaskName, bude proveden jednorázový export dle parametru GenMode

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. Pozn.: 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



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í).