GQS DATAMIXER tool (rev. 26.5.2010)

nástroj pro obousměrný přenos dat mezi libovolnými databázovými strukturami platforem MS SQL, MySQL, MS Access (soubory MDB) nebo definovanými datovými oblastmi sešitů MS Excel (soubory XLS). Umožňuje variabilní edici nebo vkládání datových záznamů na základě speciálních instrukčních souborů ("receptur") buď v ručně ovládaném, nebo automatickém režimu. Přenos využívá nástroje jazyka SQL a transakční zpracování s volitelnou úrovní zabezpečení.

Nástroj je redukovanou verzí komplexní aplikace GQS DATASHAKER.

Popis činnosti

obecné informace

Základem činnosti nástroje je připojení zdrojové a cílové datové struktury a následný přenos určených datových záznamů nebo položek. Přenos umožňuje buď vkládání nových záznamů nebo edici stávajících. Podmínky přenosu určuje soubor pravidel, takzvaná receptura, tvořená "human-readable" textovým souborem s doporučenou příponou DXT (dyXoft template). Protože mixer nepracuje s jedinou recepturou, ale s jejich seznamem (opět "human-readable" textový soubor s doporučenou příponou DXL - dyXoft list), lze v jediné seanci kombinovat různé přenosy za dost komplikovaných podmínek.
Existuje-li navíc v pracovním adresáři nástroje seznam receptur s názvem AUTORUN_LIST.DXL, zahájí aplikace provádění jednotlivých receptur automaticky ihned po spuštění. Mixer lze tedy využívat i pro dávková zpracování dat nezávislá na obsluze - ve spojení s vhodným spouštěcím procesem, jakým je například plánovač úloh Windows.

podrobný popis a posloupnost činností

Po spuštění nástroj neprve hledá v pracovním adresáři výchozí seznam AUTORUN_LIST.DXL. Je-li seznam nalezen, zahájí ihned jeho zpracování (AUTO MODE); pokud tento seznam není nalezen, čeká na ruční zadání (USER MODE). V tomto případě uživatel vyhledá jiný seznam receptur pomocí standardního dialogu ovládaného tlačítkem "seznam receptur" a - poté, co program ověří správnost zadání a zobrazí počet receptur v seznamu - spustí vlastní zpracování tlačítkem "mixing".

Během mixingu nástroj zpracovává jednotlivé receptury v témže pořadí, v jakém jsou uvedeny v seznamu. V první fázi jsou načteny všechny ovladače a jejich parametry a je kontrolována správnost zadání. V další fázi se nástroj připojí ke zdrojové i cílové databázi nebo struktuře a zahájí přenos dat podle zadaných pokynů. Protože načítání a vlastní mixing probíhají odděleně, nezáleží na pořadí ovladačů v receptuře; v zájmu zachování přehlednosti receptury se ovšem doporučuje dodržovat logické uspořádání a používat komentáře.

V každé fázi přípravy i zpracování nástroj kontroluje formální správnost zadání a v případě zjištění jakékoliv chyby zastavuje činnost. Logickou správnost zadaných podmínek přenosu pochopitelně kontrolovat nemůže, ale umožňuje uživateli nastavit přenos tak, aby při jakékoliv nekorektní operaci s cílovou datovou strukturou skončil a data se vrátila do původního stavu (ovladač ALWAYSROLLBACK) - toto zabezpečení bohužel nelze použít při zápisu do sešitu MS Excel, který transakční zpracování nepodporuje.
Při automatizovaných přenosech je - bez ohledu na úroveň zabezpečení - vždy vhodné nejprve celý proces odladit na kopii dat a teprve pak zahájit ostré přenosy.

Celý průběh zpracování seznamu je zapisován do dalšího textového souboru - logu. Pro redukci rozsahu zapisovaných dat jsou používány hexadecimální stavové kódy. V případě potřeby hlubší analýzy průběhu přenosu je možno aktivovat podrobný výpis přenosu ("dump") použitím přepínače  USEDUMP; tento výpis zobrazí výsledek zpracování všech vybraných záznamů. Záznam je identifikován pořadovým číslem ve vybrané množině; identifikaci lze dále upřesnit zobrazením uživatelem zvolené položky (ovladač DUMPFIELDNAME).

výchozí nastavení

Ve výchozím nastavení používá nástroj pracovní adresář C:\DATASHAKER, ve kterém je umístěn vlastní EXE soubor, tento informační soubor DMHELP.HTM a log DMLOG.TXT. Výchozí nastavení dále předpokládá existenci podadresáře DATAFILES, ve kterém by měly být umístěny seznamy a receptury a kde je také hledán seznam AUTORUN_LIST.DXL pro automatické spouštění. Jsou-li jednotlivé receptury umístěny mimo tento podadresář nebo mimo adresář, ve kterém je umístěn aplikační EXE soubor DATAMIXER.EXE, musí seznam receptur obsahovat úplnou cestu ke každé receptuře.
Je-li soubor DATAMIXER.EXE umístěn v jiném adresáři, považuje se za pracovní tento adresář.

Soubor receptury (DXT) smí obsahovat pouze řádky s ovladači nebo komentáře. Za komentář se považuje řádek, obsahující na první pozici středník (;). Řádek s ovladačem má tvar

[OVLADAČ]:parametr1;parametr2.. parametrN

kde levá hranatá závorka leží opět na první pozici. Znaky CRLF v parametrech nejsou přípustné. Pro vytváření receptur je proto vhodný jednoduchý textový editor umožňující tvorbu dlouhých řádků hladkého textu bez zalamování (např. NOTEPAD).
Prázdné řádky receptury jsou ignorovány. Názvy položek je nutno uvádět přesně, velká a malá písmena jsou rozlišována. Seznam ovladačů s podrobným popisem funkce a parametrů je k dispozici zde.

(zpět na začátek dokumentu)

Ovladače a parametry

Tato část dokumentu obsahuje detailní popis všech definovaných ovladačů. Název ovladače je umístěn v hranatých závorkách na počátku řádku receptury. Je-li pro funkci ovladače nutno zadat parametry, následuje dvojtečka a seznam parametrů, oddělených středníkem. Typický vzhled řádku s ovladačem:

[OVLADAČ]:parametr1;parametr2.. parametrN

Pokud lze jednomu ovladači přiřadit různé kombinace parametrů, jsou jednotlivé varianty uvedeny na samostatných řádcích.

Je-li parametrem textový řetězec, který lze různě modifikovat, jsou při jeho popisu použity konvence obvyklé u příkazových řádků:
* nepovinná sekce řetězce je uzavřena v hranaté závorce (které mohou být vnořené)
* varianty téže sekce jsou odděleny znakem "pipe" ( | )

Příklad variabilního parametru - textového řetězce:

[OVLADAČ]:sekce1;sekce2[\sekce3 | ,sekce4[;sekce5]]

možné varianty:

[OVLADAČ]:sekce1;sekce2
[OVLADAČ]:sekce1;sekce2\sekce3
[OVLADAČ]:sekce1;sekce2,sekce4
[OVLADAČ]:sekce1;sekce2,sekce4;sekce5

Ovladače jsou popisovány v abecedním pořadí. Konkrétní příklady použití jsou uvedeny zde.

; (středník)

není ovladačem v pravém smyslu - funguje hlavně jako oddělovač parametrů. Vyskytne-li se však na první pozici řádku receptury nebo seznamu receptur, bere se tento řádek jako komentář a je při zpracování ignorován.

Tvar zápisu:

; Toto je řádek komentáře

Použití komentářů je velmi vhodné u složitějších receptur, kde je třeba zachovat si přehled o prováděných datových operacích.

(zpět na seznam ovladačů)

ALWAYSROLLBACK

Zajistí odvolání všech provedených změn v cílové datové struktuře, pokud dojde během přenosu dat k jakékoliv chybě nebo nekorektní operaci.

Tvar zápisu:

[ALWAYSROLLBACK]

Ovladač nemá žádné parametry a pro zajištění funkce stačí jeho jediné uvedení v receptuře.

POZOR: je-li cílovou datovou strukturou datová oblast sešitu MS Excel, není tento ovladač funkční (MS Excel bohužel nepodporuje mnohé SQL standardy a transakční zpracování je jedním z nich).

(zpět na seznam ovladačů)

DESTCATALOG

Povinný ovladač pro SQL cílovou strukturu. Určuje datovou kolekci (katalog), do níž se bude zapisovat.

Tvar zápisu:

[DESTCATALOG]:jmeno_katalogu

Ovladač se uplatní pouze při zápisech do struktur SQL nebo MySQL (v kombinaci s ovladačem DESTDATASOURCE), pro zápis do jiných datových struktur nemá význam. Parametrem je textový řetězec udávající platné jméno kolekce.

POZOR:
ovladač se uplatní pouze při zápisech do databází SQL nebo MySQL.

(zpět na seznam ovladačů)

DESTDATASOURCE

Povinný ovladač. Určuje cílový SQL server, soubor s databází MS Access (soubor MDB) nebo se sešitem MS Excel (soubor XLS).

Tvary zápisu:

[DESTDATASOURCE]:jmeno_sqlserveru[\instance |,port]][;login;heslo[;portMySQL;vychozi_katalogMySQL]]
[DESTDATASOURCE]:uplna_cesta\mdb_soubor
[DESTDATASOURCE]:uplna_cesta\xls_soubor

Parametrem je textový řetězec, jehož sekce oddělené středníkem použije mixer při konstrukci řetězce ConnectString.
"Jmeno_sqlserveru" je buď platný alias v síti LAN/WAN, nebo existující IP adresa; v případě potřeby lze tuto sekci parametru rozšířit o název instance nebo port.
Je-li cílem přenosu MySQL, použijí se (obvykle povinně) sekce "portMySQL" a "vychozi_katalogMySQL".
Při zápisech do struktur SQL se ovladač uplatní pouze v kombinaci s ovladačem DESTCATALOG.

"Uplna_cesta" je platná a funkční cesta k souboru MDB nebo XLS ve vztahu k pracovnímu adresáři mixeru.

POZOR: vzhledem k zabezpečení dat není vhodné uvádět v receptuře login a heslo; při zápisech do databází SQL se předpokládá přístup s využitím integrovaného zabezpečení sítě.

(zpět na seznam ovladačů)

DESTTABLE

Povinný ovladač. Určuje datovou tabulku nebo oblast v cílové datové struktuře.

Tvar zápisu:

[DESTTABLE]:jmeno_tabulky_nebo_oblasti

Ve strukturách SQL nebo MDB je parametrem ovladače textový řetězec definující platné jméno existující tabulky v databázi. V sešitech MS Excel je parametrem textový řetězec definující platný název pojmenované datové oblasti (doporučeno) nebo listu (je-li to nezbytné). Bližší informace o práci s pojmenovanou datovou oblastí obsahuje nápověda aplikace MS Excel.

POZOR: je-li při zápisu do sešitu MS Excel použit list, může dojít k nespecifikovaným zápisům dat nebo chybám, protože list obecně nemusí obsahovat data ve formě regulérní tabulky. Krom toho je nutno název listu pro použití v mixeru upravit (doplnit znak "$" a uzavřít celý název do hranatých závorek).

(zpět na seznam ovladačů)

DESTTIMEOUT

Nastavuje časový limit pro připojení k cílové datové struktuře.

Tvar zápisu:

[DESTTIMEOUT]:pocet_sekund

Pro vzdálená připojení k cílové databázi je někdy třeba zvýšit hodnotu povoleného časového limitu. Parametr ovladače je číslo udávající hodnotu v sekundách.

Výchozí nastavení limitu je 60 sekund.

(zpět na seznam ovladačů)

DESTTTYPE

Povinný ovladač. Určuje použitou platformu cílové datové struktury.

Tvar zápisu:

[DESTTYPE]:typ

"typ" je tříznakový řetězec nabývající hodnot

Jiné hodnoty nejsou zatím povoleny, nevylučuje se však rozšíření v dalších verzích datamixeru.

(zpět na seznam ovladačů)

DUMPFIELDNAME

Určuje položku, jejíž hodnota bude uvedena v podrobném výpisu chybových hlášení (dump), pokud je tento výpis požadován.

Tvar zápisu:

[DUMPFIELDNAME]:nazev_polozky

Parametrem ovladače je platný název položky ze zdrojové tabulky. Jednotlivé řádky výpisu pak mají tvar

typ:hodnota_zadane_polozky [poradove_cislo_zaznamu] stavovy_kod

Není-li ovladač použit, uvede se ve výpisu pořadové číslo záznamu ve zpracovávaném výběru:

typ:poradove_cislo_zaznamu stavovy_kod

Podrobný výpis značně zvětšuje rozsah výstupního souboru a je proto ve výchozím stavu mixeru vypnutý; k jeho aktivaci je nutno použít ovladač USEDUMP.

(zpět na seznam ovladačů)

EDITONFIELDS

Určuje seznam položek, podle nichž bude nalezen editovaný záznam v cílové struktuře.

Tvar zápisu:

[EDITONFIELDS]:polozka1;polozka2; .. polozka6

Parametry ovladače jsou platné názvy položek, vyskytujících se v cílové tabulce. Počet položek je volitelný v rozsahu 1 až 6. Odpovídající zdrojová položka je určena ovladačem MIXVALUE nebo - u shodných tabulek - ovladačem USEFIELDLIST.

Tento ovladač je rozhodujícím řídícím prvkem pro edici cílové struktury. Je-li při mixingu nalezen cílový záznam, jehož hodnoty v zadaných položkách jsou shodné s položkami zpracovávaného zdrojového záznamu, je cílový záznam upraven podle pravidel stanovených ovladači MIXFIELD a/nebo MIXVALUE.

POZOR:
1. položky musí být zvoleny tak, aby byla zajištěna exkluzivita cílového záznamu (tj. cílový záznam odpovídající dané sestavě hodnot musí být nejvýše jeden). Obvykle jsou proto použity položky s charakterem klíče (indexu).
2. exkluzivita zdrojového záznamu se předpokládá, ale není povinná - cílový záznam bude v případě nesplněného předpokladu přepsán hodnotami posledního zpracovávaného zdrojového záznamu, který vyhověl podmínce.

(zpět na seznam ovladačů)

FILTERSTRING

Nastavuje omezení pro výběr zpracovávaných záznamů ze zdrojové tabulky.

Tvar zápisu:

[FILTERSTRING]:nastaveni_filtru_vyberu_dat

Parametrem ovladače je textový řetězec, který lze interpretovat jako platný filtr pro zdrojovou tabulku. Obecně je filtr použit pro jednoduchá kritéria výběru; pro složitější omezení na vstupu mixingu je vhodnější ovladač QUERYSTRING. Při současném použití obou ovladačů se filtr zpracuje jako první.

POZOR:
1. nastavení filtru musí odpovídat podmínkám pro použití na dané platformě.
2. je-li současně použit QUERYSTRING, může dojít ke kontradikci (vstupním podmínkám nevyhoví žádný záznam).

(zpět na seznam ovladačů)

IGNORELISTLENDIFF

Blokování zrušení přenosu záznamu při použití ovladače USEFIELDLIST v případě, že se liší počet položek zdrojové a cílové tabulky.

Tvar zápisu:

[IGNORELISTLENDIFF]

Ovladač brání zákazu přenosu záznamu v případě, kdy se předpokládá shoda cílové a zdrojové struktury, jenže tyto se liší v několika položkách (typicky při úpravě struktury v rámci inovace). Standardní použití ovladače USEFIELDLIST v takovém případě vygeneruje chybu.

(zpět na seznam ovladačů)

INDEXFIELDS

Povinný ovladač při mixingu datových struktur typu "master-slave". Popisuje hlavní indexy řídících a závislých tabulek.

Tvar zápisu:

[INDEXFIELDS]:dmIndex;dsIndex;smIndex;ssIndex

Parametry ovladače jsou platné názvy indexových položek daných tabulek, kde je

Ovladač se používá v kombinaci s ovladači SLAVETABLES a SLAVELINKS.

V mnoha případech mixingu se nezpracovávají jen jednoduché záznamy, ale struktury typu "one-to-many", kde jednomu záznamu v hlavní (master) tabulce odpovídá několik záznamů v závislé (slave) tabulce. K zaručení exkluzivity se dále často používají položky typu "unique_identifier", jejichž hodnotu generuje databázový stroj. Tyto položky nelze editovat a exkluzivitu zajišťuje nekonečně rostoucí řada, takže se žádná hodnota nevyskytne dvakrát a není zaručena pravidelná relace mezi sousedními záznamy. Takto definovaná struktura klade na datový mixer značné nároky; mixing probíhá v několika kolech a musí být zaručena korektní náhrada všech indexů. Je proto nezbytné, aby měl mixer k dispozici informaci o tom, kde indexy hledat.

POZOR: tato verze mixeru nepodporuje složené indexy.

(zpět na seznam ovladačů)

INSERTONFIELDS

Určuje seznam položek, podle nichž bude určena resp. ověřena exkluzivita vkládaného záznamu v cílové struktuře.

Tvar zápisu:

[INSERTONFIELDS]:polozka1;polozka2; .. polozka6

Parametry ovladače jsou platné názvy položek, vyskytujících se v cílové tabulce. Počet položek je volitelný v rozsahu 1 až 6. Odpovídající zdrojová položka je určena ovladačem MIXVALUE nebo - u shodných tabulek - ovladačem USEFIELDLIST.

Tento ovladač je rozhodujícím řídícím prvkem pro vkládání záznamů do cílové struktury, neboť zabraňuje duplicitám a okpakovaným vkladům. Je-li při mixingu nalezen cílový záznam, jehož hodnoty v zadaných položkách jsou shodné s položkami zpracovávaného zdrojového záznamu, nebude zdrojový záznam zpracován.

POZOR:
1. položky musí být zvoleny tak, aby skutečně nebylo možno vložit do cílové struktury duplicitní záznam. Obvykle jsou proto použity položky s charakterem klíče (indexu).
2. Exkluzivita zdrojového záznamu se předpokládá, ale není povinná - v případě nesplněného předpokladu bude vložen pouze první zdrojový záznam, který vyhověl podmínce.

(zpět na seznam ovladačů)

MIXFIELD

Předepisuje způsob míchání položek - definuje, do které cílové položky má být zapsána hodnota zadané zdrojové položky.

Tvar zápisu:

[MIXFIELD]:cilova_polozka;zdrojova_polozka

Prvním parametrem ovladače je platný název položky v cílové tabulce. Druhým parametrem je platný název položky ze zdrojové tabulky.

Tento ovladač je rozhodujícím řídícím prvkem pro míchání, neboť umožňuje přenos mezi různými položkami. Předpokládá se, že jsou obě položky stejného datového typu, ale typová shoda není povinná; v případě odlišnosti se zapisuje hodnota odpovídající převodu původní hodnoty přes proměnnou typu VARIANT. Alternativním ovladačem je MIXVALUE, který definuje zápis konstatních hodnot zvoleného typu.

Všechny přenášené cílové položky včetně řídících (to jest uvedených v seznamech EDITONFIELDS a/nebo INSERTONFIELDS) musí být v receptuře jmenovitě uvedeny pomocí samostatných ovladačů. Je možno definovat předpis pro maximálně 200 položek. U shodných tabulek lze zápis zjednodušit použitím ovladače USEFIELDLIST.

POZOR: nechtěná neshoda typu může způsobit zkreslení míchaných dat.

(zpět na seznam ovladačů)

MIXVALUE

Předepisuje způsob míchání hodnot - definuje, do které cílové položky má být zapsána přímo zadaná konstantní hodnota daného typu.

Tvar zápisu:

[MIXVALUE]:cilova_polozka;hodnota;typ_hodnoty

Prvním parametrem ovladače je platný název položky v cílové tabulce. Druhým parametrem je řetězec odpovídající platnému zápisu hodnoty zvoleného typu. Třetím parametrem je řetězec popisující typ vkládané hodnoty. Tato verze mixeru podporuje tyto tvary parametru:

Výsledný formát v cílové tabulce je dán její strukturou. Hodnoty se vkládají pomocí proměnné typu VARIANT.

Alternativním ovladačem je MIXFIELD, který definuje zápis obsahu určené položky zdrojového záznamu.

Všechny přenášené cílové položky včetně řídících (to jest uvedených v seznamech EDITONFIELDS a/nebo INSERTONFIELDS) musí být v receptuře jmenovitě uvedeny pomocí samostatných ovladačů. Je možno definovat předpis pro maximálně 200 položek. U shodných tabulek lze zápis zjednodušit použitím ovladače USEFIELDLIST.

POZOR: nechtěná neshoda typu může způsobit zkreslení míchaných dat.

(zpět na seznam ovladačů)

QUERYINLIST

Umožňuje vložit do klauzule WHERE příkazu SELECT podmínku založenou na porovnání zadané položky zdrojové tabulky s obsahem seznamu hodnot; seznam je načten z externího textového souboru.

Tvar zápisu:

[QUERYINLIST]:polozka;jmeno_souboru;typ_zpracování

Prvním parametrem ovladače je platný název položky ze zdrojové tabulky. Druhým parametrem je řetězec obsahující úplnou cestu k textovému souboru obsahujícímu seznam hodnot. Třetí parametr určuje, jak budou údaje v seznamu zpracovány: pro parametr QUOTED budou hodnoty zpracovávány jako textové (v apostrofech), pro jiný text parametru budou hodnoty zpracovávány jako číselné (bez apostrofů).

Ovladač spolupracuje s ovladači QUERYSTRING a QUERYVARDATE, ale může být použit i samostatně (v tom případě je jím vytvořená podmínka jedinou podmínkou klauzule WHERE příkazu SELECT).

(zpět na seznam ovladačů)

QUERYSTRING

Nastavuje omezení pro výběr zpracovávaných záznamů ze zdrojové tabulky.

Tvar zápisu:

[QUERYSTRING]:strukturovany_SQL_prikaz

Parametrem ovladače je textový řetězec, který lze interpretovat jako platný SQL příkaz SELECT pro zdrojovou tabulku. Obecně je použit pro složitější kritéria výběru; pro jednodušší předpis lze použít ovladač FILTERSTRING. Při současném použití obou ovladačů se filtr zpracuje jako první.

POZOR:
1. struktura příkazu musí odpovídat podmínkám pro použití na dané platformě. Některé funkce nebo výrazy proto nemusí fungovat a vyvolají přerušení zpracování dané receptury (zhusta platí pro sešity MS Excel)
2. mixer zpracuje výhradně SQL příkaz typu SELECT. Řetězec obsahující jiné příkazy (především UPDATE, INSERT, DELETE nebo DROP) vyvolá přerušení zpracování receptury.
3. je-li současně použit FILTERSTRING, může dojít ke kontradikci (vstupním podmínkám nevyhoví žádný záznam).

(zpět na seznam ovladačů)

QUERYVARDATE

Umožňuje vložit do klauzule WHERE příkazu SELECT podmínku založenou na zadané položce zdrojové tabulky a na hodnotách odvozených od aktuálního data a času.

Tvar zápisu:

[QUERYVARDATE]:polozka;typ_urceni_podminky

Prvním parametrem ovladače je platný název položky ze zdrojové tabulky. Druhým parametrem je řetězec popisující typ konstrukce podmínky. Tato verze mixeru podporuje tyto tvary parametru:

Ovladač spolupracuje s ovladači QUERYSTRING a QUERYINLIST, ale může být použit i samostatně (v tom případě je jím vytvořená podmínka jedinou podmínkou klauzule WHERE příkazu SELECT).

POZOR: platforma SQL používá pro zpracování údajů typu datum a čas odlišnou výchozí hodnotu než platformy MDB/XLS. Záměna parametru může způsobit posun podmínky o dva dny vpřed nebo vzad a zkreslit tak potřebný výběr.

(zpět na seznam ovladačů)

SLAVELINKS

Povinný ovladač při mixingu datových struktur typu "one-to-many". Určuje vazební indexy pro připojení záznamů závislých (slave) tabulek k záznamu řídící (master) tabulky.

Tvar zápisu:

[SLAVELINKS]:dmLink;dsLink;smLink;ssLink

Parametry ovladače jsou platné názvy položek daných tabulek, kde je

Ovladač se používá v kombinaci s ovladači SLAVETABLES a INDEXFIELDS.

V mnoha případech mixingu se nezpracovávají jen jednoduché záznamy, ale struktury typu "one-to-many", kde jednomu záznamu v hlavní (master) tabulce odpovídá několik záznamů v závislé (slave) tabulce. Korektní vazbu závislých záznamů na řídící záznam zajišťuje obvykle speciální vazební položka závislé tabulky, ve které je uložen index záznamu hlavní tabulky. Pro korektní smíchání vyžaduje mixer informaci o těchto položkách jak u zdrojové, tak u cílové datové struktury.

POZOR: tato verze mixeru nepodporuje složené vazební indexy.

(zpět na seznam ovladačů)

SLAVETABLES

Povinný ovladač při mixingu datových struktur typu "master-slave". Informuje mixer o názvech závislých (slave) tabulek.

Tvar zápisu:

[SLAVETABLES]:cilova_slave_tabulka;zdrojova_slave_tabulka

Parametry ovladače jsou platné názvy daných tabulek.

Ovladač se používá v kombinaci s ovladači SLAVELINKS a INDEXFIELDS.

V mnoha případech mixingu se nezpracovávají jen jednoduché záznamy, ale struktury typu "one-to-many", kde jednomu záznamu v hlavní (master) tabulce odpovídá několik záznamů v závislé (slave) tabulce. Pro korektní smíchání vyžaduje mixer názvy slave tabulek. Vzhledem k tomu, že struktura "one-to-many" musí být použita jak v cílové, tak ve zdrojové databázi, obsluhuje předání těchto parametrů jediný ovladač.

(zpět na seznam ovladačů)

SOURCECATALOG

Povinný ovladač pro SQL zdrojovou strukturu. Určuje datovou kolekci (katalog), z níž se bude číst.

Tvar zápisu:

[SOURCECATALOG]:jmeno_katalogu

Ovladač se uplatní pouze při čtení ze struktur SQL a MySQL (v kombinaci s ovladačem SOURCEDATASOURCE), pro čtení z jiných datových struktur nemá význam. Parametrem je textový řetězec udávající platné jméno kolekce.

POZOR: ovladač se uplatní pouze při čtení z databází SQL mebo MySQL.

(zpět na seznam ovladačů)

SOURCEDATASOURCE

Povinný ovladač. Určuje zdrojový SQL server, soubor s databází MS Access (soubor MDB) nebo se sešitem MS Excel (soubor XLS).

Tvary zápisu:

[SOURCEDATASOURCE]:jmeno_sqlserveru[\instance |,port]][;login;heslo[;portMySQL;vychozi_katalogMySQL]]
[SOURCEDATASOURCE]:uplna_cesta\mdb_soubor
[SOURCEDATASOURCE]:uplna_cesta\xls_soubor

Parametrem je textový řetězec, jehož sekce oddělené středníkem použije mixer při konstrukci řetězce ConnectString.
"Jmeno_sqlserveru" je buď platný alias v síti LAN/WAN, nebo existující IP adresa; v případě potřeby lze tuto sekci rozšířit o název instance nebo port.
Je-li zdrojem dat MySQL, použijí se (obvykle povinně) sekce "portMySQL" a "vychozi_katalogMySQL".
Při zápisech do struktur SQL se ovladač uplatní pouze v kombinaci s ovladačem SOURCECATALOG.

"Uplna_cesta" je platná a funkční cesta k souboru MDB nebo XLS ve vztahu k pracovnímu adresáři mixeru.

POZOR: vzhledem k zabezpečení dat není vhodné uvádět v receptuře login a heslo; při čtení z databází SQL se předpokládá přístup s využitím integrovaného zabezpečení sítě.

(zpět na seznam ovladačů)

SOURCETABLE

Povinný ovladač. Určuje datovou tabulku nebo oblast ve zdrojové datové struktuře.

Tvar zápisu:

[SOURCETABLE]:jmeno_tabulky_nebo_oblasti

Ve strukturách SQL nebo MDB je parametrem ovladače textový řetězec definující platné jméno existující tabulky v databázi. V sešitech MS Excel je parametrem textový řetězec definující platný název pojmenované datové oblasti (doporučeno) nebo listu (je-li to nezbytné). Bližší informace o práci s pojmenovanou datovou oblastí obsahuje nápověda aplikace MS Excel.

POZOR: je-li při čtení ze sešitu MS Excel použit list, může dojít k nespecifikovaným výběrům dat nebo chybám, protože list obecně nemusí obsahovat data ve formě regulérní tabulky. Krom toho je nutno název listu pro použití v mixeru upravit (doplnit znak "$" a uzavřít celý název do hranatých závorek).

(zpět na seznam ovladačů)

SOURCETIMEOUT

Nastavuje časový limit pro připojení ke zdrojové datové struktuře.

Tvar zápisu:

[SOURCETIMEOUT]:pocet_sekund

Pro vzdálená připojení ke zdrojové databázi je někdy třeba zvýšit hodnotu povoleného časového limitu. Parametr ovladače je číslo udávající hodnotu v sekundách.

Výchozí nastavení limitu je 60 sekund.

(zpět na seznam ovladačů)

SOURCETTYPE

Povinný ovladač. Určuje použitou platformu zdrojové datové struktury.

Tvar zápisu:

[SOURCETYPE]:typ

"typ" je tříznakový řetězec nabývající hodnot

Jiné hodnoty nejsou zatím povoleny, nevylučuje se však rozšíření v dalších verzích datamixeru.

(zpět na seznam ovladačů)

TIMETABLECONTROL

Umožňuje zadat podmínku pro řízené spouštění receptury v daném čase.

Tvar zápisu:

[TIMETABLECONTROL]:typ_casoveho_planu;vymezovaci_retezec

Prvním parametrem ovladače je tříznakový řetězec, určující typ použitého časového plánu. Tato verze mixeru rozeznává následující plány:

Druhým parametrem ovladače je řetězec vlastního předpisu plánu. Tento řetězec používá výběrový formát umožňující kombinaci výčtu a intervalů "od-do" ve tvaru N1,N2-N3,....

V jedné receptuře lze použít až čtyři různé časové plány; míchání bude spuštěno pouze v případě, že aktuální den resp. hodina vyhovuje průniku zadaných podmínek. Příklady konkrétního nastavení jsou uvedeny zde.

(zpět na seznam ovladačů)

UNUSEDFIELDS

Definuje seznam položek, které nebudou použity při přenosu dat mezi shodnými tabulkami, využívajícím seznam všech položek (pomocí ovladače USEFIELDLIST.

Tvar zápisu:

[UNUSEDFIELDS]:polozka1;polozka2..polozkaN

Pro přenos kompletních záznamů mezi tabulkami s identickou strukturou lze použít kompletní seznam položek, který je součástí výbavy tabulky. Použití tohoto seznamu povoluje použití ovladače USEFIELDLIST. Je-li třeba přenosu hodnot z některých položek kompletního seznamu zabránit, použije se ovladač UNUSEDFIELDS.

Parametrem ovladače je platný seznam položek tabulky. Ovladač může být v receptuře použit vícenásobně, celková délka seznamu je omezena na 50 položek.

(zpět na seznam ovladačů)

USEDUMP

Ovladač povoluje zobrazení podrobného výpisu přenosu s vyhodnocením operace u jednotlivých záznamů (dump).

Tvar zápisu:

[USEDUMP]

Podrobný výpis obsahuje výsledný kód operace pro každý záznam vybraný k mixingu. Informace o každém záznamu zaberou jeden řádek souboru výpisu, takže jde o prostorově poměrně náročnou operaci. Ve výchozím stavu je proto tento ovladač neaktivní.
Pro identifikaci záznamu je použito pořadové číslo záznamu ve výběru. Je-li třeba identifikaci zpřesnit, je možno zadat vypsání libovolně zvolené položky záznamu. K tomuto zadání slouží ovladač DUMPFIELDNAME.

(zpět na seznam ovladačů)

USEFIELDLIST

Ovladač povoluje při přenosu dat mezi tabulkami se shodnou strukturou použití kompletního seznamu položek, který je součástí tabulky.

Tvar zápisu:

[USEFIELDLIST]

Je-li nutno zabránit přenosu dat z některých položek, použije se ovladač UNUSEDFIELDS. Pro změnu hodnoty některé položky se použije ovladač MIXFIELD a/nebo MIXVALUE.

Je-li cílová struktura od zdrojové nepatrtně odlišná (typicky po inovaci a přidání resp. odebrání několika položek), použije se ovladač IGNORELISTLENDIFF , který zabrání chybovému hlášení o neshodě struktury a následnému zrušení přenosu dat.

(zpět na seznam ovladačů)

(zpět na začátek dokumentu)

Receptury (příklady)

Receptury umožňují pestrou škálu manipulací s daty v odlišných strukturách s přihlédnutím k vnějším podmínkám. Tato část textu pouze nabízí několik jednoduchých příkladů; skutečnou sílu nástroje ocení uživatel teprve poté, co si vytvoří a vyzkouší vlastní postupy při řešení vlastních úkolů.

(příklady jsou voleny tak, aby umožnily co nejlépe objasnit funkci jednotlivých ovladačů; modelové situace proto nemusí být příliš pravděpodpobné...).

Příklad 1

Předpokládejme existenci firemní SQL databáze, umístěné na serveru FSERVER v katalogu FIRMBASE. Součástí databáze je i tabulka FB_ZAMESTNANCI obsahující souhrnné informace o zaměstnancích. Záznamy jednotlivých zaměstnanců jsou indexovány pomocí položky Z_INDEX, která je textová a má tvar NN999, kde "NN" je dvouznakový symbol útvaru a "999" osobní číslo. Tabulka obsahuje kromě jiných položek i textovou položku AKTUALNI_HODNOCENI. Položka obsahuje stručné vyjádření vedoucího pracovníka k příslušnému zaměstnanci.

Předpokládejme dále, že jednotliví vedoucí pracovníci používají odlišné systémy vedení pesonálních agend a že je ve firmě obvyklé převádět hodnocení do firemní databáze čtvrtletně, vždy první středu v prvním měsíci nového čvtrtletí. Pro zabezpečené přenosy dat je použit datamixer, spouštěný plánovačem úloh 1x denně.

Datamixer v daném termínu aktualizuje položku AKTUALNI_ HODNOCENI pomocí samostatné receptury pro přenos dat z počítače každého vedoucího pracovníka. Přiklad ukazuje recepturu pro přenos dat od vedoucího pracovníka, který používá počítač VED1 a údaje si vede v sešitě MS Excel uloženého ve sdílené složce AGENDA. Sešit je uložen v souboru PERSONAL.XLS, charakteristiky jsou zapsány ve formě tabulky v pojmenované datové oblasti MI_LIDE. Tabulka obsahuje opět personální index zaměstnance a text hodnocení, jednotlivé sloupce ale nesou název OSCISLO a TEXTHOD. Indexy zaměstnanců útvaru řízeného tímto vedoucím pracovníkem začínají znaky TU.

Receptura pro aktualizaci záznamů v tabulce zaměstnanců může mít například tuto podobu:

; čtvrtletní přenos hodnocení VED1 >> FIRMBASE

; sekce parametrů pro připojení

[SOURCETYPE]:XLS
[SOURCEDATASOURCE]:\\VED1\AGENDA\personal.xls
[SOURCETABLE]:MI_LIDE
[DESTTYPE]:SQL
[DESTDATASOURCE]:FSERVER
[DESTCATALOG]:FIRMBASE
[DESTTABLE]:FB_ZAMESTNANCI

; sekce parametrů pro spuštění pouze v zadané dny

; výběr 1. měsíce ve čtvrtletí
[TIMETABLECONTROL]:MOY;1,4,7,10
; výběr dne v týdnu (středy)
[TIMETABLECONTROL]:DOW;3
; omezení na první výskyt vybraného dne v měsíci
[TIMETABLECONTROL]:DWM;1

; sekce parametrů mixingu - aktualizace hodnocení

; omezení vstupu na záznamy pracovníků útvaru (doporučeno)
[QUERYSTRING]:SELECT * FROM MI_LIDE WHERE Z_INDEX like 'TU%'
; určení odpovídajícího cílového záznamu via index
[EDITONFIELDS]:Z_INDEX
; vlastní předpis pro mixing
[MIXFIELD]:Z_INDEX;OSCISLO
[MIXFIELD]:AKTUALNI_HODNOCENI;TEXTHOD

; pojistka proti zápisu chyb

[ALWAYSROLLBACK]

Příklad 2

Předpokládejme existenci dvou MS Access databází DIVIZE.MDB a CENTRALA.MDB, které mají shodné struktury a jsou umístěny v síti LAN na serverech s IP adresami 192.168.7.1 a 192.168.1.30 ve složkách EKONOMIKA. V databázích jsou mimo jiné evidovány faktury, tvořené dvojicí tabulek - řídící (master) tabulkou FA (obsahuje souhrnné fakturační údaje) a závislou (slave) tabulkou FAPOL (obsahuje fakturované položky). V první dekádě každého měsíce je třeba z divize do centrály denně zapisovat nově vystavené faktury, jejichž datum uskutečněného zdanitelného plnění, uložené v položce DUZP, padá do předchozího měsíce. Indexy všech tabulek jsou řešeny automaticky generovanou položkou typu "unique_identifier" a jmenují se shodně ID. Exkluzivitu každé faktury zajišťuje položka FAK_CIS, začínající znakem "V" pro faktury vydané a "P" pro faktury přijaté. Vazební položka závislé tabulky se jmenuje REFAG (více o indexování zde). Při zápisu se nesmí přenášet položky POL1 a POL2, do položky KONCOVA_CENA je třeba zapsat obsah položky ODHAD_CENY, do položky PORADOVE_CISLO_UCTU je třeba vložit číselnou hodnotu 18.

Pro zabezpečené přenosy dat je použit datamixer, spouštěný plánovačem úloh 1x denně.

Receptura pro vložení nově vydaných faktur může mít například tuto podobu:

; přenos vydaných faktur z divize do centrály

; sekce parametrů pro připojení

[SOURCETYPE]:MDB
[SOURCEDATASOURCE]:\\192.168.7.1\EKONOMIKA\divize.mdb
[SOURCETABLE]:FA
[DESTTYPE]:MDB
[DESTDATASOURCE]:\\192.168.1.30\EKONOMIKA\centrala.mdb
[DESTTABLE]:FA

; sekce parametrů pro spuštění pouze v zadané dny

; omezení na první dekádu v měsíci
[TIMETABLECONTROL]:DOM;1-10

; sekce pro popis vazeb

[SLAVETABLES]:FAPOL;FAPOL
[SLAVELINKS]:ID;REFAG;ID;REFAG;STVNUMBER
[INDEXFIELDS]:ID;ID;ID;ID

; sekce parametrů mixingu

; omezení vstupu na faktury vydané)
[QUERYSTRING]:SELECT * FROM FA WHERE FAK_CIS like 'V%'
; rozšíření příkazu SELECT na podmínku "DUZP"
[QUERYVARDATE]:DUZP;PREVMONTH_MDB
; definice položky určující exkluzivitu
[INSERTONFIELDS]:FAK_CIS
; použití komplexního seznamu a seznamu zakázaných položek
[USEFIELDLIST]
[UNUSEDFIELDS]:POL1;POL2
; vlastní předpis pro mixing
[MIXFIELD]:KONECNA_CENA;ODHAD_CENY
[MIXVALUE]:PORADOVE_CISLO_UCTU;18;STVNUMBER

; pojistka proti zápisu chyb

[ALWAYSROLLBACK]

(zpět na seznam příkladů)

(zpět na začátek dokumentu)

Hlášení a chybové kódy

Veškeré operace mixeru jsou vyhodnocovány a dokumentovány v textovém souboru - logu. Pro zmenšení objemu výstupních dat jsou hlášení kódována. Následující část textu popisuje jednotlivé kódy, použité v jednotlivých sekcích výpisu, odpovídajících fázím zpracování.

SHAKE

Souhrnný záznam zpracování receptury. Základní výpis má tvar

SHAKE jmeno_sablony E/I ERecCount/IRecCount rec(s) SRecCount mixed [code]

kde je

Stavový kód může nabývat následujících hodnot nebo jejich kombinací:

V průběhu mixingu jsou vypisovány ("dump") kódy vnořených operací. Pro sekce "load" a "open" je uváděn jediný souhrnný chybový kód. V případě chyb edice nebo vkladu je možno použitím ovladače USEDUMP výpis rozšířit na chybové kódy pro každý zpracovávaný záznam. Ve výchozím nastavení je záznam specifikován číslem; užítím ovladače DUMPFIELDNAME lze specifikaci upřesnit vhodně zvolenou položkou záznamu.

(zpět na seznam sekcí)

LOAD

(zpět na seznam sekcí)

OPEN

(zpět na seznam sekcí)

E − DUMP

(zpět na seznam sekcí)

I − DUMP

(zpět na seznam sekcí)

Příklady záznamů o mixingu

Příklad záznamu úspěšného mixingu - vklad 961 záznamů podle receptury TEST.DXT:

DataMixer started at 13.01.2009 17:59:37 [USER mode]
C:\DataShaker\DataFiles\testlist.dxl selected
1 template(s) added into list
end of shake
shake test.dxt: E/I 0/961 rec(s), 961 mixed [00]
end of shake
DataMixer stopped at 13.01.2009 18:02:23
DataMixer close at 13.01.2009 18:02:23
*
#

Příklad záznamu neúspěšného mixingu - nepodařilo se připojit zdrojovou strukturu:

DataMixer started at 13.01.2009 17:57:17 [USER mode]
C:\DataShaker\DataFiles\testlist.dxl selected
1 template(s) added into list
shake test.dxt: E/I 0/0 rec(s), 0 mixed [02]
dump: load 00, open 01
end of shake
DataMixer stopped at 13.01.2009 17:57:48
DataMixer close at 13.01.2009 17:57:48
*
#

(zpět na seznam sekcí)

(zpět na začátek dokumentu)

Kredity a upozornění

GQS DATAMIXER tool je nástroj vyvinutý jako volitelné příslušenství komplexních modulárních systémů GrandMaster, MeSaQ a GQS; je zjednodušenou verzí nástroje DATASHAKER.

2009, 2010 © dyXoft, W—soft

Veškerá práva jsou chráněna příslušnými normami.

POZOR: DATAMIXER je vysoce variabilní nástroj určený profesionálům v oblasti užívání a správy databází. Zásadně se nedoporučuje používat neověřené receptury na ostrých datech. Vzhledem ke koncepci nástroje se autoři zříkají jakékoliv zodpovědnosti za změny nebo ztráty dat, způsobené jeho nevhodným použitím.