Skip to end of metadata
Go to start of metadata

 

Podstawowe informacje

Pakiet: com.suncode.plugin.scheduldedtask.task.EmailBySQL

Dostępna od wersji: 1.0.4

Opis

Zadanie zaplanowane wykonuje zapytanie z bazy danych i na podstawie zwróconych wyników wysyła maila. Dane pobrane z bazy można wykorzystać w szablonie wiadomości jak i w tytule maila. Adresata wiadomości można podać bezpośrednio w zadaniu lub użyć odpowiednich tagów.  Zadanie ma możliwości ominięcia wolnych dni (nie wysyła maili w wolne dni). Wiadomości można także grupować wedle adresu email.  Każda wiadomość jest osobno wysyłana.

Wymagania

Zainstalowana i skonfigurowana wtyczka dbExplorer wersji 2.0.24 lub nowszej

System obsługujący zadania zaplanowane w formie wtyczki od wersji 3.2.3.

Skonfigurowane połączenie z serwerem pocztowym w parametrach systemu.

Zapytanie

Zapytanie należy umieścić w tabeli pm_dbqueries. Jeżeli tabela nie istniej to wtyczka przy wgraniu ją utworzy.

  • id: Identyfikator w tabeli
  • query: Treść zapytania
  • query_name: nazwa zapytania która się podaje jako parametr.

W parametrze zadania należy podać "Nazwę zapytania" (query_name), po którym zapytanie zostanie pobrane z tabeli oraz parametr "Baza danych", który należy uzupełnić nazwą bazy z konfiguracji dbExplorera (Edytora Danych). Na podanej bazię będzie wykonane pobrane zapytanie. Jeżeli zapytanie nie zwróci żadnego wyniki, to mail nie zostanie wysłany. W przeciwnym razie dane zostaną odpowiednio przetworzone wedle wcześniej przygotowanego szablonu.

Przygotowanie szablonu

Szablon może być zwykłym dokumentem tekstowym albo plikiem html. Szablon należy umieścić na serwerze i podać w parametrze "Ścieżka do szablonu"  ścieżkę to tego pliku np  "c:\Szablon2.html".

Aby otrzymane dane z zapytania umieścić w mailu, w szablonie należy skorzystać z tagu @<nazwa kolumny lub alias kolumny>@ np @guery@  dla zapytania SELECT * FROM pm_dbqueries.

Dodatkowo można stosować odpowiednie tagi z dostępnej tabeli poniżej (tab. Tagi Szablonowe). 

Gdy parametr "Grupuj wiadomości"  jest ustawiony na "true", powoduje to że dane zwracane są grupowane po adresacie (po adresie email). Wówczas szablon może być zbudowany z wielu wierszy. Aby takie dane odpowiednio wstawić do treści wiadomości, należy użyć specjalnych tagów @@rows@@ i @@end_rows@@.  Spowoduje to, że każdy tekst między tymi tagami będzie powielany tyle razy, ile jest zwróconych wierszy dla danego adresata. Podczas każdej iteracji (kopiowania tekstu), tagi w tym tekście zostaną zamienione na dane z danego wiersza. 

Adresat Wiadomości

Aby wybrać adresata wiadomości należy odpowiednio uzupełnić parametr "Do" . Adresata można wyznaczyć na 3 sposoby. 

  1. To przez wpisanie bezpośrednio adresu email. np office@suncode.pl
  2. To przez pobranie adresu email z systemu za pomocą odpowiednich tagów np USER_admin, GROUP_office itp (patrz tab. Tagi Adresowe)
  3. To przez wykorzystaniu odpowiedniej kolumny zawierającej bezpośrednio email adresata albo informacje z jakiego parametru pobrać adres pocztowy. W tym celu do wykorzystania są tagi z dopiską *COL_  gdzie należy podać nazwę zwracanej kolumny zawierającej stosowne informacje. Np EMAIL_COL_adresy, USER_COL_rejestrujacy. (patrz tab. Tagi Adresowe)

Dla opcji 1 i 2 wszystkie wiersze są wysyłane do każdej osoby. W osobnych mailach lub w jednym jeżeli włączone jest grupowanie.

Dla opcji 3 adresaci dostaną wiadomości tylko z danymi z wierszy w których wybrana kolumna zwróci ich adres. Jeżeli kolumna grupy zwraca nazwy grupy, to za pomocą tych nazw wyciągana jest lista emaili i dane z tego wiersza są wysyłane na te adresy. Przykłady niżej.

Dla opcji 2.3 (nie licząc tagu EMAIL_COL_) wiadomości dostaną osoby, które w swoich ustawieniach systemowych mają włączoną opcje "Odbieraj powiadomienia mailowe".  Wysyłanie można także ograniczyć tylko do grupy osób, które należą do danych grup ustawionych w  parametrze Ograniczenie do grup.  Listę grup należy wpisać bez spacji i oddzielonych znakiem ';' np: "Administrators;Users"

TAGI

Tagi Adresowe

TAGOPISUWAGIPRZYKŁAD
ROLE_<identyfikator_roli>Pobiera adresy wszystkich osób o podanym identyfikatorze roli ROLE_uczestnik_1
USER_<nazwa_użytkownika>Pobiera adres email konkretnego użytkownika USER_admin
GROUP_<nazwa_grupy>Pobiera adresy email od osób należących do podanej grupy GROUP_Księgowość
POSITION_BY_NAME_<nazwa_stanowiska>Pobiera adresy email od osób przypisanych do danego stanowiska POSITION_BY_NAME_stanowisko
POSITION_BY_SYMBOL_<symbol_stanowiska>Pobiera adresy email od osób przypisanych do danego stanowiska POSITION_BY_SYMBOL_sta1
OU_BY_NAME_<nazwa_jednostki_organizacyjnej>Pobiera adresy email od osób należących do danej jednostki organizacyjnej OU_BY_NAME_Poznan
OU_BY_SYMBOL_<symbol_jednostki_organizacyjnej>Pobiera adresy email od osób należących do danej jednostki organizacyjnej OU_BY_SYMBOL_Poz
EMAIL_COL_<kolumna_z_email>Pobiera email z kolumny zwróconej przez zapytanie SQL EMAIL_COL_adresPocztowy. Kolumna adresPocztowy zawiera adresy email. Dany wiersz będzie wysłany pod wskazany adres.
EXECUTORPobiera adresy email wykonawcy zadaniaWymaga zwróconych kolumn processid i activityid 
ROLE_COL_<kolumna_z_identyfikatorem_roli>Pobiera email z kolumny zawierającej identyfikator kolumny  ROLE_COL_rola kolumna rola zawiera identyfikatory ról. Dany wiersz zostanie wysłany do ludzi którzy mają przypisaną daną role.
USER_COL_<kolumna_z_nazwą_użytkownika>Pobiera email z kolumny zawierającej nazwy użytkowników 

USER_COL_wnioskujacy

kolumna "wnioskujacy" zawiera nazwy użytkowników. Dla tych nazw zostanie odczytany email i dany wiersz wysłany do danej osoby

GROUP_COL_<kolumna_z_nazwą_grupy>Pobiera email z kolumny zawierającej listę group GROUP_COL_dzial. Kolumna dział zawiera nazwy grup w systemie PlusWrokflow. Dany wiersz będzie wysyłany do osób które należą do danej grupy
POSITION_BY_NAME_COL_<kolumna_z_nazwą_stanowiska>Pobiera email z kolumny zawierającej nazwy stanowisk 

POSITION_BY_SYMBOL_COL_stanowiska.

kolumna stanowiska, zawiera symbole stanowisk. Po tych symbolach będzie wyszukiwany użytkownik i wysyłany email do niego


POSITION_BY_SYMBOL_COL_<kolumna_z_symbolem_stanowiska>Pobiera email z kolumny zawierającej symbole stanowisk POSITION_BY_SYMBOL_COL_symbolStanowiska
OU_BY_NAME_COL_<kolumna_z_nazwą_jednostki_organizacyjnej>Pobiera email z kolumny zawierającej nazwy jednostek organizacyjnych OU_BY_NAME_COL_dzialy
OU_BY_SYMBOL_COL_<kolumna_z_symbolem_jednostki_organizacyjnej>Pobiera email z kolumny zawierającej symbole jednostek organizacyjnych OU_BY_SYMBOL_COL_symbolDzialy

Tab. Tagi Adresowe

 

Tagi Szablonowe

TAGOPISUWAGI
@processname@Nazwa procesuwymagana kolumna processid
@processdescription@Opis procesuwymagana kolumna processid
@processdefid@Identyfikator definicji procesuwymagana kolumna processid
@processpackageid@Identyfikator pakietu z którego pochodzi proces.wymagana kolumna processid
@processtype@Typ procesuwymagana kolumna processid
@processstarttime@Godzina uruchomienia procesuwymagana kolumna processid
@processstartday@Data uruchomienia procesuwymagana kolumna processid
@processcreatedtime@Godzina utworzenia procesuwymagana kolumna processid
@processcreatedday@Data utworzenia procesuwymagana kolumna processid
@activityname@Nazwa zadaniawymagana kolumna processid i activityid
@activitydescription@Opis zadaniawymagana kolumna processid i activityid
@activitydefid@Identyfikator definicji zadaniawymagana kolumna processid i activityid
@activityid@Identyfikator zadaniawymagana kolumna processid i activityid
@activitystarttime@Godzina uruchomienia zadaniawymagana kolumna processid i activityid
@activitystartday@Data uruchomienia zadaniawymagana kolumna processid i activityid
@activitycreatedtime@Godzina utworzenia zadaniawymagana kolumna processid i activityid
@activitycreatedday@Data utworzenia zadaniawymagana kolumna processid i activityid
@historylink@Link do historii procesu

wymagana kolumna processid i activityid.

Od 1.0.7 wstawia link html

@link#<activityDefId>@

Link do szczegółów zadania o podanym id definicji zadania,

np. link#akceptacja_wniosku

wymagana kolumna processid.

Od 1.0.7 wstawia link html

@taskuser#<activityDefId>@

Pełna nazwa użytkownika, który wykonał zadanie o podanym id definicji zadania,

np. taskuser#akceptacja_wniosku

wymagana kolumna processid
@realusername#<zmienna_procesu>@

Pełna nazwa użytkownika, którego identyfikator znajduje się w podanej zmiennej procesowej,

np. realusername#zmienna

wymagana kolumna processid
@link@Link do konkretnego zadaniawymagana kolumna processid i activityid .
Od 1.0.7 wstawia link html
Dostępne od wersji 1.0.7
@httplink@Link do systemu. Pobrana wartość z Parametrów Systemu "HTTPLink"

Dostępne od wersji 1.0.7

Od 1.0.7 wstawia link html

@taskUsers@Użytkownik (imię i nazwisko), do których zostało przydzielone zadanie. Gdy użytkownik nie ma wypełnionego imienia i nazwiska to pojawi się login użytkownika. Gdy zadanie oczekuje u kllku użytkowników, to wszyscy są wymienieni po przecinku, np. Default User, Adam Nowak, dnowak.
Dostępne od wersji 1.0.8

 

Konfiguracja

Nazwa klasy

com.suncode.plugin.scheduldedtask.task.EmailBySQL

 

  1. Skrzynka pocztowa  -  Skrzynka pocztowa zdefiniowana w konfiguracji systemu
  2. Nazwa zapytania  -  Nazwa zapytania (query-name) z tabeli pm_dbqueries
  3. Baza danych  - Nazwa bazy danych skonfigurowana w dbExplorer w systemie PlusWorkflow

  4. Temat wiadomości - Temat wiadomości - można używać tagów szablonowych

  5. Ścieżka do szablonu  - Ścieżka do szablonu znajdującego się na serwerze

  6. Do  - Adres na którego wysłać emaila. Można użyć tagów emailowych np USER_admin, USER_COL_uzytkownik

  7. Nie wysyłaj w dni wolne  - Nie uruchamia zadanie gdy dzień wolny. należy wpisać true lub false

  8. Grupuj wiadomości  - Grupuje wiadomości po emailu. Kilka wierszy wysłane w jednej wiadomości. Używa tagów @@rows@@ i @@end_rows@@ w szablonie. Wartości do wpisania to true lub false. Gdy ustawione na false każdy zwrócony wiersz przesyłany w osobnej wiadomości

  9. Ograniczenie do grup  - Lista grup po znaku  ';' dla których będą wysyłane maile. Gdy puste to nie brana opcja pod uwagę. Przykład: "Administrators;Users"

Przykłady

 Powiadomienia o otwartych zadanaich
Przykład1

Konfiguracja

Zapytanie

SELECT id as activityid , processid , resourceid FROM activities WHERE state=1000001 

Szablon

OpenTaskTempalte.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title>Lista zadań</title>
    </head>
    <body bgcolor="#FFF" link="#01A9DB">
        <font face="tahoma" color="#330099" size="2">
            <h1> Lista otwartych zadań</h1>
            <table style="background-repeat:no-repeat;/* width:450px; *//* margin:0; */border-style: dotted;border-width: thick;"
            cellpadding="0" cellspacing="0" border="0">
                <thead>
                    <tr>
                        <th>Nazwa procesu</th>
                        <th>Nazwa zadania</th>
                        <th>Wykonawca</th>
                        <th>Link do historii</th>
                    </tr>
                </thead>
                <tbody>
                    @@rows@@
                    <tr>
                        <td style="margin: 10px; padding: 10px; border-style: dotted; border-width: medium; ">@processname@</td>
                        <td style="margin: 10px; padding: 10px; border-style: dotted; border-width: medium;">@activityname@</td>
                        <td style="margin: 10px; padding: 10px;border-style: dotted;border-width: medium;">@resourceid@</td>
                        <td style="margin: 10px; padding: 10px; border-style: dotted; border-width: medium;"><a href="@historylink@">@historylink@</a></td>
                    </tr>
                    @@end_rows@@
                </tbody>
            </table>
        </font>
    </body>
</html>

Wynik zapytania

Otrzymany mail

Uwagi

Zadanie wysyła do administratorów listę otwartych zadań w systemie PlusWorkflow. Włączone zostało grupowanie, tak więc wszyscy administratorzy otrzymują jeden zbiorczy (ten sam) mail. Zadanie ma włączoną opcje "Nie wysyłaj w dni wolne", tak więc zadanie się wyłączy na sobotę i niedziele.

 

 

ChangeLog

PWET-16 - Getting issue details... STATUS

  • 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.