Skip to end of metadata
Go to start of metadata

Aby móc korzystać z kalendarza procesów, konieczne jest wcześniejsze zainstalowanie wtyczki PCM (Plugin Configuration Manager) w minimalnej wersji 1.0.0, która służy do podglądu i edycji konfiguracji JSON kalendarza procesów. Zmiana w panelu PCM konfiguracji JSON kalendarza procesów nie wymaga restartu wtyczki.

Konfiguracja wtyczki kalendarza procesów odbywa się za pomocą panelu do zarządzania konfiguracjami wtyczek PCM (Plugin Configuration Manager). Aby zmienić parametry konfiguracji trzeba udać się do pola tekstowego w Administracja -> Konfiguracja systemu -> Konfiguracja wtyczek -> Zainstalowane wtyczki -> Plus Calendar Processes. Ukaże się konfiguracja wtyczki o nazwie config (JSON) w postaci pola tekstowego i zmieniamy w nim te parametry, które chcemy zmodyfikować. Po każdej zmianie klikamy w przycisk Zapisz plik.

Po wgraniu wtyczki kalendarza procesów pole tekstowe zostanie wypełnione zawartością pliku konfiguracyjnego JSON, który musi spełniać następujące warunki: 

  • nazwa: configuration.json
  • lokalizacja: <plusworkflow_home_directory>/data/processes-calendar-plugin/configuration.json

Lub być zlokalizowanym w projekcie wtyczki:

  • nazwa: configuration.json
  • lokalizacja: .../resources/configuration.json

Pierwszy poziom konfiguracyjny składa się z trzech elementów:

  • name (string) - nazwa kalendarza widoczna po wejściu w kalendarz. Wartość domyślna: Procesy. Wartość można tłumaczyć za pomocą customMessages.
  • processes (list) - lista procesów, które będą prezentowane na kalendarzu.
  • filters (list) - globalne filtry, za pomocą których można filtrować jednocześnie zdarzenia z kilku definicji procesów.

Pisanie konfiguracji powinno zacząć się od stworzenia obiektu z polem processes będącym listą procesów, które będą mogły być prezentowane na kalendarzu.

{
	"name": "Nazwa kalendarza",
    "processes": [],
	"filters": []
}

Obiekt procesu

  • processDefId (string) - id definicji procesu
  • startDateVariableId (string) - id zmiennej procesu typu Data lub Data i Czas, która będzie określać początek zdarzenia na kalendarzu.
  • endDateVariableId (string) - id zmiennej procesu typu Data lub Data i Czas, która będzie określać koniec zdarzenia na kalendarzu. Jeżeli usatwiamy ten parametr to nie powinniśmy ustawiać już parametru durationInMinutes.
  • durationInMinutes (integer) - liczba minut ile trwa zdarzenie. Jeżeli ustawiamy tę wartość, to nie powinien być ustawiany parametr endDateVariableId.
  • management (string) - wartość określająca w jaki sposób ma być wyświetlany formularz zadania kliknięty z poziomu kalendarza. Dostępne opcje (wielkość znaków ma znaczenie):
    • CALENDAR - formularz zadania pojawia się bezpośrednio w okienku na kalendarzu. Jest to uproszczony formularz, który nie obsługuje tabel dynamicznych oraz akcji formularza.
    • SYSTEM - formularz zadania wyświetlany jest na standardowej stronie systemu z formularzem. Należy użyć tej opcji, gdy formularz posiada tabelę dynamiczną oraz akcje.
    • DISABLED (od wersji 1.0.3) - wyświetlanie formularza zadania oraz tworzenie nowych zdarzeń z poziomu kalendarza jest zablokowane.
  • ddActionNames (list) - kalendarz umożliwia przeciąganie myszką istniejących zdarzeń w celu zmiany czasu rozpoczęcia i zakończenia. Jeżeli chcemy, aby było to odnotowane w historii procesu, to w tym parametrze możemy ustalić dla każdego zadania, jakim przyciskiem akceptacyjnym ma zostać zadanie zaakceptowane z nowym przedziałem czasowym ustawionym w zmiennych zdefiniowanych w parametrach: startDateVariableIdendtDateVariableId. Jeżeli nie chcemy, aby było to odnotowane w historii procesu, to nie konfigurujemy akcji dla danego zadania. Wtedy daty zostaną zaktualizowane bezpośrednio w tym zadaniu.
  • colors (obejct) - pozwala definiować kolory zdarzeń na kalendarzu w zależności od statusu zadania.
  • eventRendererTpl (object) - parametr wymagany, odpowiada za konfigurację treści wyświetlanej bezpośrednio na zdarzeniu. Do budowania treści można korzystać ze zmiennych procesu umieszczając ich id w klamrach - {zmienna1}  oraz dostępne są predefiniowane znaczniki, które należy umieszczać w podwójnych klamrach:
    • {{start}} - czas rozpoczęcia zdarzenia,
    • {{end}} - czas zakończenia zdarzenia.
    Przykładowy szablon: {{start}} - {{end}} {rodzaj_wniosku}
  • createRestrictions (object) - obiekt określający ograniczenia na tworzenie nowych zdarzeń z poziomu kalendarza. Możemy na przykład określić, że zdarzenia mogą być tworzone tylko w dni robocze.
  • tooltipVariables (list) - lista id zmiennych z procesu, które mają pojawić się w tooltipie razem z wartościami po najechaniu myszką na zdarzenie na kalendarzu. Jeżeli parametru w ogóle nie będzie w konfiguracji, to wszystkie zmienne będą w tooltipie. Zmienne tabelaryczne i zmienne ukryte są pomijane.

  • criteria (list) - umożliwia zdefiniowanie statycznych kryteriów wyszukiwania na podstawie zmiennych procesów. Wyszukując zdarzenia do wyświetlenia w kalendarzu, warunki zdefiniowane w tym polu będą zawsze dodawane do zapytania wyszukującego. Warunki łączone są operatorem logicznym iloczyn.
  • filters (list) - lista id zmiennych procesu, po których można filtrować zdarzenia w kalendarzu.

Obiekt ddActionNames

  • activityDefId (string) - id definicji zadania
  • actionName (string) - id przycisku akceptacyjnego w zadaniu

Obiekt koloru (colors)

  • open (string) - kolor zadań otwartych. Wartość powinna być wyrażona jako wartość hexadecymalna według standardu CSS.
  • completed (string) - kolor zadań zakończonych. Wartość powinna być wyrażona jako wartość hexadecymalna według standardu CSS.

Obiekt eventRendererTpl

  • month (string) - szablon dla zdarzeń na widoku miesięcznym,
  • week (string) - szablon dla zdarzeń na widoku tygodniowym,
  • day (strung) - szablon dla zdarzeń na widoku dziennym.

Obiekt createRestrictions

  • workingDayCreation (boolean) - określa, czy zdarzenia można tworzyć w dni robocze (true -tak, false - nie). Wartość domyślna - true.
  • saturdayCreation (boolean) - określa, czy zdarzenia można tworzyć w soboty (true -tak, false - nie). Wartość domyślna - true.
  • holidayCreation (boolean) - określa, czy zdarzenia można tworzyć w święta (true -tak, false - nie). Wartość domyślna - true.

Obiekt kryteriów (criteria)

  • variableId (string) - id zmiennej procesu,
  • comparator (string) - rodzaj porównania. Dostępne opcje:
    • EQ - równa się (między wartościami jest operator logiczny suma)
    • NOTEQ - nie równa się (między wartościami jest operator logiczny iloczyn)
    • LIKE - jak (między wartościami jest operator logiczny suma) - wyszukane zostaną wartości pasujące do wzorca np. dla wartości 'admin' znalezione zostanie 'admin', 'administrator'. Opcja ta uwzględnia systemowy parametr ExactSearch
    • ILIKE - działa tak samo jak LIKE tylko z pominięciem wielkości znaków
    • NOTLIKE - nie jak (między wartościami jest operator logiczny iloczyn) - tak samo jak LIKE tylko znalezione zostaną wartości nie pasujące do wzorca
    • NOTILIKE - działa tak samo jak NOTLIKE tylko z pominięciem wielkości znaków
  • values (list) - lista wartości do porównania. Od wersji 1.0.5 istnieje możliwość używania zmiennej kontekstowej {userName}. W jej miejsce podstawiony zostanie login aktualnie zalogowanego użytkownika.

    Uwaga

     Porównania LIKE, ILIKE, NOTLIKE NOTILIKE działają tylko dla zmiennych tekstowych.

Obiekt globalnych filtrów (filters)

  • id (string) - identyfikator filtra,
  • name - nazwa filtra wyświetlana w kalendarzu. Wartość można tłumaczyć za pomocą customMessages.
  • mappings - mapowanie na wybrane zmienne z wybranych procesów. Jako klucz podawane jest id definicji procesu, a jako wartość id zmiennej procesu.

    "id": "wnioskujacy",
    "name": "Wnioskujący",
    "mappings": {
        "proces_uropowy": "wnioskujacy",
        "proces_delegacji": "pracownik"
    }


 

Przykładowy plik konfiguracyjny
{
    "processes": [{
        "processDefId": "nieobecnosc",
        "startDateVariableId": "data_rozpoczecia",
        "endDateVariableId": "data_zakonczenia",
        "management": "CALENDAR",
        "colors": {
            "open": "#e8d9cb",
            "completed": "#d3ffd8"
        },
        "ddActionNames": [{
            "activityDefId": "wniosek_o_nieobecnosc",
            "actionName": "akcept"
        }],
        "eventRendererTpl": {
            "month": "{{start}} - {{end}} {rodzaj_wniosku}",
            "week": "Nieob",
            "day": "Nieob"
        },
        "filters": ["wniosek_dla"],
        "createRestrictions": {
            "workingDayCreation": true,
            "saturdayCreation": false,
            "holidayCreation": false
        }
    },{
        "processDefId": "wniosek_url",
        "startDateVariableId": "data_rozpoczecia",
        "durationInMinutes": "60",
        "management": "CALENDAR",
        "colors": {
            "open": "#e8d9cb",
            "completed": "#d3ffd8"
        },
        "eventRendererTpl": {
            "month": "{{start}} - {{end}} Urlop",
            "week": "Urlop",
            "day": "Urlop"
        },
        "criteria": [{
            "variableId": "status",
            "comparator": "NOTEQ",
            "values": ["Anulowany"]
        }]
    }],
    "filters": [{
        "id": "wnioskujacy",
        "name": "Wnioskujący",
        "mappings": {
            "proces_uropowy": "wnioskujacy",
            "proces_delegacji": "pracownik"
        }
    }]
}
Przykładowa konfiguracja



  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.