Skip Navigation LinksALVAO 11.2Rozšiřující modulyALVAO Service Desk Custom AppsVlastní formulář pro odeslání nového požadavku Skip Navigation Links.


Skip Navigation LinksALVAO 11.2 / Rozšiřující moduly / ALVAO Service Desk Custom Apps / Vlastní formulář pro odeslání nového požadavku

Vlastní formulář pro odeslá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ář 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. Vlastní formuláře nejsou k dispozici pro službu ALVAO SaaS

Tip:
Místo vlastních formulářů doporučujeme použít kombinaci standardního formuláře pro odeslání nového servisního požadavku a vlastního javascriptu na formuláři pro odeslání nového požadavku
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:
V rámci vlastního formuláře 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 požadavků 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 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

Následující prvky formuláře jsou převedeny na text požadavku:

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 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 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" Do textu požadavku se vloží vybraná položka. Ano
Editor "RadioButtonList" Vybraná položka se vloží 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, které nejsou uvedeny 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("Service name", "Ticket name", "Custom ticket text" + 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 použít doplnění textu 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ů:

CreateTicket("Service name", "Ticket name", "Custom ticket text" + TicketBody, MainTicketId, TicketRelationType. SystemTicketRelationType.IsChildOf);

Kde MainTicketId je číslo propojeného požadavku. Součástí šablony je také příklad získání ID z hlavního požadavku. Hodnota TicketRelationType.SystemTicketRelationType.IsChildOf definuje typ odkazu

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 podřazený a požadavek s číslem předaným v MainTicketId bude nadřazeným.

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.

  1. V nabídce Správa - Service Desk - Služby vyberte službu, ve které chcete zobrazit vlastní formulář.
  2. V části Formulář nového požadavku na panelu příkazů přepněte režim ze Systémový návrh formuláře na Vlastní formulář (URL).
  3. 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.