Vlastní formulář pro odeslání nového požadavku
Systémový formulář pro odeslání nového požadavku do ALVAO WebApp lze nahradit vlastním formulářem se specifickým obsahem a chováním. Vlastní formulář může také pojmout více požadavků najednou, a lze jej tak použít pro podporu složitých obchodních procesů, jako je například nástup nového zaměstnance
Poznámka:
Vlastní formulář může být také obecná stránka aplikace ALVAO WebApp, která se nepoužívá k vytváření požadavků. Vytvoření takové stránky vyžaduje pokročilé znalosti programování
Tip:
Ve vlastním formuláři můžete ke zpracování požadavků použít
rozhraní Alvao.API, jeho použití však vyžaduje pokročilé znalosti programování
Šablony pro tvorbu vlastních formulářů najdete ve složce \Custom\Templates\v instalační složce aplikace ALVAO WebApp
Seznam standardních šablon:
Název |
Popis |
NewTicket |
Příklad formuláře pro vytvoření více žádostí ve vzájemné návaznosti. Ukazuje také, jak používat některé ovládací prvky a jak pracovat s prvkem pro hlášení času k vytvářenému požadavku. |
EmptyPage |
Prázdná šablona. Používá se pro stránky, které nejsou určeny k vytváření požadavků. Tento typ stránky se používá pouze pro speciální účely, například pro obsah vlastních záložek v požadavku. |
Soubor .cshtml definuje vzhled formuláře, soubor .cs, umístěný ve složce \Code, popisuje logiku odesílání dat z vyplněného formuláře.
Příprava nového formuláře
Ve složce \Custom nejprve vytvořte složku pro funkčnost, kterou bude nový vlastní formulář pokrývat, např. složku HrProcessAutomation (pro automatizaci HR procesů). Do jedné složky s funkčností lze umístit více formulářů.
Poté ve složce \Custom\Templates vyberte šablonu formuláře, která se co nejvíce blíží vašemu záměru. Obsah složky šablony zkopírujte do složky Custom<název funkčnosti>. Soubory .cshtml a .cs vhodně přejmenujte. Oba soubory (.cshtml a .cs) pojmenujte stejně. Doporučujeme začínat název formuláře názvem funkce, pak názvem služby, pro kterou je určen, a nakonec operací, např. HrProcessAutomation_Onboarding_NewTicket, kde HrProcessAutomation je název funkce, Onboardingje název služby a NewTicket je název operace
Upozornění:
Názvy všech formulářů používaných ve všech funkcích musí být jedinečné
Nyní je třeba podle nového názvu upravit také vnitřek formuláře:
- V souboru .cs na začátku souboru za slovem namespace uveďte název jmenného prostoru Alvao.ServiceDesk.ServiceDeskWebApp.Custom.<název_funkce>. Pro název funkce uveďte název složky na disku, ve které se formulář nachází, např: Alvao.ServiceDesk.ServiceDeskWebApp.Custom.HrProcessAutomation.
- V souboru .cs na začátku souboru u klíčového slova class změňte název třídy. Název třídy musí být <název stránky cshtml>Controller, např. ve tvaru HrProcessAutomation_Onboarding_NewTicket.cshtml by se třída jmenovala HrProcessAutomation_Onboarding_NewTicketController.
Definice rozvržení formuláře
Soubor .cshtml obsahuje popis rozvržení formuláře a určuje prvky, které se mají zobrazit. Když uživatel odešle data, údaje zadané do zobrazených prvků se převedou na text a tento text lze dále použít v definici chování
V souboru .cshtml upravte pouze část ohraničenou mezi řádky <div id="CustomFormContent" > a </div>, prvky formuláře se převedou na text pouze v této části. Prvky mimo CustomFormContent nebudou převedeny na text požadavku, ale budou zobrazeny ve formuláři
Na text požadavku se převedou následující prvky formuláře:
Název prvku |
Metoda převodu |
Řádkování |
<label> |
Zobrazený text je vložen do textu požadavku a následuje za ním dvojtečka. |
Ne |
Editor "StringField" |
Do textu požadavku se vloží text, který uživatel zadá do vstupního řádku. Pokud do parametru prvku přidáte hodnotu "UniquedId = Model.TicketBodyGuid", bude možné zadávat formátovaný text (HTML)
Poznámka:
V jednom formuláři může být maximálně jeden formátovaný prvek HTML
|
Ano |
Editor "BoolField" |
Zobrazený text je vložen do textu požadavku a následuje za ním Ano nebo Ne, podle volby uživatele. |
Ano |
Editor "DateTimeField" |
Do textu požadavku se vloží datum zadané uživatelem. |
Ano |
Editor "DropDownListField" |
Vybraná položka se vloží do textu požadavku. |
Ano |
Editor "RadioButtonList" |
Vybraná položka je vložena do textu požadavku. |
Ano |
Editor "CheckBoxList" |
Do textu požadavku se postupně vloží všechny vybrané položky. |
Ano |
Editor "DoubleField" |
Do textu požadavku se vloží celé nebo desetinné číslo zadané uživatelem. |
Ano |
Editor "ColumnsControl" |
Do textu požadavku se postupně vloží všechny zobrazené položky. Vkládá také hodnoty přímo do vlastností založeného požadavku. |
Ano |
Editor "AttachmentField" |
Přílohy se vloží do zprávy o vytvoření požadavku. |
Ne |
Prvky neuvedené v tabulce se do textu nevkládají. Příklady použití všech prvků najdete v šabloně NewTicket.
V souboru .cshtml přidání třídy "btn-command" k tlačítku zajistí, že se tlačítko zkopíruje jako příkaz do příkazového řádku.
Poznámka:
Formát čísla v poli DoubleField je při odesílání formuláře kontrolován, a pokud není správný, je zvýrazněn červeně a zobrazí se
zadání čísla ve správném formátu.
Správný český formát pro zápis desetinného čísla je s desetinnou tečkou
Definice chování formuláře
Popis chování je v souboru .cs. V první části kódu je komentářem označena oblast, která je určena k úpravám. Nezasahujte do ostatních částí kódu!
Nejdůležitější je zde vytváření požadavků. V souboru je již uveden příklad vytvoření požadavku, který můžete použít pro vlastní úpravy.
Základní struktura příkazu pro vytvoření požadavku je následující:
CreateTicket("Název služby", "Název požadavku", "Vlastní text požadavku" + TicketBody) Kde TicketBody je již připravený text požadavku, který byl vytvořen převodem obsahu formuláře na text. V případě potřeby lze doplnění textu použít ve všech položkách, jak je uvedeno na obrázku. Chcete-li do vlastního textu vložit zalomení řádků, použijte značku \n.
Poznámka:
Pokud je ve formuláři použit prvek "StringField", který lze použít k zadání textu ve formátu HTML, použijte řetězec "<br>"
Název služby musí být vyplněn přesně tak, jak se název služby zobrazuje v administraci. Dílčí služby se oddělují znakem /, například "Interní/Personalita/Zápis zaměstnanců". Je nutné zadat celou cestu od kořenové služby.
K dispozici je také verze příkazu pro vytvoření požadavku, která je rozšířena o vytváření odkazů:
VytvořitTicket("Název služby", "Název požadavku", "Vlastní text požadavku" + TicketBody, MainTicketId, TicketRelationType. SystemTicketRelationType.IsChildOf)
Kde MainTicketId je číslo propojeného požadavku. Příklad získání ID z hlavního požadavku je rovněž součástí šablony. Hodnota TicketRelationType.SystemTicketRelationType.IsChildOf definuje typ propojení
Hodnota |
Typ odkazu |
RelatesTo |
Vztahuje se k |
IsParentOf |
IsParentOf |
IsChildOf |
Je potomkem |
PrecedesBefore |
Předchází před |
FollowsAfter |
Následuje po |
Blokuje |
Bloky |
IsBlockedBy |
Je blokován |
IsDuplicatedBy |
Is duplicated |
Duplicates |
Duplicates |
Například v případě TicketRelationType.SystemTicketRelationType.IsChildOf bude aktuálně vytvořený požadavek dítětem a požadavek s číslem předaným v MainTicketId bude rodičem
Pro přístup k hodnotám vlastních polí použijte následující strukturu (příklad pro položky "NoveName" a "NoveNumber"):
noveName = ((ColumnsControl)Model.ColumnsControl["ColumnsControl0"]).Values.Find(Col => Col.Column.sColumn == "NoveJmeno").Value as string;
int NoveCislo = (int)((ColumnsControl)Model.ColumnsControl["ColumnsControl0"]).Values.Find(Col => Col.Column.sColumn == "NoveCislo").Value
Připojení formuláře k aplikaci
Pokud v nastavení služby zadáte cestu k formuláři, zobrazí se tento formulář ve webové aplikaci ALVAO místo běžného formuláře pro odeslání nového požadavku. Viz také nastavení služby Service Desk.
- V nabídce WebApp - Administration (Správa) - Service Desk - Services (Služby) vyberte službu, ve které chcete zobrazit vlastní formulář.
- V části Nový formulář požadavku na panelu příkazů přepněte režim ze systémového návrhu formuláře na vlastní formulář (URL).
- Zadejte cestu k vlastnímu formuláři ve tvaru ~/Custom/<název funkce>/<název formuláře bez přípony .cshtml>.
Dynamické přepínání jazyka formuláře
Při úpravách souborů .cs a .cshtml můžete použít soubory .resx, které obsahují lokalizované řetězce pro jednotlivé jazyky. Každému uživateli se pak tyto řetězce načtené ze souboru zobrazí podle jeho preferovaného jazyka. Pokud není soubor .resx pro daný jazyk vytvořen, použije se soubor .resx pro angličtinu.
Vytvoření souboru .resx pro daný jazyk
Nejprve vytvořte soubor .resx pro angličtinu. Ze složky Custom\Templates\Resources zkopírujte soubor SampleController.resx do složky Custom<functionality>\Resources a přejmenujte jej na <cshtml název stránky>Controller.resx
Tento soubor otevřete v textovém editoru. Za řádek "<!-- Insert --!>"vložte řádky
<data name="name" xml:space="preserve">
<hodnota>name</value>
</data>
Výsledek by měl být následující:
<!-- Vložit --!>
<data name="name" xml:space="preserve">
<value>name</value>
</data>
<!-- Neměnit --!>
</root>
Řádky:
. <data name="name" xml:space="preserve">
<value>name</value>
</data>
lze zkopírovat a znovu upravit pro vytvoření více lokalizovaných řetězců. Každá hodnota "<data name="jméno" musí být v rámci souboru jedinečná.
<data name="name" určuje název použitý jako parametr ve funkci GetResources() popsané v části Použití souboru .resx v souborech .cs a .cshtml. <hodnota>Name</value> určuje hodnotu, kterou tato funkce vrací.
Vytvořme nyní soubor .resx pro češtinu. Zkopírujte upravený soubor <cshtml název stránky>Controller.resx. do stejné složky a pojmenujte jej <cshtml název stránky>Controller.cs.resx. Upravte <hodnota>Název</hodnota> tak, aby v tomto souboru byl následující text
<!-- Vložte --!>
<data name="name" xml:space="preserve">
<value>name</value>
</data>
<!-- Neměňte --!>
</root>
Upozornění:
Neměňte žádné další části souborů resx
Stejným způsobem, jakým se kopíruje a upravuje soubor <cshtml název stránky>Controller.cs.resx, lze kopírovat a upravovat soubory pro další jazyky, které lze nastavit jako preferované jazyky uživatele. Tyto soubory se vždy jmenují <cshtml název stránky>Controller.<zkratka jazyka>.resx (například <cshtml název stránky>Controller.de.resx). Zkratky jazyků, které lze použít, jsou definovány na adrese
http://msdn.microsoft.com/en-us/goglobal/bb896001
Použití souboru .resx v souborech .cs a .cshtml
Některé položky vytvořené v souborech .resx lze použít v souborech .cs i .cshtml.
V souboru .cshtml použijte místo řetězce label = "Name " řetězec label = Model.GetResource("name"). Uživatel, který nastavil jako preferovaný jazyk angličtinu, uvidí popisek pole Name. Ostatní uživatelé uvidí štítek Name
Při použití v souboru .cs by se stejné funkce dosáhlo použitím GetResource("name"), namísto řetězce
Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.