1. Základní informace
- Naplánované úlohy jsou programy spouštěné na pozadí operačního systému Windows. Konfigurace naplánovaných úloh se provádí v „Plánovači úloh“ resp. „Task Scheduleru“.
- Účelem naplánovaných úloh je periodické spouštění spustitelných programů
- jednou denně, týdně nebo měsíčně v daný čas (hodina a minuta) – například v 04:00 ráno,
- každý den opakovaně od daného času (hodina a minuta) v daném intervalu (počet hodin/minut) a po danou dobu (počet hodin) – například od 06:00 ráno v intervalu 30 minut po dobu 18 hodin,
- nebo v libovolných kombinacích i s použitím omezení na konkrétní dny – například
- každé pondělí, středu a pátek ve 22:00,
- prvního ledna, března a června ve 08:00 ráno,
- apod.
1.1. Skripty na tlačítkách (ovládacích prvcích Button)
- NET Genium využívá naplánovaných úloh pro periodické spouštění skriptů, definovaných v rámci tlačítek umístěných na nahlížecích stránkách.
- Pro jednodušší a uživatelsky přívětivější nastavení naplánovaných úloh lze využít Setup.exe, což umožňuje plánování bez přímého zasahování do systémových nastavení.
- Spusťte Setup.exe z adresáře bin.
- Vyberte možnost pro naplánování úlohy pro RunScript.exe, která se objeví mezi posledními volbami v rozhraní.
- Zadejte ID tlačítka pro skript, který chcete naplánovat.
- Nastavte čas a frekvenci spouštění skriptu a potvrďte tlačítkem „Nastavit“.
- Pro spuštění skriptu definovaného tlačítkem slouží program „RunScript.exe“, umístěný v adresáři „bin“ každého NET Genia.
- Použití: „RunScript.exe <ID> [<UserID>]“
- Parametr „ID“ značí ID tlačítka, a je možné ho zjistit v administrátorském režimu v tooltipu, který se zobrazí po zastavení ukazatele myši nad odkazem „Upravit Button ID ...“ nebo nad odkazem „Upravit skript“.
- Volitelný parametr „UserID“ představuje ID uživatele, pod jehož přihlašovacím jménem bude skript spuštěn. Pokud volitelný parametr není uveden, bude skript spuštěn pod anonymním uživatelem a tiskové šablony vytištěné skriptem se v takovém případě sestaví bez ohledu na přístupová práva. Se zadaným parametrem platí práva daného uživatele. Stejně se tiskové šablony sestaví i ve skriptech, které skript spustí serverovou funkcí „SCHEDULESCRIPT“.
- Skript tlačítka běží v jedné databázové transakci, kterou potvrdí až jeho úspěšné dokončení; serverová funkce „COMMIT()“ ji uprostřed skriptu potvrdí a začne novou. Skripty spuštěné serverovou funkcí „SCHEDULESCRIPT“ běží až po potvrzení skriptu tlačítka, každý ve vlastní transakci. Skončí-li některý z nich chybou, nespustí se už zbývající skripty naplánované týmž skriptem, ale zápisy skriptu tlačítka i dříve dokončených naplánovaných skriptů zůstanou uložené. E-mail odeslaný krokem „Odeslat e-mail“ ale odchází okamžitě, takže ho pozdější chyba skriptu nevrátí. Soubor „Config\Demo.txt“ zabrání zápisům kroků skriptu do databáze i odesílání e-mailů ze skriptu. Externí funkce volané ze skriptu se ale spustí normálně, s parametrem „test“ s hodnotou „false“, a do databáze zapsat mohou.
- Program vrací návratový kód 0 při úspěšném dokončení a 1 při chybě – i tehdy, když skript tlačítka neexistuje nebo je prázdný, když ID nepatří tlačítku nahlížecí stránky, nebo když selže skript spuštěný serverovou funkcí „SCHEDULESCRIPT“. Podrobnosti chyby jsou v logu „Errors“. Návratový kód 1 vrací program bez spuštění skriptu i tehdy, je-li NET Genium deaktivované (soubor „Config\UnderConstruction.txt“) nebo právě probíhá jeho aktualizace – důvod v takovém případě zapíše do logu „Warnings“. Spuštěný bez parametrů vypíše jen způsob použití a vrátí 1 bez zápisu do logu.
- Serverové funkce „SCHEDULEPRINT“ a „SCHEDULEPRINTOFATTACHMENT“ se při spuštění programem „RunScript.exe“ nevykonají, a to ani ve skriptech spuštěných serverovou funkcí „SCHEDULESCRIPT“. Bez účinku zůstanou i funkce „SCHEDULEFORM“, „SCHEDULEVIEWPAGE“, „SCHEDULEURL“, „SCHEDULEBACK“, „SCHEDULEENTRY“, „SCHEDULEPORTLETS“ a „SCHEDULEMAILMESSAGE“, které plánují navigaci po dokončení skriptu. Tiskovou šablonu lze ve skriptu vytisknout do přílohy serverovou funkcí „PRINTATTACHMENT“.
- Pomocí naplánované úlohy není možné napřímo spouštět skripty, definované v rámci tlačítek umístěných v editačních formulářích. Toto omezení je ale možné snadno vyřešit spuštěním tlačítka na nahlížecí stránce, které následně pomocí serverové funkce „SCHEDULESCRIPT(int button, int id)“ spustí tlačítko umístěné v editačním formuláři.
1.2. Servisní nástroje
- NET Genium využívá naplánovaných úloh také pro periodické spouštění servisních nástrojů:
- Zálohování databází a souborů pomocí programu „BackupServer.exe“
- Zálohování databází pomocí programu „SqlBackup.exe“
- Zálohování souborových příloh pomocí programu „FileBackup.exe“
- Automatické aktualizace NET Genia na nejnovější verzi pomocí programu „Update.exe“
- Pravidelné odesílání neúspěšně odeslaných e-mailů z adresáře „SMTP“ pomocí programu „ResendEmlFiles.exe“
2. Vytváření naplánovaných úloh pomocí programu „Setup.exe“
- „Setup.exe“ je doporučovaný způsob pro vytváření naplánovaných úloh spojených se spouštěním skriptů tlačítek umístěných na nahlížecích stránkách. Naplánované úlohy vytvořené programem „Setup.exe“ je možné dále ručně nakonfigurovat přímo v „Plánovači úloh“ resp. „Task Scheduleru“.
- Všechny naplánované úlohy jsou vytvářeny ve složce „NET Genium“, která již buď existuje, nebo jí „Setup.exe“ vytvoří.
- Naplánované úlohy jsou nastaveny tak, aby byly spouštěny v kontextu uživatelského účtu „SYSTEM“ s nejvyššími oprávněními.
- Spusťte program „Setup.exe“, který se nachází v adresáři „bin“ každého NET Genia.

- Zaškrtněte volby, které chcete zvolit dle níže uvedeného popisu:
- „Vytvořit naplánovanou úlohu pro BackupServer.exe (záloha serveru)“
- Zaškrtněte tuto volbu, pokud chcete automaticky vytvořit naplánovanou úlohu pro pravidelné zálohování serveru – databáze a adresáře.
- „Vytvořit naplánovanou úlohu pro SqlBackup.exe (záloha databáze)“
- Zaškrtněte tuto volbu, pokud chcete automaticky vytvořit naplánovanou úlohu pro pravidelné zálohování databáze.
- „Vytvořit naplánovanou úlohu pro FileBackup.exe (záloha příloh)“
- Zaškrtněte tuto volbu, pokud chcete automaticky vytvořit naplánovanou úlohu pro pravidelné zálohování souborových příloh. Úloha se vytvoří bez cílového adresáře zálohy, který je pro program „FileBackup.exe“ povinný – v „Plánovači úloh“ je nutné cílový adresář doplnit do pole „Přidat argumenty“, jinak úloha skončí chybou.
- „Vytvořit naplánovanou úlohu pro Update.exe (aktualizace)“
- Zaškrtněte tuto volbu, pokud chcete automaticky vytvořit naplánovanou úlohu pro pravidelnou aktualizaci NET Genia na novou verzi.
- „Vytvořit naplánovanou úlohu pro ResendEmlFiles.exe“
- Zaškrtněte tuto volbu, pokud chcete automaticky vytvořit naplánovanou úlohu pro pravidelné odesílání neúspěšně odeslaných e-mailů z adresáře „SMTP“.
- „Vytvořit naplánovanou úlohu pro RunScript.exe“
- Zaškrtněte tuto volbu, pokud chcete automaticky vytvořit naplánovanou úlohu pro spuštění skriptu s daným ID, ve stanovený čas, případně s možností pravidelného opakování úlohy 2x za hodinu po dobu 18 hodin.
- Úloha dostane jako argument jen ID tlačítka, skript proto běží pod anonymním uživatelem. Má-li běžet pod konkrétním uživatelem, je nutné v „Plánovači úloh“ doplnit do pole „Přidat argumenty“ za ID tlačítka mezeru a ID uživatele.
- Čas spuštění se zadává ve tvaru „hh:mm“, výchozí hodnota je „06:00“. Hodnota bez dvojtečky se vyhodnotí jako 00:00.
- Vytvořené úlohy se spouštějí denně – „BackupServer“, „BackupDatabase“ (program „SqlBackup.exe“) a „BackupAttachments“ (program „FileBackup.exe“) v 00:05, „Update“ ve 04:00, „ResendEmlFiles“ od 06:00 opakovaně po 30 minutách po dobu 18 hodin a úloha pro „RunScript.exe“, pojmenovaná podle názvu tlačítka, v zadaný čas.
- Instalaci spusťte kliknutím na tlačítko „Nastavit“. Po úspěšném dokončení se program zavře; zprávu zobrazí jen při chybě nebo upozornění – u databáze MSSQL upozorní u každé vytvořené nebo změněné úlohy na nutnost zkontrolovat její uživatelský účet.
- Existující naplánovanou úlohu vyhledává „Setup.exe“ podle názvu ve složce „NET Genium“. Má-li úloha stejného názvu akci, která spouští tentýž program (soubor na téže cestě), „Setup.exe“ ji nemění, ohlásí, že úloha již existuje, a nový čas spuštění ani nové argumenty se neuplatní. Úlohu je v takovém případě nutné upravit přímo v „Plánovači úloh“. Úloha stejného názvu bez takové akce, typicky úloha jiné instalace NET Genia na témže počítači, dostane akci navíc a čas jejího spuštění zůstane původní.
- Úloha pro „RunScript.exe“ se jmenuje podle názvu tlačítka. Pro druhé tlačítko se stejným názvem proto „Setup.exe“ úlohu nevytvoří a ohlásí, že již existuje – tlačítko je nutné přejmenovat, nebo úlohu vytvořit ručně v „Plánovači úloh“.
- Spusťte „Plánovač úloh“ a zkontrolujte vytvořenou naplánovanou úlohu, případně změňte uživatelský účet, v jehož kontextu má být naplánovaná úloha spouštěna.
- Dodatečná změna uživatelského účtu je nezbytná především v situacích, kdy plánujeme spouštění programu s přístupem do databáze – „FileBackup.exe“, „Update.exe“, „ResendEmlFiles.exe“ a „RunScript.exe“ – a kdy je databázový server nainstalovaný na jiném počítači, než je samotná aplikace, resp. IIS. V takovém případě není možné používat výchozí uživatelský účet „SYSTEM“, ale typicky technologický účet definovaný v „Active Directory“.
- Zálohování databází obecně je možné pouze z počítače, který je zároveň databázovým serverem. Programy „BackupServer.exe“ a „SqlBackup.exe“ má tedy smysl spouštět pouze z počítače, který je zároveň databázovým serverem.