RES Partner uživatelská dokumentace Datum publikace: 11.12.2017
2
Obsah 1 Základní informace 4 1.1 Systémové požadavky 4 2 Instalace produktu RES Partner 4 2.1 Instalace Firebird serveru a databáze 4 2.2 Instalace klientské části 4 2.3 Registrace 5 3 Aktualizace 6 4 Popis komunikačního rozhraní 7 4.1 API rozhraní 7 4.2 Aplikace ResApp 7 4.3 Podporované funkce a jejich vstupní parametry 7 4.4 Příklady volání aplikace ResApp 8 4.5 Popis XML výstupu 9 4.5.1 Grafický diagram 9 4.5.2 XSD schéma 10 4.5.3 Popis významu elementů 12 3
1 Základní informace Produkt RES Partner umožňuje získávat informace z databáze RES Plus z libovolných informačních systémů provozovaných pod operačním systémem Microsoft Windows. Komunikace s databází probíhá prostřednictvím otevřeného rozhraní dynamické knihovny (DLL), případně pomocí doplňkové konzolové aplikace, která datový výstup ukládá do souboru na disku. Způsob a míra integrace jsou dány konkrétními úpravami v cílovém informačním systému, které je třeba zkonzultovat s jeho výrobcem. 1.1 Systémové požadavky Komunikační knihovna využívá prostředí Microsoft.NET Framework verze 4.6 nebo vyšší, které jsou podporovány v těchto operačních systémech: Windows Vista (SP2), 7 (SP1), 8, 8.1, 10 Windows Server 2008 (SP2), 2008 R2 (SP1), 2012, 2012 R2, 2016 Podrobné informace o kompatibilitě jednotlivých verzí jsou uvedeny na stránkách prostředí.net Framework (anglicky), kde jsou vystaveny i instalační soubory pro případ, že potřebná verze prostředí není obsažena již přímo v operačním systému. Kompletní instalační soubor je vystaven také i na webových stránkách společnosti INISOFT. 2 Instalace produktu RES Partner Instalace probíhá ve dvou krocích: 1. 2. Instalace databázového serveru Firebird a databáze RES Plus verze 10/2017 nebo novější Instalace klientské části (komunikační knihovna, konzolová aplikace, servisní nástroj ResServis) V případě, že již používáte databázi RES Plus v propojení s dalšími produkty společnosti INISOFT s.r.o. (EVI8, SKLAD Odpadů 8 nebo OBAL8), je možné první krok vynechat a využívat připojení k již existující databázi verze 10 /2017 nebo novější. 2.1 Instalace Firebird serveru a databáze Postup pro instalaci databázového serveru Firebird a databáze RES Plus: 1. 2. 3. Stáhněte z webových stránek společnosti INISOFT s.r.o. nástroj pro instalaci produktu RES Plus (odkaz ve sloupci Demoverze). Spusťte stažený soubor a postupujte podle pokynů na obrazovce. Na konci instalace stornujte případnou výzvu k registraci produktu RES Plus. Pokud bude klientská část produktu RES Partner používána alespoň na jednom vzdáleném počítači (jiném počítači, než je umístěna databáze), je třeba v bezpečnostním software firewallu serveru otevřít pro příchozí komunikaci port TCP 3050. Databázi je možné alternativně provozovat i pod operačními systémy Linux a Mac OS X. Tento typ instalace ale není v produktech RES Plus ani RES Partner oficiálně podporován. Instalační balíčky databázového serveru jsou spolu s dokumentací dostupné na webových stránkách projektu Firebird. 2.2 Instalace klientské části Postup pro instalaci klientské části produktu, která zprostředkovává komunikaci s databází RES Plus: 1. Stáhněte z webových stránek společnosti INISOFT s.r.o. nástroj pro instalaci klientského software ResPartner. 2. Spusťte stažený soubor a postupujte podle pokynů na obrazovce. 4
3. V případě, že se zobrazí výzva k aktualizaci prostředí.net Framework, proveďte ji a spusťte instalační nástroj znovu. Instalační soubory.net Frameworku 4.6 jsou k dispozici na webových stránkách společnosti INISOFT s.r.o. Instalaci je možné provést lokálně na všech počítačích, kde se bude produkt RES Plus používat, nebo do sdíleného síťového úložiště. Možná je i instalace na server s terminálovým přístupem. 2.3 Registrace V posledním kroku instalačního průvodce je nabídnuta volba registrace produktu, kterou je možné provést online (nutné připojení k internetu) nebo telefonicky. Registrace je vázána na verzi databáze RES Plus a je ji třeba provést na všech počítačích, kde se bude klientská část produktu RES Partner používat, v případě práce v terminálovém prostředí pod přihlášením všech uživatelů, kteří budou klientskou část používat. Pro registraci si připravte licenční číslo obdržené při nákupu produktu. Registraci je možné provést kdykoli dodatečně pomocí nástroje ResServis, který je součástí klientského software. Lze ho spustit například prostřednictvím zástupce Servisní nástroj databáze RES Plus v nabídce Start / Všechny programy / INISOFT software / RES Partner. Na formuláři je třeba vybrat záložku RES Partner. 5
Poznámky: Pokud není klientský software řádně registrován, odpovědi na dotazy do databáze obsahují upozornění na tuto skutečnost a fiktivní data sloužící k testování. Databáze může být souběžně registrována pro produkty RES Partner i RES Plus. Registrace obou produktů jsou na sobě zcela nezávislé. 3 Aktualizace Aktualizace databáze RES Plus je vydávána každý měsíc a je ji možné provést dvěma způsoby: 1. 2. ručním stažením a spuštěním nástroje pro aktualizaci databáze (odkaz ve sloupci Aktualizace) pomocí nástroje ResServis (vyžaduje připojení k internetu): Klientská část produktu RES Partner je aktualizována nepravidelně a je ji možné provést formou přeinstalace. 6
4 Popis komunikačního rozhraní Poznámka Tato část dokumentace je určena výrobcům cílového informačního systému. 4.1 API rozhraní Základním způsobem propojení cílového informačního systému s databází RES Plus je využití API rozhraní knihovny ResDll.dll. Knihovna se připojuje k databázi RES Plus pomocí níže uvedených veřejných statických funkcí a vrací data ve formátu XML. Všechny vstupní parametry funkcí jsou typu string. Ve všech funkcích je vždy jako první vstupní parametr textový řetězec obsahující parametry připojení k databázi RES Plus podle specifikace Firebird ADO.NET Data Provider connection string (https://www.connectionstrings.com /firebird-ado-net-data-provider/) s těmito rozdíly: místo parametru "Database" je třeba použít parametr "initial catalog" místo parametru "DataSource" je třeba použít parametr "data source" Povinné parametry v connection stringu jsou initial catalog (lokální cesta k databázi z pohledu serveru, na kterém je databáze hostována), User popř. user id (standardní hodnota je "ADMIN") a Password popř. password (standardní hodnota je "masterkey"). Pokud je databáze umístěna na jiném serveru, je třeba zadat v parametru data source název serveru v síti nebo jeho IP adresu, pokud je databáze umístěna lokálně, zadá se zde hodnota localhost, nebo lze parametr úplně vynechat. Pokud služba Firebird přijímá požadavky od klientů na jiném než standardním portu TCP 3050, je třeba použít parametr Port. Součástí instalace klientské části produktu je soubor Demoapp.zip, který obsahuje zdrojové kódy jednoduché aplikace v Delphi XE4 demonstrující volání těchto funkcí z vývojového prostředí. 4.2 Aplikace ResApp ResApp.exe je konzolová aplikace, která zprostředkovává dotazování do databáze RES informačním systémům, které neumožňují využívat API rozhraní knihovny. Dotazování je ovládáno pomocí parametrů příkazové řádky. Syntaxe je následující: ResApp -funkce=" <název funkce> " -text=" <vstupní parametry> " -db=" <parametry připojení k databázi> " -vystup=" <výstupní XML soubor> " Do parametru -vystup se zadává název výstupního souboru, ve kterém je uložena odpověď na dotaz. Cestu lze zadat absolutní, relativní i ve formátu UNC. Pokud nelze do zadaného souboru zapisovat (neplatná cesta, nedostatečná práva, blokování souboru), je odpověď na dotaz zapsána do souboru %TEMP%\Res.xml. Parametry připojení k databázi se zadávají pomocí connection stringu stejně jako v API rozhraní, viz výše. 4.3 Podporované funkce a jejich vstupní parametry Název funkce Popis Vstupní parametry Poznámky 7
Název funkce Popis Vstupní parametry Poznámky není rozlišována velikost písmen NajdiSubjekt Vyhledání subjektů podle (části) názvu Hledaný text lze použít zástupné znaky % (řetězec libovolné délky) a _ (právě jeden znak) počet subjektů v odpovědi je omezen na maximálně 50 v odpovědi nejsou obsaženy detailní informace o provozovnách a zařízeních (uzly Provozovna a Zarizeni) ani o jejich počtu (uzly PocetProvozoven a PocetZarizeni) SubjektInfo Výpis detailů k vybranému subjektu IČO subjektu historická IČO, která mají méně než 8 číslic, lze zadávat s předsazenými nulami i bez ProvozovnaInfo Výpis detailů k vybrané provozovně IČO, IČP v parametru -text aplikace ResApp se zadává jako jeden řetězec ve formátu IČO IČP ZarizeniInfo Výpis detailů k vybranému zařízení IČO, IČZ v parametru -text aplikace ResApp se zadává jako jeden řetězec ve formátu IČO IČZ 4.4 Příklady volání aplikace ResApp resapp -funkce=najdisubjekt -text="pražské%" -db="initial catalog=c: \program files(x86)\res\res.idb;user=sysdba;password=masterkey;data source=192.168.1.1" -vystup="c:\mojedata\res.xml" resapp -funkce=subjektinfo -text="12345678" -db="initial catalog=f: \db\_model\res.idb;user=sysdba;password=masterkey;data source=server_w2008;port=3051" -vystup="res_vystup.xml" resapp -funkce=zarizeniinfo -text="12345678 CZL12345" -db="initial catalog=c:\db\res.idb;user=sysdba;password=masterkey;data source=localhost" -vystup="\\server\moje\res_vystup.xml" resapp -funkce=provozovnainfo -text="12345678 1234567890" -db="initial catalog=c:\db\res.idb;user=sysdba;password=masterkey" -vystup="g:res.xml" 8
4.5 Popis XML výstupu 4.5.1 Grafický diagram Element Subjekt se může vyskytnout v odpovědi na dotaz funkce NajdiSubjekt vícekrát, v případě ostatních funkcí vždy pouze jednou. V odpovědi na dotaz funkce NajdiSubjekt nejsou obsaženy elementy v oblasti Detailní informace. Element Provozovna se vyskytuje v odpovědi na dotaz funkce ProvozovnaInfo nanejvýš jednou, v případě funkce SubjektInfo se může vyskytovat i vícekrát. Element Zarizeni se vyskytuje v odpovědi na dotaz funkce ZarizeniInfo nanejvýš jednou, v případě funkce SubjektInfo se může vyskytovat i vícekrát. 9
4.5.2 XSD schéma <?xml version="1.0" encoding="utf-8"?> <xs:schema elementformdefault="qualified" xmlns:xs="http://www.w3.org/2001 /XMLSchema"> <xs:element name="result" nillable="true" type="result" /> <xs:complextype name="result"> <xs:element minoccurs="1" maxoccurs="1" name="dotaz" nillable="true" type="dot az" /> <xs:element minoccurs="1" maxoccurs="1" name="chyba" nillable="true" type="chy ba" /> <xs:element minoccurs="1" maxoccurs="1" name="odpoved" nillable="true" type="o dpoved" /> <xs:complextype name="dotaz"> <xs:element minoccurs="0" maxoccurs="1" name="rekapitulace" type="xs:string" /> <xs:complextype name="chyba"> <xs:element minoccurs="0" maxoccurs="1" name="popis" type="xs:string" /> <xs:complextype name="odpoved"> <xs:element minoccurs="0" maxoccurs="unbounded" name="subjekt" nillable="true" type="subjektinfo" /> <xs:complextype name="subjektinfo"> <xs:element minoccurs="0" maxoccurs="1" name="ic" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="zuj" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="nazev" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="ulice" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="obec" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="psc" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="forma" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="okec6a" type="xs:string" /> <xs:element minoccurs="1" maxoccurs="1" name="datumvzniku" nillable="true" typ e <xs:element minoccurs="1" maxoccurs="1" name="datumzaniku" nillable="true" typ e <xs:element minoccurs="1" maxoccurs="1" name="speceno" nillable="true" type="x s:int" /> <xs:element minoccurs="1" maxoccurs="1" name="pocetprovozoven" nillable="true" type="xs:int" /> <xs:element minoccurs="1" maxoccurs="1" name="pocetzarizeni" nillable="true" t ype="xs:int" /> <xs:element minoccurs="0" maxoccurs="unbounded" name="provozovna" nillable="tr ue" type="provozovnainfo" /> <xs:element minoccurs="0" maxoccurs="unbounded" name="zarizeni" nillable="true " type="zarizeniinfo" /> 10
<xs:complextype name="provozovnainfo"> <xs:element minoccurs="0" maxoccurs="1" name="ic" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="icp" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="ulice" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="obec" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="psc" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="zuj" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="unbounded" name="cinnost" nillable="true" type="cinnostinfo" /> <xs:complextype name="cinnostinfo"> <xs:element minoccurs="0" maxoccurs="1" name="nazev" type="xs:string" /> <xs:element minoccurs="1" maxoccurs="1" name="platnostod" nillable="true" type <xs:element minoccurs="1" maxoccurs="1" name="platnostdo" nillable="true" type <xs:complextype name="zarizeniinfo"> <xs:element minoccurs="0" maxoccurs="1" name="ident" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="ulice" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="obec" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="psc" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="mobilni" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="zuj" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="mobilnityp" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="souhlas" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="ippc" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="ippccislo" type="xs:string" /> <xs:element minoccurs="1" maxoccurs="1" name="gpssirka" nillable="true" type=" xs:decimal" /> <xs:element minoccurs="1" maxoccurs="1" name="gpsdelka" nillable="true" type=" xs:decimal" /> <xs:element minoccurs="0" maxoccurs="unbounded" name="provozovatel" nillable=" true" type="provozovatelinfo" /> <xs:element minoccurs="0" maxoccurs="unbounded" name="rozsah" nillable="true" type="rozsahinfo" /> <xs:element minoccurs="0" maxoccurs="unbounded" name="historieprovozu" nillabl e="true" type="historieprovozuinfo" /> <xs:complextype name="provozovatelinfo"> <xs:element minoccurs="0" maxoccurs="1" name="ic" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="zuj" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="nazev" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="ulice" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="obec" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="psc" type="xs:string" /> <xs:element minoccurs="1" maxoccurs="1" name="platnostod" nillable="true" type <xs:element minoccurs="1" maxoccurs="1" name="platnostdo" nillable="true" type <xs:element minoccurs="0" maxoccurs="1" name="krajkod" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="krajnazev" type="xs:string" /> 11
<xs:element minoccurs="0" maxoccurs="unbounded" name="povoleneodpady" nillable ="true" type="odpadinfo" /> <xs:complextype name="odpadinfo"> <xs:element minoccurs="0" maxoccurs="1" name="kod" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="nazev" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="kategorie" type="xs:string" /> <xs:element minoccurs="1" maxoccurs="1" name="platnostod" nillable="true" type <xs:element minoccurs="1" maxoccurs="1" name="platnostdo" nillable="true" type <xs:complextype name="rozsahinfo"> <xs:element minoccurs="0" maxoccurs="1" name="kod" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="nazev" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="proces" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="oblast" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="krajkod" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="krajnazev" type="xs:string" /> <xs:element minoccurs="1" maxoccurs="1" name="platnostod" nillable="true" type <xs:element minoccurs="1" maxoccurs="1" name="platnostdo" nillable="true" type <xs:complextype name="historieprovozuinfo"> <xs:element minoccurs="0" maxoccurs="1" name="ic" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="nazev" type="xs:string" /> <xs:element minoccurs="0" maxoccurs="1" name="stav" type="xs:string" /> <xs:element minoccurs="1" maxoccurs="1" name="datumod" nillable="true" type="x s:datetime" /> <xs:element minoccurs="1" maxoccurs="1" name="datumdo" nillable="true" type="x s:datetime" /> </xs:schema> Toto schéma je rovněž obsaženo v souboru Demoapp.zip, který je součástí instalace klientské části. 4.5.3 Popis významu elementů Název elementu Odpoved / Subjekt IC ZUJ Nazev Ulice Obec Popis Detaily k vybranému subjektu IČO subjektu Adresa sídla - kód Základní územní jednotky dle klasifikace ČSÚ Název subjektu Adresa sídla - ulice nebo část obce vč. čísla domu Adresa sídla - obec 12
Název elementu PSC Forma OKEC6A DatumVzniku DatumZaniku SPECENO PocetProvozoven PocetZarizeni Odpoved / Subjekt / Provozovna IC ICP Ulice Obec PSC ZUJ Odpoved / Subjekt / Provozovna / Cinnost Nazev PlatnostOd PlatnostDo Odpoved / Subjekt / Zarizeni Ident Ulice Obec PSC Mobilni ZUJ MobilniTyp Popis Adresa sídla - PSČ Kód právní formy subjektu dle číselníku ČSÚ Kód hlavní ekonomické činnosti dle klasifikace CZ-NACE Datum vzniku Datum zániku (interní údaj) Počet evidovaných provozoven Počet evidovaných zařízení Detaily k vybrané provozovně IČO subjektu Identifikační číslo provozovny (IČP) Adresa provozovny - ulice nebo část obce vč. čísla domu Adresa provozovny - obec Adresa provozovny - PSČ Adresa provozovny - kód Základní územní jednotky dle klasifikace ČSÚ Činnosti na vybrané provozovně Název činnosti Datum zahájení činnosti na provozovně Datum ukončení činnosti na provozovně Detaily k vybranému zařízení Identifikační číslo zařízení (IČZ) Adresa zařízení - ulice (pouze u stacionárních zařízení) Adresa zařízení - obec (pouze u stacionárních zařízení) Adresa zařízení - PSČ (pouze u stacionárních zařízení) Typ zařízení: 0 = stacionární, 1 = mobilní Adresa zařízení - kód Základní územní jednotky dle klasifikace ČSÚ (pouze u stacionárních zařízení) Typ mobilního zařízení (pouze u mobilních zařízení): 0 = sběr a výkup, 1 = mechanické procesy, 2 = fyzikálně-chemické procesy, 3 = biologické procesy, 4 = ostatní 13
Název elementu Souhlas IPPC IPPCCislo GPSSirka GPSDelka Odpoved / Subjekt / Zarizeni / Provozovatel IC ZUJ Nazev Ulice Obec PSC PlatnostOd PlatnostDo KrajKod KrajNazev Odpoved / Subjekt / Zarizeni / Provozovatel / PovoleneOdpady Kod Nazev Kategorie PlatnostOd PlatnostDo Odpoved / Subjekt / Zarizeni / Provozovatel / Rozsah Kod Nazev Popis Typ souhlasu s provozem zařízení: 0 = podle 14 odst. 1, 1 = podle 14 odst. 2, 2 = bez souhlasu (malé zařízení pro zpracování BRO podle 33b odst. 1 písm. a) Zákona o odpadech Rozlišení, zda je pro zařízení vydáno integrované povolení IPPC: 1 = ano, 0 = ne Registrační kód zařízení v evidenci integrovaných povolení IPPC GPS souřadnice zařízení - šířka (WGS84, desetinný formát) GPS souřadnice zařízení - délka (WGS84, desetinný formát) Informace o provozovateli zařízení IČO provozovatele Adresa sídla provozovatele - kód Základní územní jednotky dle klasifikace ČSÚ Název provozovatele Adresa sídla provozovatele - ulice vč. čísla domu Adresa sídla provozovatele - obec Adresa sídla provozovatele - PSČ Počáteční datum platnosti souhlasu s provozem zařízení Koncové datum platnosti souhlasu s provozem zařízení Kód kraje, který vydal souhlas Název kraje, který vydal souhlas Povolené odpady k převzetí do zařízení Katalogové číslo odpadu Název odpadu Skutečná kategorie odpadu (N = nebezpečný, O = ostatní; v případě překategorizace se uvádí písmeno za lomítkem, např. odpad kategorie O/N je zapsán jako N) Počáteční datum platnosti souhlasu s převzetím odpadu do zařízení Koncové datum platnosti souhlasu s převzetím odpadu do zařízení Katalogizace zařízení (povolené technologie) Kód technologie Název technologie 14
Název elementu Proces Oblast PlatnostOd PlatnostDo Odpoved / Subjekt / Zarizeni / HistorieProvozu IC Nazev Stav DatumOd DatumDo Popis Název procesu (skupiny technologie) Název oblasti (kategorie technologie) Počáteční datum platnosti Koncové datum platnosti Historie provozu zařízení IČO provozovatele Název provozovatele Kód stavu: 0 = zahájení provozu, 2 = znovuzahájení provozu Počáteční datum platnosti Koncové datum platnosti 15