Převody vystavených faktur z externích systémů do iFIS*Pohledávky
Z BBM Dokumentace iFIS
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/Finance/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 (SOAP 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
- Rozhraní po provedení transakce vrací odpověď, ve které je obsažen popis chyby a nebo ID záznamu ve vstupním zásobníku iFIS/Finance/Pohledávky.
- Další pravidla jsou součástí popisu příslušných funkcí (viz. dále).
Technická specifikace webové služby IMPODFA je k dispozici v připojených dokumentech:
ImpODFA_docHtml.zip
pohledavka_faktura_24132_request.xml
iFIS pohledavka_faktura_24132.jpg
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
'CZK', -- 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;