Wykres urlopowy Gantta na formularzu Modern

Facebooktwitterpinterestlinkedinmail
Dotyczy wersji 2022.1.x i powyżej, autor: Daniel Półchłopek

 

Wprowadzenie

Wykres Gantta dotychczas dostępny był wyłącznie na formularzu SharePoint lub jako specjalny raport. W wersji BPS 2020 została dodana możliwość przedstawienia wykresu w formie atrybutu na formularzu Modern – pozwala to podejrzeć grafik pracowników podczas edycji elementu na formularzu.

Działanie aplikacji

W pierwszym kroku Kierownik linii przydziela zadania pracownikom, uzupełnia niezbędne dane (takie jak nr linii czy rodzaj produkcji) i startuje element.

 

Rys. 1. Przykładowy element aplikacji

 

Na kroku Active dostępne są ścieżki: "Save line workers" (do zapisania zmian), "Deactivate production" (w przypadku wyłączenia linii) oraz "Halt production" (do oznaczenia przerw w produkcji).

 

Rys. 2. Wykres Gantta przedstawiający przypisanych do danej linii

 

Poniżej przedstawiono finalny wygląd aplikacji wraz z listą przerw w działaniu (data i godzina zatrzymania i wznowienia) oraz wykresem Gantta.

 

Rys. 3. Lista pozycji Downtimes pokazuje przerwy w działaniu linii produkcyjnej

 

Opis obiegów aplikacji

Obieg Production Line Workflow służy nadzorowaniu linii produkcyjnej, na przykład w fabryce. Każdy element tego obiegu reprezentuje jedną linię – każda z nich ma swojego kierownika, który może przydzielić pracownikom zajęcie i określić czas jego trwania (w dniach). Dodatkowe ścieżki w obiegu pozwalają na zatrzymanie lub całkowitą dezaktywację taśmy produkcyjnej.

Drugi obieg jest pomocniczy i zasila wykres Gantta – jego elementy reprezentują poszczególne zadania pracowników przy danym stanowisku (linii).

Schemat obiegu głównego

 

Rys. 4. Schemat głównego obiegu aplikacji

 

Podczas rejestracji kierownik wypełnia niezbędne informacje i dodaje dyżury pracowników. Gdy linia produkcyjna jest Aktywna, kierownik może edytować dyżury pracowników (a następnie zapisać), dezaktywować linię (np. na czas dłuższego zatrzymania), albo zatrzymać – przechodząc ścieżką do kroku Halted, system automatycznie rejestruje czas zatrzymania, a przy zakończeniu przestoju wymagane jest podanie przyczyny.

Proces pomocniczy/urlopowy i jego konfiguracja

 

Rys. 5. Schemat obiegu pomocniczego aplikacji

 

Każdy wykres Gantta musi być podpięty do procesu urlopowego. Szczególną uwagę należy zwrócić na źródła danych tego procesu. W źródle Typy urlopów muszą znajdować się wszystkie rodzaje urlopów (a w przypadku opisywanej aplikacji wszystkie rodzaje aktywności wyświetlanych na wykresie Gantta).

 

Rys. 6. Zapytanie zwracające typy urlopów

 

Niezwykle istotnym jest, aby nazwy zwracanych kolumn były takie jak na zapytaniu powyżej:

  • VACType_ID –> ID urlopu/zajęcia (dowolne, ale musi być unikalne) *wymagane
  • VACType_ColorID –> określa kolor paska na wykresie Gantta *wymagane
  • VACType_Name –> Nazwa urlopu/zajęcia *wymagane
  • VACType_Description –> Opis urlopu/aktywności widoczny po najechaniu nań myszką na wykresie Gantta *niewymagane
  • VACType_TakeAvailableDays –> określa czy urlop/aktywność powinna zabierać dostępne dni urlopu *niewymagane

Źródło danych do Typów urlopów może być dowolne tak długo, jak nazwy kolumn są identyczne do powyższymi.

Konfiguracja obiegu głównego

Oprócz atrybutów zawierających informacje o linii produkcyjnej (Line number, Product, Line supervisor) proces zawiera dwie listy pozycji. Lista downtimes jest automatycznie wypełniana akcją Zmień wartość listy pozycji podczas przejścia ścieżką Halt production. Ścieżka prowadzi do kroku Halted, a przy ponownej aktywacji kierownik musi uzupełnić powód zatrzymania.

 

Rys. 7. Uzupełnienie pola z przyczyną zatrzymania linii na kroku Deactivated

 

Druga lista pozycji zawiera listę osób zatrudnionych, którym kierownik wyznaczył dyżury poprzez wybór pracownika i dodanie długości oraz rodzaju wykonywanej pracy.

 

Rys. 8. Pracownicy, którym przydzielono zadania do linii pokazują się na wykresie Gantta po zapisaniu elementu

 

Na ścieżce Save line workers znajdują się dwie akcje: Updating _Line workers ID (zapisująca ID pracowników – przedstawiona dalej w artykule – rys. 13) oraz Start activity workflows.

 

Rys. 9. Konfiguracja akcji startowania obiegów dla każdego pracownika przypisanego do linii

 

Akcja Start activity workflows startuje obiegi dla każdego pracownika na liście pozycji.

 

Rys. 10. Zapytanie przekazujące dane do startowego podobiegu

 

Zapytanie zwraca wartości jako kolumny odpowiadające tym z podobiegu docelowego – Absence request w procesie Employee activities.

Ograniczenia DET_WFID = 'Instance ID' oraz DET_WFCONID = 'Production line workers' służą wskazaniu listy pozycji z pracownikami, natomiast poniższy warunek wyklucza dyżury, dla których podobieg został już uruchomiony.

 

Rys. 11. Ograniczenie wyłączające dyżury, dla których podobieg został już uruchomiony

 

Konfiguracja wykresu Gantta

Po wstawieniu atrybutu typu Absence Chart należy przejść do zaawansowanej konfiguracji. W zakładce Basic wybierany jest proces zasilający wykres – w tym wypadku Employee activities. Możemy też wybrać kroki pokazywane na wykresie.

 

Rys. 12. Pierwsza zakładka konfiguracji atrybutu pokazującego wykres Gantta

 

Następnym krokiem jest wskazanie pracowników pokazywanych na wykresie. Tak jak w przypadku raportu Gantta można wybrać Zatwierdzającego i jego podwładnych, osobę, która bierze urlop i jej zespół, lub – tak jak w przypadku opisywanej aplikacji – wskazać ID osoby/osób, które mają znaleźć się na wykresie.

 

Rys. 13. Druga zakładka konfiguracji atrybutu pokazującego wykres Gantta

 

Aby wskazać ID kierownika linii oraz pracowników dyżurnych utworzono atrybut _Line workers ID. Jeśli potrzebne jest wskazanie więcej niż jednej osoby, trzeba przekazać stringa z ID pracowników oddzielonych średnikiem ;

W tym celu dodana została akcja zmiany wartości pola (do ID kierownika linii dołączany jest średnik) oraz funkcja Collection zwracająca wartości z zapytania SQL oddzielone średnikiem.

 

Rys. 14. Reguła wybierająca pracowników do wyświetlenia znajduje się na ścieżce Save line workers

 

Zapytanie SQL przedstawione poniżej wybiera ID pracowników liniowych.

 

Rys. 15. Zapytanie SQL zwracające pracowników do wartości domyślnej uzupełnianej tak samo jak na akcji Save line workers

 

W następnej zakładce wyznaczony zostanie okres czasu, dla którego grafik ma się wyświetlać – do wyboru jest cały rok, okres czasu od aktualnej daty do końca roku kalendarzowego oraz określona liczba miesięcy wstecz i w przód.

 

Rys. 16. Trzecia zakładka konfiguracji atrybutu pokazującego wykres Gantta

 

Kolejna zakładka pozwala na konfigurację dodatkowych ustawień. Możliwe jest pokazanie zakresu dat, które grafik wyświetla, klucza (legendy informującej o dostępnych typach urlopów/aktywności), nazwy wykresu Gantta, wybór domyślnego rozwinięcia struktury podległościowej danego pracownika czy wybór pomiędzy zwykłą a uproszczoną prezentacją.

 

Rys. 17. Czwarta zakładka konfiguracji atrybutu pokazującego wykres Gantta

 

Ostatnia zakładka służy wskazaniu, które kolumny podsumowujące mają być widoczne na wykresie. Dla typowych zastosowań urlopowych warto wyświetlać liczbę dostępnych oraz użytych dni urlopowych.

 

Rys. 18. Trzecia zakładka konfiguracji atrybutu pokazującego wykres Gantta