Skip Navigation LinksALVAO 10.0ALVAO Service DeskImplementace systému v organizaciVlastní úpravy a rozšířeníVlastní programová rozšířeníVlastní příkazyVlastní příkazy v hlavní nabídce Skip Navigation Links. Skip Navigation Links Skip Navigation Links.


Vlastní příkazy v hlavní nabídce

Umístěním příkazu do hlavní nabídky můžete uživatelům zpřístupnit často používané stránky a operace, které nejsou vázané na konkrétní požadavek v ALVAO Service Desk.

Příkazy se zobrazují v hlavní nabídce aplikace Service Desk Console a ALVAO WebApp.

Tip:
Pro nahrazení systémového příkazu/odkazu v hlavní nabídce ALVAO WebApp vlastním, skryjte systémový příkaz/odkaz.

Příprava nového příkazu

Ve složce s nainstalovanou ALVAO Service Desk WebService zkopírujte v adresáři App_Code soubor CodeExtension_Template.cs a vhodně jej pojmenujte podle funkčnosti vlastního příkazu.

V nově vytvořeném souboru do ohraničeného bloku kódu zadejte definici nového příkazu implementací rozhraní IGeneralCommand a v konstruktoru třídy příkazu nastavte hodnoty vlastností id, name a position.

  • id – číslo příkazu (jedinečné)
  • name – název příkazu, který se bude zobrazovat v aplikacích
  • position – pozice, na které se bude příkaz zobrazovat v aplikacích
    • 1 = na prvním místě hlavní nabídky aplikace
    • 2 = na posledním místě hlavní nabídky aplikace
    • 3 = na prvním místě nabídky uživatele v hlavní nabídce aplikace
    • 4 = na posledním místě nabídky uživatele v hlavní nabídce aplikace

Příklad:


class ProblemReporting : IGeneralCommand
{
    CommandDesc commandDesc;

    public CommandDesc CommandDesc
    {
        get { return commandDesc; }
        set { commandDesc = value; }
    }

    public ProblemReporting()
    {
        int id = 1;
        string name = "Nahlásit problém";
        int position = 1;

        commandDesc = new CommandDesc(id, name, position);
    }

    int idSectionForProblems = 1; // id sekce pro hlášení problémů

}

Definice podmínek zobrazení příkazu

Ve vytvořené třídě příkazu implementujte metodu Show z rozhraní IGeneralCommand. Vstupní parametr personId obsahuje id osoby, které by se měl příkaz zobrazit.

Výstupem je potom pravdivostní hodnota, zda se má příkaz uživateli zobrazit v hlavní nabídce aplikace.

Tip:
Voláním této metody v metodě Run(…) lze před spuštěním příkazu kontrolovat, jestli se nezměnily podmínky pro jeho zobrazení v době mezi zobrazením a spuštěním příkazu.

Příklad:


class ProblemReporting : IGeneralCommand
{

    public bool Show(SqlConnection Con, int personId)
    {
       bool show = false;
       bool isRequester = false;
       bool isOperator = false;

       // kontrola, jestli je uživatel ve skupině Žadatelé
       using (SqlCommand Cmd = new SqlCommand(@"SELECT CAST(1 AS bit) FROM tRolePerson WHERE liRolePersonRoleId = 7 AND liRolePersonPersonId = @personId", Con))
       {
          Cmd.Parameters.Add("@personId", SqlDbType.Int).Value = personId;
          isRequester = Cmd.ExecuteScalar() as bool? ?? false;
       }

       // kontrola, jestli je uživatel ve skupině Operátoři
       using (SqlCommand Cmd = new SqlCommand(@"SELECT CAST(1 AS bit) FROM tRolePerson WHERE liRolePersonRoleId = 9 AND liRolePersonPersonId = @personId", Con))
       {
         Cmd.Parameters.Add("@personId", SqlDbType.Int).Value = personId;
         isOperator = Cmd.ExecuteScalar() as bool? ?? false;
       }

       // pokud je uživatel žadatel a není operátor, tak se příkaz zobrazí
       if (isRequester && !isOperator)
          show = true;

       return show;
    }

}

Definice akcí prováděných příkazem

Ve vytvořené třídě příkazu implementujte metodu Run z rozhraní IGeneralCommand. Vstupní parametr personId obsahuje id osoby, která příkaz spouští.

Výstupem je pravdivostní hodnota o úspěchu provedení, text, který se může zobrazit v hlášení pro uživatele a URL k otevření v prohlížeči.

Příklad:


class ProblemReporting : IGeneralCommand
{

    public Tuple<bool, string, string> Run(SqlConnection Con, int personId)
    {
       bool complete = false;
       string message = "";
       string url = "";

       // Kontrola jestli se mezi zobrazením a spuštěním příkazu nezměnily podmínky pro jeho spuštění/zobrazení (lze provést kdekoliv v této metodě Run).
       if (!Show(Con, personId))
       {
          message = "Příkaz nelze provést, protože nejsou splněny podmínky pro jeho zobrazení.";
          complete = false;
          return Tuple.Create(complete, message, url);
       }

       // Zjištění adresy WA
       HelpdeskWebService sdws = new HelpdeskWebService();
       string waUrl = sdws.GetServiceDeskPortalUrl();

       if (!string.IsNullOrEmpty(waUrl))
       {
          // Část katalogu služeb pro hlášení problémů
          string problems = "/NewTicket/SectionCatalog/" + idSectionForProblems;
          url = waUrl + problems;

          complete = true;
       }
       else
       {
          message = "Příkaz nelze provést, protože v systému ALVAO chybí nastavení URL k aplikaci WebApp. Kontaktujte prosím administrátora systému ALVAO.";
          complete = false;
       }
       return Tuple.Create(complete, message, url);
    }

}

Tip:
Pokud má vlastní příkaz otevřít jinou stránku z ALVAO WebApp, pro zjištění kořenové URL WebApp použijte metodu z rozhraní Service Desk Web Service GetServiceDeskPortalUrl(). Např.:
string waUrl = "";
using(HelpdeskWebService ws = new HelpdeskWebService())
{
    waUrl = ws.GetServiceDeskPortalUrl();
}
if (waUrl.Length == 0)
    throw new Exception("Adresa WebApp není nastavena.");

 

Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.