V Tabidoo formulářích můžete mít potřebu, aby se vám obsah selectbox filtroval na základě položky, kterou jste vybrali v předchozí nabídce. Ve skriptech pro tuto situaci máme funkci filterForDropdown
.
Základní informace se dočtete v dokumentaci.
Filtrování můžete využít jak pro dropdown položky, tak pro připojené tabulky. Využití je široké a filtr může reagovat na různorodé události, které si naskriptujete.
Pro jednoduchou ukázku jsem opět připravil krátké video.
Nechce se vám vyplňovat všechny data o klientech? Stačí si udělat jednoduchou funkcionalitu. Tabidoo disponuje možností tvořit si vlastní tlačítka přímo ve formuláři. Využijeme tuto možnost a podle IČ si načteme údaje z databáze a předvyplníme ve svém CRM.
ARES je databáze ekonomický subjektů od finančního úřadu.
V Tabidoo si vytvoříme vlastní tlačítko a textovou položku do které zadáváme IČ firmy o které chceme načíst z databáze ARES údaje.
Ve skriptu si zavoláme scénář v aplikaci Make a předáme mu v parametrech requestu IČ.
const res = await doo.functions.request.post('https://hook.eu1.make.com/ggwglq9uf27r5hi1xb',
{'tin':doo.model.<[Company identification number (state)]>.value}
);
if(res.company){
doo.model.<[Company name (companyName)]>.setValue(res.company);
doo.model.<[Headquarters (firstContact)]>.setValue(res.place);
doo.model.<[Correspondence address (income)]>.setValue(res.address);
doo.model.<[Ulice (ulice)]>.setValue(res.street);
doo.model.<[Číslo popisné (cisloPopisne)]>.setValue(res.houseNumber);
doo.model.<[Číslo orientační (cisloOrientacni)]>.setValue(res.registryNumber);
doo.model.<[PSČ (PSC)]>.setValue(res.postcode);
}else{
doo.alert.showWarning('Nenalezeno','Hledané IČO: '+doo.model.<[Company identification number (state)]>.value +' nebylo nalezeno v databázi ARES');
}
Make je integrační platforma, která umožňuje si snadno propojovat ve scénářích aplikace a digitalizovat procesy.
Ve scénáři si zavoláme URL ARES a předáme IČ. Odpověď si sparsujeme do formátu JSON a vracíme zpět.
Shrnující video ukázka
Low-code platformy jako Tabidoo umožňují přidávat vlastní funkcionalitu pomocí skriptů, které jsou integrovány do prostředí aplikace.
V Tabidoo se ke skriptování používá populární jazyk JavaScript. Nemusíte být nutně programátor, ale před psaním skriptů je dobré si osvojit základní syntaxi jazyka a jeho konstrukce (proměnné, datové typy, podmínky, cykly). Internet je plný učebních materiálů. Mohu doporučit např. zahraniční portál online kurzů Udemy nebo český IT Network.
Na začátku je dobré si projít dokumentaci. V části věnované skriptům začneme s úvodem.
Skripty můžeme spouštět v několika částech aplikace. Ve formuláři (v jeho čtyřech stavech, u položek jako je tlačítko) můžeme jej využít také ve Workflow, kde si můžeme nadefinovat vlastní akce.
Pro napsání a otestování prvního skriptu potřebujeme prohlížeč s konzolí. To je vše.
Pro snadnější pochopení jsme připravili ukázku na našem novém YouTube kanálu.
Vytváříme aplikace na nových typech technologií (lowcode), které výrazně urychlují čas dodání a snižují náklady na tvorbu. Odpadá tak nekonečné programování toho samého.
Ucelené prostředí pro stavbu aplikace minimalizuje chybovost, má skvělou dostupnost ve více datacentrech, vysokou stabilitu a rychlost.
Touto snadnou cestou lze vytvořit většinu běžných aplikací, které spravují firemní data. Systém je flexibilní k úpravám a přívětivý k rozšiřování dalšími moduly.
Zajistíme Vaší firmě:
Aplikace stavíme na české platformě Tabidoo. Máte zajištěnou plnou lokalizaci aplikace v češtině včetně její podpory.
Pomocí API a integračních nástrojů můžete data zpřístupnit dalším aplikacím, které využíváte, a zefektivnit, případně automatizovat své procesy.
Na trhu je dostupná široká síť partnerů, včetně nás, kteří se o Vás postarají. Vyhnete se tak obavě před takzvaným vendor lock-in stavem. Jde o stav, kdy se zákazník stane závislým na produktu či službě dodavatele bez snadné možnosti přejít na jinou aplikaci nebo si vybrat jiného dodavatele dané služby.
Data jsou uložena v cloudovém úložišti. Zálohovat data můžete i na vlastní infrastrukturu a v případě kritické aplikace je dostupná varianta pro běh přímo na Vašich serverech (on-premise řešení).
Náš tým je připraven pro Vaši společnost zajistit kompletní servis od návrhu postupu tvorby až po správu dat a dlouhodobou uživatelskou i technickou podporu.
Příklady použití naleznete na našem webu v sekci Digitální firma.
REST API je oblíbený, jednoduchý a snadno čitelný druh API. Rozhraní zajišťuje funkci pro předávání dat s ostatními aplikacemi. REST je obecný mechanizmus, který dává sadu doporučení a omezení.
Různé druhy API mají prakticky všechny aplikace zejména webové. Dokonce některé nové webové technologie jsou na komunikaci stránky, kterou vidíme v prohlížeči, a dotazování na server s ohledem na naši aktivitu v aplikaci přímo založeny. Jak API funguje se lze i vizuálně podívat na tematická videa třeba na YouTube.
Co to api je:
a jak API funguje:
K REST API přistupujeme prostřednictvím protokolu HTTP/S a URL adres, které známe z přístupu k webovým stránkách prostřednictvím prohlížeče.
URL adresa může vypadat například https://api.freelo.cz/v1/projects/
Finální implementace a složení URL se drobně liší aplikace od aplikace. URL obsahuje v uvedeném příkladu adresu rozhraní https://api.freelo.cz/, verzi API v1/ a v neposlední řadě endpoint projects/, tedy místo, které žádáme o data.
URL adresa může obsahovat mnoho dalších informací. Pro ukázku další příklad https://api.freelo.cz/v1/work-reports?date_reported_range%5Bdate_from%5D=2021-02-01&date_reported_range%5Bdate_to%5D=2021-02-28 kdy za endpointem work-reports následuje znak ? který značí, že budou následovat další parametry, které se poté dají řetězit znakem &.
Znaky jako [] a další se kódují, aby vyhovovala standardům URL např. na [ = %5B a ] = %5D. Každá knihovna pracující s URL má ke kódování/dekódování nástroj. Případně lze využít online nástroje. Vyhledejte hesla URL encoder/decoder.
Zvolenou metodou, kterou URL prostřednictvím HTTP voláme deklarujeme, co od API chceme. Standardně jsou k dispozici základní čtyři metody, ale existuje jich více:
JSON se stal standardním formátem pro předávání dat v rámci API. Tímto formátem posíláme data, která chceme API předat a stejně tak takto data získáváme. Ukázka získaných dat z API.
{
"total": 4013,
"count": 100,
"page": 0,
"per_page": 100,
"data": {
"reports": [
{
"id": 2298977,
"date_add": "2022-04-07T08:36:27+02:00",
"date_reported": "2022-04-07T06:41:19+02:00",
"note": "fakturace",
"minutes": 116,
"cost": {
"amount": "0",
"currency": "CZK"
},
"task": {
"id": 4792264,
"name": "Fakturace"
},
"tasklist": {
"id": 509200,
"name": "Pravidelné úkoly"
},
"project": {
"id": 187549,
"name": "C- managment",
"labels": [
"connexa it"
]
},
"author": {
"id": 4914,
"fullname": "Tomáš Haubert"
},
Po odeslání dotazu nám API kromě odpovědi vrací i stavový kód, jak se s naším požadavkem popasoval. Nejraději vidíme stav 200 OK, to znamená, že požadavek proběhl v pořádku. Stavů je celá řada. Podrobný výpis naleznete třeba v článku na IT Network.
Kvalitně zdokumentované API je základem úspěchu jeho vhodné implementace. Existuje mnoho nástrojů, jak jej vhodně popsat. Jedním z nejlepších a nejrozšířenějších je původně český startup Apiary.io. Jak vypadá konkrétní dokumentace se můžete podívat třeba na aplikace Freelo.
Ve chvíli, kdy chceme začít s API pracovat, nejdříve potřebuje nějaký šikovný program pro jeho testování. Mně se odsvědčil Postman a na iPadu používám Rest – HTTP API Client.
Víme, k čemu API slouží, v dokumentaci jsme si našli endpointy, se kterými chceme pracovat, a máme nástroj pro práci. Pro otestování nástroje a práci lze pracovat s veřejnými API pro tyto účely. Někdy jsou i vtipné nebo se zajímavou tématikou třeba ze světa Star Wars. V praxi se budeme setkávat se zabezpečenými rozhraními. Možností, jak se autorizovat, je celá řada. Často se setkáme s variantou Basic, kdy se z našeho uživatelského jména a hesla vytvoří hash, který se pošle v hlavičce dotazu. Obvyklá je také varianta uživatelské jméno (email) a API klíč, který si vygenerujeme v uživatelském profilu aplikace ke které přistupujeme.
Ve videu si shrneme informace z článku a otestujeme API s reálnými daty.
Chceme se rozšiřovat a růst, zároveň víme o velkém množství lidí, kteří by rádi nastartovali své IT kariéry, ale je to pro ně často těžká vstupní brána a neví, kudy do ní vstoupit. Chceme jim v tom pomoci. Kurzů a výukových materiálu (různé kvality) je na internetu nepřeberné množství. Proto jsme se rozhodli nevynalézat kolo a nevěnovat se tvorbě vlastních materiálů, ale stejně jako propojujeme hotová řešení v oblasti aplikací, i zde vybíráme z již připravených materiálů.
Naše akademie je založena na samostudiu kombinovaném s mentoringem a poradenstvím. Pro oblast, na kterou se zaměřujeme, vybíráme a sestavujeme plán z komerčních kurzů a absolventům poskytujeme dlouhodobou podporu během studia. Podpora studenta zahrnuje:
Profík se srdcem na pravém místě
Ahoj, možná jsi to právě Ty. Nabídka dobrých peněz za programování a všechny možné benefity je samozřejmost. Že je práce za monitorem někdy stereotyp? To je pravda.
Proto nechceme jen kolegu, ale především kvalitního člověka, který umí pracovat v týmu, má spoustu nápadů, je odpovědný za svěřené úkoly.
Máme volné pozice:
Jsme startup a kromě byznysu podporujeme dobré věci.
Tak to jsme my, jestli se k nám chceš přidat, pošli životopis a motivační dopis a pojď s námi změnit svět 🙂 ...aspoň o kousek...
Zdeněk a Tomáš
Connexa IT s.r.o.
info@connexa.cz
Při tvorbě nového webu jsme dostali požadavek na převod všech příspěvků z původního webu na nový. K dispozici byl pouze jeden velký export kompletní databáze. Původní server již nefunguje a je potřeba data vytřídit, upravit a nahrát na nový web.
V první řadě bylo nutné data dostat z exportu do živé MySQL databáze, abychom s nimi mohli dále pracovat. Jelikož byl původní server a všechny jeho aplikace již celkem staršího data, bylo vhodné nainstalovat i databázi z podobných let. Využili jsme tedy a připravili Docker v předpokládané verzi pro spuštění databáze s možností importu přes příkazovou řádku. Kompletní databázi jsme naimportovali a následně protřídili, aby nám zůstala jen naše databáze.
Data nebyla v optimální formě. První věcí bylo dostat kódování z latin1 do UTF8.
K tomu se ovědčil následující SQL příkaz:
UPDATE copy_news SET obsah = CONVERT(CAST(CONVERT(obsah USING latin1) AS BINARY) USING utf8);
Také datum zveřejnění článku neodpovídalo potřebným kritériím, upravili jsme ho tedy na standardní databázový formát:
UPDATE copy_news SET datum = STR_TO_DATE(REPLACE(datum, ' ',''), '%d.%m.%Y');
A požadovaný výsledek se dostavil.
Články máme připraveny a nyní je potřebujeme dostat do nového webu. Web běží na redakčním systému WordPress. Máme několik možností, jak data hromadně do webu nahrát.
Zvolili jsem poslední variantu, protože data můžeme z MySQL např. přes aplikaci Adminer velice snadno exportovat do CSV formátu a pluginů pro import dat do WordPressu z CSV formátu je celá řada.
Zvolili jsme plugin WP Import Export Lite. Obsluha je velice jednoduchá a intuitivní. Stačí nahrát CSV soubor, namapovat, kam se mají jednotlivé sloupce nahrát (titulek, obsah, datum zveřejnění) a spustit import.
A to je vše. Data máme vložena na webu v požadovaném formátu.
Město postavilo nové sportoviště a potřebovalo vyřešit docházkový systém s předáváním klíčů a dohledem nad celý postupem.
Nesouhlasíme s válkou na Ukrajině. Odsuzujeme útok na svobodnou zemi, jejíž prezident (a ostatní obyvatelé Ukrajiny) dal jasně najevo, že nechtějí být nesvobodní a poklonkovat se lidem, kteří si chtějí podmanit nejlépe celý svět.
Nesmíme zapomínat na to, že ve válce umírají obyčejní lidé, ale rozkazy dávají generálové a státníci a že i v Rusku jsou lidé, kteří jsou zmanipulovaní a dezinformování a nebo se nemohou svobodně vyjádřit. Každý den musíme bojovat o svobodu, dnes vidíme, jak rychle se dá ztratit a jaká oběť je v sázce pro její získání zpět.
Přáli bychom všem, aby prozřeli a ukončili tuto nesmyslnou válku, kterou odnesou zase jen obyčejní lidé a to z obou stran.
Obdivujeme lidi, kteří se nevzdávají a bojují s neuvěřitelnou odvahou.
Vážíme si všech, kdo tak nezištně a s velkým nasazením poskytují humanitární pomoc.