Popis ovládača HBXML.hbd

Všeobecný ovládač, pomocou ktorého je možné realizovať univerzálne exporty platobných príkazov a importy bankových výpisov.

Prenosovým médiom je XML súbor, ktorý má presne definovanú štruktúru. V praxi to znamená, že pokiaľ sa vyexportuje platobný príkaz, na disku vznikne XML súbor, ktorý je ďalej možné užívateľský spracovávať (napr. XSL transformáciou a pod.). 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 štruktúry pre Bankový 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é - identifikácia súboru. Vždy na prvej úrovni. ---
<DocDate> Nepovinné - dátum bankového výpisu vo formáte YYYYMMDD. Element môže byť obsiahnutý len jedenkrát. BankStatements.DocDate$DATE
<ExternalNumber> Nepovinné - číslo výpisu. Element môže byť obsiahnutý len jedenkrát. BankStatements.ExternalNumber
<Rows> Riadky príkazu (Subelement elementu <ABRA-GX-BankStatement>) - obsahuje toľko subelementov <Row>, koľko má bankový výpis riadkov. Povinné. Element môže byť obsiahnutý len jedenkrát. ---
<Row>

Subelement <Rows>. Jeden riadok výpisu.

Obsahuje nasledujúce elementy:

---
<DocDate> Subelement <Row>. Povinné - dátum riadka výpisu vo formáte YYYYMMDD. BankStatements2.DocDate$DATE
<Credit> Subelement <Row>. Povinné - príznak Kreditu ("A"... kredit, "N"... debet) BankStatements2.Credit
<Amount> Subelement <Row>. Povinné - suma na riadku. Na 2 desatinné miesta, oddeľovačom je '.' (bodka) BankStatements2.Amount
<CurrencyCode> Subelement <Row>. Nepovinné - ISO kód meny. Pokiaľ neuvedený, prevezme sa mena daného účtu alebo <CurrencyBankCode>.

BankStatements2.Currency_ID

odpovídá kódu měny v tagu <CurrencyCode> nebo
<CurrencyBankCode>

<CurrencyBankCode> Subelement <Row>. Nepovinné - NBS kód meny. Pokiaľ neuvedený, prevezme sa mena daného účtu alebo <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é - pokiaľ je vyplnené <Amount> - suma v lokálnej mene BankStatements2.LocalTAmount
<OwnBankAccount> Subelement <Row>. Slúži na kontrolu. Nepovinné - číslo bankového účtu, pre ktorý je daný riadok. Vo formáte 6+10+4 (predčíslie+číslo+kód banky - všetko bez oddeľovačov). Pokiaľ tento element nie je uvedený, pri importe sa nezrealizuje kontrola účtu a riadok bude automaticky považovaný za riadok k účtu, jeho BV je práve zadávaný. Pokiaľ je uvedené a účet nesúhlasí, riadok nebude prijatý. -
<BankAccount> Subelement <Row>. Číslo protiúčtu operácie.

BankStatements2.BankAccount

Ďalej platí: Ak existuje užívateľská položka X_BankAccount, Y_BankAccount, S_BankAccount alebo U_BankAccount viazaná k záznamu v tabuľke BankStatements2, naplní sa z tagu <BankAccount>. Naplní sa prvá z existujúcich užívateľských položiek. Existencia položiek sa kontroluje v poradí, ako sú vyššie uvedené. Napr. ak existuje položka X_BankAccount, naplní sa a ďalšie vyššie uvedené užívateľské položky neplní.

<SpecSymbol> Subelement <Row>. Špecifický symbol operácie. BankStatements2.SpecSymbol
<ConstSymbolCode> Subelement <Row>. Konštantný symbol operácie. V ABRA Gen se nevyužívá. -
<SwiftCode> Subelement <Row>. SwiftCode protistrany. Neplní sa v žiadnom ovládači (nepoužíva sa). -
<IBANCode> Subelement <Row>. IBANCode protistrany. Neplní sa v žiadnom ovládači (nepoužíva sa) -
<Description> Subelement <Row>. Popis operácie (AV - sprá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>

Pri preberaní súboru NIE JE realizovaná kontrola správnosti XML súboru (PARSE), preto je potrebné, aby bol formát korektný.

Prípad, kedy prijatý súbor z banky obsahuje dáta z viac bank. výpisov a viac účtov

Môže nastať situácia, keď jeden súbor, ktorý ste prijali od banky, obsahuje viac ako jeden bankový výpis z viac ako jedného bankového účtu. Príkladom môže byť súbor na elektronickú výmenu dát medzi bankou a klientom, vo formáte "Kompatibilné média", v ktorom sa každý výpis začína kódom 074 so špecifikáciami výpisu (číslo bankového výpisu, dátum výpisu ….) a ďalej pokračujú riadky s kódom 075, kde je číslo samotného účtu, dátum transakcie, suma a iné.

  • Súbor obsahuje platby z jedného účtu, ale viac bankových výpisov:

    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 importnom xml súbore môže byť práve jedenkrát, pokiaľ by bol uvedený viackrát, nebudú jeho ďalšie výskyty ovládačom HBXML.hbd spracované). Situáciu teda treba riešiť napr. prevedením jedného súboru z banky na niekoľko xml súborov, z nich každý bude zodpovedať jednému bankové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.)

  • Súbor obsahuje platby z viacerých účtov:

Tento problém môže byť riešený pomocou 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. Teda načítajú sa len tie riadky, ktoré danému bankovému účtu zodpovedajú, tie ktoré zodpovedajú inému číslu účtu je potreba obdobne naimportovať do iného dokladu bankového výpisu, v ktorého hlavičke bude vybraný zodpovedajúci bankový účet. Tu je potrebné ale ošetriť, zadanie správneho dátumu bankového výpisu a jeho externého čísla, pretože elementy <DocDate> a <ExternalNumber> môžu byť v importnom xml súbore práve jedenkrát rovnako ako element <Rows>, pokiaľ by boli uvedené viackrát, nebudú ich ďalšie výskyty ovládačom HBXML.hbd spracované.

Popis štruktúr pre Platobný príkaz

XML element Popis
<ABRA-GX-PaymentOrder> Identifikace souboru s platebními příkazy z ABRA Gen - v první úrovni
<CompanyName> Meno vlastnej firmy
<DueDate> Dátum splatnosti
<SentDate> Dátum odoslania príkazu
<DocDate> Dátum dokladu
<OrdNumber> Číslo príkazu
<LocalCurrencyCode> ISO kód miestnej meny (SKK)
<LocalCurrencyBankCode> NBS kód miestnej meny (číslo)
<LocalCountryCode> ISO kód tuzemska (SK)
<BankAccount> Údaje o vlastnom účte (Subelement elementu <ABRA-GX-PaymentOrder>) - obsahuje 5 nasledujúcich elementov
<Name> Subelement <BankAccount>. Názov účtu
<BankAccount> Subelement <BankAccount>. Číslo účtu vo formáte 6+10+4 (predčíslie + číslo + kód banky - bez oddeľovačov)
<SpecSymbol> Subelement <BankAccount>. Špecifický symbol účtu
<CurrencyCode> Subelement <BankAccount>. ISO kód meny účtu
<CurrencyBankCode> Subelement <BankAccount>. NBS kód meny úč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 krajiny banky vlastného bank. účtu. Ak nie je vyplnený, tak sa naplní kódom krajiny z Firemných údajov.
<CompanyAddress> Údaje o vlastnej firme (Subelement elementu <ABRA-GX-PaymentOrder>) - obsahuje 4 nasledujúce elementy
<Street> Subelement <CompanyAddress>. Adresa - Ulica.
<City> Subelement <CompanyAddress>. Adresa - Mesto.
<Country> Subelement <CompanyAddress>. Adresa - Štát.
<PostCode> Subelement <CompanyAddress>. Adresa - PSČ.
<OrgIdentNumber> Subelement <CompanyAddress>. IČO vlastnej firmy.
<VATIdentNumber> Subelement <CompanyAddress>. IČ DPH vlastnej firmy.
<Rows> Riadky príkazu (Subelement elementu <ABRA-GX-PaymentOrder>) - obsahuje toľko subelementov <Row>, koľko je riadkov príkazu.
<Row> Jeden riadok príkazu (Subelement elementu <Rows>). Obsahuje nasledujúce elementy:
<Position> Subelement <Row>. Pozícia
<DueDate> Subelement <Row>. Dátum splatnosti
<Description> Subelement <Row>. Popis (AV - správa)
<Amount> Subelement <Row>. Suma v mene príkazu (desatinný oddeľovač je "." (bodka))
<CurrencyCode> Subelement <Row>. ISO kód meny
<CountryCode> Subelement <Row>. ISO kód krajiny
<ForeignIssue> Subelement <Row>. Spôsob platby dodatočných poplatkov transakcie ("0"... OUR, "1"... BEN,"2"... SHA )
<Urgent> Subelement <Row>. Urgentnosť platby ("0"... STD, "1"... URG)
<VarSymbol> Subelement <Row>. Variabilný symbol
<ConstSymbolCode> Subelement <Row>. Konštantný symbol
<SpecSymbol> Subelement <Row>. Špecifický symbol
<TargetBankAccount> Subelement <Row>. Číslo protiúčtu
<TargetBankName> Subelement <Row>. Názov banky protiúčtu
<TargetBankStreet> Subelement <Row>. Ulica banky protiúčtu
<TargetBankCity> Subelement <Row>. Mesto banky protiúčtu
<TargetBankPostCode> Subelement <Row>. PSČ banky protiúčtu
<TargetBankCountry> Subelement <Row>. Kód krajiny banky protiúčtu
<TargetBankCountryCode> Subelement <Row>. Kód krajiny banky protiúčtu
<TargetCompany> Subelement <Row>. Údaje o protistrane. Obsahuje nasledujúcich 5 elementov.
<Name> Subelement <TargetCompany>. Meno firmy
<Street> Subelement <TargetCompany>. Adresa - Ulica.
<City> Subelement <TargetCompany>. Adresa - Mesto.
<PostCode> Subelement <TargetCompany>. Adresa - PSČ
<Country> Subelement <TargetCompany>. Adresa - Kód krajiny
<CountryName> Subelement <TargetCompany>. Adresa - Meno krajiny
<CountryNumCode> Subelement <TargetCompany>. Adresa - Trojmiestny číselný kód daného štátu podľa ISO3166.
<CurrencyBankCode> Subelement <Row>. Číselný bankový kód meny.
<SwiftCode> Subelement <Row>. Swift kód.
<PDocumentsDisplayNames> Subelement <Row>. Ak riadok platí viac ako jeden doklad, je tu zoznam platených dokladov.
<SEPAPayment> Subelement <Row>. Príznak o zahraničnej platbe s príznakom SEPA. SEPA platby sú v systéme ABRA Gen riešené pomocou definovateľných položiek dohodnutého mena SEPAPayment vytvorených k riadku plat. príkazu. Ak taká položka existuje a je naplnená pomocou užívateľského formulára na platobnom príkaze, ovládač na ňu reaguje a vyexportuje ju. Ďalej viď realizácia platieb s príznakom 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).

Parametre tohto ovládača sú usporiadané do nasledujúcich záložiek:

Obsiahnuté záložky: Platobné príkazy Bankové výpisy

Platobné príkazy

Názov Doplňujúci popis
Cesta pre ukladanie vygenerovaného platobného príkazu Tu je potrebné zadať platné meno adresára vrátane disku a koncovej spätnej lomky. Adresár musí byť vytvorený.
Po exporte spustiť Po vlastnom exporte je možné spustiť externý program, napríklad program, ktorý rovno umožní vytvorený el. platobný príkaz odoslať do banky (zodpovedajúca stránka WWW). Vo volaní programu možno využívať parametre - viď popis pri funkcii Parametre.

Bankové výpisy

Názov Doplňujúci popis
Cesta k dátam bankového výpisu Tu je potrebné zadať platné meno adresára vrátane disku a koncovej spätnej lomky. Adresár musí byť vytvorený.
Pred importom spustiť Pred vlastným importom je možné spustiť ľubovolný externý program. Zadaný program sa spustí ešte pred vyhľadaním importných súborov. Túto vlastnosť je teda možné využiť na spustenie programu, ktorý sťahuje výpisy z banky.
Súbor výpisu po spracovaní

Nastavenie, čo sa má so súborom výpisu stať po spracovaní. Možnosti sú nasledujúce:

  • nevykonávať žiadnu akciu
  • presunúť súbor do inej zložky (v tom prípade je nutné ešte nastaviť cestu do tejto zložky, viď parameter Súbor výpisu presunúť do zložky)
  • zmazať
Súbor výpisu presunúť do zložky Zložka, do ktorej sa má súbor výpisu presunúť po spracovaní. Relevantné len v kombinácii s nastavením predchádzajúceho parametra na "Presunúť súbor do inej zložky".