Pom15: Porovnání verzí

Z Prirucky
(Stránka vyprázdněna)
Řádek 1: Řádek 1:
''Insolvence - aktualizace dat'' - informace o zaměstnancích v insolvenčním řízení v aplikaci KS mzdy. Jedná se o '''doplňkový modul''' aplikace zpřístupněný na vyžádaní (objednávka).


== Popis řešení ==
Zde je popsáno řešení automatického zjišťování insolvenčních dlužníků v aplikaci. Informace o těchto dlužnících jsou uloženy v databázi 
informačního systému veřejné správy - Insolvenční rejstřík (ISIR). Pro účely automatického zjišťování insolvenčních dlužníků je na straně ISIR k dispozici webová služba ISIR_CUZK_WS, která umožňuje on-line dotazování na řízení vedená v insolvenčním rejstříku za pomoci identifikačních údajů dlužníka. Tato on-line webová služba poskytuje pouze stručné informace o insolvenčních řízeních vedených s osobami na území ČR. Jejím účelem je poskytnutí informace, zda je na danou osobu (fyzickou či právnickou) vedeno insolvenční řízení a v jakém je stavu. Webová služba tedy neposkytuje podrobné informace o průběhu insolvenčního řízení a rovněž neposkytuje zveřejněné dokumenty. Webová služba čerpá data z vlastní databáze, která je v pravidelném intervalu 1 hodiny synchronizována s databází Insolvenčního  rejstříku ISIR. Služba tak poskytuje stejné údaje jako webové rozhraní Insolvenčního rejstříku (https://isir.justice.cz), avšak s maximálním zpožděním 1 hodiny.
Aplikace KS mzdy přímo nekomunikuje s webovou službou ISIR_CUZK_WS. Důvodem je snaha o zajištění maximální dostupnosti informace o dlužnících. Ke komunikaci s webovou službou ISIR_CUZK_WS slouží KS klient, což je samostatný program, který zjištěné informace o dlužnících ukládá do databáze aplikace KS mzdy. Informace o vlastních zaměstnancích, kteří jsou vedeni jako dlužníci v insolvenčním řízení, jsou potom dostupné v sestavě ''Zaměstnanci v insolvenčním rejstříku'' (MP 016).
== Zaměstnanci v insolvenčním rejstříku (sestava) ==
Popis práce se sestavou - viz zde [[Insolvence]].
== Aktualizace báze dat ==
Před prvním spuštěním je potřeba [[Rozšiřující parametry#Doplnění rozšiřujících parametrů|doplnit rozšiřující parametry]]. <small>Skrytý rozšiřující parametr insr_last_id je totiž použit k uchování posledního zpracovaného záznamu z ISIR.</small>
Aktualizace báze dat se provádí prostřednictvím KS klienta, což je samostatný program, který pracuje jako klient webové služby ISIR.
Tohoto klienta lze spouštět buď přímým spuštěním s danými parametry nebo prostřednictvím windows služby či spouštěče úloh.
<small> Databáze insolvenčního rejstříku ISIR obsahuje velké množství záznamu (ke dni 25.4.2012, cca 7.000.000 záznamů), které je potřeba zpracovat a vytvořit odpovídající bázi dat v databázi KS mzdy PROFi. Proto bude při prvním spuštění klienta zpracována kompletní databáze ISIR a po jejím zpracování bude klient při dalším spuštění zpracovávat pouze změny v databázi ISIR. </small>
Pro spouštění klienta doporučujeme využít dodanou windows službu (viz níže).
== KS klient ==
K činnosti klienta je vyžadováno běhové prostředí '''.NET Framework 4'''.
KS klient je tvořen dvěma programy:
* '''Program pro aktualizaci báze dat (KSPortalServiceCommand)'''
* '''Windows služba (KSPortalService)'''
=== Program pro aktualizaci báze dat (KSPortalServiceCommand) ===
Jedná se o hlavní program KS klienta (konzolovou aplikaci), který slouží k vyhledávání insolvenčních dlužníků v ISOR a pro svou činnost vyžaduje zadání parametrů při spuštění. Tyto parametry určují jeho funkcionalitu.
Dvojice parametrů, při nichž dojde k naplnění báze dat z insolvenčního rejstříku:
: /zInsolvence /cwebservice.
<small>Příklad: KSPortalServiceCommand.exe /zInsolvence /cwebservice </small>
Pokud se vyskytne chyba při vykonávání činnosti aplikace, je tato zapsána do log souboru a vypsána na obrazovku (umístění log souboru je definováno v konfiguračních souborech - viz dále). Činnost aplikace je po vyvolání chyby ukončena.
=== Windows služba (KSPortalService) ===
Jedná se o windows službu, která provádí stejnou činnost jako konzolová aplikace KSPortalServiceCommand, kdy dle nastaveného intervalu provádí vyhledání vlastních zaměstnanců v ISIR <small>(provádí řízené spouštění programu KSPortalServiceCommand)</small>.
Po jejím správném nainstalování a spuštění ve správci služeb (Nástroje pro správu / Služby) provádí automatické vyhledávání vlastních zaměstnanců v ISIR. Pokud se vyskytne chyba při vykonávání činnosti aplikace, je tato chyba zapsána do log souboru a prohlížeče událostí. Po výskytu chyby při činnosti klienta je zpracování ukončeno, ale po uplynutí nastaveného intervalu (interval je počítán od doby posledního spuštění této služby) je zpracování automaticky spuštěno.
==== Instalace ====
Instalaci windows služby je '''potřeba provádět pod administrátorským účtem'''.
Instalace windows služby se provádí utilitou '''''InstallUtil.exe''''', která je součástí .NET Frameworku. Parametrem je cesta k instalačnímu souboru. Při instalaci se definuje účet pod kterým služba poběží (nemusí být administrátorský).
<small>Příklad: C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe C:\<cesta>\ksportalservice.exe </small>
==== Odinstalace ====
Odinstalace se provádí utilitou '''''InstallUtil.exe''''' spuštěné s parametry. Prvním parametrem je /u a druhým cesta k instalačnímu souboru.
<small>Příklad: C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /u C:\<cesta>\ksportalservice.exe </small>
=== Konfigurační soubory ===
Součástí programů jsou konfigurační soubory '''KSPortalService.exe.config''' a '''KSPortalServiceCommand.exe.config'''. Musí být nakonfigurovány oba soubory a to stejně.
V těchto souborech je potřeba nakonfigurovat tyto sekce:
: Cestu k logovacímu souboru
: Databázové připojení
: Interval spouštění klienta windows službou (v příkladu je nastavena hodnota 10min (600000ms), což může být pro začátek ponecháno)
: Přístupové údaje k proxy serveru. Tyto parametry je potřeba doplnit do konfiguračních souborů pouze v případě, že je vyžadováno ověřování na proxy serveru.
<appSettings>
  <!--Interval (v tisícinách sekundy) ve kterém windows služba spouští klienta webové služby-->
  <add key="interval" value="600000"/>
  <!--Název windows služby-->
  <add key="ServiceName" value="KSPortalService_Insolvence"/>
  <!—Cesta k logovacímu souboru-->
  <add key="LogPath" value="d:\Test\"/>
  <!--Nastavení pro PROXY -->
  <add key="ProxyUserName" value="username"/>
  <add key="ProxyPassword" value="password"/>
</appSettings>
<connectionStrings>
  <!--Databázové připojení (atribut name="mzdy" musí zůstat zachován).-->
  <add name="mzdy" connectionString="server=absint_pc;database=web_mzdy;uid=test;pwd=test"
  providerName="System.Data.SqlClient"/>
</connectionStrings>
V sekci <system.serviceModel> lze konfigurovat připojení k webové službě.
Pokud je v síti používaná proxy, je potřeba mít nastaveny hodnoty klíčů: 'ProxyUserName', 'ProxyPassword'. Dále je
potřeba použít upravenou sekci <binding> s nastavením skutečné IP adresy proxy serveru a portu v parametru 'proxyAdress' (např.: proxyAddress="http://123.10.0.12:83"), viz. příklad:
<bindings>
    <basicHttpBinding>
        <binding name="IsirWsCuzkPortTypeBinding" useDefaultWebProxy="false" proxyAddress="http://123.10.0.12:83">
            <security mode="Transport">
                <transport clientCredentialType="None" proxyCredentialType="Basic"/>
                <message clientCredentialType="UserName" algorithmSuite="Default"/>
            </security>
        </binding>
    </basicHttpBinding>
</bindings>
==== Nastavení DB připojení ====
Připojení na databáze MSSQL a Oracle je již implementován přímo v .Net Frameworku, takže se pro tyto databázové platformy nemusí nic instalovat. K ostatním databázovým platformám je možné přistupovat prostřednictvím ODBC. Použité ODBC musí podporovat DotNet. Zákazník by měl získat ODBC od svého dodavatele databáze.
Databázové připojení v KS klientovi definuje ConnectionString, který se nachází v sekci <connectionStrings> v souboru KSPortalServiceCommand.exe.config.
Příklady ConnectionStringu: <br>
'''Pro MSSQL''' <br>
<add name="web_mzdy" connectionString="server=web_pc;database=mzdy;uid=test;pwd=test"
providerName="System.Data.SqlClient"/>
'''Pro ODBC''' <br>
<add name="web_mzdy" connectionString="DSN=i_mzdy" providerName="System.Data.Odbc"/>
'''Položky DB připojení''' <br>
* name - jméno DB připojení
* server - název nebo IP adresa počítače, na kterém běží DB server
* database - název databáze, ke které bude chtít být připojeni
* uid - login pro přístup do databáze
* pwd - heslo pro přístup do databáze
== Logovací soubory ==
Pokud je KS klient spouštěn prostřednictvím windows služby a během jeho činnosti vzniknou chybové události, jsou informace o těchto událostech dostupné v prohlížeči událostí (Nástroje pro zprávu – Prohlížeč událostí) nebo v logovacím souboru Insolvence_log.xml.
Soubor Insolvence_log.xml je dostupný v umístění dle konfiguračního souboru (např. <add key="LogPath" value="d:\Test\"/>)
== Test funkčnosti KS klienta ==
Zda klient zpracovává záznamy z ISIR lze zjistit v sestavě MP016. Pokud poslední aktualizace proběhla úspěšně, je v okně sestavy uveden datum a čas poslední aktualizace. Pokud poslední aktualizace neproběhla správně, je namísto data a času poslední aktualizace uvedeno 'NEÚSPĚŠNĚ'.
Dále je možno ověřit zda klient zpracovává záznamy z ISIR níže uvedenými SQL příkazy nad příslušnou databázi definovanou v konfiguračních souborech.
SELECT count(*) FROM insr_osoba;
: SQL příkaz vypíše počet nalezených dlužníků v ISIR.
SELECT hodnota FROM e_param WHERE polozka = 'insr_last_id';
: Ve sloupci hodnota budou 3 údaje odděleny znakem '|':
: [počet nalezených dlužníku | čas poslední aktualizace | čas synchronizace databází ISIR].
: Pokud je údaj 'počet nalezených dlužníků' >= -1 pracuje klient správně (hodnota -1 značí, že se právě
: provádí ověřování). V případě chyby je na tomto místě uvedeno číslo -10 a v logovacím souboru je zalogována chyba.
== DB tabulky ==
Při činnosti klienta jsou používány tyto databázové tabulky:
: ''pracovnici'' – čtení
: ''insr_osoba'' – čtení a zápis
: ''e_param'' - čtení a zápis
== Odkazy ==
* [[Insolvence]]
<!-- Vypracoval:
Ing. Milan Žamboch
Programátor
KS - program, spol. s r.o.
Rokytnice 153
755 01 Vsetín
tel: 571 499 474
milan.zamboch@ksprogram.cz
-->

Verze z 20. 7. 2017, 13:33