Kontrola stavu systému
Pre zistenie kompletného stavu systému je vhodné overiť stav údajov na úložisku ako aj stav periférií. Všetky dostupné kontroly sú popísané v jednotlivých sekciách nižšie.
Pri každej kontrole je uvedený príklad na jej vykonanie pri použití knižnice a taktiež aj príklad pri komunikácii prostredníctvom HTTP WEB API.
Príklady použitia knižnice odkazujú na vlastnosti alebo metódy triedy Client.
1. Kompletný inicializačný balík
Aby bolo možné online pokladnicu (identifikovanú kódom on-line pokladnice) používať, musí byť do systému vložený tzv. inicializačný balík, ktorý pozostáva z dvojice identifikačných údajov (v systéme označované ako Identity
) a autentifikačných údajov (označované ako Certificate
).
Kompletnosť vloženia "inicializačného balíka" nie nutné explicitne kontrolovať, nakoľko všetky funkcie riešenia Portos eKasa, ktoré od prítomnosti tohto balíka závisia, preberajú kód on-line pokladnice (označovaný ako cashRegisterCode
) vo forme parametru, na základe ktorého je stav inicializačného balíka interne overovaný.
V prípade, ak by bolo potrebné z nadradenej aplikácie získavať všetky zaregistrované identifikačné alebo autentifikačné údaje, nasledujúce dva odstavce popisujú spôsob, ako ich zo systému Portos eKasa získať.
Získanie identifikačných údajov
GET {{server_address}}/api/v1/identities
Získanie autentifikačných údajov
GET {{server_address}}/api/v1/certificates
2. Blížiaca sa exspirácia certifikátu
Každý certifikát má obmedzenú platnosť, preto je vhodné kontrolovať aj dátum exspirácie certifikátu, na základe vlastnosti expirationDate
(dátum exspirácie), prípadne na základe vlastnosti isExpired
(indikácia, či je certifikát už exspirovaný).
Overenie existencie platného certifikátu
GET {[server_address}}/api/v1/certificates/valid/latest
Vzorový výstup s údajmi o certifikáte:
{
"alias": "88812345678900001",
"cashRegisterCode": "88812345678900001",
"issueDate": "2019-01-30T16:07:01+01:00",
"expirationDate": "2021-01-29T16:07:01+01:00",
"serialNumber": "2B0A",
"isExpired": false
}
Warning
Napriek tomu, že pole alias
obsahuje rovnakú hodnotu, ako pole cashRegisterCode
(kód on-line pokladnice), podľa vyjadrenia finančnej správy nie je certifikačnou autoritou zaručené, že bude zhoda týchto polí do budúcna dodržaná.
3. Overenie stavu úložiska
Každé dátové úložisko musí mať kapacitu postačujúcu na uloženie najmenej 300 000 dokladov. Blížiace sa zaplnenie pamäťového média je však vhodné priebežne používateľovi indikovať.
Získanie informácie o úložisku:
GET {{server_address}}/api/v1/storage/info
Vzorový výstup informácie o úložisku:
{
"product": {
"vendorName": "Nine Digit, s.r.o.", // dodávateľ úložiska
"name": "Portos eKasa CHDÚ", // názov úložiska
"version": "v1.0", // verzia úložiska
"serialNumber": "3A21D0E474C0" // sériové číslo úložiska
},
"capacity": {
"total": "8589934592", // celková kapacita úložiska uvedená v bajtoch
"used": "2173430" // použitá kapacita úložiska uvedená v bajtoch
},
"isReadOnly": true // indikácia, či je dátové úložisko nevratne prepnuté do režimu iba na čítanie
}
Vlastnosť capacity
obsahuje informáciu o celkovej (total
) a použitej (used
) kapacite pamäťového média, vyjadrenej v byte-och.
Podielom týchto dvoch hodnôt je možné percentuálne vyčísliť obsadenosť úložiska a od určitého bodu (napríklad 80% zaplnenosť) indikovať používateľovi upozornenie o blížiacom sa zaplnení úložiska.
Vlastnosť isReadOnly
obsahuje indikáciu o tom, či je dátové úložisko nevratne prepnuté do režimu iba na čítanie. Toto môže byť použité, ak bolo úložisko úmyselne vyradené z prevádzky. Read-only režim nebráni úložisku pri vyčítavaní údajov.
4. Kontrola stavu tlačiarne
Získanie informácie o stave tlačiarne:
GET {{server_address}}/api/v1/printers/status
Príklad stavu tlačiarne:
{
"state": "Ready"
}
Stav tlačiarne nadobúda niektorú z nasledovných hodnôt:
Error
: Tlačiareň nie je pripravená (zaneprázdnená alebo v chybovom stave).Ready
: Tlačiareň je pripravená.Unknown
: Neznámy stav.
V závislosti od typu úložiska je reakcia aplikácia na chybový stav tlačiarne rozdielna.
Model úložiska | Správanie na nepripravenosť tlačiarne |
---|---|
CHDU-SK |
Chybový stav tlačiarne (napríklad ak ju obsuha nezapla do elektrickej siete) neovplyvňuje činnosť aplikácie - po zapnutí sa údaje z úložiska dodatočne (v rámci veľkosti bufferu) zašlú do tlačiarne. Ak sa však vnútorný buffer úložiska zaplní (odhadom cca 10-12 účteniek), úložisko sa zablokuje a pre jeho ďalšiu činnosť je potrebné ho vypnúť a zapnúť. |
CHDU Lite |
Pri chybovom stave tlačiarne sa pokus o registráciu dokladu skončí chybou. |
5. Kontrola stavu internetového spojenia so systémom eKasa
Získanie informácie o stave internetového spojenia so systémom eKasa:
GET {{server_address}}/api/v1/connectivity/status
Príklad stavu internetového pripojenia:
{
"validFrom": "2019-04-01T14:13:25Z",
"validTo": "2019-04-01T14:13:25Z",
"state": "Unknown"
}
Stav internetového pripojenia (vlastnosť state
) nadobúda niektorú z nasledovných hodnôt:
Up
: Internetové spojenie je dostupné.Down
: Internetové spojenie nie je dostupné.Unknown
: Neznámy stav.
Riešenie Portos eKasa plne automatizovane pozoruje aktuálny stav spojenia so serverom finančnej správy a v prípade, že sa vo fronte neodoslaných správ nachádzajú nejaké dátové správy (napríklad doklady vyhotovené v offline režime), pokúsi sa ich dodatočne odoslať ihneď, ako detekuje zmenu stavu internetového pripojenia.
6. Kontrola obsahu fronty neodoslaných správ
Podnikateľ je povinný zabezpečiť, aby sa všetky dátové správy (doklady alebo registrácie polohy pokladnice) odoslali do systému eKasa do 48 hodín.
Z tohto titulu je vhodné sledovať, či sa v systéme nenachádzajú nejaké dátové správy, ktoré sa aplikácii nepodarilo odoslať.
6.1 Počet neodoslaných dátových správ pre konkrétny kód pokladnice (odporúčaný postup)
HEAD /api/v1/queue/items/unprocessed?cashRegisterCode={kód pokladnice}
6.2 počet neodoslaných dátových správ pre všetky kódy pokladníc
Alternatívnym, časovo náročnejším, spôsobom je možné získať počet neodoslaných dátových správ pre všetky kódy pokladníc nasledovne:
HEAD /api/v1/requests/receipts?status=unprocessed