Příloha 2 – Vzorová agenda pro testování API

Pro usnadnění testování API a ukázku, jak využít výše popsané dotazy, byla vytvořena vzorová agenda.

Cílem agendy je prezentovat možnost spouštění zprávou zaslanou přes GQL (buď za uživatele, nebo za externí informační systém), prvek přijetí zprávy a globální proměnné.

Workflow agendy vypadá takto:

image

Zahájení zprávou

Na prvku Zahájení zprávou probíhá zpracování přijatých dat, ve kterých lze parametrizovat chování agendy. Automaticky dochází k naplnění globálních proměnných zaslanými hodnotami, pokud přijatá zpráva danou globální proměnnou neobsahuje, zůstává v globální proměnné výchozí hodnota (nebo proměnná zůstává prázdná). Pokud příchozí zpráva obsahuje přílohy, je vytvořeno XML pro FAS a tyto přílohy jsou následně zobrazeny ve formuláři. Pokud zpráva přílohy neobsahuje, uživatel je ve formuláři informován.

Příchozí zpráva můžu obsahovat v klíči $.data libovolná data uložená jako string. V tomto případě je ukázáno, jak lze tímto způsobem předat JSON, kterým se parametrizuje chování agendy.

Očekávaný tvar řídícího JSONu je následující:

{
	"sofaUserId": "779d1c28-3f72-436c-b5f0-1531fab1b834",
	"adIdent": "f1c8b24b-a9cb-4725-aaf3-c2b2dec50378",
	"xpath": "/root/neco",
	"jsonpath": "klic1",
	"defxpath": "/root/element"
}
  • sofaUserId: pokud je vyplněn validní Sofa identifikátor (uživatele/skupiny/role) je tento objekt nastaven jak aktér prvního kroku

  • adIdent: pokud je vyplněn validní AD identifikátor, pod kterým v Sofě je uložen nějaký uživatel, je zjištěn Sofa identifikátor daného uživatele a tento uživatel je nastaven jak aktér prvního krok

  • xpath: pokud je vyplněn, lze tento xpath vyhodnotit nad obsahem globální proměnné globVarXml

  • jsonpath: pokud je vyplněn, lze tento klíč vyhodnotit nad obsahem globální proměnné globVarJson (ve verzi Sofa 4.6.0.89 práce s JSON proměnnými ještě není plně funkční a ladí se)

  • defxpath: pokud je vyplněn, lze tento xpath vyhodnotit nad obsahem globální proměnné globVarXmlDef.

Vyhodnocování aktéra funguje následujícím způsobem:

  • Pokud řídící JSON obsahuje klíč sofaUserId, vyhodnocuje se, jestli je jeho hodnota validní GUID a jestli k ní v Sofě existuje odpovídající objekt. Pokud ano, je tento objekt (uživatel/skupina/role) nastaven jako aktér prvního kroku. Pokud řídící JSON klíč sofaUserId neobsahuje, tento krok se přeskakuje.

  • Pokud řídící JSON obsahuje klíč adIdent a zároveň nebyl nalezen odpovídající objekt ke klíči sofaUserId, vyhodnocuje se, jestli je jeho hodnota validní GUID a jestli k ní v Sofě existuje odpovídající uživatel s tímto AD identifikátorem. Pokud ano, je zjištěn Sofa identifikátor a tento uživatel je nastaven jako aktér prvního kroku. Pokud řídící JSON klíč adIdent neobsahuje, tento krok se přeskakuje. Klíč sofaUserId má tedy v této agendě přednost před klíčem adIdent!

  • Pokud není správně vyhodnocen aktér na základě sofaUserId ani adIdent, používá se jako aktér výchozí hodnota, v tomto případě skupina "Všichni uživatelé".

První krok

V tomto kroku je zobrazen kompletní přijatý JSON, informace o odesílateli zprávy, identifikátor instance, přijatá custom data, přijaté přílohy a obsah všech globálních proměnných.

Hodnoty globálních proměnných lze ve formuláři měnit a vyzkoušet tak správné přenesení hodnot do dalších kroků.

Druhý krok

V tomto kroku jsou zobrazeny hodnoty všech globálních proměnných a je možné jejich hodnoty dále měnit. Slouží k otestování správného přenesení hodnot z minulého a do dalších kroků.

Přijetí zprávy

V tuto chvíli agenda čeká na prvku "Přijetí zprávy", kde setrvá, dokud zprávu neobdrží. Tuto zprávu může zaslat buď ExtIS, nebo uživatel obsazený v roli administrátor. Tato zpráva může obsahovat stejné informace jako zpráva zasílaná při startu (jen již nedochází k vyhodnocení aktéra a nevyhodnocuje se xpath/json path). Je ale možné tedy zaslat agendě nové přílohy (budou zobrazeny v kroku 3 v samostatném přílohovém poli) a hlavně je možné zasílat hodnoty globálních proměnných. Tyto přijaté hodnoty budou zobrazeny ve třetím kroku.

Třetí krok

V tomto kroku je zobrazen kompletní přijatý JSON, přijatá custom data, nově přijaté přílohy a obsah všech globálních proměnných. Lze využít pro kontrolu, že zůstaly hodnoty nastavené v druhém kroku, případně se zobrazují hodnoty přijaté ve zprávě.