Obieg dokumentów - Instrukcja obsługi programu R2płatnik, R2płatnikPRO, R2płatnikSBO RESET2 Oprogramowanie
Strona używa plików cookies (tzw. ciasteczka) do przechowywania i uzyskiwania dostępu do tej informacji w celach funkcjonalnych, statystycznych i reklamowych.
Użytkownik wyraża zgodę oraz określa warunki przechowywania lub uzyskiwania dostępu do informacji zawartej w plikach cookies za pomocą ustawień przeglądarki.
Dowiedz się więcej odwiedzając strony:

Polityka Prywatności    Regulamin sklepu      Jak wyłączyć cookies?

Przejdź do serwisu

Instrukcja obsługi R2płatnik



Obieg dokumentów

Obieg dokumentów

Parametryzacja systemu

Obieg dokumentów polega na wysyłaniu maila do określonego odbiorcy w wyniku jakiegoś działania w systemie. Najczęściej jest to zatwierdzenie dowolnego rekordu, w którym dokonano zmian w pewnych polach. Docelowy mail może zawierać informacje o konieczności zmodyfikowania kolejnych pól w tabelach, które to modyfikacje mogą być realizowane np. przez moduł WWW. Modyfikacje tych pól generują wysyłanie następnego maila do innego odbiorcy. Powoduje to powstanie łańcucha powiadomień kolejnych odbiorców o działaniu jakiegoś procesu w systemie.
Dobrym przykładem może być wysyłanie przez pracownika wniosku urlopowego do przełożonego, który może ten wniosek zatwierdzić lub odrzucić, a następnie wysłać zwrotne powiadomienie do pracownika składającego wniosek. W tym konkretnym przypadku pracownik wpisuje do karty urlopowej przez moduł WWW nowy rekord z urlopem planowanym, i po jego zatwierdzeniu wysyła się mail na adres przełożonego z informacją, że wniosek został złożony. W treści maila zostają wygenerowne dwie akcje, które może podjąć przełożony - albo zatwierdzić wniosek, albo go odrzucić. Akcje mają formę linków do strony obsługiwanej przez moduł WWW. Pierwsza zmienia w rekordzie wystawionym przez pracownika jako wniosek status na 'zatwierdzony', druga na 'odrzucony'. Po zatwierdzeniu zmian w rekordzie wysyła się mail zwrotny do pracownika z informacją o podjętej akcji. Na tym łańcuch obiegu dokumentów się kończy.

Standardowo w programie zdefiniowane ścieżki obiegu dokumentów dostępne są po wciśnięciu prawego przycisku myszy:

  • Wstaw obieg urlopów - zatwierdzenie i odrzucenie wniosku urlopowego - patrz PORTAL DLA PRACOWNIKÓW - Wnioski urlopowe przez internet

  • Wstaw obieg urlopów bezpłatnych - zatwierdzenie i odrzucenie wniosku o urlop bezpłatny z ewidencji nieobecności Portalu dla pracowników

  • Wstaw obieg delegacji - zatwierdzenie i odrzucenie polecenia wyjazdu oraz zatwierdzenie i odrzucenie rozliczenia delegacji - patrz PORTAL DLA PRACOWNIKÓW - Zdalne rozliczanie delegacji

  • Wstaw obieg karty pracy - zatwierdzenie i odrzucenie wniosków z karty pracy (polecenia wykonania pracy, wnioski o wykorzystanie czasu wolnego itp.)

  • Wstaw obieg pracy zdalnej - zatwierdzenie i odrzucenie wniosku o pracę zdalną

  • Wstaw obieg szkoleń - zatwierdzenie i odrzucenie zapisu na szkolenia

  • Wstaw obieg świadczeń socjalnych - zatwierdzenie i odrzucenie wniosku o świadczenia socjalne

  • Wstaw obieg komunikatów - zapoznanie się z opublikowanym komunikatem dla pracownika

  • Wstaw obieg zgód RODO - powiadomienie pracownika o wprowadzeniu nowego wpisu w ewidencji zgód RODO, że należy wyrazić zgodę w portalu dla pracowników na przetwarzanie danych w określonym celu

  • Wstaw obieg PPK - powiadomienie przełożonego o wprowadzeniu przez pracownika w portalu dla pracowników zgłoszenia, zmiany lub rezygnacji z PPK z możliwością zatwierdzenia lub odrzucenia tego wpisu

  • Wstaw obieg haseł pracowników - informacja dla pracownika o wprowadzeniu lub zmianie hasła do Logowania przez internet

  • Wstaw obieg zmiany danych - informacja do przełożonego lub działu HR o wnioskwaniu zmiany danych z możliwością ich automatycznego uwzględnienia - patrz PORTAL DLA PRACOWNIKÓW - Wnioski o zmianę danych

  • Wstaw obieg umów o pracę - informacja do przełożonego przełożonego lub działu HR o proponowanej przez przełożonego zmianie angażu (np. podwyżce) wraz z możliwością zdalnej akceptacji - patrz PORTAL DLA PRACOWNIKÓW - Wnioski o zmianę angaży

UWAGA. Tylko aktywne elementy obiegu dokumentów powodują akcję w postaci wysłania e-maila. Po wstawieniu dodatkowych elementów obiegu należy odpowiednio ustawić opcję Aktywny na zakładce Parametry we wszystkich pozycjach.

Aby zdefiniować jakiś element łańcucha obiegu dokumentów należy z Menu-Ustawienia, wybrać Obieg dokumentów i wypełnić następujące pola poniżej.

Na zakładce Wiadomość:

  • Nazwa - unikalna nazwa nowego elementu w łańcuchu obiegu dokumentów

  • Tabela - dla jakiej tabeli ma być wygenerowny mail po zatwierdzeniu rekordu (patrz Lista modułów danych i tabel)

  • Warunek - mail będzie wysyłany tylko wtedy, gdy będzie spełniony zadany warunek

  • Pytanie - przed wysłaniem maila system zada pytanie

  • Rodzaj - można wybrać E-mail - zostanie wysłany mail z powiadomieniem lub E-mail/WWW - mail będzie zawierał akcje (bezpośrednie linki), które może podjąć odbiorca w celu kontynuacji łańcucha obiegu
    UWAGA. Zdefiniowane akcje, czyli linki będą zawarte w treści e-maila tylko wtedy, jeśli określimy adres URL wywołania modułu WWW (w menu Ustawienia - Środowisko na zakładce Inne).

  • Tytuł - tytuł wysyłanego maila

  • Treść - treść wysyłanego maila

  • E-mail - adres odbiorcy maila
    UWAGA. E-maile będą wysyłane z aplikacji tylko wtedy, jeśli określimy parametry serwera poczty SMTP (w menu Ustawienia - Środowisko na zakładce Internet) dla każdego użytkownika oddzielnie. Szczególnie należy określić te parametry dla użytkownika ADMIN, żeby e-maile mogły być wysyłane z modułu WWW.

  • E-mail DW - adres odbiorcy maila DW
    UWAGA. Jeśli użyjemy {FIRMY.#EmailDW} to mail zostanie pobrany z parametrów firmy z zakładki Kadry

  • Załącznik - można załączyć dowolny załączny dokument

  • Komunikat - po wysłaniu maila zostanie wyświetlony komunikat

Na zakładce Akcje:

Zakładka ta jest widoczna tylko dla rodzaju E-mail/WWW. Można zdefiniować wiele akcji, a w każdej z nich następujące informacje (jedna akcja może zmienić wartości 3 pól tabeli):

  • Nazwa - unikalna nazwa akcji

  • Treść - opis działania akcji

  • Pole 1 - nazwa pierwszego pola w tabeli, które akcja ma zmienić (patrz Lista modułów danych i tabel)

  • Wartość 1 - wartość na jaką trzeba zmienić Pole 1

  • Pole 2 - nazwa drugiego pola w tabeli, które akcja ma zmienić

  • Wartość 2 - wartość na jaką trzeba zmienić Pole 2

  • Pole 3 - nazwa trzeciego pola w tabeli, które akcja ma zmienić

  • Wartość 3 - wartość na jaką trzeba zmienić Pole 3

  • SQL - dodatkowe zapytanie SQL, które można wykonać po zakończeniu danej akcji

  • Komunikat - komunikat, który zostanie wyświetlony po zakończeniu akcji

UWAGA. Żeby linki z akcjami pojawiły się w e-mailu z wnioskiem to należy określić Adres URL wywołania portalu na zakładce KONFIGURACJA w ustawieniach środowiska modułu WWW - patrz Udostępnianie przez internet.

Na zakładce Parametry:

  • Pokazuj okno wysyłania maila - czy przed wysłaniem maila pokazać dodatkowe okno z adresem, tytułem i treścią maila

  • Aktywny - włącza/wyłącza definiowany element obiegu dokumentów

Działanie elementów obiegu dokumentów opiera się na wyzwalaczach typu AfterPost, które są uruchamiane tylko w pewnych warunkach (definiowanych jako Warunek) np. podczas zmiany wartości niektórych pól. Definicje elementów obiegu dokumentów opierają się na zapytaniach SQL z wykorzystaniem wewnętrznych symboli dostępu do tabel i pól aplikacji. Dwuklik myszy na większości pól definicji powoduje otwarcie okna wygodnego edytora zapytań SQL. Przed przystąpieniem do definiowania elementów obiegu dokumentów zaleca się przeczytanie całego rozdziału Obiekty użytkownika, a zwłaszcza podrozdziału Wyzwalacze użytkownika, oraz dobrze jest zapoznać się z przykładem wyzwalaczy. Poniżej zamieszczony jest przykład łańcucha obiegu dokumentów.

Przykład

Łańcuch obiegu dokumentów składa się z 3 elementów: wniosek urlopowy, zatwierdzenie wniosku i odrzucenie wniosku.

Wniosek urlopowy

  • Tabela - KARTA URLOPOWA - ten element działa na tej właśnie tabeli

  • Warunek -
    {Status}=1 and <API>=2
    - jesli pole Status ma wartość 1 (urlop planowany) i wywołanie tego wyzwalacza odbywa się z modułu WWW; tzn. mail z wnioskiem zostanie wysłany w momencie wprowadzania wniosku przez pracownika z modułu WWW, a nie prze użytkownika w aplikacji

  • Pytanie -
    if {AKTUALNE ZATRUDNIENIE.X_IPrzelozony}>0 select 'Wysłać e-mail do przełożonego z wnioskiem urlopowym?' else select 'Wysłać e-mail do kierownika działu z wnioskiem urlopowym?'
    - tutaj mamy warunek,czy mail z wnioskiem ma być wysłany do przełożonego, czy do kierownika (jeśli w tabeli AKTUALNE ZATRUDNIENIE pole X_IPrzelozony jest wypełnione)

  • Rodzaj - E-mail/WWW - ponieważ ten mail będzie zawierał akcje, które ma podjąć odbiorca maila (zatwierdzić albo odrzucić)

  • Tytuł -
    Wniosek urlopowy - {PRACOWNICY.#Nazwisko} {PRACOWNICY.#Imie}
    - z tabeli PRACOWNICY pola Imię i Nazwisko

  • Treść -
    declare @s varchar(100)
    if {AKTUALNE ZATRUDNIENIE.X_IPrzelozony}>0
    select @s='przełożonego '+p.[Nazwisko]+' '+p.[Imie] from PRACOWNK p where (p.X_I={AKTUALNE ZATRUDNIENIE.X_IPrzelozony})
    else select @s='kierownika działu '+p.[Nazwisko]+' '+p.[Imie] from DZIAL d LEFT JOIN PRACOWNK p ON p.X_I=d.X_IPracownika where (d.X_I={AKTUALNE ZATRUDNIENIE.X_IDzial})
    select '{FIRMY.#Nazwa}
    Pracownik {PRACOWNICY.#Nazwisko} {PRACOWNICY.#Imie} złożył wniosek na urlop {#R_DNIA} w okresie od {#OD} do {#DO} (ilość dni roboczych: {#IL_GODZ} ({#N_IL_GODZ}), pozostało dni: {#POZOSTALO_GODZ} ({#N_POZOSTALO_GODZ})).
    Wniosek oczekuje na zatwierdzenie przez '+@s+'.'

    - najpierw należy sprawdzić, czy pracownik ma przełożonego, czy kierownika, następnie podstawić pod zmienną @s odpowiednie pola z nazwikiem i imieniem przełożonego lub kierownika. Potem konstruujemy właściwą treść, w której należy zawrzeć nazwę firmy {FIRMY.#Nazwa}, dane pracownika {PRACOWNICY.#Nazwisko} ,rodzaj urlopu {#R_DNIA} , jego termin {#OD} {#DO} oraz ile limitu pozostało {#POZOSTAŁO_GODZ}

  • E-mail -
    if {AKTUALNE ZATRUDNIENIE.X_IPrzelozony}>0
    select CASE WHEN h.Email_sluzb<>'' THEN h.Email_sluzb else a.K_E_mail END
    from PRACOWNK p
    left join HISTORIA h ON (p.X_I=h.X_IPracownik)AND((h.AktZatrudnienie=1)AND(h.X_Default=1))
    left join ADRES a ON a.X_IPracownik=h.X_IPracownik
    where (p.X_I={AKTUALNE ZATRUDNIENIE.X_IPrzelozony})
    else
    select CASE WHEN h.Email_sluzb<>'' THEN h.Email_sluzb else a.K_E_mail END
    from DZIAL d
    left join PRACOWNK p ON p.X_I=d.X_IPracownika
    left join HISTORIA h ON (p.X_I=h.X_IPracownik)AND((h.AktZatrudnienie=1)AND(h.X_Default=1))
    left join ADRES a ON a.X_IPracownik=h.X_IPracownik
    where (d.X_I={AKTUALNE ZATRUDNIENIE.X_IDzial}),

    - dość skomplikowane zapytanie, które pobiera z bazy danych adres e-mail przełożonego lub kierownika - albo ze względu na {AKTUALNE ZATRUDNIENIE.X_IPrzelozony} z tabeli PRACOWNK (przełożony), albo ze względu na {AKTUALNE ZATRUDNIENIE.X_IDzial} - z tabeli DZIAL (kierownik)

  • Komunikat -
    if {AKTUALNE ZATRUDNIENIE.X_IPrzelozony}>0 select 'Wysłano e-mail do przełożonego z wnioskiem urlopowym' else select 'Wysłano e-mail do kierownika działu z wnioskiem urlopowym'
    - komunikat; w treści albo do przełozonego albo kierownika w zależności od {AKTUALNE ZATRUDNIENIE.X_IPrzelozony}

Wniosek urlopowy zawiera akcje TAK na zatwierdzenie i NIE na odrzucenie. Akcja TAK jest zdefiniowana następująco:
  • Treść -
    Żeby zatwierdzić wniosek urlopowy kliknij
    - tekst opisujący działanie akcji

  • Pole 1 - STATUS

  • Wartość 1 - 0 - zmiana pola STATUS na 0 zatwierdzi wniosek

  • Pole 2 -Zatwierdzil_wniosek

  • Wartość 2 -
    if {AKTUALNE ZATRUDNIENIE.X_IPrzelozony}>0 select p.[Nazwisko]+' '+p.[Imie] from PRACOWNK p
    where (p.X_I={AKTUALNE ZATRUDNIENIE.X_IPrzelozony})
    else select p.[Nazwisko]+' '+p.[Imie] from DZIAL d left join PRACOWNK p ON p.X_I=d.X_IPracownika
    where (d.X_I={AKTUALNE ZATRUDNIENIE.X_IDzial})

    - pole Zatwierdzil_wniosek otrzyma wartość jak w zapytaniu - albo nazwisko i imię przełożonego albo kierownika

  • Pole 3 - Data_zatw

  • Wartość 3 - <NOW> - pole Data_zatw otrzyma wartość bieżącej daty

  • Komunikat -
    declare @s varchar(100)
    if {AKTUALNE ZATRUDNIENIE.X_IPrzelozony}>0
    select @s='przełożonego '+p.[Nazwisko]+' '+p.[Imie] from PRACOWNK p where (p.X_I={AKTUALNE ZATRUDNIENIE.X_IPrzelozony})
    else
    select @s='kierownika działu '+p.[Nazwisko]+' '+p.[Imie] from DZIAL d left join PRACOWNK p ON p.X_I=d.X_IPracownika where (d.X_I={AKTUALNE ZATRUDNIENIE.X_IDzial})
    select 'Wniosek urlopowy został zatwierdzony przez '+@s

    - komunikat, że wniosek został zatwierdzony przez przełożonego albo kierownika

Akcja NIE jest zdefiniowana bardzo podobnie, z tym że tekst 'zatwierdzony' został zastąpiony przez 'odrzucony', a pole STATUS otrzymuje wartość 2

Zatwierdzenie wniosku urlopowego

  • Tabela - KARTA URLOPOWA - ten element działa na tej właśnie tabeli

  • Warunek -
    {$Status}=1 and {Status}=0 and (<API>=0 or <API>=2)
    - jesli pole Status miało przed edycją wartość 1, a obecnie ma wartość 0 (czyli urlop był wnioskowany, a następnie zatwierdzony) i wywołanie tego wyzwalacza odbywa się z aplikacji lub modułu WWW (kierownik może zatwierdzić wniosek zarówno z modułu WWW jak i bezpośrednio z aplikacji).

  • Pytanie -
    Wysłać e-mail do pracownika o zatwierdzeniu wniosku urlopowego?
    - tekst pytania

  • Rodzaj - E-mail - ponieważ ten mail nie będzie zawierał akcji

  • Tytuł -
    Wniosek urlopowy - {PRACOWNICY.#Nazwisko} {PRACOWNICY.#Imie}
    - z tabeli PRACOWNICY pola Imię i Nazwisko

  • Treść -
    select '{FIRMY.#Nazwa}
    Pracownik {PRACOWNICY.#Nazwisko} {PRACOWNICY.#Imie} złożył wniosek na urlop {#R_DNIA} w okresie od {#OD} do {#DO} (ilość dni roboczych: {#IL_GODZ} ({#N_IL_GODZ}), pozostało dni: {#POZOSTALO_GODZ} ({#N_POZOSTALO_GODZ})).
    Wniosek urlopowy został zatwierdzony przez {#Zatwierdzil_wniosek}.

    - w treści zawarte są: nazwa firmy {FIRMY.#Nazwa}, dane pracownika {PRACOWNICY.#Nazwisko} ,rodzaj urlopu {#R_DNIA} , jego termin {#OD} {#DO} , ile limitu pozostało {#POZOSTAŁO_GODZ} oraz komunikat o zatwierdzeniu wniosku {#Zatwierdzil_wniosek}

  • E-mail -
    if {AKTUALNE ZATRUDNIENIE.Email_sluzb}<>'' select {AKTUALNE ZATRUDNIENIE.Email_sluzb} else select {ADRESY.K_E_mail}
    - mail zostanie wysłany albo na adres służbowy {AKTUALNE ZATRUDNIENIE.Email_sluzb} albo na prywatny {ADRESY.K_E_mail}

Odrzucenie wniosku urlopowego

  • Tabela - KARTA URLOPOWA - ten element działa na tej właśnie tabeli

  • Warunek -
    {$Status}=1 and {Status}=2 and (<API>=0 or <API>=2)
    - jesli pole Status miało przed edycją wartość 1, a obecnie ma wartość 2 (czyli urlop był wnioskowany, a następnie odrzucony) i wywołanie tego wyzwalacza odbywa się z aplikacji lub modułu WWW (kierownik może zatwierdzić wniosek zarówno z modułu WWW jak i bezpośrednio z aplikacji).

  • Pytanie -
    Wysłać e-mail do pracownika o odrzuceniu wniosku urlopowego?
    - tekst pytania

  • Rodzaj - E-mail - ponieważ ten mail nie będzie zawierał akcji

  • Tytuł -
    Wniosek urlopowy - {PRACOWNICY.#Nazwisko} {PRACOWNICY.#Imie}
    - z tabeli PRACOWNICY pola Imię i Nazwisko

  • Treść -
    select '{FIRMY.#Nazwa}
    Pracownik {PRACOWNICY.#Nazwisko} {PRACOWNICY.#Imie} złożył wniosek na urlop {#R_DNIA} w okresie od {#OD} do {#DO} (ilość dni roboczych: {#IL_GODZ} ({#N_IL_GODZ}), pozostało dni: {#POZOSTALO_GODZ} ({#N_POZOSTALO_GODZ})).
    Wniosek urlopowy został odrzucony przez {#Zatwierdzil_wniosek}.

    - w treści zawarte są: nazwa firmy {FIRMY.#Nazwa}, dane pracownika {PRACOWNICY.#Nazwisko} ,rodzaj urlopu {#R_DNIA} , jego termin {#OD} {#DO} , ile limitu pozostało {#POZOSTAŁO_GODZ} oraz komunikat o odrzuceniu wniosku {#Zatwierdzil_wniosek}

  • E-mail -
    if {AKTUALNE ZATRUDNIENIE.Email_sluzb}<>'' select {AKTUALNE ZATRUDNIENIE.Email_sluzb} else select {ADRESY.K_E_mail}
    - mail zostanie wysłany albo na adres służbowy {AKTUALNE ZATRUDNIENIE.Email_sluzb} albo na prywatny {ADRESY.K_E_mail}

UWAGI

1. Podczas używania tagów (np.{FIRMY.Nazwa}), możemy korzystać ze znaków specjalnych, takich jak - #, $.

  • # - wstawia wartość danego pola bez apostrofów (' ')

  • $ - wstawia poprzednią wartość danego pola sprzed zmiany

  • Pozostawienie nazwy kolumny bez w/w przedrostków wstawi wartość danego pola w apostrofach (' '), przeciwnie do zastosowania #.

Przykład:
{FIRMY.#Nazwa} zwraca wartość: Przykładowa_Firma
{FIRMY.Nazwa} zwraca wartość: 'Przykładowa_Firma'
{FIRMY.$Nazwa} zwraca wartość: Poprzednia_Nazwa_Firmy

2. Zmienna specjalna <API> w zależności od sposobu logowania przyjmuje następujące wartości

  • 0 - użytkownik zalogowany do programu

  • 1 - użytkownik zalogowany do modułu WWW

  • 2 - pracownik zalogowany do modułu WWW (czyli użytkownik z grupy Użytkownicy WWW) lub logowanie po kliknięciu linka otrzymanego e-mailem (np. zatwierdzenie lub odrzucenie wniosku)