Vlastní formulář pro podání nového požadavku
Systémový formulář pro odeslání nového požadavku do aplikace Alvao WebApp lze nahradit vlastním formulářem se specifickým obsahem a chováním. Vlastní formulář dokáže pojmout i více požadavků najednou, a lze jej tak použít k podpoře složitých obchodních procesů, jako je například nástup nového zaměstnance. Vlastní formuláře nejsou pro službu ALVAO SaaS k dispozici.
Místo vlastních formulářů doporučujeme použít kombinaci standardního formuláře pro odeslání nového požadavku na službu a vlastního JavaScriptu na formuláři pro odeslání nového požadavku.
Vlastním formulářem 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í.
V vlastním formuláři můžete použít Alvao.API k zpracování požadavků, avšak použití API vyžaduje pokročilé programovací znalosti.
Šablony pro vytvoření vlastních formulářů lze nalézt v *\Custom\Templates* v instalační složce Alvao WebApp.
Seznam standardních šablon:
Název | Popis |
---|---|
Novinka | Příklad formuláře pro vytvoření více požadavků ve vzájemném spojení. 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 karet požadavku. |
Soubor .cshtml definuje vzhled formuláře, . s soubor, 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ř. HrProcessAutomation (pro automatizaci HR procesu). Více formulářů může být umístěno v jedné složce s funkcemi.
Ve složce \Custom\Templates pak zvolte šablonu formuláře, která bude co nejblíže vašemu záměru. Zkopírujte obsah složky šablony do složky Vlastní<název funkce>. Přejmenujte soubory .cshtml a .cs. Oba soubory (.cshtml a .cs) pojmenujte stejně. Doporučujeme začít název formuláře názvem funkce, pak názvem služby, pro kterou je určena, a nakonec operací, např. HrProcessAutomation_Onboarding_NewTicket, kde HrProcessAutomation je název funkce, Onboarding je název služby a NewTicket je název operace.
Názvy všech formulářů, které se používají napříč všemi funkcemi, musí být jedinečné.
Nyní musíte také upravit vnitřek formuláře podle nového jména:
- V souboru .cs na začátku souboru za slovem jmenný prostor, uveďte název jmenného prostoru Alvao.WebApp.Custom.<function_name>. Pro název funkce zadejte název složky na disku, kde se nachází formulář, např. Alvao.WebApp.Custom.HrProcessAutomation.
- V souboru .cs na začátku souboru pro třídu klíčové slovo změňte název třídy. Název třídy musí být <the name of the cshtml page>Controller, např. ve tvaru HrProcessAutomation_Onboarding_NewTicket.cshtml bude třída pojmenována HrProcessAutomation_Onboarding_NewTicketController.
Definice rozvržení formuláře
Soubor .cshtml obsahuje popis rozvržení formuláře a určuje prvky, které se mají zobrazit. Při odesílání dat uživatelem se data zadaná do zobrazených prvků převedou na text, který lze dále použít v definici chování.
V . shtml soubor, upravte pouze část oddělenou mezi řádkou <div id="CustomFormContent" > a </div>, prvky formuláře jsou převedeny na text pouze v této části. Prvky mimo CustomFormContent nebudou převedeny na text požadavku, ale budou zobrazeny ve formuláři.
Následující prvky formuláře jsou převedeny na text požadavku:
Název prvku | Metoda převodu | Veselí |
---|---|---|
<label> | Zobrazený text je vložen do textu požadavku a následuje za ním dvojtečka. | Ne |
Editor "StringField" | Text, který uživatel zadá do vstupního řádku, se vloží do textu požadavku. Pokud do parametru elementu 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 se vloží do textu požadavku a za ním následuje 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 je vložena do textu požadavku. | Ano |
Editor "RadioButtonList" | Vybraná položka je vložena do textu požadavku. | Ano |
Editor "CheckBoxList" | Všechny vybrané položky se postupně vloží do textu požadavku. | Ano |
Editor "Dvojité pole" | Do textu požadavku se vloží celé nebo desetinné číslo zadané uživatelem. | Ano |
Editor "ColumnsControl" | Všechna zobrazená pole se do textu požadavku vkládají postupně. Hodnoty také vloží přímo do vlastností založeného požadavku. | Ano |
Editor "AttachmentField" | Přílohy budou vloženy do zprávy o vytvoření požadavku. | Ne |
Prvky, které nejsou uvedeny v tabulce, nejsou do textu vloženy. Příklady použití všech prvků najdete v šabloně NewTicket.
Přidáním třídy "btn-command" k tlačítku v souboru .cshtml zajistíte, že se tlačítko zkopíruje jako příkaz do příkazového řádku.
Formát čísla v poli DoubleField se při odesílání formuláře kontroluje, a pokud není správný, je zvýrazněn červeně a zobrazí se vložte číslo ve správném formátu. Správný český formát pro zápis desetinného čísla je desetinný bod.
Použít vlastní pole
Viz tabulka příkladů získávání vlastních polí:
Druh údajů | Příklad kódu |
---|---|
bool |
|
Datum a čas |
Poznámka Pokud chcete získat jiný časový standard než UTC, musíte hodnotu převést na místní čas:
|
počítadlo intu |
|
počítadlo intu (nelokalizované) |
|
dvojnásobný |
|
Definice chování formulářů
Popis chování je v souboru .cs. V první části kódu je oblast určená k úpravám označena komentářem. Nezasahujte do jiný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 k vytvoření požadavku je následující:
CreateTicket("Service name", "Ticket name", "Custom ticket text" + TicketBody);
Kde je TicketBody již připravený text požadavku, který byl vytvořen převodem formulářů do textu. V případě potřeby může být ve všech zobrazených polích použito doplnění textu. Pro vložení řádku zalomení do aktuálního textu použijte značku \n.
Je-li prvek "StringField" použit na formuláři, který může být použit k zadání textu v HTML formátu, použijte řetězec "<br>"
Název služby musí být vyplněn přesně tak, jak se v administraci zobrazí název služby. Dílčí služby jsou odděleny / znakem, např. "Interní/osobnostní/Employee Entry". Musíte zadat úplnou cestu od kořenové služby.
Verze příkazu k vytvoření požadavku je také k dispozici, která je rozšířena pro vytvoření odkazů:
CreateTicket ("Název služby, "Název požadavku", "Vlastní text požadavku" + TicketBody, MainTicketId, TicketRelationType.IsChildOf);
Kde MainTicketId je číslo propojeného požadavku. Příklad získání ID z hlavního požadavku je také součástí šablony. Hodnota TicketRelationType.SystemTicketRelationType.IsChildOf definuje typ odkazu:
Hodnota | Link Type |
---|---|
RelatesTo | Týká se |
IsParentOf | IsParentOf |
IsChildOf | Je podřazený |
Prefeedespřed | Předchází před |
SledovatPo | Sleduje po |
Bloky | Bloky |
IsBlockedBy | Je zablokováno |
IsDuplicatedBy | Je duplikován |
Duplikáty | Duplikáty |
Např. v případě TicketRelationType.SystemTicketRelationType.IsChildOf, aktuálně vytvořený požadavek bude podřazený, a požadavek s číslem uvedeným v MainTicketId bude nadřazený.
Pro přístup k hodnotám vlastních polí použijte následující strukturu (příklad pro pole "NoveName" a "NoveNumber"):
string NoveName = ((ColumnsControl)Model.ColumnsControl["ColumnsControl0"]).Values.Find(Col => Col.Column.sColumn == "NoveJmeno").Hodnota jako string;int NoveCislo = (int)((ColumnsControl)Model.ColumnsControl["ColumnsControl0"]).Values.Find(Col => Column.sColumn.sColumn == "NoveCislo").Hodnota;
Připojování formuláře k aplikaci
Pokud v nastavení služby zadáte cestu k formuláři, tento formulář se zobrazí na Alvao WebApp namísto standardního formuláře pro odeslání nového požadavku. Viz také nastavení služeb Service Desk.
- V Správa - Service Desk - Služby, vyberte službu, ve které chcete zobrazit vlastní formulář.
- V sekci Nový formulář požadavku v ovládacím panelu přepněte režim z System Form Design na Vlastní formulář (URL).
- Zadejte cestu k vlastnímu formuláři ve formuláři ~/Custom/<name of the functionality>/<name of the form without the .cshtml> rozšíření.
Dynamické přepínání jazyka
Při úpravě .cs a .cshtml souborů můžete použít soubory .resx, které obsahují lokalizované řetězce pro každý jazyk. Každý uživatel pak zobrazí tyto řetězce ze souboru v souladu s jejich preferovaným jazykem. Není-li soubor .resx vytvořen pro jazyk, použije se soubor .resx pro angličtinu.
Vytváření souboru .resx pro jazyk
Nejprve vytvořte soubor .resx pro angličtinu. Z Vlastní\Templates\Resources, zkopírujte soubor SampleController.resx do složky Vlastní<functionality>\Resources a přejmenujte ho na <cshtml page name>Controller.resx.
Otevřít tento soubor v textovém editoru. Za řádek "<!-- Vložte -->" vložte řádky:
<data name="name" xml:space="preserve">
<value&>name</value>
</data>
Výsledek by měl být následující:
<!-- Insert -->
<data name="name" xml:space="preserve">
<value>name</value>
</data>
<!-- Do not change -->
</root>
Řádky:
<data name="name" xml:space="preserve">
<value>name</value>
</data>
lze znovu zkopírovat a upravit pro vytvoření více lokalizovaných řetězců. Každý <datový název="name" hodnota musí být v souboru jedinečná.
<datový název=" name" specifikuje jméno používané jako parametr ve funkci GetResources() popsané v Use . esx soubor v .cs a .cshtml souborech. <value> Jméno</value> specifikuje hodnotu, kterou tato funkce vrací.
Let's now create a .resx file for the Czech language. Copy the modified <cshtml page name>Controller.resx. to the same folder and name it <cshtml page name>Controller.cs.resx. Edit the <value>Name</value> so that the following text is in this file:
<!-- Insert -->
<data name="name" xml:space="preserve">
<value>name</value>
</data>
<!-- Do not change -->
</root>
Neměňte žádné další části resx souborů.
Stejně jako <cshtml page name>Controller.cs. soubor esx je zkopírován a upraven, soubory pro další jazyky, které lze nastavit jako preferované jazyky uživatele lze kopírovat a upravovat. Tyto soubory jsou vždy pojmenovány <cshtml page name>Controller.<language abbreviation>.resx (například <cshtml page name>Controller.de.resx). Zkratky jazyků, které lze použít, jsou definovány na: https://msdn.microsoft.com/en-us/goglobal/bb896001
Používá .resx soubor v .cs a .cshtml souborech
Některé položky vytvořené v .resx souborech lze použít v .cs i .cshtml souborech.
V souboru .cshtml použijte řetězec štítek = "Jméno" namísto řetězce label = Model.GetResource("name"). Uživatel, který nastavil angličtinu jako preferovaný jazyk, uvidí štítek pole Jméno. Ostatní uživatelé uvidí jméno.
Při použití v .cs souboru by bylo dosaženo stejné funkce pomocí GetResource("name"), namísto řetězce.