150 likes | 358 Views
Spletna storitev SOAP. Priprava datoteke XML in zakasnjena obdelava dokumenta November 2008 Erik Mihalj. Uvod. oblika datoteke XML za SOAP obveznost polj optimizacija velikost datoteke zakasnjena obdelava dokumenta zelo veliki dokumenti nove metode. Način oddajanja dokumenta.
E N D
Spletna storitev SOAP Priprava datoteke XML in zakasnjena obdelava dokumenta November 2008 Erik Mihalj
Uvod • oblika datoteke XML za SOAP • obveznost polj • optimizacija • velikost datoteke • zakasnjena obdelava dokumenta • zelo veliki dokumenti • nove metode
Način oddajanja dokumenta • Sinhroni: • uporabnik prisoten skozi cel postopek oddaje dokumenta • majhni in veliki dokumenti • preko osebnega portala (GUI) • storitev HTTP POST • storitev SOAP • Asinhroni: • uporabnik povprašuje po posamezni uslugi • zelo veliki dokumenti • storitev SOAP
SOAP EDP - WEB EDP client service system Login Session handle UploadDocument tokenXML token CheckDocument GetStatus GetStatMsg StatMsg statusXML GetEdpId GetId EDPDocNumber Response Logout Spletna storitev SOAP - primer
iREK - ovojnica Glava dokumenta Sintetični del Podatki o izplačilih Obračuni Analitični del Individualni zapis Individualni zapis Individualni zapis Individualni zapis Individualni zapis Individualni zapis Struktura XML <?xml version="1.0" encoding="utf-8"?> <Envelope xmlns=".../REK_X_#.xsd" xmlns:edp=".../EDP-Common-1.xsd" xmlns:podo=".../PODO-Common-1.xsd"> ... </Envelope> <edp:Header> <edp:taxpayer xmlns:ds_odip=".../Ds_ODIP_1.xsd"> <edp:taxNumber>... <edp:taxpayerType>... <edp:name>... <edp:address1>... <edp:invalidskoPodjetje>... <edp:activityCode>... </edp:taxpayer> </edp:Header> <REK> <REK_X> ... </REK_X> <ODIP> | <OPDDP> ... | ... </ODIP> | </OPDDP> </REK> <AnalyticalData> <AnalyticalDataItem> <A001>... <A003>... <A004>... <IncomeTax>... <Contributions>... ... </AnalyticalDataItem> ... </AnalyticalData>
Ovojnica <Envelope> • xmlns • http://edavki.durs.si/Documents/Schemas/REK_N_V.xsd • N = vrsta obrazca (1, 1a, 1b, 2) • V = različica obrazca • http://edavki.durs.si/Documents/Schemas/EDP-Common-1.xsd • edp • Primer za trenutno različico REK-1: <Envelope xmlns="http://edavki.durs.si/Documents/Schemas/REK_1_5.xsd" xmlns:edp="http://edavki.durs.si/Documents/Schemas/EDP-Common-1.xsd">
Glava <edp:Header> • obvezni podatki o izplačevalcu: <edp:taxpayer> <edp:taxNumber>12345678</edp:taxNumber> <edp:taxpayerType>PO</edp:taxpayerType> <edp:name>FIRMA</edp:name> <edp:address1>CESTA 123</edp:address1> <edp:city>LJUBLJANA</edp:city> <edp:invalidskoPodjetje>false</edp:invalidskoPodjetje> <edp:activityCode>00.000</edp:activityCode> </edp:taxpayer>
Sintetika <REK_N> • obvezni podatki na sintetiki: <DocumentTypeID>{O/P/A/D/I/Z}</DocumentTypeID> <F10_IncomeType>0000</F10_IncomeType> <F11_MonthYearStart>MM.LLLL</F11_MonthYearStart> <Cumulative>N</Cumulative> <F12_PaymentDate>LLLL-MM-DD</F12_PaymentDate> • Sintetika mora biti popolnoma izpolnjena.
Obračun DIP <ODIP> • obvezni podatki na ODIP: <Year>LLLL</Year> <Month>DD</Month> <R1_UpperLimitIncl>688.53</R1_UpperLimitIncl> <R2_UpperLimitIncl>1669.17</R2_UpperLimitIncl> <R3_UpperLimitIncl>3129.69</R3_UpperLimitIncl> <F1S>0</F1S> <F2S>1.1</F2S> <F3S>2.3</F3S> <F4S>4.4</F4S> <TotalN>N</TotalN> <TotalP>14.2</TotalP> <TotalD>14.2</TotalD> Opomba: do 1.1.2009
Analitika <AnalyticalData> • xmlns • http://edavki.durs.si/Documents/Schemas/PODO-Common-1.xsd • Primer: <AnalyticalData xmlns="http://edavki.durs.si/Documents/Schemas/PODO-Common-1.xsd"> • obvezni podatki o prejemniku plačila: <A001>00000000</A001> <A003>IME PRIIMEK</A003> <A004>{R/N}</A004> • Analitika mora biti popolnoma izpolnjena.
Optimizacija • polja, ki jih lahko izpustimo • polja, ki jih moramo izpustiti • uporaba xmlns
Optimizacija - nadaljevanje • polja, ki jih lahko izpustimo: • <*>0.00</*> • <*>false</*> • polja, ki jih moramo izpustiti: • CorrectionForDocument, CorrectionForAnaliticalData • F11_MonthYearEnd • A002 • A004a • A101*
Optimizacija - nadaljevanje • uporaba xmlns: • možen način uporabe xmlns za analitiko: <Envelope xmlns="http://edavki.durs.si/Documents/Schemas/REK_1_5.xsd" xmlns:edp="http://edavki.durs.si/Documents/Schemas/EDP-Common-1.xsd" xmlns:podo="http://edavki.durs.si/Documents/Schemas/PODO-Common-1.xsd"> ... <podo:AnalyticalData> <podo:AnalyticalDataItem> <podo:A001>00000000</podo:A001> <podo:A003>IME PRIIMEK</podo:A003> <podo:A004>R</podo:A004> <podo:A005>false</podo:A005> ... </podo:AnalyticalDataItem> </podo:AnalyticalData>
Optimizacija - nadaljevanje • uporaba xmlns: • boljši način uporabe xmlns za analitiko: <AnalyticalData xmlns="http://edavki.durs.si/Documents/Schemas/PODO-Common-1.xsd"> <AnalyticalDataItem> <A001>00000000</A001> <A003>IME PRIIMEK</A003> <A004>R</A004> <A005>false</A005> ... </AnalyticalDataItem> </AnalyticalData>
xmlns podo v Envelope: pri vsakem tagu dodatnih 5 znakov 1 zapis = 1890 B 1000 = 1.835.162 B +40% velikosti xmlns v AnalyticalData: ni dodatnih ns pri poljih 1 zapis = 1416 B 1000 = 1.305.358 B Optimizacija - nadaljevanje Opomba: velikost datoteke je pomembna pri prenosu na strežnik, število zapisov pa vpliva na čas obdelave dokumenta