MS Graph v2 (od v5.7.102)
Cron MsGraphCreateProcessesFromMailCron2 (dále jen V2) zakládá případy z e-mailů načtených přes Microsoft Graph. Je nástupcem cronu MsGraphCreateProcessesFromMailCron (dále jen původní cron). Původní cron zůstává beze změny a běží dál – na V2 se přechází vědomě, až když se rozhodnete.
Článek je psaný pro konzultanty: co V2 přináší, jak na něj přejít a co znamená každý parametr.
Dostupnost
|
Verze TAS |
Dostupné od |
Jak se nastavuje |
Filtr typu zprávy a mapování hlaviček |
|
5.7 |
5.7.102 |
ruční úprava JSON |
ne |
|
5.17 |
5.17.16 |
ruční úprava JSON |
ne |
|
5.19 |
5.19.5 |
formulář s validací |
ano |
Základ je na všech verzích stejný. Na 5.19 navíc:
- se nastavení zadává ve formuláři, který chyby hlídá už při uložení,
- uživatele, šablonu a hlavičku vybíráte ze seznamu místo psaní ID,
- pole, která nedávají smysl, jsou skrytá (např. přípony příloh se ukážou až po zapnutí jejich filtru),
- je k dispozici filtr typu zprávy (
messageClass) a mapování hlaviček (headerMapping).
Co je ve V2 jinak
Jedna chyba už neshodí celý běh
To je hlavní důvod, proč V2 vznikl. U původního cronu stačila jedna nedostupná schránka nebo jeden rozbitý e-mail a zbytek se v tom běhu nezpracoval. V2 zpracovává každou schránku i každý e-mail samostatně. Problém zapíše a pokračuje dál.
Souhrn po každém běhu
Po každém běhu přibude do logu jeden souhrnný záznam: kolik e-mailů se načetlo, zpracovalo, přeskočilo a selhalo. U každého neúspěšného e-mailu uvádí schránku, předmět, odesílatel a důvod. Celý log už procházet nemusíte.
Když v běhu byla alespoň jedna chyba, může navíc odejít:
- souhrnný e-mail – jedna zpráva za celý běh (nastavení
runSummary), - e-mail odpovědným za schránku – každý dostane jen chyby svých schránek (nastavení
errorEmailAddressesu schránky). Když jeho schránky prošly bez chyby, nedostane nic.
Úspěšný běh žádný e-mail neposílá.
Kontrola nastavení před připojením
Než se V2 připojí ke schránce, zkontroluje její nastavení: přihlašovací údaje, ID složek, číselná ID procesu a kolidující přepínače příloh.
Ochrana proti dvojímu zpracování
Aktivní smí být vždy jen jeden z cronů MsGraphCreateProcessesFromMailCron a MsGraphCreateProcessesFromMailCron2 (včetně jejich klonů). Pokus uložit jako aktivní i druhý z nich skončí chybou. Když se to obejde zásahem do databáze, V2 si při startu všimne, že běží původní cron, přeskočí se a zapíše proč.
Další novinky
- E-mail, u kterého se nepodařilo založit případ, zůstane nepřečtený ve vstupní složce a zkusí se znovu při dalším běhu.
- Ignorování obrázků z podpisu – loga a bannery se nemusí ukládat jako dokumenty případu.
- E-mail jako PDF – samotnou zprávu lze uložit k případu jako PDF.
- Filtr typu zprávy (jen 5.19) – pozvánky, doručenky a odpovědi „mimo kancelář“ nezaloží případ.
- Mapování hlaviček (jen 5.19) – vlastní hlavičku e-mailu lze uložit do proměnné.
Přechod z původního cronu
Při upgradu na verzi s V2 se cron V2 založí sám a předvyplní podle původního cronu: schránky, přihlašovací údaje, mapování, rozvrh i timeout. Založí se ale jako neaktivní, takže se nic samo nespustí a nic se nezpracuje dvakrát. Původní cron zůstává beze změny a běží dál.
Postup přepnutí
- Otevřete cron
MsGraphCreateProcessesFromMailCron2a projděte předvyplněné nastavení podle tabulek parametrů níže. Zkontrolujte hlavněrunSummary, kam budou chodit souhrnné e-maily. - Deaktivujte původní cron
MsGraphCreateProcessesFromMailCron. - Aktivujte
MsGraphCreateProcessesFromMailCron2. - Po prvním běhu zkontrolujte v logu souhrnný záznam.
Jak ověřit převedené nastavení
V servisní konzoli spusťte:
sys.msGraphConvertParamsForCron2()
Funkce vrátí nastavení původního cronu převedené do struktury V2 a nic přitom nezmění. Poslouží k porovnání nebo ke zkopírování do V2. Konkrétní cron (např. klon) převedete podle jeho ID:
sys.msGraphConvertParamsForCron2(42)
Klony původního cronu
Pokud máte původní cron naklonovaný pro více konfigurací, migrace klony nepřevádí. Jen je vypíše do update logu. U každého klonu:
- převeďte jeho nastavení funkcí
sys.msGraphConvertParamsForCron2(ID_klonu), - naklonujte cron V2 a vložte do něj výsledek,
- deaktivujte klon původního cronu a aktivujte klon V2.
Co se při převodu změní
|
Původní cron |
V2 |
|
přepínače přímo na schránce |
přesunuté do |
|
|
|
|
|
|
|
– |
nový blok |
|
– |
nový blok |
Příklad nastavení
Jedna schránka pro faktury. Odpovědná účetní dostává chyby své schránky, podpora dostává souhrn celého běhu a obrázky z podpisů se neukládají.
{
"amountOfEmailByRun": 100,
"runSummary": {
"log": true,
"sendEmail": true,
"emailAddresses": ["podpora@firma.cz"]
},
"items": [
{
"auth": {
"type": "secret",
"emailAddress": "faktury@firma.cz",
"tenantId": "00000000-0000-0000-0000-000000000000",
"clientId": "00000000-0000-0000-0000-000000000000",
"clientSecret": "{{vault:msgraph-faktury}}"
},
"folders": {
"in": { "id": "ID_VSTUPNI_SLOZKY" },
"out": { "id": "ID_VYSTUPNI_SLOZKY" }
},
"process": {
"user_id": 1,
"tproc_id": 25,
"header_id": 3
},
"config": {
"errorEmailAddresses": ["ucetni@firma.cz"],
"ignoreInlineAttachments": true
},
"mapping": {
"sender": { "value": "from.emailAddress.address", "option": "optional" },
"mailSubject": { "value": "subject", "option": "optional" },
"mailBody": { "value": "body.content", "option": "optional" }
}
}
]
}
items. Na 5.19 použijte ve formuláři tlačítko pro zkopírování položky a upravte jen to, co se liší.Parametry
Sloupec Povinné:
- Ano – bez vyplnění se schránka nezpracuje a důvod se objeví v souhrnu,
- Ne – můžete vynechat, použije se výchozí hodnota,
- Podmíněně – povinné jen v situaci popsané u parametru.
U nepovinných parametrů je smazání klíče totéž jako nastavení výchozí hodnoty. Formulář na 5.19 si některé klíče drží i s prázdnou hodnotou, to nevadí.
Hlavní úroveň
|
Parametr |
Povinné |
Výchozí |
Co dělá |
|
|
Ne |
|
Kolik e-mailů se za jeden běh načte z každé schránky. Při |
|
|
Ne |
viz níže |
Souhrn běhu v logu a e-mailem. |
|
|
Ano |
– |
Seznam schránek. Když je prázdný, cron nemá co zpracovávat. |
runSummary – souhrn běhu
|
Parametr |
Povinné |
Výchozí |
Co dělá |
|
|
Ne |
|
Zapíše souhrn do logu: součty a u každého neúspěšného e-mailu schránku, předmět, odesílatele a chybu. |
|
|
Ne |
|
Pošle souhrn e-mailem, jen když v běhu byla alespoň jedna chyba. Jedna zpráva za celý běh. Souhrn nechodí jen tehdy, když je zde výslovně |
|
|
Podmíněně |
|
Kam souhrn chodí. Na 5.19 je povinné, když je |
sendEmail smažete, souhrn se posílá. Když necháte emailAddresses prázdné, jde na adresy pro chyby cronů z konfigurace instance. Pokud souhrnný e-mail nechcete, nastavte výslovně "sendEmail": false.items[].auth – přihlášení ke schránce
|
Parametr |
Povinné |
Výchozí |
Co dělá |
|
|
Ano |
– |
Adresa schránky. Na 5.19 se podle ní pojmenovává položka v seznamu schránek. |
|
|
Ano |
– |
ID tenanta (adresáře) v Microsoft Entra ID. |
|
|
Ano |
– |
ID aplikace (client ID) z App Registration. |
|
|
Podmíněně |
– |
Povinné při |
|
|
Ano |
|
|
|
|
Ne |
|
Volitelné rozsahy oprávnění. |
items[].folders – složky
|
Parametr |
Povinné |
Co dělá |
|
|
Ano |
Složka, ze které se e-maily načítají. |
|
|
Ano |
Složka, kam se e-maily po zpracování přesunou. |
items[].process – jaký případ se zakládá
|
Parametr |
Povinné |
Co dělá |
|
|
Ano |
Uživatel, pod kterým se případ založí. |
|
|
Ano |
Šablona, ze které případ vznikne. |
|
|
Ano |
Hlavička, pod kterou případ spadá. |
|
|
– |
Jen pro čtení. Plní se za běhu podle mapování, cokoli sem zapíšete, se ignoruje. |
user_id, tproc_id a header_id musí být čísla. Na 5.19 je vybíráte ze seznamu, takže je špatně zadat nejdou.
items[].config – chování schránky
|
Parametr |
Povinné |
Výchozí |
Co dělá |
|
|
Ne |
|
Odpovědní za tuto schránku. Po běhu s chybou dostane každá adresa e-mail jen s chybami svých schránek. Funguje nezávisle na |
|
|
Ne |
|
Co udělat s e-mailem, když se případ založil, ale nespustilo se jeho workflow. Zapnuto: e-mail se označí jako přečtený a přesune do výstupní složky. Vypnuto: zůstane nepřečtený a každý další běh z něj založí další chybný případ. |
|
|
Ne |
|
K případu se nenahraje žádná příloha. |
|
|
Ne |
|
Přeskočí jen přílohy s příponami z |
|
|
Podmíněně |
|
Přípony, které se přeskočí, např. |
|
|
Ne |
|
Neukládá obrázky vložené v těle zprávy (loga v podpisu, bannery). V těle e-mailu zůstanou vidět. Běžné přílohy (faktura v PDF nebo JPG) to neovlivní. |
|
|
Ne |
|
Uloží samotný e-mail k případu jako PDF |
|
|
Ne |
|
Chyby při zpracování příloh zpracování e-mailu nezastaví. |
|
|
Ne |
|
Proměnné případu se neplní přímo, data z e-mailu se uloží do |
|
|
Ne |
|
Do |
ignoredAttachmentTypes s .jpg přeskočí každý JPG, tedy i naskenovanou fakturu. Na loga v podpisu proto použijte ignoreInlineAttachments, které běžné přílohy pustí dál.attachEmailAsPdf znatelně prodlužuje běh cronu, protože se PDF generuje pro každý e-mail. Zapínejte ho jen tam, kde to zákazník opravdu potřebuje.items[].messageClass – filtr typu zprávy (jen 5.19)
|
Parametr |
Povinné |
Výchozí |
Co dělá |
|
|
Ne |
|
Případ vznikne jen z povolených typů zpráv. Ostatní se zapíšou do logu a přesunou do výstupní složky. E-mail, jehož typ nejde zjistit, se zpracuje vždy. |
|
|
Ne |
|
Typy zpráv, které se zpracují. |
|
|
Ne |
|
Konkrétní typy, které se odmítnou, i když odpovídají povolenému typu. Výchozí hodnota je automatická odpověď „mimo kancelář“. |
allowedPrefixes nebo ignoredClasses se chová jako výchozí seznam. Když chcete zpracovávat úplně všechno, vypněte filtr přes enabled: false.items[].mapping – co se uloží do proměnných
Klíč je název proměnné procesu, hodnota je cesta do e-mailu, nebo objekt { "value": …, "option": …, "isConstant": … }.
|
Cesta |
Význam |
|
|
odesílatel |
|
|
předmět |
|
|
tělo e-mailu (HTML) |
|
|
příjemci |
|
|
zvláštní klíč – seznam chyb u příloh jako text ve formátu JSON |
"option": "optional". Chybějící údaj se pak uloží jako prázdná hodnota a zpracování e-mailu kvůli němu neselže."sender": { "value": "from.emailAddress.address", "option": "optional" }items[].headerMapping – hlavičky do proměnných (jen 5.19)
Nepovinné. Klíč je název proměnné, hodnota internetMessageHeaders načte hlavičku se stejným názvem, jako má proměnná.
"headerMapping": {
"X-Header-Company": "internetMessageHeaders"
}
Příklad naplní proměnnou X-Header-Company z hlavičky X-Header-Company.
messageClass a headerMapping můžete v JSON na 5.7 a 5.17 klidně nechat. Nic nerozbijí, jen se nepoužijí.Řešení potíží
Cron V2 nejde aktivovat
Pravděpodobně je aktivní původní cron MsGraphCreateProcessesFromMailCron nebo některý jeho klon. Aktivní smí být jen jeden z nich. Nejdřív deaktivujte původní cron.
Cron běží, ale nezakládá případy
Najděte v logu souhrnný záznam posledního běhu. Když je chyba v nastavení schránky, souhrn napíše konkrétně co, například auth.clientSecret is missing for type 'secret' nebo folders.in.id is missing. Druhá možnost: cron zjistil, že je aktivní původní cron, přeskočil se a zapsal to do logu.
Nechodí souhrnný e-mail
Souhrnný e-mail chodí jen po běhu, ve kterém byla alespoň jedna chyba. Úspěšný běh žádný e-mail neposílá. Dál zkontrolujte, že runSummary.sendEmail není false a že je v runSummary.emailAddresses správná adresa, případně že má instance nastavené adresy pro chyby cronů.
Souhrnný e-mail chodí na adresu, kterou nikdo nesleduje
Když je runSummary.emailAddresses prázdné, souhrn jde na adresy pro chyby cronů z konfigurace instance. Doplňte vlastní adresy, nebo souhrn vypněte přes "sendEmail": false.
Z pozvánek a odpovědí „mimo kancelář“ vznikají případy
Na 5.19 zkontrolujte, že má schránka messageClass.enabled zapnuté. Na 5.7 a 5.17 filtr není, odfiltrujte tyto zprávy pravidlem v poštovní schránce.
Nastavení příloh nejde uložit
ignoreAllAttachments a ignoreSpecificAttachments nemůžou být zapnuté současně: buď se přeskakují všechny přílohy, nebo jen vybrané typy. Při zapnutém ignoreSpecificAttachments musí být v ignoredAttachmentTypes alespoň jedna přípona.
Z jednoho e-mailu vzniká při každém běhu nový chybný případ
Schránka má setEmailProcessedOnError vypnuté, takže e-mail se neúspěšným workflow zůstává ve vstupní složce. Zapněte ho, aby se takový e-mail po chybě přesunul do výstupní složky.
Cron běží pomalu
Nejčastější příčinou je zapnuté attachEmailAsPdf, protože se PDF generuje pro každý e-mail. Druhá je vysoká hodnota amountOfEmailByRun.
Updated
by Frantisek Brych