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.
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.
Instalace produktu RES Partner
Instalace probíhá ve dvou krocích:
- 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ší.
Instalace Firebird serveru a databáze
Postup pro instalaci databázového serveru Firebird a databáze RES Plus:
- 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.
- V adresáři s instalací Firebirdu je třeba v konfiguračním souboru Firebird.conf nastavit parametr WireCrypt = Enabled (platí pro Firebird verze 3.x).
- 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.
Instalace klientské části
Postup pro instalaci klientské části produktu, která zprostředkovává komunikaci s databází RES Plus:
- Stáhněte z webových stránek společnosti INISOFT s.r.o. nástroj pro instalaci klientského software ResPartner.
- Spusťte stažený soubor a postupujte podle pokynů na obrazovce.
- 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.
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.
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é.
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:
- 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.
Popis komunikačního rozhraní
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í.
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.
Podporované funkce a jejich vstupní parametry
Název funkce | Popis | Vstupní parametry | Poznámky |
---|---|---|---|
NajdiSubjekt | Vyhledání subjektů podle (části) názvu | Hledaný text |
|
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 |
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"
Popis XML výstupu
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.
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:sequence> <xs:element minOccurs="1" maxOccurs="1" name="Dotaz" nillable="true" type="Dotaz" /> <xs:element minOccurs="1" maxOccurs="1" name="Chyba" nillable="true" type="Chyba" /> <xs:element minOccurs="1" maxOccurs="1" name="Odpoved" nillable="true" type="Odpoved" /> </xs:sequence> </xs:complexType> <xs:complexType name="Dotaz"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="Rekapitulace" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:complexType name="Chyba"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="Popis" type="xs:string" /> </xs:sequence> </xs:complexType> <xs:complexType name="Odpoved"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="Subjekt" nillable="true" type="SubjektInfo" /> </xs:sequence> </xs:complexType> <xs:complexType name="SubjektInfo"> <xs:sequence> <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" type="xs:dateTime" /> <xs:element minOccurs="1" maxOccurs="1" name="DatumZaniku" nillable="true" type="xs:dateTime" /> <xs:element minOccurs="1" maxOccurs="1" name="SPECENO" nillable="true" type="xs:int" /> <xs:element minOccurs="1" maxOccurs="1" name="PocetProvozoven" nillable="true" type="xs:int" /> <xs:element minOccurs="1" maxOccurs="1" name="PocetZarizeni" nillable="true" type="xs:int" /> <xs:element minOccurs="0" maxOccurs="unbounded" name="Provozovna" nillable="true" type="ProvozovnaInfo" /> <xs:element minOccurs="0" maxOccurs="unbounded" name="Zarizeni" nillable="true" type="ZarizeniInfo" /> </xs:sequence> </xs:complexType> <xs:complexType name="ProvozovnaInfo"> <xs:sequence> <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:sequence> </xs:complexType> <xs:complexType name="CinnostInfo"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="Nazev" type="xs:string" /> <xs:element minOccurs="1" maxOccurs="1" name="PlatnostOd" nillable="true" type="xs:dateTime" /> <xs:element minOccurs="1" maxOccurs="1" name="PlatnostDo" nillable="true" type="xs:dateTime" /> </xs:sequence> </xs:complexType> <xs:complexType name="ZarizeniInfo"> <xs:sequence> <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" nillable="true" type="HistorieProvozuInfo" /> </xs:sequence> </xs:complexType> <xs:complexType name="ProvozovatelInfo"> <xs:sequence> <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:dateTime" /> <xs:element minOccurs="1" maxOccurs="1" name="PlatnostDo" nillable="true" type="xs:dateTime" /> <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="0" maxOccurs="unbounded" name="PovoleneOdpady" nillable="true" type="OdpadInfo" /> </xs:sequence> </xs:complexType> <xs:complexType name="OdpadInfo"> <xs:sequence> <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:dateTime" /> <xs:element minOccurs="1" maxOccurs="1" name="PlatnostDo" nillable="true" type="xs:dateTime" /> </xs:sequence> </xs:complexType> <xs:complexType name="RozsahInfo"> <xs:sequence> <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:dateTime" /> <xs:element minOccurs="1" maxOccurs="1" name="PlatnostDo" nillable="true" type="xs:dateTime" /> </xs:sequence> </xs:complexType> <xs:complexType name="HistorieProvozuInfo"> <xs:sequence> <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="xs:dateTime" /> <xs:element minOccurs="1" maxOccurs="1" name="DatumDo" nillable="true" type="xs:dateTime" /> </xs:sequence> </xs:complexType> </xs:schema>
Toto schéma je rovněž obsaženo v souboru Demoapp.zip, který je součástí instalace klientské části.
Popis významu elementů
Název elementu | Popis |
---|---|
Odpoved / Subjekt | Detaily k vybranému subjektu |
IC | IČO subjektu |
ZUJ | Adresa sídla - kód Základní územní jednotky dle klasifikace ČSÚ |
Nazev | Název subjektu |
Ulice | Adresa sídla - ulice nebo část obce vč. čísla domu |
Obec | Adresa sídla - obec |
PSC | Adresa sídla - PSČ |
Forma | Kód právní formy subjektu dle číselníku ČSÚ |
OKEC6A | Kód hlavní ekonomické činnosti dle klasifikace CZ-NACE |
DatumVzniku | Datum vzniku |
DatumZaniku | Datum zániku |
SPECENO | (interní údaj) |
PocetProvozoven | Počet evidovaných provozoven |
PocetZarizeni | Počet evidovaných zařízení |
Odpoved / Subjekt / Provozovna | Detaily k vybrané provozovně |
IC | IČO subjektu |
ICP | Identifikační číslo provozovny (IČP) |
Ulice | Adresa provozovny - ulice nebo část obce vč. čísla domu |
Obec | Adresa provozovny - obec |
PSC | Adresa provozovny - PSČ |
ZUJ | Adresa provozovny - kód Základní územní jednotky dle klasifikace ČSÚ |
Odpoved / Subjekt / Provozovna / Cinnost | Činnosti na vybrané provozovně |
Nazev | Název činnosti |
PlatnostOd | Datum zahájení činnosti na provozovně |
PlatnostDo | Datum ukončení činnosti na provozovně |
Odpoved / Subjekt / Zarizeni | Detaily k vybranému zařízení |
Ident | Identifikační číslo zařízení (IČZ) |
Ulice | Adresa zařízení - ulice (pouze u stacionárních zařízení) |
Obec | Adresa zařízení - obec (pouze u stacionárních zařízení) |
PSC | Adresa zařízení - PSČ (pouze u stacionárních zařízení) |
Mobilni | Typ zařízení: 0 = stacionární, 1 = mobilní |
ZUJ | Adresa zařízení - kód Základní územní jednotky dle klasifikace ČSÚ (pouze u stacionárních zařízení) |
MobilniTyp | 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í |
Souhlas | 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 |
IPPC | Rozlišení, zda je pro zařízení vydáno integrované povolení IPPC: 1 = ano, 0 = ne |
IPPCCislo | Registrační kód zařízení v evidenci integrovaných povolení IPPC |
GPSSirka | GPS souřadnice zařízení - šířka (WGS84, desetinný formát) |
GPSDelka | GPS souřadnice zařízení - délka (WGS84, desetinný formát) |
Odpoved / Subjekt / Zarizeni / Provozovatel | Informace o provozovateli zařízení |
IC | IČO provozovatele |
ZUJ | Adresa sídla provozovatele - kód Základní územní jednotky dle klasifikace ČSÚ |
Nazev | Název provozovatele |
Ulice | Adresa sídla provozovatele - ulice vč. čísla domu |
Obec | Adresa sídla provozovatele - obec |
PSC | Adresa sídla provozovatele - PSČ |
PlatnostOd | Počáteční datum platnosti souhlasu s provozem zařízení |
PlatnostDo | Koncové datum platnosti souhlasu s provozem zařízení |
KrajKod | Kód kraje, který vydal souhlas |
KrajNazev | Název kraje, který vydal souhlas |
Odpoved / Subjekt / Zarizeni / Provozovatel / PovoleneOdpady | Povolené odpady k převzetí do zařízení |
Kod | Katalogové číslo odpadu |
Nazev | Název odpadu |
Kategorie | 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) |
PlatnostOd | Počáteční datum platnosti souhlasu s převzetím odpadu do zařízení |
PlatnostDo | Koncové datum platnosti souhlasu s převzetím odpadu do zařízení |
Odpoved / Subjekt / Zarizeni / Provozovatel / Rozsah | Katalogizace zařízení (povolené technologie) |
Kod | Kód technologie |
Nazev | Název technologie |
Proces | Název procesu (skupiny technologie) |
Oblast | Název oblasti (kategorie technologie) |
PlatnostOd | Počáteční datum platnosti |
PlatnostDo | Koncové datum platnosti |
Odpoved / Subjekt / Zarizeni / HistorieProvozu | Historie provozu zařízení |
IC | IČO provozovatele |
Nazev | Název provozovatele |
Stav | Kód stavu: 0 = zahájení provozu, 2 = znovuzahájení provozu |
DatumOd | Počáteční datum platnosti |
DatumDo | Koncové datum platnosti |