IFIS*Pohledávky a externí systémy: Porovnání verzí
Z BBM Dokumentace iFIS
Skočit na navigaciSkočit na vyhledávání
Bez shrnutí editace |
Bez shrnutí editace |
||
(Není zobrazeno 7 mezilehlých verzí od jednoho dalšího uživatele.) | |||
Řádek 1: | Řádek 1: | ||
== | ==Popis datového rozhraní pro převod dat z externích systémů do iFIS/Pohledávky== | ||
Externí aplikace může zajišťovat přenos pohledávek (vystavené faktury, vystavené zálohové listy) do datového rozhraní iFIS/Pohledávky. Datové rozhraní validuje zapisovaná data a následně je zapisuje do evidence iFIS/Pohledávky. | |||
*Pro fyzický zápis pohledávkových dokladů do iFIS/Finance je využívána databázová package IMP_ODFA, která obsahuje jednotlivé výkonné funkce (vstupní konektory). | |||
*Vstupním konektorem se rozumí databázová funkce, která umožňuje externím aplikacím požadovanou manipulaci s daty iFIS. | |||
*Vstupní konektory jsou volány buď napřímo a nebo přes webovou službu (WS). | |||
Externí aplikace | |||
*Pro fyzický zápis pohledávkových dokladů do iFIS | |||
*Vstupním konektorem se rozumí databázová funkce, která umožňuje externím aplikacím požadovanou manipulaci s daty iFIS | |||
*Vstupní konektory jsou | |||
*Externí aplikace ovlivňuje chování konektoru zadáním tzv. vstupních argumentů. | *Externí aplikace ovlivňuje chování konektoru zadáním tzv. vstupních argumentů. | ||
*Vstupní argumenty konektorů, které mají definovány default hodnoty, jsou nepovinné. | *Vstupní argumenty konektorů, které mají definovány default hodnoty, jsou nepovinné. | ||
Řádek 17: | Řádek 10: | ||
*Konektor kontroluje všechna databázová integritní omezení. | *Konektor kontroluje všechna databázová integritní omezení. | ||
*Jakákoliv chyba při zpracování transakce způsobí automatické odvolání všech změn, které funkce provedla. | *Jakákoliv chyba při zpracování transakce způsobí automatické odvolání všech změn, které funkce provedla. | ||
*Databázové funkce automaticky vrací po provedení transakce tzv. výstupní argumenty. Tyto výstupní argumenty informují externí aplikaci o stavu provedené transakce (informace o správně provedené transkaci, informace o jednoznačných identifikátorech nově založených záznamů v iFIS, informace o chybných vstupních argumentech, o porušených integritních omezeních, či o porušení pravidel pro uložení dat do iFIS | *Databázové funkce automaticky vrací po provedení transakce tzv. výstupní argumenty. Tyto výstupní argumenty informují externí aplikaci o stavu provedené transakce (informace o správně provedené transkaci, informace o jednoznačných identifikátorech nově založených záznamů v iFIS, informace o chybných vstupních argumentech, o porušených integritních omezeních, či o porušení pravidel pro uložení dat do iFIS/Finance). | ||
*Další pravidla jsou součástí popisu příslušných funkcí (viz. | *Další pravidla jsou součástí popisu příslušných funkcí (viz dále). | ||
===Techická specifikace webové služby ImpODFA.wsdl=== | |||
<syntaxhighlight lang="plsql"> | |||
<?xml version="1.0" encoding="UTF-8" ?> | |||
- <!-- | |||
Generated by the Oracle JDeveloper 10g Web Services WSDL Generator | |||
--> | |||
- <!-- | |||
Date Created: Thu Feb 08 09:58:42 CET 2007 | |||
--> | |||
- <definitions name="ImpODFA" targetNamespace="http://fvz/ImpODFA.wsdl" xmlns="http://schemas.xmlsoap. | |||
org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap. | |||
org/wsdl/soap/" xmlns:tns="http://fvz/ImpODFA.wsdl" xmlns:ns1="http://fvz/ImpODFA.xsd"> | |||
- <types> | |||
- <schema targetNamespace="http://fvz/ImpODFA.xsd" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http: | |||
//schemas.xmlsoap.org/soap/encoding/"> | |||
- <complexType name="fvz_ImpODFAImpl_zapis_radek_Out" jdev:packageName="fvz" xmlns:jdev="http://xmlns.oracle. | |||
com/jdeveloper/webservices"> | |||
- <all> | |||
<element name="chybaOut" type="string" /> | |||
<element name="return" type="boolean" /> | |||
</all> | |||
</complexType> | |||
- <complexType name="fvz_ImpODFAImpl_otevri_doklad_Out" jdev:packageName="fvz" xmlns:jdev="http://xmlns.oracle. | |||
com/jdeveloper/webservices"> | |||
- <all> | |||
<element name="chybaOut" type="string" /> | |||
<element name="return" type="boolean" /> | |||
</all> | |||
</complexType> | |||
- <complexType name="fvz_ImpODFAImpl_uzavri_doklad_Out" jdev:packageName="fvz" xmlns:jdev="http://xmlns.oracle. | |||
com/jdeveloper/webservices"> | |||
- <all> | |||
<element name="chybaOut" type="string" /> | |||
<element name="cislodoklOut" type="decimal" /> | |||
<element name="return" type="boolean" /> | |||
</all> | |||
</complexType> | |||
</schema> | |||
</types> | |||
- <message name="zapis_radek0Request"> | |||
<part name="text" type="xsd:string" /> | |||
<part name="mj" type="xsd:string" /> | |||
<part name="pocet" type="xsd:string" /> | |||
<part name="cenamj" type="xsd:string" /> | |||
<part name="cenc" type="xsd:string" /> | |||
<part name="zcm" type="xsd:string" /> | |||
<part name="zdcm" type="xsd:string" /> | |||
<part name="dcm" type="xsd:string" /> | |||
<part name="hdan" type="xsd:string" /> | |||
<part name="sazba" type="xsd:string" /> | |||
<part name="stav" type="xsd:string" /> | |||
<part name="danidno" type="xsd:string" /> | |||
<part name="nsidno" type="xsd:string" /> | |||
<part name="typaidno" type="xsd:string" /> | |||
<part name="akce" type="xsd:string" /> | |||
<part name="komidno" type="xsd:string" /> | |||
<part name="rsfidno" type="xsd:string" /> | |||
</message> | |||
- <message name="zapis_radek0Response"> | |||
<part name="return" type="ns1:fvz_ImpODFAImpl_zapis_radek_Out" /> | |||
</message> | |||
<message name="reset_doklad1Request" /> | |||
<message name="reset_doklad1Response" /> | |||
- <message name="otevri_doklad2Request"> | |||
<part name="firmidno" type="xsd:string" /> | |||
<part name="ico" type="xsd:string" /> | |||
<part name="kopridno" type="xsd:string" /> | |||
<part name="icokp" type="xsd:string" /> | |||
<part name="mesic" type="xsd:string" /> | |||
<part name="rok" type="xsd:string" /> | |||
<part name="mena" type="xsd:string" /> | |||
<part name="penale" type="xsd:string" /> | |||
<part name="slevy" type="xsd:string" /> | |||
<part name="vsmb" type="xsd:string" /> | |||
<part name="ksmb" type="xsd:string" /> | |||
<part name="ssmb" type="xsd:string" /> | |||
<part name="pril" type="xsd:string" /> | |||
<part name="cdl" type="xsd:string" /> | |||
<part name="dodp" type="xsd:string" /> | |||
<part name="popis" type="xsd:string" /> | |||
<part name="zprava" type="xsd:string" /> | |||
<part name="zppl" type="xsd:string" /> | |||
<part name="datv" type="xsd:dateTime" /> | |||
<part name="dats" type="xsd:dateTime" /> | |||
<part name="datd" type="xsd:dateTime" /> | |||
<part name="vf" type="xsd:string" /> | |||
<part name="krechNr" type="xsd:string" /> | |||
<part name="zrusId" type="xsd:string" /> | |||
<part name="rel1Id" type="xsd:string" /> | |||
<part name="nsidno" type="xsd:string" /> | |||
<part name="typaidno" type="xsd:string" /> | |||
<part name="akce" type="xsd:string" /> | |||
<part name="komidno" type="xsd:string" /> | |||
<part name="rsridno" type="xsd:string" /> | |||
<part name="vlucidno" type="xsd:string" /> | |||
</message> | |||
- <message name="otevri_doklad2Response"> | |||
<part name="return" type="ns1:fvz_ImpODFAImpl_otevri_doklad_Out" /> | |||
</message> | |||
<message name="uzavri_doklad3Request" /> | |||
- <message name="uzavri_doklad3Response"> | |||
<part name="return" type="ns1:fvz_ImpODFAImpl_uzavri_doklad_Out" /> | |||
</message> | |||
- <portType name="ImpODFAPortType"> | |||
- <operation name="zapis_radek"> | |||
<input name="zapis_radek0Request" message="tns:zapis_radek0Request" /> | |||
<output name="zapis_radek0Response" message="tns:zapis_radek0Response" /> | |||
</operation> | |||
- <operation name="reset_doklad"> | |||
<input name="reset_doklad1Request" message="tns:reset_doklad1Request" /> | |||
<output name="reset_doklad1Response" message="tns:reset_doklad1Response" /> | |||
</operation> | |||
- <operation name="otevri_doklad"> | |||
<input name="otevri_doklad2Request" message="tns:otevri_doklad2Request" /> | |||
<output name="otevri_doklad2Response" message="tns:otevri_doklad2Response" /> | |||
</operation> | |||
- <operation name="uzavri_doklad"> | |||
<input name="uzavri_doklad3Request" message="tns:uzavri_doklad3Request" /> | |||
<output name="uzavri_doklad3Response" message="tns:uzavri_doklad3Response" /> | |||
</operation> | |||
</portType> | |||
- <binding name="ImpODFABinding" type="tns:ImpODFAPortType"> | |||
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> | |||
- <operation name="zapis_radek"> | |||
<soap:operation soapAction="" style="rpc" /> | |||
- <input name="zapis_radek0Request"> | |||
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> | |||
</input> | |||
- <output name="zapis_radek0Response"> | |||
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> | |||
</output> | |||
</operation> | |||
- <operation name="reset_doklad"> | |||
<soap:operation soapAction="" style="rpc" /> | |||
- <input name="reset_doklad1Request"> | |||
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> | |||
</input> | |||
- <output name="reset_doklad1Response"> | |||
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> | |||
</output> | |||
</operation> | |||
- <operation name="otevri_doklad"> | |||
<soap:operation soapAction="" style="rpc" /> | |||
- <input name="otevri_doklad2Request"> | |||
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> | |||
</input> | |||
- <output name="otevri_doklad2Response"> | |||
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> | |||
</output> | |||
</operation> | |||
- <operation name="uzavri_doklad"> | |||
<soap:operation soapAction="" style="rpc" /> | |||
- <input name="uzavri_doklad3Request"> | |||
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> | |||
</input> | |||
- <output name="uzavri_doklad3Response"> | |||
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> | |||
</output> | |||
</operation> | |||
</binding> | |||
- <service name="ImpODFA"> | |||
- <port name="ImpODFAPort" binding="tns:ImpODFABinding"> | |||
<soap:address location="http://ifis.xxxx.cz/ws/ImpODFA" /> | |||
</port> | |||
</service> | |||
</definitions> | |||
</syntaxhighlight> | |||
===Technická specifikace databázové části datového rozhraní PACKAGE fis_01.IMP_ODFA=== | |||
<syntaxhighlight lang="plsql"> | |||
/*********************************************************************** | |||
Jmeno: IMP_ODFA | |||
Ucel: Import pohledávek do FIS*Finance | |||
***********************************************************************/ | |||
FUNCTION Otevri_Doklad | |||
POPIS : Funkce otevira rozhrani pro nasledne zpracovani pohledavky | |||
VYSTUP: výstupem je popis chyby, pokud nějaká chyba nastane | |||
VSTUP : "firmidno_" vnitrni identifikator adresy firmy oberatele | |||
(nepovinny), ma prednost pred argumentem "ico_" | |||
"ico_" ICO firmy odberatele, povinne, pokud neni uveden argument | |||
"firmidno_" | |||
"kopridno_" vnitrni identifikator adresy firmy konecneho | |||
prijemce (nepovinny), ma prednost pred argumentem "icokp_" | |||
"icokp_" ICO firmy konecneho prijemce, nepovinne. Pokud je | |||
uveden argument "kopridno_", ignoruje se | |||
"mesic_" ucetni obdobi pohledavky - mesic, nepovinne | |||
"rok_" ucetni obdobi pohledavky - rok, nepovinne | |||
"mena_" Mena pohledavky, povinne | |||
"penale_" denni penale v %, nepovinne | |||
"vsmb_" variabilni symbol, max 10 znaku, nepovinne | |||
"ksmb_" konstantni symbol, max 10 znaku, nepovinne | |||
"ssmb_" specificky symbol, max 10 znaku, nepovinne | |||
"pril_" prilohy, max 20 znaku, nepovinne | |||
"cdl_" číslo dod.listu nebo číslo dokladu v externí aplikaci, max 15 znaku, nepovinne | |||
"dodp_" čislo objednávky nebo dodavkoveho prikazu, max 10 znaku, nepovinne | |||
"popis_" Popis dokladu, volny text max 255 znaku, nepovinne | |||
"zprava_" Zprava pro odberatele, volny text max 255 znaku, nepovinne | |||
"zppl_" zpusob uhrady, možné hodnoty P–Prikazem,H-Hotovosti, I-Inkasem, povinne | |||
"datv_" Datum vystaveni pohledavky,nepovinne | |||
"dats_" Datum splatnosti pohledavky,nepovinne | |||
"datd_" datum plneni DUZP, nepovinne | |||
"vf_" typ dokladu, povinné, možné hodnoty 'N' - vystavená faktura/vnitropodniková faktura nebo'P' - zálohový list | |||
"krech_nr_" cislo importovaneho dokladu v externí aplikaci, max 15 znaku, povinne | |||
"zrus_id_" zatim nevyuzivany parametr, max 15 znaku nepovinne | |||
"rel1_id_" zatim nevyuzivany parametr, max 15 znaku nepovinne | |||
"nsidno_" id nakladoveho strediska, nepovinne, default null | |||
"typaidno_" id typu akce, nepovinne, default null | |||
"akce_" id akce, nepovinne, default null | |||
"komidno_" id komplexní polozky, nepovinne, default null | |||
"rsridno_" id radku smlouvy, nepovinne, default null | |||
"vlucidno_" id vlastniho bank. uctu, nepovinne, default null | |||
"schvaluje_" osobni nebo rodne cislo osoby, ktera schvaluje doklad, | |||
default null | |||
"prpartn_" konečný příjemce i s adresou, volný text max 255 znaku, | |||
default null, přednost má kopridno_ a icokp_ | |||
"ns_" číslo NS, přednost má nsidno_, default null | |||
"ta_" číslo TA, přednost má typaidno_, default null | |||
"nakce_" název akce, přednost má akce_, default null | |||
"kp_" číslo komplexní položky, přednost má komidno_, default null | |||
"ejidno_" číslo cílové EJ, default null - v tom pripade je to EJ uzivatele, | |||
"todfidno" id deníku, default null | |||
"tof_" číslo deníku, default null | |||
"datk_" datum kurzu, default null | |||
NAVRATOVA HODNOTA : Pri chybe vraci FALSE jinak vraci TRUE. | |||
***********************************************************************/ | |||
/*********************************************************************** | |||
FUNCTION Zapis_Radek | |||
POPIS : Funkce zapisuje radek pohledavky. Radky nelze zapisovat, pokud | |||
Nebylo provedeno otevreni dokladu pomoci funkce Otevri_Doklad. | |||
VSTUP : "text_" text radku, nepovinne, max 255 znaku | |||
"mj_" merna jednotka, max 10 znaku, nepovinne | |||
"pocet_" mnozstvi, nepovinne | |||
"cenamj_" cena za jednotku v domaci nebo cizi mene, nepovinne | |||
"cenc_" zaklad dane v domaci mene, povinne | |||
"zcm_" castka v cizi mene, povinne, pokud je zavazek v cizi mene | |||
"zdcm_" zaklad dane v cizi mene nepovinne | |||
"dcm_" castka DPH v cizi mene, nepovinne | |||
"hdan_" castka DPH v domaci mena, povinne | |||
"sazba_" sazba DPH v % | |||
"stav_" stav radku (kvuli zaloham), povinne, povolena pouze hodnota 'E' | |||
"DANIDNO_" id sazby DPH viz. sazebník DPH (J_SZD), nepovinne, default null | |||
"nsidno_" id nakl. Strediska (ELAURI_VW), nepovinne, default null | |||
"typaidno_" id typu akce, nepovinne (ELAURI_VW), default null | |||
"akce_" id akce, nepovinne (ELAURI_VW), default null | |||
"komidno_" id komplexni polozky (ELAURI_VW), default null | |||
"rsfidno_" id radku ceny ze smlouvy (viz.iFIS*Smlouvy), default null | |||
"kodal_" id analytickeho uctu | |||
"audal_" číslo analytického účtu, default null | |||
"ns_" číslo NS, přednost má nsidno_, default null | |||
"ta_" číslo TA, přednost má typaidno_, default null | |||
"nakce_" název akce, přednost má akce_, default null | |||
"kp_" číslo komplexní položky, přednost má komidno_, default null | |||
VYSTUP : "Chyba" - text chyboveho hlaseni pri chybe. | |||
NAVRATOVA HODNOTA : Pri chybe vraci FALSE jinak vraci TRUE. | |||
***********************************************************************/ | |||
/*********************************************************************** | |||
FUNCTION Uzavri_Doklad | |||
POPIS : Funkce provadi formalni kontroly uplnosti dokladu, uzavira jej | |||
pro dalsi zpracovani v uloze Finance a inicializuje rozhrani | |||
pro zpracovani dalsiho dokladu. | |||
VYSTUP : "Chyba" - text chyboveho hlaseni pri chybe. | |||
"CisloDokl" - cislo dokladu pod kterym byl doklad ulozen do | |||
tabulky rozhrani | |||
NAVRATOVA HODNOTA : Pri chybe vraci FALSE jinak vraci TRUE. | |||
***********************************************************************/ | |||
/*********************************************************************** | |||
PROCEDURE Reset_Doklad | |||
POPIS : V pripade ze dojde k chybe pri zapisu radku dokladu nebo pri | |||
uzavreni dokladu je nutne inicializovat rozhrani touto | |||
procedurou. Zaroven tato procedura provadi rollback k okamziku | |||
otevreni dokladu. | |||
***********************************************************************/ | |||
</syntaxhighlight> | |||
====Podrobnější komentáře k některým vstupním argumentům v db rozhraní PACKAGE fis_01.IMP_ODFA:==== | |||
a) funkce otevri_doklad | |||
*firmidno_ a ico_ - Jeden z těchto parametrů musí být v rámci volání funkce vyplněný. Pokud jsou vyplněny oba, přednost má firmidno_, ve kterém se předpokládá jednoznačný identifikátor partnera. Pokud je vyplněn pouze porametr ico_, hledá se firma s IČO, které je obsahem parametru. U takové firmy se hledá její hlavní část. Pokud žádná její část není označena jako hlavní, kontroluje se, zda existuje pouze jedna. Ta se předvyplní na importovaný doklad v iFIS/Pohledávky. Pokud jich existuje více, je vydáno chybové hlášení a předání podkladů pro vystavení pohledávky skončí neúspěšně chybou. | |||
*kopridno_ a icokp - parametry pro identifikaci konečného příjemce. Mohou být prázdné. Jinak platí totéž, co platí i pro předchozí dvojici vstupních parametrů. | |||
*mesic_ a rok_ - udávají účetní období, do kterého se má budoucí pohledávkový doklad zapsat. Když jsou prázdné, pohledávka se zapíše do aktuálně otevřeného období pro pohledávky (lokální parametr ODFAMES1) | |||
b) funkce ZapisRadek | |||
*sazba_ - pokud je zadána pouze číselná hodnota sazby DPH, pak se do na doklad v iFIS předvyplňuje pouze tato základní hodnota, konkrétní sazbu DPH pak musí uživatel iFIS vybrat ze seznamu možných hodnot. | |||
*danidno_ - identifikátor sazby DPH ze sazebníku DPH (J_SZD.szd_id), vstupní parametr sazba_ musi být uveden současně také a nesmí být v rozporu s identifikací sazby v parametru danidno_. | |||
{{Pozor|I na nedaňové řádky faktury je nutné uvádět sazbu daně určenou výhradně pro nedaňové finanční operace. Na zálohových listech je vždy uváděna sazba 0% Není daňový doklad.<br> | |||
Fakturované částky nejsou v iFIS nikterak kontrolovány. Kontroly částek nejsou prováděny ani podle sazby DPH ani podle kurzu. Výpočty fakturovaných částek zajišťuje externí aplikace. iFIS tyto částky pouze přebírá 1:1.}} | |||
====Názorný příklad zápisu nového dokladu pomocí konektorů iFIS přes standardní prostředek SQL*Plus.==== | |||
<syntaxhighlight lang="plsql"> | |||
SQL> connect USER_EXT_APL_XXX /XXXXX@testdb | |||
Spojeno. | |||
SQL> @C:\imp_pohl | |||
Byl vygenerovan podklad č.117 pro vystavení pohledavky v iFIS. | |||
Procedura PL/SQL úspěšně dokončena. | |||
Potvrzení transakce dokončeno. | |||
Obsah souboru IMP_POHL.sql: | |||
Set serveroutput on size 1000000; | |||
declare | |||
chyba varchar2(2000); | |||
cislodokl number(10); | |||
begin | |||
if not imp_odfa.otevri_doklad( | |||
chyba, | |||
null, -- id partnera - firmy | |||
'40755592', --ICO (ICO BBM z evidence partneru) | |||
null, -- id konecneho prijemce | |||
null, -- ico konecneho prijemce | |||
null, -- mesic | |||
null, -- rok | |||
'KC', -- mena | |||
null, -- denni penale v procentech | |||
null, -- slevy v procentech | |||
null, -- variabilni symbol | |||
'308', -- konstantni symbol | |||
null, -- specificky symbol | |||
null, -- prilohy | |||
null, -- cislo dodaciho listu | |||
null, -- dodavkovy prikaz | |||
'pokusny import', -- popis dokladu | |||
'Zprava pro prijemce', | |||
'P', -- zpusob uhrady | |||
trunc(sysdate), -- datum vystaveni dokladu | |||
trunc(sysdate+10), -- datum splatnosti | |||
trunc(sysdate), -- DUZP | |||
'N', -- typ dokladu, N=faktura, P=zalohovy list | |||
1, -- ZDE UVEST cislo importovaneho dokladu z externí aplikace(nelze opakovane zapisovat stejne cislo dokladu) | |||
null, -- zatim se nevyuziva | |||
null, -- zatim se nevyuziva | |||
null, -- id nakladoveho strediska | |||
null, -- id typu akce | |||
null, -- id akce | |||
null, -- id komplexni polozky | |||
null, -- id radku smlouvy (vyuziva se jen pri generovani z RS) | |||
null -- id vlastniho bankovniho uctu | |||
) then | |||
imp_odfa.reset_doklad; | |||
RAISE_APPLICATION_ERROR(-20103, chyba); | |||
end if; | |||
/*zacatek smycky pro zapsani vsech radku dokladu*/ | |||
if not imp_odfa.zapis_radek(chyba, | |||
'Text 1. radku', | |||
'ks', -- merna jednotka | |||
3, -- pocet mernych jednotek, | |||
500, -- cena za MJ | |||
1500, -- zaklad dane | |||
null, -- castka v cizi mene vcetne dane | |||
null, -- zaklad dane v cizi mene | |||
null, -- dan v cizi mene | |||
75, -- èástka DPH | |||
5, -- hodnota sazby DPH | |||
'E', | |||
null, -- id sazby DPH | |||
null, -- id nakladoveho strediska | |||
null, -- id typu akce | |||
null, -- id akce | |||
null, -- id komplexni polozky | |||
null -- id radku smlouvy (vyuziva se pri generovani z RS) | |||
) then | |||
imp_odfa.reset_doklad; | |||
RAISE_APPLICATION_ERROR(-20104, chyba); | |||
end if; | |||
--konec smycky pro zaspani vsech radku dokladu | |||
if not imp_odfa.uzavri_doklad(chyba,cislodokl) then | |||
imp_odfa.reset_doklad; | |||
RAISE_APPLICATION_ERROR(-20105, chyba); | |||
end if; | |||
-- ZDE je mozno prevzit cislo vygenerovaneho podkladu pro vystavení pohledavky iFIS, které je ulozeno v promenne cislodokl | |||
dbms_output.put_line('Byl vygenerovan podklad č.'||cislodokl||' pro vystavení pohledavky v iFIS.'); | |||
end; | |||
/ | |||
commit; | |||
</syntaxhighlight> | |||
[[Kategorie:Datová rozhraní iFIS]] |
Aktuální verze z 7. 1. 2022, 11:44
Popis datového rozhraní pro převod dat z externích systémů do iFIS/Pohledávky
Externí aplikace může zajišťovat přenos pohledávek (vystavené faktury, vystavené zálohové listy) do datového rozhraní iFIS/Pohledávky. Datové rozhraní validuje zapisovaná data a následně je zapisuje do evidence iFIS/Pohledávky.
- Pro fyzický zápis pohledávkových dokladů do iFIS/Finance je využívána databázová package IMP_ODFA, která obsahuje jednotlivé výkonné funkce (vstupní konektory).
- Vstupním konektorem se rozumí databázová funkce, která umožňuje externím aplikacím požadovanou manipulaci s daty iFIS.
- Vstupní konektory jsou volány buď napřímo a nebo přes webovou službu (WS).
- Externí aplikace ovlivňuje chování konektoru zadáním tzv. vstupních argumentů.
- Vstupní argumenty konektorů, které mají definovány default hodnoty, jsou nepovinné.
- Argumenty, u nichž jsou uvedeny možné hodnoty, nebo odkazy na domény, nebo odkazy na jiné číselníky jsou na tyto hodnoty kontrolovány.
- Konektor kontroluje všechna databázová integritní omezení.
- Jakákoliv chyba při zpracování transakce způsobí automatické odvolání všech změn, které funkce provedla.
- Databázové funkce automaticky vrací po provedení transakce tzv. výstupní argumenty. Tyto výstupní argumenty informují externí aplikaci o stavu provedené transakce (informace o správně provedené transkaci, informace o jednoznačných identifikátorech nově založených záznamů v iFIS, informace o chybných vstupních argumentech, o porušených integritních omezeních, či o porušení pravidel pro uložení dat do iFIS/Finance).
- Další pravidla jsou součástí popisu příslušných funkcí (viz dále).
Techická specifikace webové služby ImpODFA.wsdl
<?xml version="1.0" encoding="UTF-8" ?>
- <!--
Generated by the Oracle JDeveloper 10g Web Services WSDL Generator
-->
- <!--
Date Created: Thu Feb 08 09:58:42 CET 2007
-->
- <definitions name="ImpODFA" targetNamespace="http://fvz/ImpODFA.wsdl" xmlns="http://schemas.xmlsoap.
org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.
org/wsdl/soap/" xmlns:tns="http://fvz/ImpODFA.wsdl" xmlns:ns1="http://fvz/ImpODFA.xsd">
- <types>
- <schema targetNamespace="http://fvz/ImpODFA.xsd" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http:
//schemas.xmlsoap.org/soap/encoding/">
- <complexType name="fvz_ImpODFAImpl_zapis_radek_Out" jdev:packageName="fvz" xmlns:jdev="http://xmlns.oracle.
com/jdeveloper/webservices">
- <all>
<element name="chybaOut" type="string" />
<element name="return" type="boolean" />
</all>
</complexType>
- <complexType name="fvz_ImpODFAImpl_otevri_doklad_Out" jdev:packageName="fvz" xmlns:jdev="http://xmlns.oracle.
com/jdeveloper/webservices">
- <all>
<element name="chybaOut" type="string" />
<element name="return" type="boolean" />
</all>
</complexType>
- <complexType name="fvz_ImpODFAImpl_uzavri_doklad_Out" jdev:packageName="fvz" xmlns:jdev="http://xmlns.oracle.
com/jdeveloper/webservices">
- <all>
<element name="chybaOut" type="string" />
<element name="cislodoklOut" type="decimal" />
<element name="return" type="boolean" />
</all>
</complexType>
</schema>
</types>
- <message name="zapis_radek0Request">
<part name="text" type="xsd:string" />
<part name="mj" type="xsd:string" />
<part name="pocet" type="xsd:string" />
<part name="cenamj" type="xsd:string" />
<part name="cenc" type="xsd:string" />
<part name="zcm" type="xsd:string" />
<part name="zdcm" type="xsd:string" />
<part name="dcm" type="xsd:string" />
<part name="hdan" type="xsd:string" />
<part name="sazba" type="xsd:string" />
<part name="stav" type="xsd:string" />
<part name="danidno" type="xsd:string" />
<part name="nsidno" type="xsd:string" />
<part name="typaidno" type="xsd:string" />
<part name="akce" type="xsd:string" />
<part name="komidno" type="xsd:string" />
<part name="rsfidno" type="xsd:string" />
</message>
- <message name="zapis_radek0Response">
<part name="return" type="ns1:fvz_ImpODFAImpl_zapis_radek_Out" />
</message>
<message name="reset_doklad1Request" />
<message name="reset_doklad1Response" />
- <message name="otevri_doklad2Request">
<part name="firmidno" type="xsd:string" />
<part name="ico" type="xsd:string" />
<part name="kopridno" type="xsd:string" />
<part name="icokp" type="xsd:string" />
<part name="mesic" type="xsd:string" />
<part name="rok" type="xsd:string" />
<part name="mena" type="xsd:string" />
<part name="penale" type="xsd:string" />
<part name="slevy" type="xsd:string" />
<part name="vsmb" type="xsd:string" />
<part name="ksmb" type="xsd:string" />
<part name="ssmb" type="xsd:string" />
<part name="pril" type="xsd:string" />
<part name="cdl" type="xsd:string" />
<part name="dodp" type="xsd:string" />
<part name="popis" type="xsd:string" />
<part name="zprava" type="xsd:string" />
<part name="zppl" type="xsd:string" />
<part name="datv" type="xsd:dateTime" />
<part name="dats" type="xsd:dateTime" />
<part name="datd" type="xsd:dateTime" />
<part name="vf" type="xsd:string" />
<part name="krechNr" type="xsd:string" />
<part name="zrusId" type="xsd:string" />
<part name="rel1Id" type="xsd:string" />
<part name="nsidno" type="xsd:string" />
<part name="typaidno" type="xsd:string" />
<part name="akce" type="xsd:string" />
<part name="komidno" type="xsd:string" />
<part name="rsridno" type="xsd:string" />
<part name="vlucidno" type="xsd:string" />
</message>
- <message name="otevri_doklad2Response">
<part name="return" type="ns1:fvz_ImpODFAImpl_otevri_doklad_Out" />
</message>
<message name="uzavri_doklad3Request" />
- <message name="uzavri_doklad3Response">
<part name="return" type="ns1:fvz_ImpODFAImpl_uzavri_doklad_Out" />
</message>
- <portType name="ImpODFAPortType">
- <operation name="zapis_radek">
<input name="zapis_radek0Request" message="tns:zapis_radek0Request" />
<output name="zapis_radek0Response" message="tns:zapis_radek0Response" />
</operation>
- <operation name="reset_doklad">
<input name="reset_doklad1Request" message="tns:reset_doklad1Request" />
<output name="reset_doklad1Response" message="tns:reset_doklad1Response" />
</operation>
- <operation name="otevri_doklad">
<input name="otevri_doklad2Request" message="tns:otevri_doklad2Request" />
<output name="otevri_doklad2Response" message="tns:otevri_doklad2Response" />
</operation>
- <operation name="uzavri_doklad">
<input name="uzavri_doklad3Request" message="tns:uzavri_doklad3Request" />
<output name="uzavri_doklad3Response" message="tns:uzavri_doklad3Response" />
</operation>
</portType>
- <binding name="ImpODFABinding" type="tns:ImpODFAPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <operation name="zapis_radek">
<soap:operation soapAction="" style="rpc" />
- <input name="zapis_radek0Request">
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
- <output name="zapis_radek0Response">
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
- <operation name="reset_doklad">
<soap:operation soapAction="" style="rpc" />
- <input name="reset_doklad1Request">
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
- <output name="reset_doklad1Response">
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
- <operation name="otevri_doklad">
<soap:operation soapAction="" style="rpc" />
- <input name="otevri_doklad2Request">
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
- <output name="otevri_doklad2Response">
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
- <operation name="uzavri_doklad">
<soap:operation soapAction="" style="rpc" />
- <input name="uzavri_doklad3Request">
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
- <output name="uzavri_doklad3Response">
<soap:body use="encoded" namespace="ImpODFA" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
</binding>
- <service name="ImpODFA">
- <port name="ImpODFAPort" binding="tns:ImpODFABinding">
<soap:address location="http://ifis.xxxx.cz/ws/ImpODFA" />
</port>
</service>
</definitions>
Technická specifikace databázové části datového rozhraní PACKAGE fis_01.IMP_ODFA
/***********************************************************************
Jmeno: IMP_ODFA
Ucel: Import pohledávek do FIS*Finance
***********************************************************************/
FUNCTION Otevri_Doklad
POPIS : Funkce otevira rozhrani pro nasledne zpracovani pohledavky
VYSTUP: výstupem je popis chyby, pokud nějaká chyba nastane
VSTUP : "firmidno_" vnitrni identifikator adresy firmy oberatele
(nepovinny), ma prednost pred argumentem "ico_"
"ico_" ICO firmy odberatele, povinne, pokud neni uveden argument
"firmidno_"
"kopridno_" vnitrni identifikator adresy firmy konecneho
prijemce (nepovinny), ma prednost pred argumentem "icokp_"
"icokp_" ICO firmy konecneho prijemce, nepovinne. Pokud je
uveden argument "kopridno_", ignoruje se
"mesic_" ucetni obdobi pohledavky - mesic, nepovinne
"rok_" ucetni obdobi pohledavky - rok, nepovinne
"mena_" Mena pohledavky, povinne
"penale_" denni penale v %, nepovinne
"vsmb_" variabilni symbol, max 10 znaku, nepovinne
"ksmb_" konstantni symbol, max 10 znaku, nepovinne
"ssmb_" specificky symbol, max 10 znaku, nepovinne
"pril_" prilohy, max 20 znaku, nepovinne
"cdl_" číslo dod.listu nebo číslo dokladu v externí aplikaci, max 15 znaku, nepovinne
"dodp_" čislo objednávky nebo dodavkoveho prikazu, max 10 znaku, nepovinne
"popis_" Popis dokladu, volny text max 255 znaku, nepovinne
"zprava_" Zprava pro odberatele, volny text max 255 znaku, nepovinne
"zppl_" zpusob uhrady, možné hodnoty P–Prikazem,H-Hotovosti, I-Inkasem, povinne
"datv_" Datum vystaveni pohledavky,nepovinne
"dats_" Datum splatnosti pohledavky,nepovinne
"datd_" datum plneni DUZP, nepovinne
"vf_" typ dokladu, povinné, možné hodnoty 'N' - vystavená faktura/vnitropodniková faktura nebo'P' - zálohový list
"krech_nr_" cislo importovaneho dokladu v externí aplikaci, max 15 znaku, povinne
"zrus_id_" zatim nevyuzivany parametr, max 15 znaku nepovinne
"rel1_id_" zatim nevyuzivany parametr, max 15 znaku nepovinne
"nsidno_" id nakladoveho strediska, nepovinne, default null
"typaidno_" id typu akce, nepovinne, default null
"akce_" id akce, nepovinne, default null
"komidno_" id komplexní polozky, nepovinne, default null
"rsridno_" id radku smlouvy, nepovinne, default null
"vlucidno_" id vlastniho bank. uctu, nepovinne, default null
"schvaluje_" osobni nebo rodne cislo osoby, ktera schvaluje doklad,
default null
"prpartn_" konečný příjemce i s adresou, volný text max 255 znaku,
default null, přednost má kopridno_ a icokp_
"ns_" číslo NS, přednost má nsidno_, default null
"ta_" číslo TA, přednost má typaidno_, default null
"nakce_" název akce, přednost má akce_, default null
"kp_" číslo komplexní položky, přednost má komidno_, default null
"ejidno_" číslo cílové EJ, default null - v tom pripade je to EJ uzivatele,
"todfidno" id deníku, default null
"tof_" číslo deníku, default null
"datk_" datum kurzu, default null
NAVRATOVA HODNOTA : Pri chybe vraci FALSE jinak vraci TRUE.
***********************************************************************/
/***********************************************************************
FUNCTION Zapis_Radek
POPIS : Funkce zapisuje radek pohledavky. Radky nelze zapisovat, pokud
Nebylo provedeno otevreni dokladu pomoci funkce Otevri_Doklad.
VSTUP : "text_" text radku, nepovinne, max 255 znaku
"mj_" merna jednotka, max 10 znaku, nepovinne
"pocet_" mnozstvi, nepovinne
"cenamj_" cena za jednotku v domaci nebo cizi mene, nepovinne
"cenc_" zaklad dane v domaci mene, povinne
"zcm_" castka v cizi mene, povinne, pokud je zavazek v cizi mene
"zdcm_" zaklad dane v cizi mene nepovinne
"dcm_" castka DPH v cizi mene, nepovinne
"hdan_" castka DPH v domaci mena, povinne
"sazba_" sazba DPH v %
"stav_" stav radku (kvuli zaloham), povinne, povolena pouze hodnota 'E'
"DANIDNO_" id sazby DPH viz. sazebník DPH (J_SZD), nepovinne, default null
"nsidno_" id nakl. Strediska (ELAURI_VW), nepovinne, default null
"typaidno_" id typu akce, nepovinne (ELAURI_VW), default null
"akce_" id akce, nepovinne (ELAURI_VW), default null
"komidno_" id komplexni polozky (ELAURI_VW), default null
"rsfidno_" id radku ceny ze smlouvy (viz.iFIS*Smlouvy), default null
"kodal_" id analytickeho uctu
"audal_" číslo analytického účtu, default null
"ns_" číslo NS, přednost má nsidno_, default null
"ta_" číslo TA, přednost má typaidno_, default null
"nakce_" název akce, přednost má akce_, default null
"kp_" číslo komplexní položky, přednost má komidno_, default null
VYSTUP : "Chyba" - text chyboveho hlaseni pri chybe.
NAVRATOVA HODNOTA : Pri chybe vraci FALSE jinak vraci TRUE.
***********************************************************************/
/***********************************************************************
FUNCTION Uzavri_Doklad
POPIS : Funkce provadi formalni kontroly uplnosti dokladu, uzavira jej
pro dalsi zpracovani v uloze Finance a inicializuje rozhrani
pro zpracovani dalsiho dokladu.
VYSTUP : "Chyba" - text chyboveho hlaseni pri chybe.
"CisloDokl" - cislo dokladu pod kterym byl doklad ulozen do
tabulky rozhrani
NAVRATOVA HODNOTA : Pri chybe vraci FALSE jinak vraci TRUE.
***********************************************************************/
/***********************************************************************
PROCEDURE Reset_Doklad
POPIS : V pripade ze dojde k chybe pri zapisu radku dokladu nebo pri
uzavreni dokladu je nutne inicializovat rozhrani touto
procedurou. Zaroven tato procedura provadi rollback k okamziku
otevreni dokladu.
***********************************************************************/
Podrobnější komentáře k některým vstupním argumentům v db rozhraní PACKAGE fis_01.IMP_ODFA:
a) funkce otevri_doklad
- firmidno_ a ico_ - Jeden z těchto parametrů musí být v rámci volání funkce vyplněný. Pokud jsou vyplněny oba, přednost má firmidno_, ve kterém se předpokládá jednoznačný identifikátor partnera. Pokud je vyplněn pouze porametr ico_, hledá se firma s IČO, které je obsahem parametru. U takové firmy se hledá její hlavní část. Pokud žádná její část není označena jako hlavní, kontroluje se, zda existuje pouze jedna. Ta se předvyplní na importovaný doklad v iFIS/Pohledávky. Pokud jich existuje více, je vydáno chybové hlášení a předání podkladů pro vystavení pohledávky skončí neúspěšně chybou.
- kopridno_ a icokp - parametry pro identifikaci konečného příjemce. Mohou být prázdné. Jinak platí totéž, co platí i pro předchozí dvojici vstupních parametrů.
- mesic_ a rok_ - udávají účetní období, do kterého se má budoucí pohledávkový doklad zapsat. Když jsou prázdné, pohledávka se zapíše do aktuálně otevřeného období pro pohledávky (lokální parametr ODFAMES1)
b) funkce ZapisRadek
- sazba_ - pokud je zadána pouze číselná hodnota sazby DPH, pak se do na doklad v iFIS předvyplňuje pouze tato základní hodnota, konkrétní sazbu DPH pak musí uživatel iFIS vybrat ze seznamu možných hodnot.
- danidno_ - identifikátor sazby DPH ze sazebníku DPH (J_SZD.szd_id), vstupní parametr sazba_ musi být uveden současně také a nesmí být v rozporu s identifikací sazby v parametru danidno_.
Názorný příklad zápisu nového dokladu pomocí konektorů iFIS přes standardní prostředek SQL*Plus.
SQL> connect USER_EXT_APL_XXX /XXXXX@testdb
Spojeno.
SQL> @C:\imp_pohl
Byl vygenerovan podklad č.117 pro vystavení pohledavky v iFIS.
Procedura PL/SQL úspěšně dokončena.
Potvrzení transakce dokončeno.
Obsah souboru IMP_POHL.sql:
Set serveroutput on size 1000000;
declare
chyba varchar2(2000);
cislodokl number(10);
begin
if not imp_odfa.otevri_doklad(
chyba,
null, -- id partnera - firmy
'40755592', --ICO (ICO BBM z evidence partneru)
null, -- id konecneho prijemce
null, -- ico konecneho prijemce
null, -- mesic
null, -- rok
'KC', -- mena
null, -- denni penale v procentech
null, -- slevy v procentech
null, -- variabilni symbol
'308', -- konstantni symbol
null, -- specificky symbol
null, -- prilohy
null, -- cislo dodaciho listu
null, -- dodavkovy prikaz
'pokusny import', -- popis dokladu
'Zprava pro prijemce',
'P', -- zpusob uhrady
trunc(sysdate), -- datum vystaveni dokladu
trunc(sysdate+10), -- datum splatnosti
trunc(sysdate), -- DUZP
'N', -- typ dokladu, N=faktura, P=zalohovy list
1, -- ZDE UVEST cislo importovaneho dokladu z externí aplikace(nelze opakovane zapisovat stejne cislo dokladu)
null, -- zatim se nevyuziva
null, -- zatim se nevyuziva
null, -- id nakladoveho strediska
null, -- id typu akce
null, -- id akce
null, -- id komplexni polozky
null, -- id radku smlouvy (vyuziva se jen pri generovani z RS)
null -- id vlastniho bankovniho uctu
) then
imp_odfa.reset_doklad;
RAISE_APPLICATION_ERROR(-20103, chyba);
end if;
/*zacatek smycky pro zapsani vsech radku dokladu*/
if not imp_odfa.zapis_radek(chyba,
'Text 1. radku',
'ks', -- merna jednotka
3, -- pocet mernych jednotek,
500, -- cena za MJ
1500, -- zaklad dane
null, -- castka v cizi mene vcetne dane
null, -- zaklad dane v cizi mene
null, -- dan v cizi mene
75, -- èástka DPH
5, -- hodnota sazby DPH
'E',
null, -- id sazby DPH
null, -- id nakladoveho strediska
null, -- id typu akce
null, -- id akce
null, -- id komplexni polozky
null -- id radku smlouvy (vyuziva se pri generovani z RS)
) then
imp_odfa.reset_doklad;
RAISE_APPLICATION_ERROR(-20104, chyba);
end if;
--konec smycky pro zaspani vsech radku dokladu
if not imp_odfa.uzavri_doklad(chyba,cislodokl) then
imp_odfa.reset_doklad;
RAISE_APPLICATION_ERROR(-20105, chyba);
end if;
-- ZDE je mozno prevzit cislo vygenerovaneho podkladu pro vystavení pohledavky iFIS, které je ulozeno v promenne cislodokl
dbms_output.put_line('Byl vygenerovan podklad č.'||cislodokl||' pro vystavení pohledavky v iFIS.');
end;
/
commit;