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é použí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> | 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 použí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 použí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é použí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. Pokud není vyplněn, tak se naplní kódem země z agendy Firemné údaje. | |||
| <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 použí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 |
|---|
| 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. |
| 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:
|
| 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". |