Uživatelské tlačítko dává vývojářům i uživatelům možnost definovat v ABRA Flexi vlastní akci ve formě tlačítka. Po jeho stisku se zobrazí panel v aplikaci nebo se otevře webový prohlížeč — v obou případech s libovolnou webovou stránkou.
Možnosti použití
Uživatelským tlačítkem lze zobrazit relevantní část intranetového informačního systému, vyhledat zboží ve srovnávači cen, otevřít příslušnou část webového rozhraní ABRA Flexi nebo vyvolat akci přes REST API. Do adresy webové stránky je možné dynamicky vkládat parametry, například IČO právě upravované firmy nebo EAN zobrazeného zboží.
Způsob použití
Parametry tlačítka — text, cílové URL, umístění v aplikaci — se zapíší do jeho definice, souboru ve formátu XML. Vytvořená definice se do ABRA Flexi načte importem z XML a při opětovném připojení k firmě je tlačítko součástí uživatelského rozhraní, ať už klientské aplikace, nebo webového rozhraní.
Tlačítka jsou uložená v evidenci custom-button, takže se dají i běžně číst přes API:
GET https://demo.flexibee.eu/c/demo/custom-button.json?detail=full
Definice uživatelského tlačítka
Každý prvek může být v definici jednoho tlačítka uveden nanejvýš jednou (výjimkou je prvek id). Soubor může obsahovat definic více; při vícenásobném uvedení téhož tlačítka se jednotlivé definice považují za jeho aktualizaci a fakticky se projeví ta poslední. Nevyhovující definice bude odmítnuta už při importu.
Prvek | Povinný | Význam |
| ano | Identifikátor tlačítka. |
| ano | Adresa, která se po stisku otevře. |
| ano | Text zobrazený na tlačítku. |
| ano | Detailní popis zobrazovaný v bublině. |
| ano | Evidence, ve které se tlačítko zobrazuje. |
| ano | Umístění na přehledu nebo na kartě záznamu. |
| ne | Prohlížeč, ve kterém se URL otevře. |
id
Identifikátory záznamu slouží pro přidělení kódu při vytváření a pro přesné určení tlačítka při jeho pozdější aktualizaci či mazání. Použít lze:
Kód (zkratku) — uživatelské označení, prefix
code:Externí identifikátor — identifikátor z externí aplikace, prefix
ext:Identifikátor ABRA Flexi — číselný neměnný identifikátor přidělovaný aplikací, bez prefixu
Při vytváření tlačítka musí být prvek uveden s kódem.
url
Určuje adresu webové stránky či síťového zdroje, která se po stisku tlačítka otevře. Uvádějte ji v plném, absolutním tvaru — se schématem a doménovou adresou serveru, například https://www.flexibee.eu/.
⚠️ URL zadávejte v <![CDATA[ … ]]>, aby přítomnost znaku & nezpůsobila nevalidní XML.
🚨 Schéma file pro přístup k lokálně uloženým souborům podporováno není — definice s file:// se při importu odmítne chybou restrictedProtocol.
Při konstrukci URL je možné uvést proměnné, které za běhu aplikace vyhodnotí FreeMarker a zajistí předání hodnot z aplikace. Například zápis ${object.ic} vrátí IČO partnera v adresáři. Řetězec object je v názvu proměnných povinný — odkazuje se jím na aktuální záznam zobrazené evidence. Seznam dostupných atributů jednotlivých evidencí najdete ve webovém rozhraní na adresách jako /flexi/{firma}/adresar/properties.
Proměnná | Hodnota |
| Aktuální záznam — jeho vlastnosti se uvádějí za tečkou, například |
| Seznam ID vybraných záznamů oddělených čárkou. U velkého počtu záznamů se nahrazuje parametrem |
| Aktuálně přihlášený uživatel; dostupné vlastnosti viz |
| Úplná adresa objektu, na kterém bylo tlačítko vyvoláno — například |
| Adresa API rozhraní firmy — například |
| Adresa webového rozhraní firmy — například |
| Jméno evidence, na které je tlačítko umístěno. |
| Autentizační token k aktuálnímu sezení uživatele. Po dobu platnosti sezení jím lze autentizovat dotazy — viz Autentizace. |
| Číslo zákazníka odpovídající licenci. |
| Identifikátor licence. |
| Jazyk, ve kterém aplikace běží — |
⚠️ Proměnné object a objectIds se vzájemně vylučují.
evidence
Určuje evidenci, popřípadě konkrétní vazbu (relaci) evidence, pro kterou má být tlačítko zobrazováno — například adresar pro obchodní partnery nebo faktura-vydana pro vydané faktury. Ve variantě pro vazby pak například faktura-vydana-polozka pro položky vydané faktury či majetek-zapujcka pro zápůjčky v evidenci majetku.
Pro evidence použijte řetězec, který se objevuje v URL webového rozhraní. Seznam všech evidencí vrátí:
GET https://demo.flexibee.eu/c/demo/evidence-list.json
Pro vazby evidencí použijte název evidence doplněný o pomlčku a řetězec vazby, který zjistíte na přehledu vazeb dané evidence:
GET https://demo.flexibee.eu/c/demo/cenik/relations.json
Neexistující evidence se při importu odmítne chybou validace.neplatnyCiselnik.
location
Určuje, zda se tlačítko zobrazí na přehledu záznamů, nebo na kartě konkrétního záznamu:
Hodnota | Umístění |
| Přehled záznamů. |
| Karta konkrétního záznamu. |
Má-li být tlačítko dostupné na přehledu záznamů i na kartě konkrétního záznamu, je nezbytné připravit dvě definice, které se budou lišit hodnotou location.
title
Text zobrazený na tlačítku.
description
Detailní popis tlačítka zobrazovaný v bublině. Je povinný — bez něj import skončí chybou validace.notNull.
browser
Určuje prohlížeč, ve kterém se URL otevře. Interní prohlížeč se zobrazí rychleji, ale nemusí obsahovat uživatelské přizpůsobení a data — hesla, cookies, data formulářů, navštívené odkazy. Externí prohlížeč je prostředím, na které je uživatel zvyklý.
Hodnota | Prohlížeč |
| Interní prohlížeč; není-li dostupný, otevře se externí. Výchozí hodnota. |
| Externí prohlížeč. |
Ve webovém rozhraní je nastavení prvku browser z podstaty ignorováno. Neplatná hodnota u browser i location se odmítne chybou validace.notAvailableValue.
Příklad vytvoření
<?xml version="1.0"?>
<winstrom version="1.0">
<custom-button>
<id>code:JUSTICECZ</id>
<url><![CDATA[https://or.justice.cz/ias/ui/rejstrik-$firma?ico=${object.ic}&jenPlatne=VSECHNY]]></url>
<title>Obch. rejstřík</title>
<description>Zobraz záznam firmy v obchodním rejstříku justice.cz</description>
<evidence>adresar</evidence>
<location>detail</location>
<browser>desktop</browser>
</custom-button>
</winstrom>
Příklad aktualizace tlačítka
Uvedete-li v definici jednoznačnou identifikaci existujícího tlačítka, můžete jej aktualizovat. ABRA Flexi umožňuje částečné aktualizace záznamů, takže při změně adresy obchodního rejstříku stačí tlačítko identifikovat a uvést novou hodnotu URL:
<?xml version="1.0"?>
<winstrom version="1.0">
<custom-button>
<id>code:JUSTICECZ</id>
<url><![CDATA[https://or.justice.cz/ias/ui/rejstrik-$firma?ico=${object.ic}&jenPlatne=VSECHNY&polozek=500]]></url>
</custom-button>
</winstrom>
Příklad smazání tlačítka
Ke smazání existujícího tlačítka slouží atribut action — více o jeho použití v článku Provádění akcí:
<?xml version="1.0"?>
<winstrom version="1.0">
<custom-button action="delete">
<id>code:JUSTICECZ</id>
</custom-button>
</winstrom>
Dlouhé URL a parametr data-url
Při velkém počtu vybraných záznamů by URL s vyjmenovanými ID mohla překročit povolenou délku. V takovém případě ABRA Flexi seznam ID uloží do dočasného úložiště a do výsledné URL místo proměnné ${objectIds} vloží parametr data-url, který odkazuje na endpoint, odkud lze úplný seznam ID stáhnout.
Pro šablonu http://example.com/action?ids=${objectIds} tak může výsledná adresa vypadat takto:
http://example.com/action?ids=data-url&data-url=https%3A%2F%2Finstance.flexibee.eu%2Fc%2Fmojefirma%2Fcustom-button%2Fdata%3Fid%3D2f1c…
Stažení seznamu ID
Dočasně uložený seznam ID se stahuje metodou GET na adresu z parametru data-url:
GET https://demo.flexibee.eu/c/demo/custom-button/data?id=2f1c8b7e-1a2b-4c3d-9e0f-abcdef012345
Odpověď má Content-Type: application/json;charset=utf-8:
{
"objectIds": [101, 102, 103, 104, 105]
}
Záznam je dostupný pouze uživateli, který jej vytvořil, a jen po dobu své platnosti. Po expiraci — nebo pro jiného uživatele — vrací endpoint 404 s kódem adresaNeplatna. Vynechaný parametr id skončí chybou 400 missing_param_exception.
Konfigurace dočasného úložiště
Chování dočasného úložiště se řídí volbami v konfiguraci serveru flexibee-server.xml (kde jej najít):
Volba | Význam | Výchozí |
| Typ úložiště. |
|
| Adresář na serveru, do kterého se data ukládají při typu | — |
| Doba platnosti dočasného záznamu v minutách. |
|
| Maximální délka URL, při jejímž překročení se použije |
|
