1. Případová studie Model IT: Tlačítka WF Úkolů

    Článek: AN0001854Aktualizováno::

    Standardní obrazovka pro úkol obsahuje panel s tlačítkem, ve kterém uživatel potvrzuje dokončení úkolu. V řadě případů to znamená rozhodnutí uživatele (např. schváleno/zamítnuto, implementováno/neimplementováno). V takových případech do třídy pro evidenci úkolů přidáme sloupec typu odkaz na jinou třídu, sloupec označíme jako povinný a necháme uživatele před uložením záznamu vybrat některou z hodnot.

    Popis funkcionality

    V těchto případech můžeme zvýšit komfort uživatele nahrazením standardního panelu dvěma tlačítky s odpovídajícími názvy a ikonami. např. Schválit a Zamítnout. V případě kliku na Zamítnout a nevyplnění pole Komentář, upozorníme uživatele lokalizovanou hláškou, že při zamítnutí musí vyplnit komentář s popisem důvodu zamítnutí.

    Popis řešení

    Ve třídě obsahující workflow úkoly vytvoříme dvě tlačítka typu Skript. Oběma nastavíme Zobrazit v detailu na toolbaru a Zobrazit při změně záznamu.

    Tlačítko Schválit

    // Set column wf_action to value 1 and save the task


    var cApp = OG.Column.GetByCode( OGActualDataRowParentId,  'wf_action');
    OGForm.GetControl( cApp.Id).SetData(1);

    OGDataDetailForm.SaveTask();

     

    Tlačítko Zamítnout

    Ve skriptu uvedená funkce OG.Messageloc.GetText vrací jazykovou variantu hlášení s kódem reject_task (podle nastavení jazyka aktuálního uživatele). Hlášení se nastavují pod Správa - Lokalizace - Hlášení.

    // If column comment is null, return error message reject_task. Otherwise, set column wf_action to value 2 and save the task

    var cCom = OG.Column.GetByCode( OGActualDataRowParentId,  'comment');
    var com =OGForm.GetControl(cCom.Id).GetData();

    if ( !System.String.IsNullOrEmpty(com))
    {
        var cApp = OG.Column.GetByCode( OGActualDataRowParentId,  'wf_action');
        OGForm.GetControl( cApp.Id).SetData(2);

        OGDataDetailForm.SaveTask();
    }
    else
    {
        OGForm.SetError( OG.MessageLoc.GetText( OGModel.Id, 'reject_task'));
    }

    Dále chceme skrýt standardní panel pro dokončení workflow úkolů. Ve skriptu pro detail záznamu třídy pro workflow úkoly použijeme skript:

    function OnLoad()
    {
        OGDataDetailForm.ShowApproveTaskPanel = false;
    }

×