CAQservice, instalace, aktualizace a migrace


Co je CAQservice

Službu CAQservice využijete v mnoha ohledech nasazení PalstatCAQ a je doporučováno její instalaci a provoz společně se stávajícím balíkem systému.

Proč službu potřebuji?

  • Konfigurace MSSQL přístupu a config.xml bude klientům (uživatelům) distribuována z jednoho centrálního místa a bude jim skryta.
  • Konfigurace bude centrálně řízena i pro další služby CAQapi, CAQweb
  • Možnost automatizace zasílání automatických reportů, jejich správa přes uživatelské rozhraní CAQadmin (Správa systému) a nahrazení stávajícího řešení přes plánovač úloh.
  • PUSH notifikace, na vybrané akce v systému Palstat mohou ONLINE odcházet notifikace ve formě SMS nebo Emailu.
  • Externí kalibrace, možnost napojení modulu měřidel na externí kalibrační společnost ONLINE.
  • Vlastní API s možností sledování stavu systému PalstatCAQ.

Doporučená adresářová struktura

Při instalaci všech komponent na jeden server doporučujeme tuto adresářovou strukturu

  • Palstat3G
    • CAQservice (Nesdíleno, služba pro řízení a distribuci konfigurace)
    • CAQapi (Nesdíleno, site na IIS)
    • CAQweb (Nesdíleno, site na IIS)
    • CAQdesktop (Aplikace sdílená pro klienty)


Postup aktualizace služby CAQservice

  • Aktualizaci služby provádějte až po aktualizaci CAQdesktop a proběhnutí aktualizace při prvním spuštění!!!
  • Vždy provádějte aktualizaci CAQservice a dalších modulů ve stejnou dobu. Nenechávejte některý z modulů ve starší verzi.
  • Identifikujte server kde služba s názvem "CAQservice" běží. Například v instalaci CAQdesktop/CONFIG/config.xml
  • Zastavte službu (krátkodobá nefunkčnost služby neovlivní funkci na klientských stanicích, do 15min).
  • Nahrajte nový obsah adresáře s instalací služby a zachovejte adresář CONFIG .
  • Nastartuje službu a vyčkejte jejího spuštění.
  • Zkontrolujte v prohlížeči stav služby zadáním IP adresy stroje + portu na kterém máte konfigurováno API služby např: http://192.168.0.1:8001/api/status/

Postup migrace služby CAQservice

Služba je pevně svázána s názvem stroje na kterém běží a musí být na konci procesu migrace zavolána z modulu "Správa systému" ./APL/CAQadmin.exe funkce pro odblokování. V případě opomenutí této operace přestane služba zasílat notifikační a reportingové emaily.

V takovém případě najdete v systémovém logu windows chyby "MAIL BLOCKED / service registration ..."

 

  • Zastavte službu na starém stroji.
  • Provedte spuštění dávkového souboru jako administrátor "CaqService.UnInstall.bat", příkaz odstraní službu ze systému.
  • Přesuňte adresář CAQservice na odpovídající místo na novém stroji a dále postupujte dle návodu instalace viz. níže.
  • Proveďte spuštění aplikace "Správa systému" ./APL/CAQadmin.exe.
  • Přejděte na záložku "Diagnostika" a klikněte na tlačítko "TEST" u okna "CAQservice".
  • V menu "Příkazy" vyberte "Update mailing machine registration" a klikněte na "Spustit".
  • Dále můžete na záložce "Diagnostika" -> "Log" -> "Mail" sledovat zda začne aplikace do logu zapisovat další zprávy a zda log neobsahuje chyby.

Postup instalace služby CAQservice

Před instalací a konfigurací služby si ověřte, že máte volný a dostupný port, který plánujete použít, například pomocí aplikace "Sledování prostředků" záložka "Síť" dále "Porty pro naslouchání"

 

 

  • Součástí instalačního balíku je adresář ".../CAQservice", který rozbalte na server kde chcete službu provozovat, často se jedná o stejný stroj kde je samotná aplikace. Tento adresář ovšem nesmí být součástí sdílení pro uživatele.
  • Přejmenujte adresář "CONFIG (TEMPLATE)" na "CONFIG".
  • V souboru ".../CAQservice/CONFIG/PalService.xml" nastavte
    • serverIpAddress - na jaké IP adrese má služba poslouchat (lze použít DNS název od verze 2020.03.000)
    • apiPort - na jakém portu má služba publikovat své API, default 8001
  • Na serveru kde je služba instalována zajistěte na firewall průchodnost na zvolený port nebo aplikaci.

 

Pravidlo na firewall můžete nastavit tímto příkazem, za předpokladu použití portu 8001:

netsh advfirewall firewall add rule name="CAQservice" dir=in protocol=TCP localport=8001 action=allow

 

  • Základní nastavení konfigurace služby, CAQservice
    • Varianta 1 - Instaluji celý systém ze staženého *.zip balíku
      • Vždy nejprve musí být funkční základní balík CAQdesktop a provedena aktualizace databáze.
      • V adresáři CAQdesktop přejmenujte "CONFIG (TEMPLATE)" na "CONFIG"
      • V tomto adresáři přejmenujte soubor "config.xml" na "config.xml.bak" (pozdeji bude třeba)
      • Do adresáře "CAQdesktop/CONFIG" nakopírujte soubor "CAQservice/CONFIG (TEMPLATE)/database.enc"
      • Upravte soubor dle manuálu ukázky databázového souboru.
      • Do stejného adresáře přidejte požadované LICenční soubory, které také můžete stáhnout z našeho portálu.
      • Proveďte spuštění CAQdesktop a vyčkejte založení tabulek a výchozích dat.
      •  
      • Zpět přejmenujte "CAQdesktop/CONFIG/config.xml.bak" na "config.xml" a soubor upravte definováním IP a portu kde bude funkční služba.
      • Licenční soubory PŘESUŇTE z "CAQdesktop/CONFIG" do "CAQservice/CONFIG" (v adresáři CAQservice/CONFIG musí být jen soubor config.xml s platnou konfigurací na CAQservice -> IP/PORT)
      • Pokračujte správnou konfigurací "PalService" a jejím nastartováním.
    • Varianta 2 - Mám funkční CAQdesktop a instaluji CAQservice
      • Ujistěte se, že je parametr "palstatPath" v souboru "CAQservice/CONFIG/palservice.xml", prázdný.
      • Přesuňte konfigurační soubory (database.enc, licence.enc, keys.enc a případně extensions.xml) ze složky "CAQdesktop/CONFIG" do složky "CAQservice/CONFIG" a upravte soubor config.xml v CAQdesktop dle ukázky níže nebo použijte šablonu ze staženého *.zip balíku z našeho portálu.
      • POZOR k předchozímu kroku: pokud soubor config.xml v cílovém umístění existuje tak soubor přesuňte pod jiný název *.bak

 

 

 

 

  • Pro správnou funkci emailových a PUSH zpráv.
    • Je nutné upravit soubor ".../CAQservice/CONFIG/config.xml" dle postupu na této stránce a doplnění sekce "mail" a definováním tak SMTP serveru pro odesílání zpráv. (pozor jedná se jen o sekci "mail" ostatní sekce už se Vás netýká)
    • V souboru ".../CAQservice/CONFIG/PalService.xml" zkontrolujte zda je v sekci module id="EventHandler" parametr enable nastaven na "true" a push notifikace jsou tedy zapnuté.

 

 

  • Registrace služby na serveru. 
    • Jako Administrátor proveďte spuštění připravenou dávku ".../CAQservice/CaqService.Install.bat", která službu zaregistruje a spustí na portu 8001. Službu je vhodné zařadit do vašeho interního monitorovacího systému a držet ji stále aktivní. Služba na serveru bude logovat do vlastního logu "PalstatServerLog", zkontrolujte, že byl registrací vytvořen (EventViewer -> Applications and Services Logs -> PalstatServerLog), může se stát, že se log nezaloží, je pak potřeba server zrestartovat, aby se registrace správně dokončila.
    • Ověření funkčnosti můžete provést příklady níže, kde musí být uveden Vámi konfigurovaný port pro službu a jejího API. Stejného výsledku dosáhnete i pod "Sledování prostředků"
    • Dále prověřte dostupnost níže uvedených ukázek dostupnosti API přes webový prohlížeč, např. "/api/status/" kdy musí vrátit "1"

 

  • Změna uživatele pro běh služby.
    • V některých případech je požadováno spouštění služby pod konkrétním uživatelem, který je doménově řízen. Změnu provedete jako obvykle pod nastavením služby a restartováním změnu uživatele aplikujete. V případě, že uživatel nemá právo připojit se na "Listener", tedy port 8001 nebude služba fungovat a v systémovém logu služby najdete hlášku
      • "System.Net.Http.ListenerExeption" a "Access id denied
    • Chybu vyřešíte nastavením uživatele s dostatečným oprávněním nebo přímo na stroji se službou přidáte na požadovaný port vyjímku pomocí příkazu níže. V případě jiného portu upravte vašemu prostředí.
netsh http add urlacl url=http://+:8001/ user=DOMAIN/user

Ověření lze provést pomocí.

netsh http show urlacl

Máme potvrzeno, že při změně uživatele může docházet k různému nestandardnímu chování služby a správnému otevření portu. V některých případech je nutné port ze systému smazat ručně a poté službu restartovat. Například při volání URL servisního API služby CAQservice je vrácena chyba "HTTP Error 503. The service is unavailable".

Provedete takto:

  • Zastavit službu CAQservice.
  • Spustit příkazový řádek jako Správce a zde vložit níže uvedený příkaz, který smaže příslučný Listener, pokud zde zůstal "zaseknutý".
  • Nastartovat službu CAQservice a sledovat příslušný LOG a následně otestovat některé URL sekce "Servisní API".
netsh http delete urlacl  url=http://+:8001/

 

  • Ověření funkčnosti služby, PowerShell
    netsh interface ipv4 show tcpconnections  | Select-String "Listen"
  •  Ověření funkčnosti služby, CommandLine
    netstat -aon | find /i "listening"

 

 

  • Přidání uživatele
    V modulu "Databáze uživatelů" musí existovat uživatel "SERVICE" s právy pro modul "Reporting Viewer"
     
    • Přístup do modulu - pro 2021.02.003 a dřívější
    • Tisk
    • Zobrazení všech záznamů

      Služba pod ním přistupuje k databázi. Heslo mu nastavovat nemusíte.

Servisní API

Služba má vlastní servisní API pro vytěžování některých základních informací o provozu systému PalstatCAQ. Funkčnost se stále rozšiřuje a bude aktualizována na této stránce.

URL adresa funkčnost
http://mujserver:8001/api/version/ Release verze
http://mujserver:8001/api/status/ Zobrazení stavu služby vrací 1 pokud je služba funkční.
http://mujserver:8001/api/status/info/?encrypt=false Detailní informace
http://mujserver:8001/api/mail/test?receiver=example@example.com&sender=example_sender@example.com Testování konfigurace SMTP serveru
http://mujserver:8001/api/activation/ Stav aktivace licence
http://mujserver:8001/api/data/eventlog/ Zobrazí posledních 100 událostí z logovací tabulky systému.
http://mujserver:8001/api/web/string?url=https://www.palstat.cz/caqservice_request/&encrypt=false Ověření, zda služba má přístup na WEB / kontrola prostupnosti PROXY
http://mujserver:8001/api/debug/checklistener Stav Listener

 

Konfigurační soubory

Ukázka konfiguračního soubor pro službu CAQservice

".../Palstat3G/CAQservice/CONFIG/palservice.xml"

<serviceSetting>
  <serverIpAddress>192.168.0.1</serverIpAddress>
  <apiPort>8001</apiPort>
  <apiBaseUrl></apiBaseUrl>
  <palstatPath></palstatPath>
  <serviceName>CaqService</serviceName>
  <lang></lang> <!-- vynuti pouziti konkretniho jazyka, jinak se prejima ze systemu; hodnoty: cs/de/en -->
  <userAuthMode>0</userAuthMode>
  <log>
    <information>true</information>
    <error>true</error>
    <warning>true</warning>
    <debug>false</debug>
  </log>
  <runDelay>10000</runDelay>
  <webSettings>
    <Credentials>DefaultCredentials</Credentials>
    <Proxy>
      <Url></Url>
      <Credentials>DefaultCredentials</Credentials>
    </Proxy>
  </webSettings>
  <modules>
    <module id="WebPortal" enable="false" />
    <module id="ErrorReport" enable="true" />
    <module id="EventHandler" enable="true" />
    <module id="Scheduler" enable="true" />
  </modules>
</serviceSetting>

 

".../Palstat3G/CAQservice/CONFIG/config.xml"

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<palstat>
  <globalconfig>
    <webserver>URL ADDRESS OF CAQweb MODULE</webserver>
    <webapi>URL ADDRESS OF CAQapi MODULE</webapi>
  </globalconfig>
</palstat>

 

Ukázka konfiguračního souboru pro CAQdesktop, CAQweb a CAQapi

Ostatní parametry, které dříve obsahoval tento soubor umístěte do CONFIG.XML v adresáři samotné služby. Respektive, konfigurační soubor config.xml u aplikace bude obsahovat pouze níže uvedené. Stejný soubor použijete pro CAQdesktop, CAQapi a CAQweb.

".../Palstat3G/CAQdesktop/CONFIG/Config.xml"

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<palstat>
  <globalconfig>
    <serviceipadress>192.168.0.1</serviceipadress>
    <serviceapiport>8001</serviceapiport>
    <serviceapicontrol>true</serviceapicontrol>
  </globalconfig>
  <appconfig>
  </appconfig>
</palstat>

Konfigurace CAQservice pro prostup proxy

Pokud vaše společnost používá pro přístup do internetu proxy server upravte konfigurační soubor palservice.xml v sekci zadejte pod IP adresu vašeho Proxy serveru včetně portu na kterém běží např. 192.168.0.1:8080.


Správné nastavení proxy má vliv na:

  • Bezproblémové provádění aktivace aplikace. Pokud proxy používáte a nebude zde konfigurováno bude nutné aktivovat aplikaci v pravidelných intervalech cca 1rok.
  • Funkčnost automatického propojení na externí IS.


Správnou konfiguraci a dostupnost požadovaných URL lze ověřit pomocí dotazu níže, kdy je požadavek předán služně CAQservice, která se pokusí kontaktovat požadovanou URL a výsledek vrátí prohlížeči. Výsledek testu nesmí končit chybou. "An error has occurred."

http://mujserver:8001/api/web/string?url=https://www.palstat.cz/caqservice_request/&encrypt=false

Konfigurace CAQservice pro zasílání SMS notifikací

Tato funkcionalita je dostupná od verze 2022.01.xxx a předpokládá aktivní komponentu CAQserver spolu se zakoupeným balíčkem SMS zpráv. Zprávy jsou rozesílány přes službu třetí strany a číslo odesílatele je ve výchozím stavu z USA. Forma odesílání notifikací na určité události je vždy definována požadavky zákazníka.
 

Příjem zpráv lze otestovat v programu CAQadmin (Správa systému) pod záložkou Diagnostika.
 

  • Pod oknem CAQservice klikněte na "TEST"
  • U záznamu "Send sms via CAQservice" nastavte mobilní číslo kam chcete zaslat test včetně mezinárodní předvolby.
  • Klikněte na "Spustit" a vyčkejte výsledku.
  • Rozklikněte pole dle bodu 4. a sledujte výsledek testu. Zpráva na uvedený mobil dorazí do 10ti minut.


Konfigurace CAQservice pro zasílání email reportů

Pokud máte v systému PalstatCAQ definován jakýkoliv report, který má zasílat výstup do emailu uživatelů, je nutné konfigurovat pro CAQservice SMTP server, přes který bude služba emaily odesílat. Konfiguraci provedete v souboru ".../Palstat3G/CAQservice/CONFIG/Config.xml". Váš konfigurační soubor může obsahovat mnoho dalších parametrů a nastavení. Úpravu by měl provádět pouze pracovník IT se znalostí struktury a fungováním XML.

Popis parametrů:

  •     host - IP adresa Vašeho SMTP serveru, je to jediný POVINNÝ parametr
  •     port - je nutné nastavit pokud je jiný než výchozí 25 (typicky např. při zapnutém SSL)
  •     user a password - pokud nejsou vyplněny, použije se k ověření vůči SMTP serveru účet uživatele Windows, pod kterým je program spouštěn, toto je doporučený postup, heslo tak není viditelné pro běžné uživatele, pokud jsou parametry vyplněny, mají přednost ty
  •     defaultmailadress - je vhodné nastavit, je použita v případě, že uživatel, který zprávu odesílá, nemá uvedený email v modulu Databáze uživatelů Palstatu
  •     encoding - výchozí je Unicode, další často používaná jsou Ascii a Utf-8, případně jakákoliv další z Encoding Class jazyka C# (pozor všechno psát s prvním velkým písmenem)
  •     enablessl - výchozí je false, zapíná / vypíná šifrovanou komunikaci se SMTP serverem

 

<?xml version="1.0" encoding="utf-8" ?>
<palstat>
    <globalconfig>
        <mail>
            <email host="192.168.0.1" port="587" enablessl="true" user="uzivatel" password="heslo" defaultmailaddress="palstat@jakost.cz" encoding="Utf-8" />            
        </mail>
    </globalconfig>
    <appconfig>
    </appconfig>
</palstat>

Aktivace funkce v modulu "Správa systému"

Pro aktivaci zasílání emailů je nutné nastavit příslušné reportingy a povolit v modulu Správa systému.
Dále musí být v ./APL/CAQadmin.exe (Správa systému) záložka "Plánovač" zaškrtnuto u řádku "Mail"

Otestování průchodnosti emailů

Pro ověření správnosti konfigurace emailových parametrů je možné použít volání servisního API od CAQservice, dle ukázky na této stránce v sekci "Servisní API". Tento krok je nutný pro ověření funkčnosti a bez jeho provedení neprovádějte a nepokoušejte se konfigurovat modul Reporting k zasílání zpráv.

 

Otestování funkčnosti SMTP serveru

Testování pomocí servisního API služby

Toto je základní forma testu, která dostačuje k ověření prostupnosti CAQservice na SMTP server.

http://mujserver:8001/api/mail/test?receiver=example@example.com&sender=example_sender@example.com

Testování z CAQadmin "Správa systému"

Nabízí grafické rozhraní a je nutné aby předem byla funkční CAQservice, bez které "Správa systému" ani nepůjde spustit.

Přejděte na záložku "Diagnostika", vyberte tlačítko "TEST" a upravte adresu odesílatele a příjemce.
Na konec klikněte na tlačítko "Spustit" kdy u řádku s testem SMTP musí být obsah odpovědi "Sent".
 


 

 

Nastavení automatizace načítání dat

POZOR: Tento postup nahrazuje zastaralý, ale stále funkční postup "Automatizace načítání dat, dávkou", není vhodné provozovat oba systémy načítání paralelně.

Pokud v systému Palstat využíváte drivery umožnující ruční import dat do systému např. InSpec, Q-DAS, Impact, Trimos, Kern či některý z dalších je možné tento proces automatizovat aplikováním následujícího postupu. Data z měření tak budou automaticky zprovávána a importována do systému Palstat CAQ.

Jak postupovat, příklad pro driver "Impact" s importem do SPC

  • Vždy proveďte aktualizaci celého systému a všech jeho částí. Dle platného návodu v sekci PODPORA.
  • Každá instalace již obsahuje veškeré dostupné drivery, které jsou otevřeny LICenčním souborem, který vám byl zaslán nebo si jej můžete stáhnout ze zákaznického portálu.
  • Ověřte licenci. Otevřete program "Správa systému" z modulu "Launcher" nebo přímo z ./APL/CAQadmin.exe kde pod záložkou "Licence" vyhledejte příslušný driver např. "Driver Impact". Není možné pokračovt v nastavení bez platné licence.
  • V rámci instalace systému PalstatCAQ založte pomocné složky. Které musí být přístupné pro uživatele pod kterým máte spuštěnu službu CAQservice. Výchozím je "SYSTEM".
    • Zdrojová složka: pro čtení dat, doporučeno je např: "c:/Palstat/CAQimport/dataImpact/source/". Tuto složku budete muset pravděpodobně sdílet pro zápis, aby měřící stroj (pc) mohl do složky přidávat nová data.
    • Odkládací složka: pro odložení již importovaných souborů "c:/Palstat/CAQimport/dataImpact/processed/". Do této složky budou automaticky přesunuty již zpracované a importované soubory.
    • Chybová složka: pro odložení chybových souborů "c:/Palstat/CAQimport/dataImpact/error/". Pokud při zpracování importních souborů dojde k chybě bude takový soubor pro další import vyřazen a přesunut do této složky. Je vhodné složku sledovat.
  • V programu "Správa systému" přejděte na záložku "Plánovač"
  • Zvolte: Nový -> Nová úloha, kterou pojmenujte například "SPCimport" a uložte.
  • Na založené úloze zvolte: Nový -> Nová událost -> Definovaný čas a událost pojmenujte např "60min" a uložte. (po odbu testování nechte pole "Aktivní" nevyplněno)
  • Na založené události zvolte: Nový -> Nová modul -> SpcImportDriver a uložte.
  • Nyní máte připraveno na konfiguraci samotného importního driveru.
  • Dle obrázku proveďte další nastavení. Pokud nevíte co nastavit nechte vše ve výchozím stavu.
    • DatabaseId - pokud mají data být importována jinam než do výchozí databáze
    • AutoCreateDimensions - zda zakládat nové kóty v SPC , doporučeno na "True"
    • AutoCreateParts - zda zakládat nové díly v SPC, doporučeno na "True"
  • Pro úspěšnou konfiguraci je třeba znát tzv. kód driveru pro pole "Driver", který musí být zapsán ručně a momentálně program neumožnuje výběr. Možné programové kódy driverů jsou níže a jsou aktuální k 12/2021. Dbejte na velikost písmen.
    • Q-DAS, InSpec, CSV, ResFiles, Impact, PC-DMIS, Stroza, Werth, Zeiss Calypso
  • Nastavte dříve založené složky, "ErrorFolder" (error), "Path" (source), "ProcessedFolder" (processed)
  • Nastavte "Mask", tedy přípona souborů, která se má pro daný driver ve zdrojové složce zpracovávat, pro driver Impact je maska *.txt
  • Uložte a můžete import otestovat.
    • Naplňte zdrojovou složku odpovídajícími daty, které formátem odpovídají používanému driveru.
    • Klikněte na zelenou šipku u nastaveného modulu a sleduje výstup v okně "Log", sledujte pohyb souborů ve složkách pro "source", "processed" a "error", sledujte přírůstek dat v modulu SPC.
    • Řešte zobrazenou chybu v okně "Log"
  • Pokud test probíhá a data jsou importována přejděte pod záložku "Události" a nastavte tuto odálost jako "Aktivní"
  • Nastave pole "Výraz", které zápisem odpovídá CRON zápisu z LINUX. Progenerování výrazu použijte například tento Cron Generátor. Nebo jeden z níže uvedených příkladů.
    • každých 5min 0 */5 * ? * *
      každých 10min 0 */10 * ? * *
      každých 15min 0 */15 * ? * *
      každých 15, 30 and 45 0 15,30,45 * ? * *
      každou hodinu 0 0 * ? * *
  • Vše uložte a po nějaké době opět sledujte nastavená adresáře, SPC a log zpracování: Správce systému -> Diagnostika -> Log -> Scheduler

 

Chyby a známé potíže

Klienstké stanice se nemohou připojit na CAQservice

Na serveru CAQdesktop funguje, ale na klientských stanicích nikoliv. Zkontrolujte základní nastavení jako u jakéhokoliv jiného programu, který má komunikovat na vyhrazeném portu:
 

  • Je na server průchozí nastavený port? Ověřte z klientské stanice pomocí "telnet"
  • Je služba na serveru aktivní a poslouchá na zvoleném portu?
  • Zkontrolujte na serveru firewall.
  • Pokud máte v konfiguraci Palservice.xml název serveru jako DNS, upravte na IP adresu. Stejně tak v config.xml pro CAQdesktop
  • Jsou klienti na stejném segmentu sítě? Pokud jsou klienti na VPN nemusí správně fungovat a je nutné zvolit jiný postup a nastavení.

 

Diagram zpracování emailů službou CAQservice

Při správné konfiguraci služby, SMTP serveru a reporting jsou jednotlivé emailové zprávy předávány do frontové tabulky PALMAILQUEUE, kde může každý email nabívat různých stavů. Například při nedostupnosti SMTP serveru nebo jiných chybách. Otevřením jmenované tabulky a seřazením podle sloupce stavu lze zjistit jaké emaily jsou v chybovém stavu a proč. Tabulka je také přístupná v diagnostickém nástroji CAQadmin.exe kde pod záložkou Diagnostika -> Log je možné tabulku nahlédnout.

Prohlédněte si FlowChart zpracování emailů.

 

 

https://www.palstat.cz/ - Systém řízení kvality Ubytování ve Vrchlabí