Přeskočit na hlavní obsah

Uživatelské emailové šablony v REST API

Tvorba a načtení uživatelských emailových šablon v REST API

Autor: Petr Pech

Přes REST API — stejně jako přes webové rozhraní — lze vytvářet a číst mailové šablony pro posílání dokladů a pro aktualizaci mezd. Šablony jsou uložené v evidenci sablona-mail.

⚠️ Tato evidence je dostupná pouze pro licenci Premium.


Čtení šablony

Šablonu získáte standardním dotazem na evidenci; použít lze i úrovně detailu:

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


Vytvoření šablony

Pro vytvoření šablony pošlete XML nebo JSON na adresu evidence:

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

Vlastnost

Povinná

Význam

kod

ano

Zkratka šablony. Musí být jedinečná — jinak import skončí chybou ciselnikDuplicitniZkratka.

nazev

ano

Název šablony.

textSablona

ano

Samotný text šablony. Bez něj import skončí chybou validace.notNull.

beanKeys

ano

Místa použití — určuje, u kterých dokladů je šablona nabízena, například cz.winstrom.vo.dok.DoklFak$$FAV pro vydané faktury. Prázdná hodnota skončí chybou beanKeyEmpty.

subject

ne

Předmět e-mailu.

defaultFrom

ne

Odesílatel.

popis, poznam

ne

Popis a poznámka.

nazevA, nazevB, nazevC

ne

Název v dalších jazycích (SK, EN, RO).

ℹ️ Existující šablonu aktualizujete tak, že ji identifikujete elementem <id>code:ZKRATKA</id>. Pošlete-li místo toho znovu jen vlastnost kod, ABRA Flexi se pokusí založit nový záznam a narazí na duplicitní zkratku.


Připojení šablony k typu dokladu

Chcete-li šablonu připojit k typu dokladu — zde konkrétně k typu faktury vydané — pošlete na příslušnou evidenci například takovéto XML. V elementu sablonaMail se uvádí identifikátor šablony, kterou chcete přiřadit:

<?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>


Příklad šablony a Freemarker proměnné

Využívá se šablonovací systém FreeMarker. V šablonách je možné použít tyto proměnné:

Proměnná

Hodnota

${application}

Název aplikace.

${generatedBy}

Lokalizovaná fráze „Vygenerováno ekonomickým systémem".

${user}

Objekt uživatele, se kterým lze dále pracovat — například ${user.mobil}.

${company}

Nastavení firmy — například ${company.dic}.

${uzivatelJmeno}

Křestní jméno přihlášeného uživatele.

${uzivatelPrijmeni}

Příjmení přihlášeného uživatele.

${titulJmenoPrijmeni}

Celé jméno včetně dosažených titulů.

${nazevFirmy}

Název firmy.

${object}

Obecný přístup na předávaný objekt.

${doklad}

Doklad určený k odeslání — například ${doklad.kod} nebo ${doklad.sumCelkem}.

Které vlastnosti má konkrétní doklad k dispozici, zjistíte z přehledu vlastností dané evidence:

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

💡 Při přístupu na vlastnosti objektů se na konec zápisu píše vykřičník — ${doklad.firma!} — jako kontrola prázdné hodnoty. Bez něj šablona na nevyplněné vlastnosti selže.

⚠️ Pro dodržení odstavců použijte HTML element <p>. Bez něj dojde ke sloučení textu do jednoho odstavce.


Příklad použití těchto proměnných v šabloně

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 šablony při uložení

Před uložením šablony program zkontroluje, zda neobsahuje nepovolené výrazy — šablonu přímo zkusí přeložit a vyhodnotit. Nevyhovující šablona se neuloží a chyba se vrátí u vlastnosti textSablona:

Co v šabloně stojí

Jak reaguje ABRA Flexi

Neuzavřený nebo jinak chybný zápis FreeMarkeru

Odmítne s hlášením freemarker.core.ParseException.

Vlastnost, kterou objekt nemá — například ${object.class}

Odmítne s hlášením No such bean property a výpisem zásobníku šablony.

Vytváření instancí tříd konstrukcí ?new()

Odmítne s hlášením, že daná třída není povolená.


Související

Dostali jste odpověď na svou otázku?