Preskoči na glavno vsebino

Používateľské e-mailové šablóny v REST API

Vytváranie a načítanie používateľských e-mailových šablón v REST API

Avtor: Petr Pech

Cez REST API — rovnako ako cez webové rozhranie — je možné vytvárať a čítať mailové šablóny na posielanie dokladov a na aktualizáciu miezd. Šablóny sú uložené v evidencii sablona-mail.

⚠️ Táto evidencia je dostupná iba pre licenciu Premium.


Čítanie šablóny

Šablónu získate štandardným dotazom na evidenciu; použiť je možné aj úrovne detailu:

GET https://demo.flexibee.eu/c/demo/sablona-mail/{id}.json?detail=full


Vytvorenie šablóny

Na vytvorenie šablóny pošlite XML alebo JSON na adresu evidencie:

PUT https://demo.flexibee.eu/c/demo/sablona-mail.xml

Vlastnosť

Povinná

Význam

kod

áno

Skratka šablóny. Musí byť jedinečná — inak import skončí chybou ciselnikDuplicitniZkratka.

nazev

áno

Názov šablóny.

textSablona

áno

Samotný text šablóny. Bez neho import skončí chybou validace.notNull.

beanKeys

áno

Miesta použitia — určuje, pri ktorých dokladoch je šablóna ponúkaná, napríklad cz.winstrom.vo.dok.DoklFak$$FAV pre vydané faktúry. Prázdna hodnota skončí chybou beanKeyEmpty.

subject

nie

Predmet e-mailu.

defaultFrom

nie

Odosielateľ.

popis, poznam

nie

Popis a poznámka.

nazevA, nazevB, nazevC

nie

Názov v ďalších jazykoch (SK, EN, RO).

ℹ️ Existujúcu šablónu aktualizujete tak, že ju identifikujete elementom <id>code:ZKRATKA</id>. Ak namiesto toho pošlete znovu iba vlastnosť kod, ABRA Flexi sa pokúsi založiť nový záznam a narazí na duplicitnú skratku.


Pripojenie šablóny k typu dokladu

Ak chcete šablónu pripojiť k typu dokladu — tu konkrétne k typu faktúry vydanej — pošlite na príslušnú evidenciu napríklad takéto XML. V elemente sablonaMail sa uvádza identifikátor šablóny, ktorú chcete priradiť:

<?xml version="1.0"?>
<winstrom version="1.0">
<typ-faktury-vydane>
<kod>{kod}</kod>
<nazev>FAV se šablonou</nazev>
<modul>FAV</modul>
<radaPrijem>code:FAKTURA-STANDARD</radaPrijem>
<typDoklK>typDokladu.faktura</typDoklK>
<sablonaMail>{identifikátor šablony}</sablonaMail>
<poznam>Šablona pro faktury vydané</poznam>
</typ-faktury-vydane>
</winstrom>


Príklad šablóny a Freemarker premenné

Používa sa šablónovací systém FreeMarker. V šablónach je možné použiť tieto premenné:

Premenná

Hodnota

${application}

Názov aplikácie.

${generatedBy}

Lokalizovaná fráza „Vygenerované ekonomickým systémom".

${user}

Objekt používateľa, s ktorým je možné ďalej pracovať — napríklad ${user.mobil}.

${company}

Nastavenie firmy — napríklad ${company.dic}.

${uzivatelJmeno}

Krstné meno prihláseného používateľa.

${uzivatelPrijmeni}

Priezvisko prihláseného používateľa.

${titulJmenoPrijmeni}

Celé meno vrátane dosiahnutých titulov.

${nazevFirmy}

Názov firmy.

${object}

Všeobecný prístup na odovzdávaný objekt.

${doklad}

Doklad určený na odoslanie — napríklad ${doklad.kod} alebo ${doklad.sumCelkem}.

Aké vlastnosti má konkrétny doklad k dispozícii, zistíte z prehľadu vlastností danej evidencie:

GET https://demo.flexibee.eu/c/demo/faktura-vydana/properties.json

💡 Pri prístupe na vlastnosti objektov sa na koniec zápisu píše výkričník — ${doklad.firma!} — ako kontrola prázdnej hodnoty. Bez neho šablóna pri nevyplnených vlastnostiach zlyhá.

⚠️ Na dodržanie odsekov použite HTML element <p>. Bez neho dôjde k zlúčeniu textu do jedného odseku.


Príklad použitia týchto premenných v šablóne

Dobrý den, zasílám Vám doklad ${doklad}, jehož interní číslo je ${doklad.kod}. Jmenuji se ${uzivatelJmeno} ${uzivatelPrijmeni}, včetně mého titulu ${titulJmenoPrijmeni}, pracuji pro ${nazevFirmy}. Mé telefonní číslo je ${user.mobil}, DIČ firmy je ${company.dic}.
Dobrý den, uživatel ${user} Vám zasílá ${doklad.nazev}. S pozdravem ${titulJmenoPrijmeni}, zasláno z aplikace ${application}.
Dobrý den, společnost ${nazevFirmy} Vám fakturuje ${doklad.sumCelkem} za své služby. S pozdravem ${titulJmenoPrijmeni}, zasláno z aplikace ${application}.


Kontrola šablóny pri uložení

Pred uložením šablóny program skontroluje, či neobsahuje nepovolené výrazy — šablónu sa priamo pokúsi preložiť a vyhodnotiť. Nevyhovujúca šablóna sa neuloží a chyba sa vráti pri vlastnosti textSablona:

Čo v šablóne stojí

Ako reaguje ABRA Flexi

Neuzavretý alebo inak chybný zápis FreeMarkeru

Odmietne s hlásením freemarker.core.ParseException.

Vlastnosť, ktorú objekt nemá — napríklad ${object.class}

Odmietne s hlásením No such bean property a výpisom zásobníka šablóny.

Vytváranie inštancií tried konštrukciou ?new()

Odmietne s hlásením, že daná trieda nie je povolená.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?