Webové služby ODOK - Univerzální komunikační rozhraní Speciální komunikační rozhraní slouží pro vzájemnou výměnu informací mezi eklep a aplikacemi třetích stran, zejména spisové služby. Komunikační rozhraní podporuje oboustrannou komunikaci směrem od eklep ke spisovým službám, a směrem od spisových služeb do eklep. Obsah Webové služby ODOK - Univerzální komunikační rozhraní... 1 Odkaz na WSDL... 1 Přístupová práva... 1 Společné operace... 2 Řízené slovníky... 2 Operace pro komunikaci eklep -> Spisové služby... 3 Operace pro komunikaci Spisové služby -> eklep... 4 Chybové stavy operací webových služeb:... 6 Obecné chybové stavy:... 6 Specifické chybové stavy:... 6 Popis formátu "resource"... 9 Příloha: Příklady... 11 Odkaz na WSDL Testovací verze: https://kormoran.vlada.cz/odoktest/eklep-ws-test.nsf/eklepws?wsdl Přístupová práva Pro přístup k webovým službám ODOK je nutné aplikaci třetích stran zaregistrovat správcem ODOK, svou žádost zašlete emailem na adresu odok@vlada.cz. Při registraci aplikace správce vygeneruje přístupové údaje a rozsah povolených operací vzájemné komunikace. Komunikační rozhraní webové služby ODOK je postaveno na knihovnickém přístupu katalog-fond. Pro aplikace třetích stran je přístupný samotný katalog přístupný pro danou organizaci (operace: getcatalogueforreviewprocess) a fond eklepu (operace getsecondarydocument, getprimarydocument). To znamená, že aplikace třetích stran musí pro získání dalších informací o zdroji znát identifikátor daného zdroje - materiál, připomínka. Tento identifikátor je možné získat prostřednictvím avizovací služby eklep, jejíž součástí je i xml soubor pro možné strojové zpracování. Pro zjednodušené poskytování webových služeb bylo nutné sjednotit datovou strukturu jak pro avizovací služby, tak i pro webové služby.
Společné operace Společnou operací pro obousměrnou komunikaci jsou seznamy řízených slovníků: seznam typů materiálu (requesttypelist) seznam typů připomínek (reviewtypelist) seznam možných stavů materiálu (statuslist) seznam povinných připomínkových míst (mandatoryreviewerlist) seznam dalších připomínkových míst (otherreviewerlist) seznam klíčových slov (keywordlist) seznam oblastí práva (lawarealist) Pro získání řízených slovníku slouží operace "getsubjectentries" s jedním vstupním parametrem "subjecttype". Tento parametr může obsahovat hodnoty (requesttypelist, reviewtypelist, mandatoryreviewers, otherreviewers, keywordlist, lawarealist). operace "getsubjectentries" Vstupní parametr: název řízeného slovníku Výstup: seznam hodnot slovníku ve formátu kódu a hodnoty položky slovníku (code / value) Další technické podrobnosti volání operace "getsubjectentries" lze najít v příloze. Řízené slovníky Stavy materiálu Code Value 2 2 - v připomínkovém řízení 3 3 - připomínkové řízení ukončeno 3ZV 3ZV - k posouzení MZV 4 4 - odmítnuta verze pro jednání vlády 5 5 - pro jednání vlády 6 6 - přijato ÚV ke zpracování 7 7 - zařazeno do evidence 8 8 - zařazeno na jednání vlády 9 9 - projednáno A A - zapracovány změny B B - signováno C C - zasláno PSP D D - projednávání PSP Y Y - skartováno Z Z - odmítnuto ÚV 6PK 6PK - přijato ÚV ke zpracování 7PK 7PK - zařazeno do evidence OVL 8PK 8PK - zařazeno na jednání PK 9PK 9PK - projednáno PK Typ materiálu Code Value MSP Mezinárodní smlouva prezidentská MSR Mezinárodní smlouva resortní MSV Mezinárodní smlouva vládní
NKZ NNV NV NVZZ NZ PNZ NLNV SNZ UZZ ZOS Návrh krajského zastupitelstva Návrh nařízení vlády Návrh vyhlášky Návrh věcného záměru zákona Návrh zákona Návrh zákona předložený PS Nelegislativní materiál Senátní návrh zákona Úplné znění zákona Zákonné opatření Senátu Typ připomínky Code Value BP Bez připomínek D Doporučující připomínka Z Zásadní připomínka Typ příloh Code pd ob us up zp msc mso zpp ma zd pz Rt vp np pdo mp nup nus pdz uv uvp pr St ria Value Průvodní dopis Obálka Návrh usnesení Příloha návrhu usnesení Předkládací zpráva Text v českém jazyce Text v cizím jazyce Předkládací zpráva pro parlament Materiál Důvodová zpráva Platné znění s vyznačením navrhovaných změn a doplnění Rozdílová tabulka Vypořádání připomínek Návrh prováděcích právních předpisů Přehled dopadů Další příloha materiálu Návrh usnesení - PSP Návrh usnesení - SEN Průvodní dopis změny Usnesení vlády Příloha usnesení vlády Připomínka Stanovisko Závěrečná zpráva RIA Operace pro komunikaci eklep -> Spisové služby Aplikace třetích stran může získat prostřednictvím operace " getcatalogueforreviewprocess" seznam materiálů v připomínkovém řízení, tj. ve stavu "2 - přípomínkové řízení", kde je daná organizace
připomínkovým místem. Operace vrátí odpověď ve formátu katalogu, tj. seznam identifikátorů materiálů. Aplikace třetích stran mohou pomocí dvou operací získat údaje o materiálech dvoukrokově: Metadata k samotnému materiálu pomocí operace "getsecondarydocument" Primární obsah (přílohy) pomocí operace "getprimarydocument". operace "getcatalogueforreviewprocess" Vstupní parametr: žádný Výstupní parametr: část katalogu eklepu odpovídající danému výběru operace "getsecondarydocument" Vstupní parametr: PID sekundárního dokumentu (materiálu, připomínky) - jednoznačný identifikátor Výstup: metadata ve formátu objektu "resource" (viz kapitola o formátu "resource") operace "getprimarydocument" Vstupní parametr: identifikátor úložiště, název přílohy Výstup: obsah souboru ve formátu BASE64 sd ODOK Web serv ice interface EKLEP Application ODOK WS getcatalogueforreviewprocess() getcatalogueforreviewprocess() catalogueforreviewprocess() catalogueforreviewprocess() getsecondarydocument(pid) getsecondarydocument() secondarydocument() secondarydocument() getprimarydocument(storageid, filename) getprimarydocument() primarydocument() primarydocument() Operace pro komunikaci Spisové služby -> eklep Spisové služby prostřednictvím operací "addsecondarydocument", "addprimarydocument" mohou předpřipravit materiál anebo připomínku v eklep. Samotnou autorizaci materiálu anebo připomínky již musí uživatel s právy autorizace provést prostřednictvím webového rozhraní eklep.
Pomocí operace "addsecondarydocument" lze vložit materiál anebo připomínku. Materiál lze vložit rovnou do připomínkového řízení (nutné vyplnit konec připomínkového řízení, a seznam připomínkových míst), anebo bez (bez data konce připomínkového řízení). Po úspěšném uploadu do eklep operace vrátí PID materiálu, který eklep přidělil. PID je vstupním parametrem operace "addprimarydocument" pro identifikaci materiálu, ke kterému budou přílohy vkládány. operace "addsecondarydocument" Vstupní parametr: metadata ve formátu objektu "resource" (viz kapitola o formátu "resource") Výstup: PID sekundárního dokumentu (materiálu, připomínky) - jednoznačný identifikátor Operací lze vložit materiál do připomínkového řízení (PŘ), pro jednání vlády (bez připomínkového řízení), připomínku k materiálu. Při vkládání materiálu je nutné do parametru "documenttype" vložit hodnotu "request". Při vkládání připomínky je nutné vložit do parametru "documenttype" hodnotu "review". Autorizaci samotného dokumentu je nutné již dokončit v eklep pomocí webového rozhraní. Vložení materiálu Povinné atributy: - type / documenttype - identifier / idno_ext - subject / keywords - subject / law_areas - subject / type / code - description - title - mandate Vložení materiálu do PŘ Při vkládání materiálu do PŘ musí být vyplněny kromě obecných povinných atributů taky atributy: - review_process_finish - content / data / request / reviewers Vložení materiálu bez PŘ Při vkládání materiálu bez PŘ se atribut "review_process_finish" neuvádí. Vložení připomínky - type / documenttype - identifier / idno_ext - subject / review_type / code - ispartof / identifier / pid operace "addprimarydocument" Vstupní parametr: PID sekundárního dokumentu, Typ přílohy (viz seznam typů příloh), původní název přílohy, a samotný obsah přílohy (BASE64 formát) Výstup: výsledek uploadu
sd ODOK Web serv ice interface - Application->eKLEP EKLEP Application ODOK WS addsecondarydocument() addsecondarydocument() PID() PID() addprimarydocument() addprimarydocument() result() result() Chybové stavy operací webových služeb: Obecné chybové stavy: Nedostatečné oprávnění pro danou operaci vrátí chybovou hlášku: javax.naming.authenticationexception : Chybová hláška znamená, že buď soap message nemá správné přihlašovací údaje anebo aplikace nemá oprávnění k přístupu k dané operaci. Neoprávněný přístup je logován. Specifické chybové stavy: operace "getcatalogueforreviewprocess" - nemá specifické chybové stavy operace "getsecondarydocument" - nenalezen dokument pod daným PID 400 No document with this PID found Nebyl nalezen dokument s daným PIDem operace "getprimarydocument" 6300 No parameter 'storageid' specified Chybí parametr storageid
6301 No parameter 'filename' specified Chybí parametr filename 6302 Attachment with xxx in yyy not found Příloha pod názvem xxx v úložišti yyy nebyla nalezena 6306 Invalid replica ID of the storage: Nevalidní identifikátor úložiště operace "addsecondarydocument" Obecná chyba: 6000 Invalid document type: Chybí povinný údaj anebo je nevalidní typ dokumentu. Povolené hodnoty jsou "request" a "review" Chyba při importu materiálu (documenttype = request) 6010 idno_ext value is empty Chybí povinný údaj - číslo jednací předkladatele, atribut "idno_ext" 6011 Title value is empty Chybí povinný údaj - název materiálu, atribut "Title" 6012 Mandate value is empty Chybí povinný údaj - důvod předložení, atribut "Mandate" 6013 Description value is empty Chybí povinný údaj - popis materiálu, atribut "Description" 6014 Subject Type value is empty Chybí povinný údaj - typ materiálu, atribut "Subject / Type". Povolené hodnoty jsou výsledkem operace getsubjectentries s parametrem "requesttypelist" 6015 Keywords value is empty Chybí povinný údaj - klíčové slovo, atribut "subject / keywords". Povolené hodnoty jsou výsledkem operace getsubjectentries s parametrem "keywordlist" 6016 Law Areas value is empty Chybí povinný údaj - klíčové slovo, atribut "subject / law_areas". Povolené hodnoty jsou výsledkem operace getsubjectentries s parametrem " lawarealist" 6017 Not supported subject type: Hodnota atributu "subject / type / code" není povolená. Povolené hodnoty jsou výsledkem operace getsubjectentries s parametrem " requesttypelist" 6018 Keyword doesnt exist in the directory: Hodnota atributu "subject / keywords / code" není povolená. Povolené hodnoty jsou výsledkem operace getsubjectentries s parametrem " keywordlist" 6019 LawArea doesnt exist in the directory: Hodnota atributu "subject / law_areas /
code" není povolená. Povolené hodnoty jsou výsledkem operace getsubjectentries s parametrem " lawarealist " 6020 Finish Date is in the past Hodnota atributu "review_process_finish", konec připomínkového řízení, je v minulosti. Zvolte datum odpovídající Legislativním pravidlům vlády, resp. jednacího řádu vlády. Konečná kontrola data konce připomínkového řízení bude při autorizaci. 6021 Reviewers are empty Seznam připomínkových míst je prázdny. Za předpokladu, že je vyplněný datum konce připomínkového řízení, je nutné vložit seznam připomínkových míst (jejich kódy). 6022 Reviewer doesnt exist with this code Připomínkové místo s daným kódem není platným připomínkovým místem. Seznam připomínkovým míst lze získat operací "getsubjectentries" s parametry "mandatoryreviewlist" (seznam povinných připomínkových míst" a "othertypelist" (seznam nepovinných připomínkových míst" Chyba při importu materiálu (documenttype = review) 6050 Request PID is not set - Relation/IsPartOf/Identifier/PID Chybí PID materiálu, ke kterému je vkládána připomínka 6051 Request with this PID was not found Nebyl nalezen materiál pod zadaným identifikátorem PID 6052 Request with this PID is not in valid state: Materiál pod identifikátorem PID není ve stavu "2" 6053 Not supported review type: Typ připomínky, atribut "Subject / review_type", není validní. Seznam validních hodnot typu připomínek lze získat operací "getsubjectentries" s parametrem "reviewtypelist" operace "addprimarydocument" 6070 Request PID is not set Chybí PID materiálu, ke kterému je vkládána příloha 6071 Request with this PID was not found Nebyl nalezen materiál pod zadaným identifikátorem PID 6072 Request with this PID is not in valid state: Materiál pod identifikátorem PID není ve stavu "0", tj. neautorizováno
6073 This attachment type is not valid: Typ přílohy, atribut "type", není validní. Seznam validních hodnot typu připomínek lze získat operací "getsubjectentries" s parametrem " attachmenttypelist" 6074 Attachment with this type was already set Již existuje příloha s daným typem, která byla vložena 6075 Attachment with ending is not allowed Povolený typ souboru je.doc (.docx),.xls (.xlsx),.pdf,.txt nebo.zip! Popis formátu "resource" Typ "type" obsahuje základní atributy daného XML dokumentu: documenttype - typ záznamu category - kategorie dokumentu (je vždy "document") legislative - jedná se o legislativní typ dokumentu (true / false) Typ "date" obsahuje seznam všech časových informací (všechny hodnoty jsou v ISO formátu - 8601) authorized - datum autorizace modified - datum poslední změny review_process_finish - konec připomínkového řízení review_process_start - začátek připomínkového řízení discarded - datum storna meeting - datum jednání vlády signed - datum signace premiéra registered_psp - datum evidence na PSP registered_senat - datum evidence v Senátu registered_coll - datum evidence ve SZ signed_president - datum signace prezidentem Typ "identifier" obsahuje identifikační údaje o daném materiálu (připomínce): idno - číslo jednací OVA idno_ext - číslo jednací předkladatele pid - jednoznačný identifikátor dokumentu psp - číslo sněmovního tisku meeting_no - číslo jednání schůze resolution_no - číslo usnesení Typ "subject" obsahuje hodnoty ze základních číselníků: keywords - seznam klíčových slov law_areas - seznam oblastí práva review_type - typ připomínky
type - typ materiálu (ve formátu code / value) Typ "comment" - poznámka k materiálu Typ "language" - cs Typ "description" - popis materiálu Typ "title" - název materiálu Typ "mandate" - důvod předložení materiálu Typ "content" - který obsahuje specifické údaje pro obsah dokumentů a informace o přílohách daného materiálu (připomínky). Rozděluje se na oblast "data" a "attachments". Typ "attachments" je seznam příloh k danému materiálu (připomínce) ve formátu: date_created - datum vytvoření přílohy po přejmenování do úložiště eklep filename - název přílohy po přejmenování filesize - velikost přílohy guid - není podstatný, jde o speciální identifikátor úložiště old_filename - starý název přílohy (původní název přílohy vložený předkladatelem) pid - interní identifikátor přílohy storage - identifikátor úložiště type - typ přílohy / viz číselník typů příloh order - číselné pořadí přílohy v případě stejného typu přílohy url - url do úložiště pro přímý přístup Typ "data" - obsahuje specifické údaje pro daný typ dokumentu: request - obsahuje základní údaje o materiálu meeting - údaje o schůzi, na kterou je materiál zařazen item_number - číslo bodu jednání item_type - typ bodu jednání number - číslo schůze novel - jestli se jedná o novelu (true / false) review_address - emailová adresa pro připomínky v rámci připomínkového řízení reviewers - seznam připomínkových míst, které byly osloveny v připomínkovém řízení ve formátu (code / value) status - stav materiálu (ve formátu code / value) Typ "creator" - předkladatel materiálu (připomínky), formát (code / value) Typ "relation" - vztahy mezi dokumenty; v případě připomínky jde o ispartof / identifier - PID materiálu, ke kterému se připomínka vztahuje
Příloha: Příklady Obecně request webové služby se skládá z hlavičky a těla. Příklad u operace "addsecondarydocument" <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ekl="http://eklep.odok.sysnet.cz" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" > <soapenv:header> <AuthenticationSoapHeader> <username> </username> <password> </password> </AuthenticationSoapHeader> </soapenv:header> <soapenv:body> <ekl:addsecondarydocument> === objekt resource === </ekl:addsecondarydocument> </soapenv:body> </soapenv:envelope> Operace getsecondarydocument Vstup: getsecondarydocumentrequest.xml Výstup: getsecondarydocumentresponse.xml Operace getprimarydocument Vstup: getprimarydocumentrequest.xml Výstup: getprimarydocumentresponse.xml Operace addsecondarydocument Vstup: addsecondarydocumentrequest.xml Výstup: addsecondarydocumentresponse.xml Operace addprimarydocument Vstup: addprimarydocumentrequest.xml Výstup: addprimarydocumentresponse.xml Operace getsubjectentries Vstup: getsubjectentriesrequest.xml Výstup: getsubjectentriesresponse.xml Operace getcatalogueforreviewprocess Vstup: getcatalogueforreviewprocessrequest.xml Výstup: getcatalogueforreviewprocessresponse.xml