Interfész specifikáció

Hasonló dokumentumok
HENYIR interfész. Hibaüzenetek leírása EMMI Tisztifőorvosi Feladatokért Felelős Helyettes Államtitkárság Egészségügyi Igazgatási Főosztály

Általános nyomtatványok xml szerkezete. (v1.3)

Interfész specifikáció

3. SZÁMÚ MELLÉKLET. Elektronikus számla - XML definíciók. a) Számla. 1. ábra Számla

3. SZÁMÚ MELLÉKLET. Elektronikus számla - XML definíciók. a) Számla. 1. ábra Számla

WebStore. JAX-WS SOAP WebServices, Stateful Session Bean. Óbudai Egyetem, Java Enterprise Edition Műszaki Informatika szak Labor 9

Adatkezelés - XML. XML 3 XML séma

1 Újszülöttek kórházi jelentése, orvosi rendszerek oltási jelentése és

XML adatkezelés. 5. témakör. Nincs explicit névtér kijelölve. <?xml version="1.0"?> <xs:schema xmlns:xs="

Hello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.

Az Informatikai és Hírközlési Minisztérium ajánlása a közigazgatásban a hitelesítésszolgáltatók

Webszolgáltatások (WS)

XML sémák, adatmodellezés

ÁNTSZ informatika és fejlesztések

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Online adatszolgáltatás beállítása a Számlázás - vevő-szállító nyilvántartás programban (UJVSZ)

Online adatszolgáltatás beállítása a Számlázás-házipénztár programban (SZAMLA)

Online adatszolgáltatás beállítása a kettős, egyszeres könyvelés programban és a számlázóprogramban (UJEGYKE, UJEGYSZ, UJVSZ)

Online adatszolgáltatás beállítása a Kettős könyvelés programban (WUJEGYKE) 79/

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

TERVEZET. A nemzetgazdasági miniszter /2017. (.) NGM rendelete

XML dokumentumok feldolgozása Java-ban XML, DTD, XSD, XSLT, JAXP, DOM, SAX, JDOM

XML. Document Type Definitions (DTD) XML séma

QBE Édes Otthon lakásbiztosítás tarifáló webservice. Fejlesztői dokumentáció 1.0.2

EBT KKK2 kriptográfiai interfész specifikáció

OOP és UML Áttekintés

Kivételkezelés, naplózás. Exception handling, logging

Segédanyag: Java alkalmazások gyakorlat

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

A szoftver és hardverfüggetlen adatbázis

.Net előadás jegyzet 7. óra. .NET és az XML

Szerver oldali Java programozás /II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése.

Bánsághi Anna

WebService tesztelés. SOAPui Pro, GreenPepper és Confluence használatával. Verhás & Verhás Szoftver Manufaktúra KNOW-HOW

Kivételkezelés a C++ nyelvben Bevezetés

Objektumorientált programozás C# nyelven III.

Segédanyag: Java alkalmazások gyakorlat

GAZDÁLKODÁSI RENDSZER INTERFÉSZ AJÁNLÁS

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Tájékoztató. Használható segédeszköz: -

JavaServer Pages (JSP) (folytatás)

Az új be- és kimenet könyvtár

Madarassy László, mérnök, BME - Mobil Innovációs Központ. lmadarassy@mik.bme.hu

Java és web programozás

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Kérdőívsablon XML séma

Java II. I A Java programozási nyelv alapelemei

WebStore #maven. JAX-WS SOAP WS, Stateful Session Bean, PMD, JavaDoc. Óbudai Egyetem, Java Enterprise Edition Műszaki Informatika szak Labor 8

IP New Illeszte si felü let rendszerhaszna ló knak. v0.95. IP New Illesztési felület rendszerhasználóknak v0.95 1

Verzió: 1.7 Dátum: Elektronikus archiválási útmutató

XCZ állományok ellenőrzése, átadása elektronikus beküldésre és közvetlen beküldése parancssori funkcióval az ÁNYK programban

XML adatkezelés I. Az SAX szabvány. Dr. Kovács László Miskolci Egyetem Általános Informatikai Tanszék. XML adatok kezelési lehetőségei

Web-fejlesztés NGM_IN002_1

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Objektumorientált programozás C# nyelven III.

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Az XCZ állományban szereplő állományok nevének UTF-8 kódolásúnak kell lennie. Probléma esetén használjon ékezet nélküli állományneveket.

Java II. I A Java programozási nyelv alapelemei

INFORMÁCIÓÁTADÁSI SZABÁLYZAT

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Web-szolgáltatások: SOAP, WSDL

Objektumorientált programozás C# nyelven

Intézményi interface technikai dokumentáció

Webes alkalmazások fejlesztése 10. előadás. Szolgáltatás alapú rendszerek megvalósítása (ASP.NET WebAPI) Cserép Máté

A Vizsgálóhelyi nyilvántartó program Online Telepítıje

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

DimNAV számlabeolvasó program

Java IX. telkezelés a Java-ban

Stateless Session Bean

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

SEPA szabvány a napközbeni többszöri. A projekt mögötti szakmai koncepció Prágay István november 24.

Java IX. telkezelés a Java-ban

Programozási nyelvek Java

Osztályszintű elérés, kivételkezelés, fájlkezelés

Enterprise JavaBeans 1.4 platform (EJB 2.0)

IP New Illeszte si felü let kapcsolo do rendszerü zemelteto k sza ma ra

Informatikai Navigátor Érdekes Java Programozói könyvtárak

Programozási nyelvek II.: JAVA

Adatszolgáltatás a Postai Informatikai Rendszer számára. Dr. Nyuli Attila Alkalmazásfejlesztési és Üzemeltetési Osztály

Web-technológia PHP-vel

NAV Online Számla adatküldés a DOAS rendszerben v.4 Tartalomjegyzék

Programozási technológia

E-Számlázás az ECOD rendszeren belül. Horváth Péter, Senior Projekt Menedzser Synergon Retail Systems Kft.

Java programozási nyelv 6. rész Java a gyakorlatban

DIPLOMAMUNKA. Szűcs Béla. Debrecen PDF processed with CutePDF evaluation edition

ColourSMS Protokol definíció. Version 1.2

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció

API tervezése mobil környezetbe. gyakorlat

Atlon XML interface fejlesztői dokumentáció. Dokumentum verzió: 3.0

LETÉTKEZELŐ NYILVÁNTARTÁSI RENDSZER

AZ OKMÁNY VÁLTOZÁSÁVAL KAPCSOLATOS FELJEGYZÉSEK

Üzleti interoperabilitás. - elektronikus üzleti szolgáltatások - elektronikus kereskedelem - elektronikus közbeszerzés

az XML egy leírónyelv, másnéven meta-nyelv, mely segítségével új nyelveket írhatunk le egy XML dokumentum egy ilyen nyelvnek a példánya, a formális

Objektumorientált programozás C# nyelven

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Tisztelt Ügyfelünk! 1) Újdonság: Kapcsolat tesztelése

Input Output Műveletek

Java programozási nyelv

XML (DTD) (XSD) DOM SAX XSL. XML feldolgozás

Átírás:

Interfész specifikáció NEMZETI EGÉSZSÉGÜGYI INFORMATIKAI RENDSZER, ELEKTRONIKUS KÖZHITELES NYILVÁNTARTÁSOK ÉS ÁGAZATI PORTÁL Országos Tiszti Főorvosi Hivatal TIOP-2.3.2/12/1 és KMOP-4.3.3/A-12 1.2.4

TARTALOM 1 Bevezetés... 3 2 Általános mőködés... 3 3 Üzenet... 4 3.1 Üzleti szabályok... 4 3.1.1 XML séma... 4 3.2 Kódolás... 4 3.3 Mintafájl... 5 3.3.1 Tartalom... 5 3.3.2 SOAP üzenet... 5 4 Válasz üzenet... 6 4.1 XML séma... 6 4.2 Mintafájl... 6 4.3 SOAP válasz... 7 Oldal: 2 / 8

1 Bevezetés Jelen dokumentum a TIOP-2.3.2/12/1 és KMOP-4.3.3/A-12 projektben megvalósítandó HENYIR bejövı interfész megvalósítása közbeszerzés kapcsán kialakításra került interfész specifikációját. A HENYIR Humánerıforrás Nyilvántartó Rendszer Az egyes munkaviszonyok adatait tartalmazó rendszer, ahol a személyt az EEKH alapnyilvántartási számával, az intézményt pedig az OTH azonosítóval azonosítjuk Az adatok összekapcsolhatók a HMR rendszerrel A foglalkoztatás naprakész állapotát tükrözi 2 Általános mőködés Az adatok küldése XML Webszervizen keresztül SOAP protokollal történik: Az adatot szolgáltató kliens a webszerviz send metódusát hívja. Az adatszolgáltatást tartalmazó XML üzenet ZIP-el tömörítve és Base64 enkódolva kerül továbbításra. Az alkalmazás szerver elvégzi a Base64 dekódolást és a ZIP kicsomagolást, majd az xml tartalmat átadja az Oracle szerver számára A feldolgozást Oracle szerveren futó package végzi o naplózza a bejövı hívás, letárolja az input adatokat o Ellenırzi az input XSD megfelelését o A HENYIR package eljárásait hívja, ez végzi a DML mőveleteket és az üzleti szabályok ellenırzését. Az XML dokumentum elem ellenorzes attribútumától függıen csak ellenırzés vagy ellenırzés és feldolgozás történik. Ha az ellenırzések során keletkezett üzenetek napló táblába kerülnek. o A feldolgozás napló rekordjaiból XML válaszüzenet készül o A válasz XML-t Base64 enkódolja Az alkalmazásszerver SOAP válaszüzeneteként visszaküldi azt Oldal: 3 / 8

3 Üzenet 3.1 Üzleti szabályok 3.1.1 XML séma Az XML strukturális megfelelıségét ezen dokumentáció mellékleteként közreadott XSD fájl alapján ellenırizzük. Az XSD fájl definiálja beküldendı XML elvárt szerkezetét, az adattagokat, a hierarchiát és kötelezıséget és egyes elemet értékkészletét is. A Hiba a(z) "XML formai ellenırzése" mővelet végrehajtásakor! válaszüzenet arra utal, hogy a beküldött XML nem az XSD-ben elıírt szerkezető. Ilyenkor célszerő a weben található online xsd validátorok valamelyikével (pl: http://www.utilities-online.info/xsdvalidation/#.v-prrciltme) is ellenırizni azt. Az üzleti szabályok ellenırzésére és feldolgozásra csak sikeres XML validációt követıen kerül sor. A HENYIR mint dokumentum elem tartalmazhat nulla vagy több kezdés, ezt követıen nulla vagy több változás, majd ezt követıen nulla vagy több zárás blokkot. Ezek mindegyike tartalmaz egy ID-t ami az XML-en belül egyedileg azonosít. Az esetleges hibaüzenet esetén ezzel az ID kerül hivatkozásra, lehetıvé téve a hiba helyének azonosítását. Lehetıség van feldolgozás nélküli ellenırzésre, a HENYIR elem ellenorzes= I értéke esetén csak ellenırzés történik feldolgozás nélkül. Bár az XSD validáció nem tartalmazza, de a névtérnek kötelezıen az aktuális verzió szerintinek kell lennie, jelenleg HENYIR_WS_XSD_1.2. Ez a getversion webmetódus segítségével lekérhetı. 3.2 Kódolás Az adatszolgáltatás XML fájl a webszerviz hívásakor GZIP-el tömörítve és Base64 enkódolva kerül továbbításra. Az alábbi kódsorok ennek Java beli megvalósítását mutatja: public static byte[] load(string filename) throws IOException { byte[] b = Files.readAllBytes(Paths.get(filename)); return b; public static byte[] compress(byte[] in){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); try{ GZIPOutputStream out = new GZIPOutputStream(baos); out.write(in); out.close(); catch (IOException e){ throw new AssertionError(e); return baos.tobytearray(); public static String convert(string xmlfilename) throws IOException { byte[] xml = load(xmlfilename); byte[] zip = compress(xml); return DatatypeConverter.printBase64Binary(zip); Oldal: 4 / 8

3.3 Mintafájl 3.3.1 Tartalom <?xml version="1.0" encoding="utf-8"?> <HENYIR version="1.2" ellenorzes="n" xsi:nonamespaceschemalocation="henyir_ws_xsd_1.2" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <kezdes ID="1"> <azonosito> <bejelento>111752</bejelento> <egyseg>060070642</egyseg> <egysegnev>aáéíóıúő</egysegnev> <eekh>dr</eekh> <nyilvszam> <pecset>32220</pecset> <szerzodes>4444</szerzodes> </nyilvszam> <munkaltato> <nev>mdart NEXT Orvosi, Fogorvosi és Mővészeti Korlátolt Felelısségő Társaság</nev> <KSH>12345678</KSH> </munkaltato> </azonosito> <kozalkalmazott> <nev> <titulus>dr.</titulus> <vezeteknev>patay</vezeteknev> <keresztnev>irén</keresztnev> </nev> <munkakor>szakorvos</munkakor> <vezeto>n</vezeto> <helyettes>i</helyettes> <nyugdijas>n</nyugdijas> <hetiora>24.0</hetiora> <hetioraossz>36.0</hetioraossz> <kepesites1>gyermek szakorvos</kepesites1> <munkarend>nrm</munkarend> <kapcsolat> <telefon>+36 1 123 45678</telefon> <mobil>+36 20 345 67890</mobil> <email>cimem@mail.hu</email> </kapcsolat> <FEOR>1111</FEOR> <jelleg>r</jelleg> <onkentora>24.0</onkentora> <tavollet> <oka>g</oka> <varhato>2018-01-01</varhato> </tavollet> </kozalkalmazott> <hatarozott> <eleje>2015-01-30</eleje> <vege>2015-07-20</vege> </hatarozott> <hataly>2015-01-30</hataly> </kezdes> 3.3.2 </HENYIR>SOAP üzenet <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.henyir. oszir.ctc.hu/"> <soapenv:header/> <soapenv:body> <ws:send> <content>ejxlk8uo2jauhtdu6jt SWFms1BmUn8ezn8jJf4DREElTw==</content> Oldal: 5 / 8

</ws:send> </soapenv:body> </soapenv:envelope> 4 Válasz üzenet 4.1 XML séma <?xml version="1.0" encoding="utf-8"?> <xs:schema elementformdefault="qualified" xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:simpletype name="successtype"> <xs:restriction base="xs:string"> <xs:enumeration value="0" /> <xs:enumeration value="1" /> </xs:restriction> </xs:simpletype> <xs:simpletype name="errorlevels"> <xs:restriction base="xs:string"> <xs:enumeration value="e" /> <!-- error --> <xs:enumeration value="w" /> <!-- warning --> <xs:enumeration value="i" /> <!-- info --> <xs:enumeration value="m" /> <!-- message --> </xs:restriction> </xs:simpletype> <xs:complextype name="itemtype"> <xs:simplecontent> <xs:extension base="xs:string"> <xs:attribute name="hivatkozas" type="xs:integer" /> <xs:attribute name="tipus" type="errorlevels" /> </xs:extension> </xs:simplecontent> </xs:complextype> <xs:element name="eredmenyek"> <xs:complextype> <xs:sequence> <xs:element name="tetel" type="itemtype" minoccurs="1" maxoccurs="unbounded" /> </xs:sequence> <xs:attribute name="hivas" type="xs:integer" use="required" /> <xs:attribute name="idopont" type="xs:datetime" use="required" /> <xs:attribute name="hiba" type="successtype" use="required" /> </xs:complextype> </xs:element> </xs:schema> 4.2 Mintafájl <eredmenyek hivas="15" idopont="2016-08-04t13:59:27.166000+02:00" hiba="1"> <tetel hivatkozas="1" tipus="e">szervezeti egység azonosító "056110405" értékkel nem található!</tetel> <tetel hivatkozas="1" tipus="e">egységkód "056110405" értékkel nem található!</tetel> <tetel hivatkozas="0" tipus="e">a feldolgozás sikertelen.</tetel> </eredmenyek> A beküldött adatok vagy teljes egészében feldolgozásra vagy teljes egészében visszautasításra kerülnek. A dokumentum elem hivas attribútuma a beküldés egyedi azonosítója, a hiba attribútum 1 értéke jelenti, hogy az adatszolgáltatás feldolgozása sikertelen volt. Az egyes tétel sorok valamely tétellel kapcsolatos hibaüzenetet, figyelmeztetést tartalmaznak, ezek hivatkozas értékei hivatkoznak az adatszolgáltatás ID oszlopában átadott értékekre (ha egy küldött tétellel több probléma is jelentkezik, akkor több hibaüzenet bejegyzés is található hozzá ugyanazon ID értékkel). Ha hiba értéke 1, akkor a tételek között kell lennie legalább egy tipus= E Oldal: 6 / 8

súlyosságú üzenetnek. Az hivatkozas nulla értéket nem tartalmazó tétele az egész üzenetre vonatkozó megállapítást tartalmaz. 4.3 SOAP válasz <S:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:sendresponse xmlns:ns2="http://ws.henyir.oszir.ctc.hu/"> <return><eredmenyek hivas="25" idopont="2016-08-04t13:53:21.883000+02:00" hiba="0"> <tetel hivatkozas="0" tipus="i">a feldolgozás sikeres.</tetel> </eredmenyek></return> </ns2:sendresponse> </S:Body> </S:Envelope> 5 Tesztelés A szolgáltatás tesztelése a soapui segédprogram (http://www.soapui.org) segítségével lehetséges. 5.1 soapui beállítása A File/New soapui project funkció segítségével létre kell hozni egy új projektet, ahol (a szerver cím és port pontosítása után) meg kell adni a WSDL fájl nevét. A WSDL file elérésének pontos helye az ÁNTSZ honlapján a HENYIR leírások és dokumentumok között található meg. (https://www.antsz.hu/oszir/henyir) Az bal oldali project navigator ablakban megjelenik az új projekt és alatt a webszerviz hívható metódusai. Oldal: 7 / 8

5.2 Interfész hívása Egy send metódushoz egy Request-et létrehozva az interfész tesztelhetı. A telepítıcsomag három tesztfájlt tartalmaz, a munkaviszony létrehozáshoz (minta_kezdes.xml), egyet a munkaviszony módosításhoz (minta_valtozas.xml) és egyet annak lezárásához (minta_zaras.xml). A küldésre elıkészítve ezek a ZIP-elt Base64 enkódolt változata is megtalálható (.b64). A tesztelés megkönnyítendı, a <content> tartalom elıállítására szolgál egy segédprogram, hívása java -jar henyir_csomagolo-1.0.jar minta.xml. A program ellenırzi hogy UTF-8 kódolású-e az XML, majd egy.b64 kiterjesztéső fájlt (pl. minta.xml.b64), melynek a tartalma közvetlenül a <content> elembe másolandó. Oldal: 8 / 8