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