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. Samotný zápis dat do datových struktur iFIS je možné provádět buď prostřednictvím SOAP webové služby, nebo pomocí konektorů (funkcí) na úrovni databáze Oracle iFIS. Návratovou hodnotou volání datového rozhraní je vždy jednoznačné číslo vytvořeného záznamu v iFIS/Finance. Přes tento identifikátor může externí systém zjišťovat podrobnosti o stavu zpracování jednotlivých dokladů.
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
- 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
- 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).
/***********************************************************************
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;