Table Excerpt | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
|
...
|
Opis:
Moduł służy do automatycznego przepisania zadań na innych użytkowników po określonym czasie.
...
Tabele można sortować oraz wyszukiwać, operacje na wierszu to edycja danych oraz możliwość usunięcia wpisu. Aby uruchomić moduł należy dodać specjalne zadanie zaplanowane "Uruchamia moduł automatycznego przenoszenia zadań" i ustawić cykliczny czas aktywacji.
Ograniczenia
Górnym ograniczeniem jest to że dla danego procesu i zadania może być tylko jeden wpis (jedna konfiguracja). To znaczy, że nie da się np ustawić dla takiego samego zadania przepisanie do przełożonego po 3 dniach i do konkretnej osoby po 2 dniach
Info | ||
---|---|---|
| ||
Moduł ten przenosi zadania, nie usuwa ich. Dane wstępnie wypełnione i zapisane na formularzu, pozostaną po przepisaniu zadania u nowego użytkownika. |
Widok konfiguracji
Dodawanie nowej konfiguracji
W celu dodania nowego wpisu należy wcisnąć przycisk "Nowa definicja".
...
Rodzaj przypisania: | Użytkownik | Symbol stanowiska | Przełożony |
Wartość przypisania: | [Użytkownik w systemie] | [Symbol] | - |
Uruchomienie modułu
Należy dodać nowe zadanie zaplanowane w Administracja > Konfiguracja systemu > Zadania zaplanowane.
Można użyć wyszukiwarki i znaleźć zadanie "Uruchamia moduł automatycznego przenoszenia zadań" lub wpisać w "Nazwa klasy" ścieżkę: "com.suncode.plugin.autotasktransfer.scheluedtasks.RunAutoTaskTransfer" i wybrać metodę. Następnie wystarczy określić "Okres powtórzeń" oraz ustawić jako "Zadanie aktywne".
Informacje o Bazie danych
Po wgraniu modułu do systemu zostaną utworzone dodatkowo 2 tabele: att_definition i att_lasttransfer.
...
Druga tabela służy przechowywania informacji o ostatnim przepisaniu zadania. Informacja ta jest ważna ze względu na to żeby drugi raz zadanie nie zostało przepisane, oraz po to że jak nadal przekroczy termin żeby przepisało dalej np do kolejnego przełożonego. Data jest zapisywana w formacie liczbowym Timestamp ( w milisekundach)
Opis zachowania modułu
Kilka uwag co do zachowania się modułu
1.Formularz:
Przed zapisem sprawdza się , czy wymagane pola ("Nazwa procesu", "Zadanie", "Wartość przypisania") są uzupełnione. Z tym, że dla typu "Przełożony" pole "Wartość przypisania" pozostaje puste i zablokowane.
2.Zadanie zaplanowane
Zadanie zaplanowane wczytuje cała tabele konfiguracyjną ("att_definition") i dla każdego wpisu (wiersza) pobiera pasujące zadania. Wyszukuję wszystkie zadania, które mają ten sam processDefId, activityDefId, termin jest przekroczony (czyli minęło X dni od utworzenia zadania lub od ostatniego przepisania zadania) oraz status zdania jest otwarty (oczekuje na uruchomienie, uruchomiony lub otwarte).
Następnie zadanie pobiera listę osób u których jest aktualnie zadanie i będzie je przepisywać do osoby wedle ustawień. Po przepisaniu zapisuje informacje do tabeli "att_lasttransfer" z aktualną datą, aby zadanie nie zostało znowu przepisane. Zadania nie będą przepisane gdy nowy użytkownik jest ten sam co stary użytkownik, gdy użytkownik nie ma żadnego przełożonego, użytkownik nie istnieję, nie ma stanowiska lub nie ma przepisanej osoby do stanowiska. W takim przypadku data w tabeli "att_lasttransfer" zostanie zaktualizowana i poleci stosowna informacje w logach. W momencie wystąpienia błędu podczas przepisywania zadania poleci błąd w logach, zadanie się nie wywali, ale data w tabeli "att_lasttransfer" nie zostanie zaktualizowana, dzięki czemu podczas kolejnego sprawdzania zadanie znowu będzie brane pod uwagę.
Kilka przykładów
Zadanie | Starzy Użytkownicy | Rodzaj przypisania | Wartość Przypisania | Przepisane na |
---|---|---|---|---|
ZadanieA | Admin | Użytkownik | Admin | Admin [Pomija przepisanie] |
ZadanieB | Admin,User1, User2 | Użytkownik | Admin | Admin |
ZadanieC | User1, User2 | Użytkownik | Admin | Admin |
ZadanieD | Admin, User1 | Użytkownik | Admin2 [Użytkownik nie istnieje] | Admin, User [Pomija przepisanie] |
ZadanieE | Admin, User1 | Symbol Stanowiska | Stanowisko1 [Użytkownik User2] | User2 |
ZadanieF | User2 | Symbol Stanowiska | Stanowisko1 [Użytkownik User2] | User2 [Pomija przepisanie] |
ZadanieG | Admin, User1 | Symbol Stanowiska | Stanowisko1 [Brak użytkownika] | Admin, User1 [Pomija przepisanie] |
ZadanieH | Admin, User1 | Symbol Stanowiska | Stanowisko666 [Nie istnieję] | Admin, User1 [Pomija przepisanie] |
ZadanieI | Admin | Przełożony | [Admin nie ma przełożonego ] | Admin [Pomija przepisanie] |
ZadanieJ | User1 | Przełożony | [Admin jest przełożonym] | Admin |
ZadanieK | User2 | Przełożony | [User1, Admin - przełożeni] | User1, Admin |
ZadanieL | User1,User3 | Przełożony | [User1 ma przełożonego Admin User3 ma przełożonego User2] | Admin,User2 |
ZadanieM | User1,User3,User2 | Przełożony | [User1 ma przełożonego Admin, User3 ma przełożonego User2, User2 ma przełożonego User1,Admin] | Admin,User1,User2 |
ZadanieN | User1, User2, User3 | Przełożony | [User1 ma przełożonego Superior1,Superior2, User3 ma przełożonego Superior3] | Superior1, Superior2, User2, Superior3 |
...
Przykłady dla zastępstw
User2 oraz User3 zastępują User1
Warning | ||
---|---|---|
| ||
W przypadku gdy zadanie należy już do jednego z zastępców, to nie zostanie ponownie do niego przepisane. |
Zadanie | Starzy Użytkownicy | Rodzaj przypisania | Wartość Przypisania | Przepisane na |
---|---|---|---|---|
ZadanieA | User1 | Użytkownik | User1 | User1, User2 (wz. User1) User3 (wz. User1) |
ZadanieB | User2 | Użytkownik | User1 | User2, User1, User3 (wz. User1) |
ZadanieC | User3 | Użytkownik | User1 | User3, User1, User2 (wz. User1) |
ZadanieD | Inny | Użytkownik | User1 | User1, User2 (wz. User1) User3 (wz. User1) |
...
JIRA | ||||||||
---|---|---|---|---|---|---|---|---|
|
Modyfikacja rozszerzenia
JIRA | ||||||||
---|---|---|---|---|---|---|---|---|
|
W tym zadaniu zostały zastosowane kilka modyfikacji i rozszerzeń.
- Znika ze strony konfiguracyjnej ilość pokazywanych wierszy w tabeli, zamiast tego brana jest informacja z konfiguracji użytkownika systemowego.
- Na stronie konfiguracyjnej w kolumnie "Wartość przypisania" teraz będzie pojawiać się imię i nazwisko dla użytkownika (jeżeli użytkownik nie posiada wpisanych danych w systemie to wyświetli się login)
- Po udanym przepisaniu zadania do innej osoby, dodaję się automatycznie komentarz do procesu z informacją od jakich osób zostało przepisane zadania na jakie osoby
- Dołożono opcje "Wszystkie procesy", "Wszystkie zadania" w polach odpowiednio "Nazwa procesu", "Zadanie". Opcja ta pozwala na wybranie wszystkich zadań z aktualnego procesu lub ze wszystkich procesów (brane są pod uwagę tylko najnowsze pakiety). W bazie zapisuje się jako "*"
- Do pola "Rodzaj przypisania" doszła nowa opcja Zastępca. Opcja ta pozwala przepisać zadanie do zastępców poszczególnych zadań, ale tylko gdy dana osoba ma zastępstwo w dniu przypisania zadania.
- Rozszerzeni walidacji formularza. Formularz ten wymaga aby wszystkie pola były uzupełnione (oprócz wartości przypisania gdy rodzaj przypisania jest "Przełożony" lub "Zastępca"). Termin nie może mieć wartości ujemnych.
- Kolejność wykonywania konfiguracji od szczegóły do ogółu. Najpierw wykonają się definicje z podanymi procesami i zadaniami, potem konkretny proces, dowolne zadanie. Na końcu dowolny proces i dowolne zadanie.