Úvod

ClueMaker Configurator, dále jen Konfigurátor, je aplikace, která slouží k vytvoření nebo změnám definice pracovního prostředí pro ClueMaker. Pracovního prostředí obsahuje nastavení datových zdrojů a definuje entity a vazby mezi nimi. Umožňuje také uložení předdefinovaného hledání a reportů.

Základní termíny

[EN/CZ]

  • Attribute/Atribut: - datové pole, například datum, příjmení, číslo účtu.
  • Entity/Entita: - obecně množina informací o určitém subjektu: osoba, účet, firma, smlouva …. V grafu může jít jak o uzel, tak i o vazbu.
  • Node/Uzel: Základní článek v grafu, představuje datovou entitu (osobu, firmu, účet….) pro kterou hledáme vazby na sousedy.
  • Link/Vazba: Výraz pro spojení mezi dvěma uzly. Nemusí jít jen o technické spojení, vazba může být nositelem celé řady atributů, podobně jako uzel (například platba jako vazba mezi uzly – účty, bude obsahovat částku, měnu, datum a další údaje).
  • Label/Popisek: Text doprovázející grafické zobrazení entity. Může obsahovat jeden nebo více atributů entity, statický text (pro všechny entity stejného typu), nebo kombinaci obojího.

Předpoklady

Konfigurátor ClueMaker využívají administrátoři ClueMakeru, kteří potřebují informace o přístupu na datový zdroj, který chtějí využívat (jméno serveru (host name) a databáze, uživatele a přístupové heslo do DB) a znalost struktury dat (DB schéma) pro definici entit. Základní znalost SQL je také potřebná.

Definice pracovního prostředí

Definice pracovního prostředí jsou ukládány jednak jako individuální soubory s příponou .sws, nebo uloženy do databáze. Pracovní prostředí je vždy zvoleno na začátku práce s ClueMakerem, pro nějž nastaví zdroje dat, entity a vazby.

Definice nového prostředí

Pro tvorbu nového prostředí zvolíme funkci File>New. Nejdříve musíme definovat datový zdroj, nebo zdroje. Pak definujeme entity a jejich mapování. Jakmile máme entity, můžeme mezi nimi definovat vazby.

Průvodce tvorbou nového pracovního prostředí

Pro zjednodušení tvorby pracovního prostředí jsme připravili průvodce, který se pokusí Vámi zadaný datový zdroj zanalyzovat a najít potenciální kandidáty pro uzly a hrany. Díky tomu k vytvoření použitelného pracovního prostředí není potřebná podrobná znalost SQL.

Definice a analýza datového zdroje

Na začátek je potřeba vytvořit nový datový zdroj, který bude následně analyzován. Stačí zadat potřebné údaje pro vytvoření spojení k datovému zdroji a následně vyvolat analýzu datového zdroje pomocí tlačítka Run analysis.

Datasource definition
Definice datového zdroje pro průvodce

Využití návrhů nových entit a relací

Po proběhnutí analýzy datového zdroje je možné v dalších krocích průvodce využít návrhy možných uzlů a hran stisknutím tlačítka Create a výběrem požadované entity následném okně a potvrzením tlačítkem Create suggested.

Suggestions
Využití návrhů z průvodce

Nový datový zdroj

Na panelu Configuration klikneme pravým tlačítkem myši na Datasource a zvolíme New Datasource. Otevře se záložka New Datasource. Zde vyplníme jméno datového zdroje a vybereme jeho typ. Pak vyplníme všechna další pole. Obrázek 1 ukazuje příklad obrazovky s daty pro databázi PostgresSQL.

Datasource
Obrázek 1 - Definice datového zdroje

Po nakonfigurování otestujeme spojení pomocí tlačítka Test connection.

Uložíme konfiguraci: celá definice pracovního prostředí může být kdykoliv uložena klávesovou kombinací Ctrl-s.

Logovací databáze

Datový zdroj je možné používat také jako místo, kde se budou logovat akce uživatelů (např. spuštění reportu anebo hledání entity). Pro spuštění logování je potřeba označit, že jde o Logging database. Předpokladem je, aby uživatelé měli práva zápisu do dané tabulky. Databáze musí také obsahovat obdobnou tabulku, jako která by vznikla spuštěním následujícího skriptu v PostgreSQL databázi.

create table log (

log_key serial not null,

user_name varchar(100) null,

log_time timestamp not null,

log_level varchar(10) not null,

message varchar(512) not null,

constraint pk_log primary key (log_key)

);

Nová Entita

Pro vytvoření nové entity klikneme pravým tlačítkem myši ve stromovém menu na Entities. Zobrazí se záložka New Entity. Entitu pojmenujeme. Je také možné vyplnit její atributy, ale snazší je nechat je nyní prázdné a provést mapování na datový zdroj při kterém se atributy vyplní automaticky.

Mapování

Jakmile je entita vytvořena, objeví se v panelu Configuration ve stromovém menu. Rozbalíme Entities a naši novou entitu, klikneme pravým tlačítkem na Mappings a zvolíme Add new mapping.

New mapping
Obrázek 2 - Volba nového mapování

Na záložce nového mapování dáme mapování jméno a v poli Datasource vybereme datový zdroj.

V okně SQL zapíšeme platný dotaz SQL, který vybere z databáze atributy potřebné pro entitu. Obrázek 3 zobrazuje dotaz, který vybere vybrané atributy z tabulky Data. Tlačítkem Load attributes spustíme SQL dotaz a vrácené sloupce se uloží v sekci Attributes.

Sloupec Maps to Attribute pro dosud nemapované atributy zobrazí poznámku [Empty]. Pro ty, které byly již mapovány, jméno atributu v entitě.

Mapping pane
Obrázek 3 - Panel mapování

Atributy, které pro entitu nepotřebujeme, můžeme odstranit tak že je označíme kliknutím a použijeme tlačítko Remove.

Nyní použijme tlačítko Create missing attributes. Tato funkce vytvoří atributy pro danou entitu, které ještě nejsou definovány. Jméno a formát bude použit z datového zdroje, přesněji z SQL dotazu.

Ve sloupci Primary Key je možné zadefinovat sloupce, které jsou primárním klíčem entity. Pokud je PK pro entitu definován, je možné v aplikaci použít funkci Refresh - znovunačtení dat ze zdroje.

Vícečetné mapování

Jedna entita může mít více zdrojů dat, například několik tabulek ze stejné nebo i různých databází. Každý takový zdroj bude mít své mapování. Tato mapování nemusí mít shodné atributy. Jediná entita může mít některé atributy z jednoho zdroje a jiné z dalšího.

Dokončení definice entity

Zpět na panelu entity, v našem případě 'Company', můžeme změnit jméno a formát každého atributu. Pod tímto jménem se zobrazí v ClueMakeru. Zde také specifikujeme použití atributu v ClueMakeru, výběrem z nabídky Usage:

  • SEARCH - atribut je možné použít pro vyhledání dat při načtení dat z datového zdroje do ClueMakeru.
  • FILTER - atribut je možné použít k filtrování.
  • DETAIL – atribut se v ClueMakeru pouze zobrazí.
  • HIDDEN – technický atribut, který se v ClueMakeru nezobrazí.

Následujícím polím je třeba věnovat pozornost:

ID template je identifikátor entity. Pokud z datového zdroje načteme do ClueMakeru více záznamů se stejným identifikátorem, ClueMaker vytvoří pouze jeden výskyt (uzel) takové entity. Každý atribut takového uzlu bude obsahovat prvou nalezenou neprázdnou hodnotu na kterou system narazil při čtení záznamů. Do pole ID zapíšeme jméno atributu v hranatých závorkách, jak zobrazuje následující obrázek.

Label, tedy popisek je nepovinný text, který ClueMaker zobrazí pod ikonkou uzlu. Může to být hodnota atributu (jméno atributu zapíšeme v hranatých závorkách), text nebo kombinace obojího.

Entity def
Obrázek 4 - Definice entity.

Pro časovou osu je třeba definovat začátek a konec platnosti entity. Tyto údaje budou použity pro vkládání na časovou osu i timeline layout. Je třeba použít sloupce typu date.

Pro příští verze jsou připraveny pole šířka a délka. V příštích verzích bude ClueMaker rozšířen o mapové podklady, které budou tyto informace využívat.

Dál je potřeba zvolit ikonku, která bude entitu reprezentovat. Tlačítko Add vedle sekce Icons otevře dialog Entity Icon, zobrazený na dalším obrázku. Pomocí tlačítka Change Icon vybereme ikonku ze seznamu. Můžeme ji pojmenovat a vybrat barvu.

Icon
Obrázek 5 - Ikonka entity

Použití více ikonek pro entitu: ClueMaker může pro uzel entity použít různé ikonky, nebo různé barvy stejné ikonky, v závislosti na parametrech - hodnotách atributu daného uzlu (například status, výše obratu, věk). V takovém případě pro danou entitu definujeme několik ikonek a pro každou zadáme jednou nebo více podmínek. Obrázek 6 zobrazuje podmínky pro Contract, podle kterých se vybírá barva ikonky.

Icon condition
Obrázek 6 - Podmínky pro ikonky

ClueMaker bude pomínky vyhodnocovat odshora dolů a pro uzel použije prvou ikonu, u které jsou podmínky splněny.

Definice vazeb

Pro definici nové vazby ve stromovém menu pod jménem jedné z entit, které chceme vazbou propojit, klikneme pravým tlačítkem na Relations a zvolíme jednu ze dvou možností.

Vazba 1:N

Tento typ zahrnuje vazby s kardinalitou 1:1 a 1:N. Na panelu New relation dáme vazbě jméno. Musíme specifikovat zdrojovou (Source) a cílovou (Target) tabulku a v sekci Condition také atributy které zajistí spojení.

Pro přidání dalších podmínek vazby klikneme na +Add .

Pro zrušení podmínky použijeme symbol odpadkového koše napravo od ní.

Label, popisek je nepovinný text, který ClueMaker zobrazí s vazbou. Může to být atribut (jméno zapíšeme v hranatých závorkách), text nebo kombinace obojího.

1:N link
Obrázek 7 - Vazba 1:N

Vazba M:N

Tato vazba představuje kardinalitu M:N. V databázi se pro takový vztah využívá vazební tabulka, kterou je pro vazbu potřebné namapovat.

Jakmile vytvoříme a pojmenujeme vazbu (New relation … M:N), v okně Configuration na ni klikneme pravým tlačítkem a zvolíme Add new mapping.

Add mapping for relation
Obrázek 8 - Nové mapování pro vazbu

V naše příkladu tvoříme vazbu mezi entitami 'contract' a 'company', pomocí vazební tabulky 'supplier'. Mapování tabulky 'supplier' zobrazuje obrázek 9. Podrobnosti jak provést mapování jsou uvedeny v sekci Mapování.

Junction table mapping
Figure 9 - Mapování vazební tabulky 'supplier'

Nyní se vrátíme na panel naší nové vazby M:N. V sekci Attributes se nyní zobrazují atributy vazební tabulky přidané při jejím mapování. Doplníme další údaje vazby: volba Directed: True/False umožňuje nastavit vazbu jako orientovanou (True), dál musíme nastavit zdrojovou (source) a cílovou (target) entitu, v našem příkladu 'company' a 'contract'.

V sekci Conditions pod jménem zdrojové entity, zvolíme atribut entity (vlevo) a odpovídající atribut vazební tabulky (vpravo). Totéž provedeme na pravé straně pod jménem cílové entity, zde je atribut vazební tabulky vlevo a vpravo atribut cílové entity.

Musíme věnovat pozornost následujícím polím:

ID template musí být jednoznačný identifikátor vazby - atribut uvedený v hranatých závorkách, případně kombinace atributů. Pokud nejde o jednoznačný identifikátor, vazby se v grafu nezobrazí správně. Může dojít k zobrazení například jen jednoho vztahu, místo několika. Náš příklad používá ‘Id’ z vazební tabulky.

Label, popisek je nepovinný text, který ClueMaker zobrazí s vazbou. Může to být atribut (jméno zapíšeme v hranatých závorkách), text nebo kombinace obojího.

Junction table mapping
Obrázek 10 - Definice vazby M:N

Styly zobrazení vazeb

U vazeb je možné definovat styly jejich zobrazení, např. jejich tloušťku, typ čáry nebo barvu. Tyto styly jsou uplatňovány podle zadaných kriterií, a to tak, že se použije vždy první styl, u kterého jsou kritéria splněny. Kritéria se zadávají tak, že jméno atributu, kterého hodnota se bude používat, bude uzavřené v hranatých závorkách a námi zadaná hodnota bude v jednoduchých uvozovkách (tak jako na obrázku). Další operátory, které lze použít kromě (=) jsou menší/větší než (<, >, <=, >=) nebo CONTAINS (ověřuje, zda řetězcový atribut obsahuje daný podřetězec). Pomocí operatorů IN a NOT IN následovaných seznamem hodnot v závorkách je možné oveřovat, zda se atribut shoduje s některou (nebo neshoduje se žádnou) z hodnot. Je možné použít více podmínek a zřetězit je klíčovými slovy AND, OR a také je možné dát je do závorek. Kritéria je možné negovat, a to klíčovým slovem NOT následovaným kritériem v závorkách.

Link style definition
Obrázek 10.1 - Definice stylu vazby

Reporty

Tato kapitola popisuje kroky jak definovat a v pracovním prostoru uložit reporty, které pak spouštíme v ClueMakeru.

Vytvoření reportu

V panelu Configuration klikneme pravým tlačítkem na Reports a zvolíme New Report, tím se otevře okno New Report, zobrazené na následujícím obrázku.

New report window
Obrázek 11- Okno New report

1. V poli Name vyplníme jméno reportu pro ClueMaker.

2. Zaškrtávátko Entity slouží k rozlišení dvou typů reportů:

  • Pro reporty, spojené s určitou entitou v grafu, zaškrtneme Entity a entitu vybereme. Takový report se v ClueMakeru spouští přímo z okna grafu a je proveditelný jen tehdy, když se v grafu vyskytuje alespoň jedna instance této entity. Tento typ reportu je obvykle, ale nikoliv povinně, spojen s entitami grafu pomocí definovaných parametrů.
  • Reporty které nejsou spojeny s entitou nebudou mít značku Entity zaškrtnutou. V ClueMakeru se tyto reporty volají z hlavního menu pod Nástroje>Spustit report (Tools>Execute report). Výběr dat pro takový report se může provést pomocí parametrů, které ručně zadá uživatel.

3. V sekci Parameters můžeme definovat jeden nebo více parametrů které řídí výběr dat pro report.

4. V sekci Queries definujeme jeden nebo více dotazů, které generují report.

Následující obrázek zobrazuje okno reportu s vyplněnými údaji.

Report window filled
Obrázek 12 - Vyplněné okno reportu

Parametry reportu

Pro přidání parametru použijeme tlačítko Add vedle sekce Parameters.

Přidaný parametr označíme kliknutím a použijeme tlačítko Edit, které otevře okno pro nastavení parametru. Zde doplníme:

  • Pole Name - jméno které bude použito na příslušném místě v SQL dotazu.
  • Zaškrtávací značku Required která označuje povinně vyplňované parametry.
  • Volbu of Source User/Entity: Parametr označený jako Entity získá hodnotu (nebo hodnoty) atributu nastaveného níže, těch entit, které budou při spuštění reportu v grafu vybrané (označené). Parametr označený jako User bude při spuštění reportu vyžadovat zadání od uživatele.
    • V případě volby zdroje 'Entity' musíme zadat Attribute který bude sloužit jako zdroj dat.
    • V případě volby zdroje 'User' zadáme Type - typ dat a v poli Description uvedeme text výzvy, která se při spuštění reportu zobrazí uživateli.
Report parameters
Obrázek 13 - Parametry reportu

Interní parametry reportu

Aplikace ClueMaker má v sobě zabudované následující proměnné s hodnotami:

  • report_name - Jméno reportu
  • report_date - Datum spuštění
  • report_datetime - Datum a čas spuštění
  • report_osuser - Jméno uživatele systému
Internal report parameters
Obrázek 13.1 - Interní parametry reportu
Internal report parameters - output
Obrázek 13.2 - Výsledek

Definice SQL dotazu reportu

Kliknutím na Add u sekce Queries otevřeme okno pro nový dotaz (New Query), jehož příklad vidíme na dalším obrázku.

Report query window
Obrázek 14 - Okno dotazu pro report
  • Vyplníme název dotazu a zvolíme zdroj dat.
  • V sekci Title můžeme zadat prostý text titulu reportu, nebo text formátovaný pomocí tagů HTML.
  • V sekci Query zapíšeme platný SQL kód příkazu. Pokud má report parametry, SQL je bude obsahovat. Jména parametrů se uvedou v hranatých závorkách. Parametry musí být použity podle pravidel syntaxe SQL pro použitý typ databáze datového zdroje.

Důležitá poznámka: parametry které mohou obsahovat více hodnot - typicky parametry, kde je entita zdrojem dat - jsou parsovány jako seznam hodnot oddělených čárkou a v SQL musí být použity odpovídajícím způsobem. Například pokud COMPID obsahuje čísla 125, 155, 268 , pak příkaz:

select * from company where company_id = [COMPID]

  ...selže, protože podmínka bude parsována jako: ... company_id = 125, 155, 268

Správný syntax bude:

select * from company where company_id in ( [COMPID] )

Uložená hledání

Pokud máte často hledané vazby či entity, můžete využít Uloženého hledání. Princip je jednoduchý, musíte jen nadefinovat hledané vazby a entity. V Konfigurační aplikaci můžete pro každou entitu nadefinovat až 255 Uložených hledání.

Konfigurace uložených hledání

V konfiguračním panelu klikněte pravým myšítkem na položku Uložené hledání a vyberte Nové uložené hledání.

Uložené hledání
Obrázek 15 - Konfigurace uloženého hledání

A když vytvoříte uložené hledání:

Nové uložené hledání
Obrázek 16 - Nové uložené hledání

Když uložíte pracovní prostředí a otevřete ho následně v aplikaci ClueMaker, můžete svá uložená hledání najít v kontextovém menu. Toto je velice mocná funkce, pokud víte, co je Vašimi uživateli nejčastěji hledáno.