Seznam témat:

popis funkce

změny vázané s úpravou vázanou na nařízení GDPR

skrývání obsahu vizuálních prvků

sjednocení kontaktů do jednoho centra

konverze dat

sestavy a scripty

obchodnik, realizuje, vyrizuje, schvalil

 

Popis funkce

Postup řízené aktualizace na verzi 187.xx

Pro provedení aktualizace vázané s úpravami týkajících se nařízení o ochraně osobních údajů (verze 187) platí v souvislosti s provedenými úpravami pravidla popsané níže. Ve verzi 187 byla sjednocena data osobních údajů, které byly v tomto okamžiku ve více tabulkách tj. na různých místech, do jednoho místa a to do tabulky kontakty (gfkontakt), která má nyní nastavitelné úrovně přístupu a umožňuje tak jednoduše naplnit požadavky, které jsou určeny nařízením Evropského parlamentu a Rady EU o ochraně fyzických osob v souvislosti se zpracováním osobních údajů a o volném pohybu těchto údajů. Jedná se tedy o to, že ne všichni uživatelé systému mohou vidět všechny osobní data. Vyjímku tvoří podnikající fyzické osoby, které jsou pod tabulkou obchodních partnerů (tabulka gfirmy). GDPR-tabulky-osobní-data – představuje seznam tabulek, ze kterých v případě, že neexistuje vazba na tabulku kontaktů (DBA.GFKONTAKT) je vazba založena, kontakt založen v kontaktech a provázán pomocí primárního klíče. Pokud kontakt nebyl nalezen založí se nový dle daných pravidel.

Vzhledem k výše uvedenému je zde velké riziko, že u nestandardních (uživatelských) objektů jako jsou např. sestavy či scripty může nastat situace, že již budou nekompatibilní k této verzi databáze tj. 187 a výš.

Na základě těchto skutečností je potřeba přistupovat k aktualizaci na verzi 187 obezřetně = bezpečným způsobem s ohledem na to, že bylo potřeba provést konverze osobních údajů, měl by být dodržen následující postup (jednoduchý popis):

Provedení povýšení testovací databáze (aktualizaci) stávající verze databáze na verzi 187.xx nebude probíhat běžným způsobem, tj. MUSÍ se provést nejprve nanečisto do testovacího prostředí (demo databáze).

 

Vyhledání objektů, které jsou nekompatibilní s verzí 187 a vyšší nejlépe pomocí funkce analýza datových objektů. Jedná se uživatelské objekty vytvořené dle konkrétních požadavků (úprava standardních objektů je součástí standardní aktualizace 187 a výš) - sestavy, varianty prohlížečů, uživatelské prohlížeče, uživatelské skripty...

 

Dalším krokem pak jednoznačně bude úprava těchto objektů, tak aby byly kompatibilní s verzí 187 a výše. Způsoby konverzí a následné úpravy jsou uvedeny v následujících kapitolách.

 

Posledním krokem pak bude povýšení ostré databáze ovšem teprve až budou veškeré objekty (předpokládáme uživatelské objekty, úprava standardních objektů je obsažena v ugrade 187.xx

 

Součástí aktualizace jsou konverze jednotlivých evidencí ze stávajících vazeb na "referenty" do evidence kontaktů. Kvůli GDPR provádí upgrade komplexní reorganizaci informací o kontaktních osobách (akce "konverze kontaktů"). Tato konverzní akce může trvat déle (až 2 hodiny).

Pokud databáze používá replikace, vyhlásí akce "konverze kontaktů" chybu a k dokončení aktualizace je nezbytná ruční intervence.

Podrobný postup řízené aktualizace databáze na verzi 187.xx

1. Upgrade MUSÍ proběhnout primárně v testovacím prostředí a být řízený a probíhat v těchto fázích:

Kopie ostré databáze, nový klient.
Konverze testovací databáze - aktualizace.
Analýza a zjištění nekompatibilit.
Úprava nekompatibilit.
Otestování a vypořádání zjištěných problémů.
Zálohování aktuální ostré databáze.
Upgrade ostré databáze.
Přenesení upravených objektů z testovacího prostředí do ostré databáze.
Start provozu na povýšené databáze.

 

 

2. V testovacím prostředí je nutné primárně otestovat:

Množství výměny položek osobních dat v jednotlivých tabulkách a vazbu do tabulky kontaktů DBA.GFKONTAKT.
Po odstranění původních dat je nutné prověřit všechny nové vazby – provést výměnu položek v uživatelských sestavách, skriptech,…
Zjistit, zda používané pluginy jsou kompatibilní s verzí 187 a vyšší - otestovat, případně objednat příslušné úpravy.
Otestovat přístupy GDPR úrovní – uživatel, který nemá žádná práva na tabulku DBA.GFKONTAKT.

 

3. Kompatibilita nové verze se zákaznickými přizpůsobení (na míru připravené sestavy, skripty, speciální  funkce …) není součástí standardního upgrade, je nutné provést kontrolu a případné nesrovnalosti řešit individuálně - viz bod 2.

4. Upgrade založí uživatelské skupiny GDPR10-GDPR60 reprezentující jednotlivé úrovně oprávnění k osobním údajům.

5. Členství v těchto skupinách pak danému uživateli zaručuje přístup k údajům příslušné úrovně citlivosti z pohledu GDPR (rozhoduje členství v nejvyšší skupině).

Aby byl přechod na novou verzi hladký, tak upgrade rovněž automaticky přiřadí všem účtům členství v nejvyšší skupině GDPR60:
 
- Nepřiřadí skupinám mimo OBECNY_UZIVATEL a GROUP_COMMON.
- V případě použití GDPR úrovní je nutné i těmto skupinám odebrat oprávnění.

Obecný postup nastavení práv pro GDPR po upgradu na verzi 187 a vyšší

Ze skupiny GDPR60 je nutné odstranit všechny členy, zejména OBECNY_UZIVATEL a GROUP_COMMON, kteří sem byli zařazeni v rámci upgradu, aby nedošlo k narušení funkce Vision ERP.
Jednotlivé uživatelské účty zařadit do skupin GDPR10-60 podle jejich kompetencí. Pokud má zákazník funkční systém vlastních skupin, lze toho využít a do skupin GDPRXX zařadit pouze příslušné skupiny namísto jednotlivých účtů.
Aktuální úroveň oprávnění daného uživatele z pohledu GDPR lze zjistit z technických informací (menu: Nápověda | Technické informace | Připojení).
Testy na testovací DB musí provést uživatel, kterému se odeberou práva na tabulku  DBA.GFKONTAKT, tomu musí předcházet odebrání přístupů všem skupinám ve kterých je. Nejlépe SYBASE CENTRAL a zde odebrat práva na tuto tabulku. Přidělit uživateli nějakou GDPR úroveň, poté testovat.

POZOR – PRÁVA SE MOHOU DĚDIT

 

Veškeré stávající vazby na jména osob (kontaktů) byly předělány z textových polí na cizí klíče do tabulky "gfkontakt“ (primární klíč: "id_kontakt, data_id“).
Dále je nutné provést konverzi kontaktů - veškeré stávající vazby na jména osob (kontaktů) byly předělány z textových polí na cizí klíče do tabulky "gfkontakt“ (primární klíč: "id_kontakt, data_id“). Pokud se během konverze kontaktů z textových polí na vazby do tabulky "gfkontakt" nepodaří dohledat odpovídající kontakt, založí se do číselníku kontaktů s těmito údaji:

prijmeni = původní text se jménem a příjmením osoby
jmeno = '<automat>'
pozn = 'Založeno automaticky konverzí z ...'  - V poznámce bude modul nebo tabulka, podle kterých půjde identifikovat původ založeného kontaktu.

 

Založení kontaktu - příklad

 
 

Původní údaje se jmény se během konverze mazat nebudou.
K vymazání původních údajů se jmény bude nutné ručně spustit speciální akci z menu GDPR:

Funkce pro vymazání údajů

 

Použití úrovní GDPR je podmíněno odebráním přístupových práv na tabulku DBA.GFKONTAKT a nahrazení všech odkazů na příslušná místa novými procedurami.
Standardní prohlížeče skripty a sestavy jsou upraveny pro nové přístupy pomocí procedur.

 

 

Změny vázané s úpravou vázanou na nařízení GDPR

Veškeré stávající vazby na jména osob (kontaktů) byly předělány z textových polí na cizí klíče do tabulky "gfkontakt“ (primární klíč: "id_kontakt, data_id“).

Skrývání obsahu vizuálních prvků

GDPR úrovně dle přiřazení uživatelům zobrazí z osobních dat jen některé údaje, ostatní budou "vykřížkované“ – neviditelné.
Vizuální editační prvky, ve kterých se objevují citlivé údaje (např. rodné číslo) automaticky skrývají svůj obsah (a znemožňují editaci) v případě, že daný uživatel nedisponuje potřebnou úrovní oprávnění.
Úroveň stanovují programátoři dle kontextu.
Organizace se tímto způsobem může bránit v nezpřístupnění osobních dat uživatelům.

Příklad: 

Výsledek SQL dotazu "SELECT * FROM dba.gf_kontakty()" pro uživatele s GDPR úrovní 10

 

 

 

Např. pro výběr referenta na přijaté objednávce bude stačit GDPR úroveň 10, tj. že uživatel může vidět minimálně jméno, příjmení a tituly.
V případě, že by daný uživatel podmínku GDPR úrovně nesplňoval (v uvedeném případě referenta na přijatou objednávku by teda měl GDRP úroveň = 0), komponenta se automaticky znepřístupní.

Údaje kontaktů, které nebude mít daný uživatel oprávnění vidět, budou výše uvedené procedurky vracet jako globálně definovaný řetězec znaků (např. 'x x x' dle nastavení v parametrech GDPR). Tato hodnota bude uložená v tabulce "globals" a definovatelná ve sdílených parametrech GDPR konfigurace.

 

Sjednocení kontaktů do jednoho centra

Cíl: Jednoduchá, a vůbec možná, správa osobních údajů z jednoho místa.

Ve Vision ERP jsou kontakty osob na různých místech.
Ve verzi Vision ERP - GDPR ready (DB 187) došlo ke sloučení kontaktů (tedy mimo podnikajících fyzických osob které jsou pod tabulkou obchodních partnerů (tabulka dba.gfirmy)) do jednoho místa:
tabulka kontakty (gfkontakt) která má nyní nastavitelné úrovně přístupu,
jde o to, že ne všichni uživatelé systému mohou vidět všechna osobní data,
nyní je záznam pseudonymizován jen odkazem do zabezpečeného číselníku kontaktů.

 

 

Konverze dat

V souvislostí se sjednocením osobních údajů na jedno místo - do kontaktů (gfkontakt),  musí proběhnout konverze jednotlivých evidencích konverze na nové vazby (tabulka "gfkontakt“):

spisová služba
majetek
půjčovna
silniční a ostatní daně
výrobní pracovníci
změnové návrhy
projekty
úkoly
uživatelé
zakázky
konverze CRM

 

Poznámka:

Příklad použití vazeb v SQL dotazech viz následující kapitola "sestavy a scripty"

 

Sestavy a scripty

Zobrazení názvů obchodních partnerů a jmen zaměstnanců (vedených jako pobočky vlastní firmy)

Pro správné zobrazení názvů obchodních partnerů s ohledem na zaměstnance vedené jako pobočky vlastní firmy je nutné předělat SQL dotazy používající pole "nazev1" z tab. "gfirmy" na funkci "gf_getnazev". Tato funkce vrací buďto název obchodního partnera nebo jméno zaměstnance.

Jméno zaměstnance se zobrazí pouze uživatelům s GDPR úrovní >= 25.

 

Více informací naleznete zde: Zjištění názvů a historických údajů o obchodních partnerech

Příklad úpravy SQL dotazu

Původní dotaz:

 

SELECT id_ico, id_multi, nazev1

FROM DBA.gfirmy

 

Upravený (nový) dotaz:

 

SELECT id_ico, id_multi, gf_getnazev (id_ico, id_multi) as nazev1

FROM DBA.gfirmy

 

 

Zobrazení  informací - kontakty

Pro zobrazení jména kontaktu bude nutné nově používat funkci "gfkontakt_jmeno", která pro GDPR úroveň 10 a vyšší vrátí příjmení a jméno kontaktu, případně i titul (pokud je parametr @titul = 1) - podle zadaného ID kontaktu a ID databáze, které jednoznačně identifikují daný kontakt:

function dbo.gfkontakt_jmeno (in @kontakt integer,in @dataid integer,in @titul integer default 0)

Příklad úpravy SQL dotazu

Původní dotaz:

 

SELECT prijmeni || ' ' || jmeno as prijmeni_jmeno

FROM DBA.gfkontakt

WHERE id_kontakt = :id_kontakt AND data_id = :data_id

 

Upravený (nový) dotaz:

 

SELECT gfkontakt_jmeno (:id_kontakt, :data_id) as prijmeni_jmeno

 

 

 

Pro standardní funkce programu, standardní sestavy, standardní pluginy platí následující pravidla pro zjištění kontaktu(verze 187 a výš):

Pluginy tvořené na zakázku a veškeré další zákaznické objekty (sestavy, skripty uživatelské formuláře, browsery a další) při použití nových funkcí musí být předem upraveny. To je možné objednat u naší společnosti.
Právo na SELECT z tabulky "gfkontakt“ bude postupně odebráno všem uživatelům (vyjma privilegovaných), je nutné místo přímých dotazů na tabulku "gfkontakt“ používat pro získávání informací o kontaktech výhradně následující procedury:

SELECT * FROM dba.gf_kontakty () - vrátí seznam všech kontaktů (včetně vazeb na "hlavní" firmu)

 
SELECT * FROM dba.gf_kontaktyfirmy (ico, multi) - vrátí seznam všech kontaktů daného obchodního partnera (tj. včetně "vedlejších" vazeb z tab. "gfkontaktfirmy“)

 
SELECT * FROM dba.gf_kontaktyfirmy (ico) - pokud není zadané "multi“, vrátí seznam kontaktů za všechny pobočky firmy

 
SELECT * FROM dba.gf_kontaktyvl () - vrátí seznam všech kontaktů vlastní firmy

 
SELECT * FROM dba.gf_kontaktyvazby () - vrátí seznam všech kontaktů a všech vazeb na obchodní partnery (tj. jak z tab. "gfkontakt", tak "gfkontaktfirmy"), přičemž jeden kontakt se v seznamu bude vyskytovat tolikrát, kolik vazeb na obchodní partnery má.

 

SELECT dbo.gfkontakt_iscurrentuser (kontakt,dataid) - vrátí 1, pokud daný kontakt odpovídá aktuálně přihlášenému uživateli (jinak vrátí 0)

 

 

Příklad úpravy SQL dotazu

Původní dotaz:

 

SELECT k.prijmeni, k.jmeno, ...

FROM DBA.gfkontakt as k

 

Upravený (nový) dotaz:

 

SELECT k.prijmeni, k.jmeno, ...

FROM DBA.gf_kontakty () as k

 

 

 

Úpravy "obchodnik, realizuje, vyrizuje, schvalil"

Na dokladech nabídek, poptávek, objednávek apod. jsou provedeny změny ve vazbách osob (obchodníků, realizátorů, …) na číselník kontaktů - nutné úpravy "obchodnik, realizuje, vyrizuje, schvalil“.

Původní textové sloupečky se jménem a příjmením jsou nahrazeny cizími klíči do tab. "gfkontakt" (id_kontakt, data_id).

 

obchodnik (pův. hodnota) -> obchodnik_kontakt, obchodnik_dataid (nový cizí klíč)

- oop (obchodní příležitosti)

- oopinfo (obchodní příležitosti - historie změn)

- onabhd (nabídky)

- opophd (poptávkové řízení)
- opobjhd (přijaté objednávky)

- osobjhd (stálé objednávky)

- gcl3 (zakázky)

 

Použití v SQL dotazech:

 

 gfkontakt_jmeno (h.obchodnik_kontakt, h.obchodnik_dataid) as obchodnik,
 h.obchodnik_kontakt, h.obchodnik_dataid,

 

 

realizuje (pův. hodnota) -> realizuje_kontakt, realizuje_dataid (nový cizí klíč)

- onabhd (nabídky)

- opophd (poptávkové řízení)

- opobjhd (přijaté objednávky)

- osobjhd (stálé objednávky)

- gcl3 (zakázky)

 

Použití v SQL dotazech:

 

 gfkontakt_jmeno (h.realizuje_kontakt, h.realizuje_dataid) as realizuje,
 h.realizuje_kontakt, h.realizuje_dataid,
 

 

vyrizuje (pův. hodnota) -> vyrizuje_kontakt, vyrizuje_dataid (nový cizí klíč)

- ovobjhd (vydané objednávky)

 

Použití v SQL dotazech:

 

 gfkontakt_jmeno (h.vyrizuje_kontakt, h.vyrizuje_dataid) as vyrizuje,
 h.vyrizuje_kontakt, h.vyrizuje_dataid,

 

schvalil (pův. hodnota) -> schvalil_kontakt, schvalil_dataid (nový cizí klíč)

- ovobjhd (vydané objednávky)

 

Použití v SQL dotazech:

 

 gfkontakt_jmeno (h.schvalil_kontakt, h.schvalil_dataid) as schvalil,
 h.schvalil_kontakt, h.schvalil_dataid,

 

 

 

Úpravy "odpovědný pracovník"

V dokladech uskutečněného plnění (včetně plánovaných dokladů) jsou provedeny změny ve vazbách "odpovědných“ osob na číselník kontaktů (gfkontakt). Původní textové sloupečky se jménem a příjmením jsou nahrazeny cizími klíči do tab. "gfkontakt" (id_kontakt, data_id).

Konkrétně se jedná o tyto sloupečky:

odpovedny (pův. hodnota)-> odpovedny_kontakt, odpovedny_dataid (nový cizí klíč)

- opdvzorfakthd (vzory plánovaných dokladů)

- opdplanfakthd (plánované doklady)

- ovydfakthd (uskutečněné plnění)

 

Použití v SQL dotazech:

 

 gfkontakt_jmeno (odpovedny_kontakt, odpovedny_dataid) as odpovedny,

 odpovedny_kontakt, odpovedny_dataid.

 

 

Úpravy "Uživatelé"

tabulka gusers (uživatelé) - vazba do tabulky kontaktů (gfkontakt)

- kontakt_id, kontakt_dataid – vazba mezi kontaktem a uživatelským účtem (pův. vazba byla uvedena v tab. "gfkontakt": "gfkontakt.user_id = gusers.id")

Úpravy "Požadavky na nákup"

tabulka onakuppoz (požadavky na nákup) - vazba do tabulky kontaktů (gfkontakt)

- autor, autor_dataid – zadavatel požadavku (pův. vazba byla na osobní kartu:"onakuppoz.autor = mzosobnikarty.ai")

- nakupci, nakupci_dataid – vyřizuje (pův. vazba byla na osobní kartu: "onakuppoz.nakupci = mzosobnikarty.ai")

Úpravy "Zakázky"

tabulka gcl3 (zakázky) - vazba do tabulky kontaktů (gfkontakt)

- kontakt, kontaktdataid – referent objednávajícího

- prijemkontakt, prijemkontaktdataid – referent kon. příjemce

- obchodnik_kontakt, obchodnik_dataid – obchodník (pův. pole: "obchodnik")

- realizuje_kontakt, realizuje_dataid – zakázku realizuje (pův. pole: "realizuje")

 

Dialog pro zadání úkolů  - vazba na kontakty

 

 

 

Doporučený postup pro aktualizaci nestandardních objektů

Při konverzi nestandardních (rozuměj uživatelských) objektů dle nových pravidel je výhodné použít funkci "Analýza databázových objektů", která na základě zadaných klíčových slov a nastavení parametrů prohledá všechny tyto objekty a vypíše do seznamu, pokud nalezne některé ze zadaných klíčových slov.

S aktualizací 187 je současně dodán soubor klíčových slov pro vyhledání v uživatelských tedy nestandardních objektech týkajících se přechodu na verzi 187, která řeší, mimo jiné, úpravy týkající se GDPR. Aktualizace všech ostatních standardních objektů je součástí aktualizace na verzi 187 a výš. Nestandardními = uživatelskými objekty rozumíme všechna řešení určená pro konkrétní uživatele a mohou tím být:

sestavy
scripty
varianty prohlížečů
položky v panelu úloh
uživatelské prohlížeče

Vyhledání nestandardních objektů a jejich úprava

Součástí aktualizace 187 je též seznam tzv. "klíčových slov", jejichž výskyt v některém výše popsaném uživatelském (nestandardním) objektu bude nejspíše představovat riziko problému a tu část kódu (dotazu do databáze) bude nutné s největší pravděpodobností upravit dle zadaných pravidel.

Seznam klíčových slov, které jsou vázány s přechodem na verzi 187, která z velké části řeší úpravy související s nařízením EU o ochraně osobních údajů (GDPR) jsou uložena v souboru ObjAnalyser.cfg jenž je distribuován současně s pluginem "Analýza databázových objektů" a je k dispozici v podadresáři ...\Plugins.

Funkce si pamatuje naposledy zadaná klíčová slova.

Formulář pro zadání vyhledávání

Projekt a jeho použití

Výsledky vyhledávání je pak možné uložit do souboru dle zadaném formátu (XML, Excel).

Ukládání projektu - zadání názvu a výběr formátu souboru

Související témata

Postup aktualizace

GDPR (ochrana osobních údajů)

GDPR ve Vision ERP

Integrita, dostupnost a odolnosti databáze a IS Vision ERP

Sloučení kontaktů

Konverze dat

Správce uživatelských účtů

Analýza databázových objektů