Potwierdzenie wykonania reguły ręcznej – część 2
Wprowadzenie
Możliwość potwierdzenia wykonania reguły ręcznej została opisana szczegółowo w tym artykule: Potwierdzenie wykonania reguły ręcznej. Wraz z wydaniem 240630 rozszerzono działanie funkcji reguł Confirm(), a która to funkcja wykorzystywana jest we wspomnianym mechanizmie potwierdzania. Zakres rozszerzenia obejmuje:
- możliwość wybrania osoby ze wskazanej grupy np. w celu przekazania do tej osoby sprawy po zatwierdzeniu wykonania reguły;
- możliwość podania dodatkowego komentarza w momencie zatwierdzania wykonania reguły;
- możliwość anulowania okna dialogowego zatwierdzania wykonania reguły.
W niniejszym artykule opisujemy powyższe rozszerzenia.
Wybieranie osoby ze wskazanej grupy
Przyjmijmy założenie, że okno dialogowe potwierdzenia wykonania reguły wygląda następująco:
Kod reguły w sekcji „Wykonaj przed regułą”, odpowiedzialny za konfigurację powyższego okna, jest taki:
confirm.Title="Przekazanie do akceptacji"; confirm.Content="Czy chcesz przesłać formularz do akcpetacji? Zostaniesz poproszona/y o wskazanie osoby z grupy 'Liderzy projektów'."; confirm.HideCancelButton=true; buttonConfirm.Text="Przekaż"; buttonConfirm.Type="Primary"; buttonConfirm.Id="send_to_accept"; buttonConfirm.SelectUserFromGroup="Liderzy projektów"; buttonConfirm.DialogTitle="Wskaż osobę akceptującą"; buttons=""; AddObjectToList(buttons,buttonConfirm); buttonReject.Text="Nie przekazuj"; buttonReject.Type="Danger"; buttonReject.Id="reject"; buttonReject.AddComment="Required"; buttonReject.DialogTitle="Podaj powód rezygnacji"; AddObjectToList(buttons,buttonReject); confirm.Buttons=buttons; Confirm(confirm);
Po kliknięciu przycisku „Przekaż” [3] wyświetla się kolejne okno [4] (patrz: poniższy obrazek) z możliwością w wybrania osoby [5] ze wskazanej w konfiguracji reguły grupy.
Za konfigurację okna dialogowego [4] i listy wyboru [5] odpowiada ten fragment kodu:
buttonConfirm.SelectUserFromGroup="Liderzy projektów"; buttonConfirm.DialogTitle="Wskaż osobę akceptującą";
Login lub identyfikator wybranej osoby będą przechowywane w zmiennych odpowiednio SelectedUser lub SelectedUserId. Zmienne te można wykorzystać w kodzie reguły w sekcji „Po uruchomieniu reguły” np. do przekazania sprawy do wybranej osoby funkcją ForwardCase(). Kod wspomnianej sekcji „Po uruchomieniu reguły” wygląda następująco:
if (VariableExists("ConfirmResult")) { if (ConfirmResult=="send_to_accept") { if(VariableExists("SelectedUser")) { ForwardCase(SelectedUser,"Akceptacja"); } else { ShowMessage(1,"Nie wskazano osoby do akceptacji!"); } } if(ConfirmResult=="reject") { AddComment(UserComment); ForwardCase(CurrentUser(),"Odrzucono",false); CloseCase(); } } else { ShowMessage(1,"Akcja nie zostanie wykonana!"); }
Wpisywanie dodatkowego komentarza
W oknie dialogowym potwierdzenia wykonania reguły można skonfigurować przyciski w taki sposób, aby była możliwość wprowadzenia przez użytkownika komentarza (wymaganego albo nieobligatoryjnego). W wykorzystywanym w niniejszym artykule przykładzie przycisk „Nie przekazuj” [7] (patrz: poniższy obrazek) został właśnie tak skonfigurowany …
… że po jego kliknięciu otworzy się dodatkowe okno dialogowe [8] (patrz: poniższy obrazek) z możliwością wprowadzenia dodatkowego komentarza [9].
Kod reguły w sekcji „Wykonaj przed regułą”, odpowiedzialny za konfigurację powyższego okna, wygląda następująco:
buttonReject.AddComment="Required"; buttonReject.DialogTitle="Podaj powód rezygnacji";
Po kliknięci przycisku „Zatwierdź” [10] treść komentarza będzie dostępna w zmiennej UserComment. Można ją następnie np. wykorzystać w regule w sekcji „Po uruchomieniu reguły” i dodać wprowadzony komentarz do sprawy funkcją AddComment(), jak w poniższym kodzie:
if(ConfirmResult=="reject") { AddComment(UserComment); ForwardCase(CurrentUser(),"Odrzucono",false); CloseCase(); }
Anulowanie okna potwierdzenia wykonania reguły
W dotychczasowym przykładzie możliwość anulowania okna dialogowego potwierdzenia wykonania reguły była jawnie wyłączona i przycisk „Anuluj” nie był wyświetlany. Za takie zachowanie się okna dialogowego odpowiada ten fragment kodu:
confirm.HideCancelButton=true;
Jeżeli podczas konfigurowania obiektu confirm dla funkcji Confirm() jawnie nie zostanie podany powyższy kod albo parametrowi HideCancelButton zostanie przypisana wartość false, to przycisk „Anuluj” [11] (patrz: poniższy obrazek) zostanie wyświetlony.
Kliknięcie przycisku „Anuluj” jest tożsame z zamknięciem okna dialogowego przyciskiem [X].
Dodatkowe uwagi
Jeśli w konfiguracji okna potwierdzenia wykonania reguły korzystamy z wyboru użytkownika [12] (patrz: poniższy obrazek) do przekazania sprawy na kolejny etap lub wprowadzania komentarza [13] do sprawy, to nie wolno korzystać ze standardowych ustawień reguły [14] lub [15].