
Domino a relační databáze - DECS - detailní nastavení Activities 
Petr Šantrůček (ELAT), 03.23.2010
|
Kategorie: Články\Lotus Notes
Opět použijeme cvičnou db Northwindtraders. Projdeme si postupně všechna nastavení ve Virtual Fields Activity dokumentu v administrační db DECSu. Postupně projdeme nastavení dostupná v Real Time Activity dokumentu databáze DECS Administrator.
Sekce Options – General Options
Monitor Order – specifikuje pořadí “spouštění” aktivity. Tím lze efektivně zajistit, že dokumenty, které na sobě vzájemně závisí co se dotahování dat z db (nebo naopak odesílání dat do SQL db) týká.
Max. Connections – počet spojení do relační databáze. Zvýšení počtu spojení zajistí vyšší výkon a umožní rychlejší zpracování dat v případě práce většího počtu uživatelů s databází. Daní za výkon je větší spotřeba zdrojů.
Form Override – zapnutí zajistí, že aktivita nebude monitorovat pouze specifikovaný formulář v Notes db, ale bude sledovat dokumenty v Notes db bez ohledu něj.
Filter Formula – specifikuje klasický filtr pro výběr dokumentů pro zpracování.
Data Integrity – zde se určuje chování DECSu vpříadě, že sobě si odpovídající pole v Notes db a relační db nemají stejný format, co se např. počtu desetinných míst týká (nebo datetime položka je v jednom případě jen datum a ve druhém obsahuje i časový údaj). Také zde můžete zajistit ořezání textových položek z Notes dokumentu, pokud jsou delší než odpovídající pole v SQL db (“Allow precision loss and truncation of text). Nebo naopak můžete veškeré takové operace zakázat (první volba “Prevent both precision loss and data loss”), pak ovšem v případě, že položky vzájemně nejsou úplně stejné, aktivita záznam nezpracuje a DECS zapíše do logu chybu.
Trim Trailing Spaces – v případě, že v externích datech jsou v polích na konci polí volné mezery, mate možnost zapnout jejich “odřezání”. Zejména v případě klíčových polí je to užitečné, protože volné mezery na konci klíčového pole z relační db mohou způsobit, že DECS nedokáže spárovat příslušný Notes document s odpovídajícím zázname relační db.
New Line Delimiter for Connection – specifikuje oddělovač nového řádku odpovídající @Newline v Notesech (jsou jen dvě možnosti <LF> nebo <CR>+<LF>)
Data Storage – specifikuje, zdali se budou data z externí database ukládat fyzicky i polích Notes dokumentu. Klíčová pole jsou v Notes dokumentu uložena vždy. Režim, kdy se neklíčová pole neukládají v Notes db, šetří proctor na disku, na druhou stranu přináší ale nevýhodu, že při vypnutém DECSu či práci s offline replikou vidíte v Notes dokumentu pouze prázdná pole.
Scheduling Option – specifikuje režim spouštění activity – ručně (Manual), při startu tasku DECS (Automatic) nebo ve specifikovaný čas v intervalu hodin od-do (Custom)
Sekce Event Options – Create
Všechny položky jsou nepovinné! A to platí i o dalších volbách pro události Open, Update a Delete.
Pre-Create Formula – pole pro @formuli, která se provede PŘED odesláním dat z Notes dokumentu do relační db.
Stored Procedure – provede uloženou proceduru v externí relační databázi, pole z Notes dokumentu jsou zaslána jako parametry procedury.
Stored Procedure Output – povoluje návrat hodnot z uložené provedury a jejich namapování ke konkrétním polím v Notes dokumentu (viz sekce “Stored Procedure Output Mapping” na screenshotu).
Sekce Options – Open
Pre-Open Formula - @formule, která se provede před získáním dat z ext. database (před zasláním příkazu SELECT)
Post-Open Formula – analogicky jde o formuli, která se provede po dotažení dat z ext. db (po provedení příkazu SELECT)
Stored Procedure – uložená procedura v ext. db (parametrem jsou všechna klíčovápole), jako návratové hodnoty se vrací všechna klíčová a neklíčová pole
Missing External Records – definuje chování DECSu v případě otevření dokumentu, k němuž chybí odpovídající záznam v relační db. DECS buď vytvoří záznam pomocí příkazu INSERT do ext. db (Create Record) nebo vygeneruje chybu do logu (Generate Error) nebo bude tuto skutečnost ignorovat (Ignore).
Sekce Options – Update
Pre-Update Formula - @formule, která se provede před aktualizací dat v relační db (tj. Před odesláním příkazu UPDATE do ext. db)
Stored Procedure – k aktualizaci dat do ext. db se použije uložená procedura v relační db, jako parametry se použijí pole z Notes dokumentu
Stored Procedure Output – při zapnutí se objeví v konfiguraci sekce “Stored Procedure Output Mapping” (stejně jako výše uvedený screenshot události Create), kde namapujete pole z Notes docu a relačního záznamu
Conflict Detection – zapnutím vynutíte kontrolu toho, zdali ot otevření dokumentu v Notes db (a dotažení příslušných hodnot z externího zdroje) nedošlo na straně realční db ke změně tohoto záznamu. Pokud ano, update neproběhne a je generována chyba.
Field Level Updates – při zapnutí této volby jsou příkazem UPDATE do relační db aktualizována pouze změněná pole z Notes dokumentu. Hodí se to také v případě, že v příslušném Connection dokumentu DECSu necháte sledovat pouze vybraná pole z externí db.
Key Field Updates – tato volba definuje chování DECSu v případě aktulizace klíčových polí – buď je změna ignorována a změny jsou provedeny pouze v Notes dokumentu (volba „Ignore“) nebo je změna zablokována (volba „Block“) a nedojde ke změně ani v Notes db ani v externí db nebo je provedena sekvence operací DELETE a INSERT na straně relační db – toto skýtá nebezpečí, pokud je v relační db nad tabulkou trigger spouštění např. při vložení nového záznamu, že bude v lepším případě generována chyba, v horším se někde objeví nekonzistence dat.
Sekce Options – Delete
Pre-Delete Formula – @formule, která se provede před výmazem záznamu z relační db (tj. před odesláním příkazu DELETE FROM)
Stored Procedure – výmaz záznamu v relační db zajistí externí uložená procedura, parametrem jsou klíčová pole.
Tím jsme vyčerpali nastavení aktivit v DECS Administratorovi. Nyní je to jen na vás, abyste si vyzkoušeli, co všechno jste schopni pomocí Domino Enterprise Connection Service realizovat. Protože nejsem developer, tady pro mne jako pro administrátora končí využití DECSu, ale s pomocí jen trochu šikovného programátora lze možnosti tohoto nástroje podstatně rozšířit. Pokud by byl zájem o pokračování v tomto smyslu, napište, pokusil bych se pak domluvit s některým z kolegů vývojářů, aby mi pomohl.
Seznam komentářů (0)
| Přidat komentář |
