Popis ovladače HBXML.hbd
Obecný ovladač, pomocí kterého je možné provádět univerzální exporty platebních příkazů a importy bankovních výpisů.
Přenosovým médiem je XML soubor, který má přesně definovanou strukturu. V praxi to znamená, že pokud se vyexportuje platební příkaz, na disku vznikne XML soubor, který je dále možno uživatelsky zpracovávat (např. XSL transformací apod.). V případě importu bankovního výpisu je třeba, aby byl externí bankovní výpis uložen ke zpracování v ABRA Gen v souboru XML definované struktury v cestě zadané v parametrech ovladače HBXML.hbd.
Popis struktury pro Bankovní výpis
V následující tabulce je uveden popis položek XML a jejich přiřazení k položkám databázových tabulek ABRA Gen, kde tabulka BankStatements je tabulka hlaviček bankovních výpisů a BankStatements2 je tabulka řádků bankovních výpisů. Více viz popis Struktur a definic GenDoc.chm.
XML element | Popis | Cílová položka v systému ABRA Gen | ||
---|---|---|---|---|
<ABRA-GX-BankStatement> | Povinné - identifikace souboru. Vždy na první úrovni. | --- | ||
<DocDate> | Nepovinné - datum bankovního výpisu ve formátu YYYYMMDD. Element může být obsažen pouze jednou. | BankStatements.DocDate$DATE | ||
<ExternalNumber> | Nepovinné - číslo výpisu. Element může být obsažen pouze jednou. | BankStatements.ExternalNumber | ||
<Rows> | Řádky příkazu (Subelement elementu <ABRA-GX-BankStatement>) - obsahuje tolik subelementů <Row>, kolik má bankovní výpis řádků. Povinné. Element může být obsažen pouze jednou. | --- | ||
<Row> |
Subelement <Rows>. Jeden řádek výpisu. Obsahuje následující elementy: |
--- | ||
<DocDate> | Subelement <Row>. Povinné - datum řádku výpisu ve formátu YYYYMMDD | BankStatements2.DocDate$DATE | ||
<Credit> | Subelement <Row>. Povinné - příznak Kreditu ("A"... kredit, "N"... debet) | BankStatements2.Credit | ||
<Amount> | Subelement <Row>. Povinné - částka na řádku. Na 2 desetinná místa, oddělovačem je '.' (tečka) | BankStatements2.Amount | ||
<CurrencyCode> | Subelement <Row>. Nepovinné - ISO kód měny. Pokud neuveden, převezme se měna daného účtu nebo <CurrencyBankCode>. |
BankStatements2.Currency_ID odpovídá kódu měny v tagu <CurrencyCode> nebo |
||
<CurrencyBankCode> | Subelement <Row>. Nepovinné - ČNB kód měny. Pokud neuveden, převezme se měna daného účtu nebo <CurrencyCode>. | |||
<VarSymbol> | Subelement <Row>. Nepovinné - Variabilní symbol obratu. Dle tohoto symbolu se po přijetí do ABRA Gen provádí spojení s placeným dokladem. | BankStatements2.VarSymbol | ||
<LocalAmount> | Subelement <Row>. Nepovinné - pokud je vyplněno <Amount> - částka v lokální měně | BankStatements2.LocalTAmount | ||
<OwnBankAccount> | Subelement <Row>. Slouží ke kontrole. Nepovinné - číslo bankovního účtu, pro který je daný řádek. Ve formátu 6+10+4 (předčíslí+číslo+kód banky - vše bez oddělovačů). Pokud tento element není uveden, při importu se neprovede kontrola účtu a řádek bude automaticky považován za řádek k účtu, jehož BV je právě zadáván. Pokud je uvedeno a účet nesouhlasí, řádek nebude přijat. | - | ||
<BankAccount> | Subelement <Row>. Číslo protiúčtu operace. |
BankStatements2.BankAccount Dále platí: Pokud existuje uživatelská položka X_BankAccount, Y_BankAccount, S_BankAccount nebo U_BankAccount vázaná k záznamu v tabulce BankStatements2, naplní se z tagu <BankAccount>. Naplní se první z existujících uživatelských položek. Existence položek se kontroluje v pořadí, jak jsou výše uvedeny. Např. pokud existuje položka X_BankAccount, naplní se a další výše uvedené uživatelské položky neplní. |
||
<SpecSymbol> | Subelement <Row>. Specifický symbol operace. | BankStatements2.SpecSymbol | ||
<ConstSymbolCode> | Subelement <Row>. Konstantní symbol operace. V ABRA Gen se nevyužívá. | - | ||
<SwiftCode> | Subelement <Row>. SwiftCode protistrany. Neplní se v žádném ovladači (nepoužívá se). | - | ||
<IBANCode> | Subelement <Row>. IBANCode protistrany. Neplní se v žádném ovladači (nepoužívá se) | - | ||
<Description> | Subelement <Row>. Popis operace (AV - zpráva). | BankStatements2.Text |
Příklad xml souboru, který vznikl na základě přijatého souboru s bankovním výpisem z banky a který bude moci být naimportován do vystavovaného bankovního výpisu obecným e-bankingovým driverem HBXML.hbd:
<?xml version="1.0" encoding="Windows-1250" ?>
<ABRA-GX-BankStatement>
<ExternalNumber>00196</ExternalNumber>
<DocDate>20021108</DocDate>
<Rows>
<Row>
--- údaje řádku 1 ---
<DocDate>20021108</DocDate>
<Credit>A</Credit>
<Amount>442.50</Amount>
<VarSymbol>2419911124</VarSymbol>
<OwnBankAccount>00000001150732930300</OwnBankAccount>
<CurrencyCode>CZK</CurrencyCode>
</Row>
<Row>
--- údaje řádku 2 ---
<DocDate>20021109</DocDate>
<Credit>N</Credit>
<Amount>4550.50</Amount>
<VarSymbol>2555551124</VarSymbol>
<OwnBankAccount>00000001150732930300</OwnBankAccount>
<CurrencyCode>CZK</CurrencyCode>
</Row>
--- atd. dalších řádků ... ---
</Rows>
</ABRA-GX-BankStatement>
Při přebírání souboru NENÍ prováděna kontrola správnosti XML souboru (PARSE), proto je třeba, aby byl formát korektní.
Případ, kdy přijatý soubor z banky obsahuje data z více bank.výpisů a více účtů
Může nastat situace, kdy jeden soubor, který jste přijali od banky, obsahuje více než jeden bankovní výpis z více než jednoho bankovního účtu. Příkladem může být soubor pro elektronickou výměnu dat mezi bankou a klientem, ve formátu "Kompatibilní média", v němž je každý výpis zahájen kódem 074 se specifikacemi výpisu (číslo bankovního výpisu, datum výpisu ….) a dále pak pokračují řádky s kódem 075, kde je číslo vlastního účtu, datum transakce, částka a jiné.
-
Soubor obsahuje platby z jednoho účtu, ale více bankovních výpisů:
Import e-bankingem do dokladu bankovního výpisu neřeší možnost importovat z jednoho souboru různé bankovní výpisy. (Element <Rows> v importní xml souboru může být právě jednou, pokud by byl uveden vícekrát, nebudou jeho další výskyty driverem HBXML.hbd zpracovány). Situaci je tedy třeba řešit např. převedením jednoho souboru z banky na několik xml souborů, z nichž každý bude odpovídat jednomu bankovnímu výpisu. Případně, pokud by nebylo třeba zachovat informace o externím čísle výpisu z banky a jeho datu vystavení, by bylo možno řádky z různých bankovních výpisů vnořit všechny jako subelementy jednoho elementu <Rows> (závisí pochopitelně na tom, jakým způsobem zachováváte kontinuitu s číslováním banky a zda je možné zadat platby z více bankovních výpisů pod jeden doklad BV v ABRA Gen či nikoliv.)
-
Soubor obsahuje platby z více účtů:
Tento problém může být řešen pomocí elementu <OwnBankAccount>. Jak je uvedeno v popisu elementu výše, je-li element uveden, provádí se kontrola, zda daný řádek odpovídá účtu, do něhož se e-bankingem importuje, tj. účtu zadanému předtím v hlavičce editovaného bankovního výpisu. Tedy načtou se jen ty řádky, které danému bankovnímu účtu odpovídají, ty které odpovídají jinému číslu účtu je třeba obdobně naimportovat do jiného dokladu bankovního výpisu, v jehož hlavičce bude vybrán odpovídající bankovní účet. Zde je třeba ale ošetřit, zadání správného datumu bankovního výpisu a jeho externího čísla, jelikož elementy <DocDate> a <ExternalNumber> mohou být v importní xml souboru právě jednou stejně jako element <Rows>, pokud by byly uvedeny vícekrát, nebudou jejich další výskyty driverem HBXML.hbd zpracovány.
Popis struktur pro Platební příkaz
XML element | Popis | |||
---|---|---|---|---|
<ABRA-GX-PaymentOrder> | Identifikace souboru s platebními příkazy z ABRA Gen - v první úrovni | |||
<CompanyName> | Jméno vlastní firmy | |||
<DueDate> | Datum splatnosti | |||
<SentDate> | Datum odeslání příkazu | |||
<DocDate> | Datum dokladu | |||
<OrdNumber> | Číslo příkazu | |||
<LocalCurrencyCode> | ISO kód místní měny (CZK) | |||
<LocalCurrencyBankCode> | ČNB kód místní měny (číslo) | |||
<LocalCountryCode> | ISO kód tuzemska (CZ) | |||
<BankAccount> | Údaje o vlastním účtu (Subelement elementu <ABRA-GX-PaymentOrder>) - obsahuje 5 následujících elementů | |||
<Name> | Subelement <BankAccount>. Název účtu | |||
<BankAccount> | Subelement <BankAccount>. Číslo účtu ve formátu 6+10+4 (předčíslí + číslo + kód banky - bez oddělovačů) | |||
<SpecSymbol> | Subelement <BankAccount>. Specifický symbol účtu | |||
<CurrencyCode> | Subelement <BankAccount>. ISO kód měny účtu | |||
<CurrencyBankCode> | Subelement <BankAccount>. ČNB kód měny účtu | |||
<SwiftCode> | Subelement <BankAccount>. Swift kód vlastního bank. účtu. | |||
<IBANCode> | Subelement <BankAccount>. IBAN kód vlastního bank. účtu. | |||
<BankCountryCode> | Subelement <BankAccount>. Kód země banky vlastního bank. účtu. Pokud není vyplněn, tak se naplní kódem země z Firemních údajů. | |||
<CompanyAddress> | Údaje o vlastní firmě (Subelement elementu <ABRA-GX-PaymentOrder>) - obsahuje 4 následující elementy | |||
<Street> | Subelement <CompanyAddress>. Adresa - Ulice. | |||
<City> | Subelement <CompanyAddress>. Adresa - Město. | |||
<Country> | Subelement <CompanyAddress>. Adresa - Stát. | |||
<PostCode> | Subelement <CompanyAddress>. Adresa - PSČ. | |||
<OrgIdentNumber> | Subelement <CompanyAddress>. IČO vlastní firmy. | |||
<VATIdentNumber> | Subelement <CompanyAddress>. DIČ vlastní firmy. | |||
<Rows> | Řádky příkazu (Subelement elementu <ABRA-GX-PaymentOrder>) - obsahuje tolik subelementů <Row>, kolik je řádků příkazu. | |||
<Row> | Jeden řádek příkazu (Subelement elementu <Rows>). Obsahuje následující elementy: | |||
<Position> | Subelement <Row>. Pozice | |||
<DueDate> | Subelement <Row>. Datum splatnosti | |||
<Description> | Subelement <Row>. Popis (AV - zpráva) | |||
<Amount> | Subelement <Row>. Částka v měně příkazu (desetinný oddělovač je "." (tečka)) | |||
<CurrencyCode> | Subelement <Row>. ISO kód měny | |||
<CountryCode> | Subelement <Row>. ISO kód země | |||
<ForeignIssue> | Subelement <Row>. Způsob platby dodatečných poplatků transakce ("0"... OUR, "1"... BEN,"2"... SHA ) | |||
<Urgent> | Subelement <Row>. Urgentnost platby ("0"... STD, "1"... URG) | |||
<VarSymbol> | Subelement <Row>. Variabilní symbol | |||
<ConstSymbolCode> | Subelement <Row>. Konstantní symbol | |||
<SpecSymbol> | Subelement <Row>. Specifický symbol | |||
<TargetBankAccount> | Subelement <Row>. Číslo protiúčtu | |||
<TargetBankName> | Subelement <Row>. Název banky protiúčtu | |||
<TargetBankStreet> | Subelement <Row>. Ulice banky protiúčtu | |||
<TargetBankCity> | Subelement <Row>. Město banky protiúčtu | |||
<TargetBankPostCode> | Subelement <Row>. PSČ banky protiúčtu | |||
<TargetBankCountry> | Subelement <Row>. Kód země banky protiúčtu | |||
<TargetBankCountryCode> | Subelement <Row>. Kód země banky protiúčtu | |||
<TargetCompany> | Subelement <Row>. Údaje o protistraně. Obsahuje následujících 5 elementů. | |||
<Name> | Subelement <TargetCompany>. Jméno firmy | |||
<Street> | Subelement <TargetCompany>. Adresa - Ulice | |||
<City> | Subelement <TargetCompany>. Adresa - Město | |||
<PostCode> | Subelement <TargetCompany>. Adresa - PSČ | |||
<Country> | Subelement <TargetCompany>. Adresa - Kód země | |||
<CountryName> | Subelement <TargetCompany>. Adresa - Jméno země | |||
<CountryNumCode> | Subelement <TargetCompany>. Adresa - Třímístný číselný kód daného státu podle ISO3166. | |||
<CurrencyBankCode> | Subelement <Row>. Číselný bankovní kód měny. | |||
<SwiftCode> | Subelement <Row>. Swift kód. | |||
<PDocumentsDisplayNames> | Subelement <Row>. Pokud řádek platí více než jeden doklad, je zde seznam placených dokladů. | |||
<SEPAPayment> | Subelement <Row>. Příznak o zahraniční platbě s příznakem SEPA. SEPA platby jsou v systému ABRA Gen řešeny pomocí definovatelných položek dohodnutého jména SEPAPayment vytvořených k řádku plat. příkazu. Pokud taková položka existuje a je naplněna pomocí uživatelského formuláře na platebním příkazu, ovladač na ni reaguje a vyexportuje ji. Dále viz realizace plateb s příznakem SEPA. |
Všechny elementy (u kterých to připadá v úvahu) jsou s diakritikou, v kódování 1250 (potažmo v kódování ABRA Gen).
Parametry tohoto ovladače jsou uspořádány do následujících záložek:
Obsažené záložky: | Platební příkazy | Bankovní výpisy |
---|
Název | Doplňující popis |
---|---|
Cesta pro ukládání vygenerovaného platebního příkazu | Zde je třeba zadat platné jméno adresáře včetně disku a koncového zpětného lomítka. Adresář musí být vytvořen. |
Po exportu spustit | Po vlastním exportu je možné spustit externí program, například program, který rovnou umožní vytvořený el. platební příkaz odeslat do banky (odpovídající stránka WWW). Ve volání programu lze využívat parametry - viz popis u funkce Parametry. |
Název | Doplňující popis |
---|---|
Cesta k datům bankovního výpisu | Zde je třeba zadat platné jméno adresáře včetně disku a koncového zpětného lomítka. Adresář musí být vytvořen. |
Před importem spustit | Před vlastním importem je možné spustit libovolný externí program. Zadaný program se spustí ještě před vyhledáním importních souborů. Tuto vlastnost je tedy možné využít pro spuštění programu, který stahuje výpisy z banky. |
Soubor výpisu po zpracování |
Nastavení, co se má se souborem výpisu stát po zpracování. Možnosti jsou následující:
|
Soubor výpisu přesunout do složky | Složka, do které se má soubor výpisu přesunout po zpracování. Relevantní pouze v kombinaci s nastavením předchozího parametru na "Přesunout soubor do jiné složky". |