Získané schopnosti:
osvojenie pojmov URL, port, doména, inštancia
znalosť štruktúry adresy ABRA Flexi
základné parametre URL
Máme pripravené testovacie prostredie z prvého tréningu a teraz sa môžeme pustiť do stavby URL adresy, na ktorej nájdeme potrebné zdroje. URL je anglická skratka „Uniform Resource Locator”, v slovenčine teda jednotná adresa zdroja. Znamená jednoznačnú adresu k požadovanému zdroju, teda daná URL adresa presne špecifikuje, kde sa daný zdroj informácií nachádza.
Niekoľko príkladov sme si už ukázali v predchádzajúcom tréningu. Teraz si URL rozoberieme trochu podrobnejšie tak, ako ju musí poznať aj Ninja učeň o polnoci. URL Flexi má vždy pevnú štruktúru, ktorá je nasledovná:
{server}/c/{identifikátor firmy}/{kód evidence}/{identifikátor záznamu}.{formát výstupu}
Teraz si popíšeme jednotlivé časti URL adresy:
{server} - tu vystupuje server, na ktorom je umiestnené volané Flexi. Server je možné volať formou IP adresy či doménového mena. Príklady hovoria za všetko:
1. cloudová adresa servera:
https://developer.flexibee.eu:5434/ (alebo obdobne vase-firma.flexibee.eu)
v tomto prípade je Flexi na našich serveroch, na doméne flexibee.eu, inštancia je určená subdoménou, má názov developer
nie je potrebné uvádzať nič ďalšie, dôjde k presmerovaniu do Flexi
2. adresa vlastného servera:
http://server.cz:434/ (alebo tiež http://109.240.60.105:123/)
zvolená IP u vás v sieti či doménový názov server (server.cz) a port ľubovoľne pridelený vaším IT správcom
3. adresa lokálnej inštalácie (serverom je dané PC):
http://127.0.0.1:5434/ (alebo totožné http://localhost:5434/)
táto adresa je vždy na vašom osobnom počítači rovnaká
A čo to /c/ v adrese? Toto je v štruktúre vždy nutné uviesť, keďže uvádza umiestnenie dát firiem
{identifikátor firmy} - jednoznačne identifikuje danú účtovanú firmu v rámci inštancie. Ako ho zistíme? Identifikátor firmy je vždy možné nájsť v adresnom riadku prehliadača po prístupe do firmy. My máme pre naše tréningy identifikátor firmy - ninja
Skús to overiť, učeník, prihlás sa na https://developer.flexibee.eu:5434/ svojím loginom
{kód evidencie} - jedná sa o jednoznačný identifikátor evidencie, s ktorou sa chystáme pracovať. Napríklad faktúry vydané majú kód faktura-vydana. Dôležitý je zoznam všetkých možných evidencií tu: https://developer.flexibee.eu/c/ninja/evidence-list. Nás zaujíma strojový názov, čo je kód evidencie.
{identifikátor záznamu} - teraz sa už dostávame k identifikácii konkrétneho záznamu v evidencii, identifikátor zistíme v aplikácii v stĺpci ID. Jedná sa o unikátne číslo záznamu v danej evidencii. Pod rovnakým ID nemôžu byť v evidencii dva záznamy.
{formát výstupu} - určuje, v akej forme dáta získame (XML, JSON, a ďalšie). Pokiaľ však nie je uvedený, pri bežnom zadaní do webového prehliadača budeme presmerovaní na HTML, teda webové rozhranie Flexi.
To nemôže byť všetko. Vyhľadávanie faktúr podľa ID?
Ďalšie možnosti, ako získavať dáta
URL adresu je samozrejme možné ešte rozšíriť
{server}/c/{identifikátor firmy}/{kód evidence}/({filtry}).{formát výstupu}?{parametry}
{filtre} - zaisťujú nám, aby sme mohli dáta filtrovať a získavať pomocou iných podmienok, než na základe ID záznamu. Napríklad filter (varSym =’201800123’) zaistí získanie záznamu na základe variabilného symbolu. Viac si ukážeme v tréningu filtrovania.
{parametre} - parametre nám dovoľujú dáta ďalej triediť, radiť či vykonávať iné akcie. Medzi najzákladnejšie parametre patrí detail, ktorý určuje, koľko informácií o danom zázname chceme získať. Viac si ukážeme v tréningu.
Teórie bolo dosť, teraz sa vrhneme na tréning!
Úroveň: Učeň
Na úrovni učeň si vyskúšame vytvoriť niekoľko jednoduchých adries, pre získanie užitočných dát. V štruktúre URL adresy existujú ešte ďalšie možnosti. Niektoré z nich si teraz ukážeme.
Jednoduchou užitočnou URL môže byť adresa poskytujúca sumácie v evidencii. K tomu slúži premenná $sum. Napríklad volaním adresy https://developer.flexibee.eu/c/ninja/faktura-prijata/$sum, získame prehľad sumácií v evidencii prijatých faktúr.
Už vieme, čo jednotlivé časti adresy znamenajú. Vyskúšaj si vlastné volanie, učeník.
Na úrovni učeň si ešte ukážeme jednoduchý filter. Vyskúšame vyfiltrovať pomocou niektorého z dostupných polí na faktúre. Bystrý učeň si iste v predchádzajúcej teoretickej časti všimol filtrovanie cez políčko „varSym”. Kde zistíme ďalšie polia? K tomu slúži „/properties” Na adrese https://developer.flexibee.eu/c/ninja/cenik/properties, zistíme všetky dostupné polia v danej evidencii.
Úloha na záver pre učeníka: Vyfiltrovať všetky objednávky od zákazníkov za tento rok.
Malá nápoveda: Dátum je nutné zadať vo formáte YYYY-MM-DD alebo je možné pre dnešný deň použiť kúzelnú funkciu now().
Úroveň: Bojovník
Ako API Bojovník musíme postúpiť ešte hlbšie do možností API Flexi. Ukážeme si ďalšie špeciálne adresy.
Prvou z nich je adresa https://developer.flexibee.eu/c/ninja/skladovy-pohyb/reports.xml. Na tejto adrese získame zoznam všetkých možných tlačových zostáv pre danú evidenciu. Ako teda cez API stiahnuť napríklad dodací list? K tomu slúži parameter „report-name”, ktorému odovzdáme „reportId” z predchádzajúcej adresy.
Príkladom prezradíme všetko, bojovník to hravo zvládne sám.
Dokážeš získať PDF dodacieho listu skladového pohybu, bojovníku?
Nápoveda: na konci URL uveď ?report-name={správne ID reportu pre dodací list}
Niektoré evidencie majú vo väzbe ďalšie evidencie. Príkladom môže byť Cenník, ktorý má k sebe naviazané ďalšie evidencie. Najjednoduchšia cesta, ako zistiť naviazané evidencie, je pomocou adresy https://developer.flexibee.eu/c/ninja/cenik/relations.xml. Pre uplatnenie v praxi využijeme URL väzby v parametri „?relations={URL väzby, URL druhej väzby, ...}”.
Bojovník si už iste predstaví využitie, napríklad, ako k cenníku zobraziť jeho skladové karty?
Otázkou zostáva, čo ak budem chcieť zobraziť informácie z evidencie, ktorá nie je priamo vo väzbe ako celok, ale iba sa na ňu odkazujem niektorým z polí? Znovu sa pozrime na adresu https://developer.flexibee.eu/c/ninja/faktura-vydana/properties - jedná sa o polia, ktoré sú typu premennej „relation”. K získaniu informácií o zázname vo väzbe, pri volaní hlavnej evidencie, slúži parameter ?includes={cesta k záznamu, ďalšia cesta záznamu, ...}.
Ukážeme si príklad pre lepšie pochopenie. Chceme získať k faktúram bližšie informácie o odberateľovi. Využijeme nasledujúcu adresu:
Vyskúšajte si ďalšie príklady, čaká nás finálna úroveň tohto tréningu.
Úroveň: Ninja
API Ninja je schopný cez API riadiť dáta a sledovať chod Flexi. Vie sa pozrieť aj do najtemnejších zákutí prostredia Flexi. K tomu slúži niekoľko adries. Od ostatných adries sa líšia tým, že sa neodkazujú na konkrétnu firmu /c/{identifikátor firmy}, ale na celú inštanciu.
Prvou z nich je adresa https://developer.flexibee.eu/status.xml, kde získate informácie o licencovaní, verzii a ďalšie servisné údaje o operačnom systéme a databáze.
Pre zvedavých prieskumníkov, tieto údaje nie je možné požiadavkou na API prepísať podľa ľubovôle :-)
Pokiaľ vás ako administrátora Flexi zaujímajú prihlásení používatelia, nájdete ich na adrese https://developer.flexibee.eu/status/session.xml. Celkový zoznam všetkých používateľov s prístupmi do firiem nájdete na adrese https://developer.flexibee.eu/a.xml
Posledná adresa, ktorú si v tomto tréningu ukážeme, je zoznam firiem. Zoznam ďalej obsahuje nielen potrebné ID firmy, ale aj informáciu o stave firmy: https://developer.flexibee.eu/c.xml
Tušil si o týchto zákutiach Flexi, Ninja?
Štruktúru a tvorbu URL adresy sme si prešli vrátane jednoduchých príkladov. Teraz sme pripravení na ostrý tréning o URL parametroch a filtráciách, kde sa zameriame viac na príklady bez nudnej teórie.









