Powiadomienia systemowe
Około 1 minut
System Rready__™ może wysyłać jeszcze inne rodzaje powiadomień, takie jak notyfikacje w strumieniu powiadomień, powiadomienie w wiadomości email, wiadomość na czacie czy utworzyć notatkę służbową.
Do tego rodzaju powiadomienia do użytkowników można wysyłać przy użyciu metody notifyUser()
lokalnego API lub tworząc obiekt klasy Notifier
.
Wykorzystanie lokalnego API
Definicja EDokApi::notifyUser()
/**
* Powiadom jednego lub więcej użytkowników
*
* @param array $data - Tablica z parametrami
*
* @return True - zawsze zwraca TRUE
*
* @throws Exception - W zależności od wywołania SOAP - SoapFault, Lokalnie - Exception
*/
public function notifyUser($data)
Opis parametrów
Metoda przyjmuje 1 argument, jako tablica lub string JSON. Dostępne klucze:
Nazwa parametru | Typ parametru | Opis |
---|---|---|
usr_id | int[] (wymagane) | Identyfikator(y) użytkownika (users.usr_id) |
msgtxt | string (wymagane) | Treść powiadomienia |
type__ | string, string[] | Wybór kanału komunikacji. Wybrane opcje można przesłać jako string (zarówno pojedynczą wartość, jak kilka wybranych opcji, oddzielonych od siebie przecinkiem) lub jako tablicę stringów.
Jeśli nie ustawimy tego parametru, wybrany zostanie domyślny kanał czyli Communicator . |
metaData | array | Tablica z kluczami do metadanych obiektów biznesowych do których prowadzą przyciski na powiadomieniu. |
nscls_ | string | Nazwa klasy obiektu biznesowego pierwszego przycisku |
nskey_ | int | Id obiektu biznesowego pierwszego przycisku |
ntcls_ | string | Nazwa klasy obiektu biznesowego drugiego przycisku |
ntkey_ | int | Id obiektu biznesowego drugiego przycisku |
Przykład użycia
require_once('./classes/eDokumentyApi/EDokApi.inc');
$api = new \EDokApi();
try {
$data = [
"msgtxt" => "Treść powiadomienia",
"usr_id" => [2, 3],
"metaData" => [
"nscls_" => "DOCUMENT",
"nskey_" => 2,
"ntcls_" => "PROCESS",
"ntkey_" => 2,
"nttxt_" => "Tytuł powiadomienia"
]
];
$success = $api->notifyUser($data);
} catch(\Exception $e) {
throw new \Exception($e->getMessage());
}
Obiekt Notifier::class
Użycie klasy Notifier
daje nam nieco większą kontrolę nad wysyłanym komunikatem. Pozwala m.in. na wysyłanie wiadomości na czacie, czy ustawienie dla powiadomień typu email tematu wiadomości, templatki oraz kontekstu beana do dynamicznego uzupełnienia treści wiadomości.
Przykład użycia
require_once('./modules/Evidence/beans/FKElementBean.inc');
$bean = new \FKElementBean(1);
$template = '../../Pipeline/p_dostarczono.tpl';
$metaData = [
"nscls_" => "FEATURE",
"nskey_" => 2,
"nstxt_" => "cokolwiek",
"ntcls_" => "TYPE_OF_DOCUMENT",
"ntkey_" => 2,
"nttxt_" => "Tytuł powiadomienia"
];
$notifier = new \Notifier();
$notifier->sendToLoggedUser(TRUE);
$notifier->setSenderType(\Notifier::LOGGED_USER_SENDER);
$notifier->setMetaData($metaData);
$notifier->setTemplate($template);
$notifier->setContextBean($bean);
$notifier->setReceivers(4);
$notifier->setNotifiersType(['Communicator', 'Mail', 'Document', 'Jabber']);
$notifier->setTopic("to jest topic");
$notifier->setMessage(" tresc wiadomości");
$notifier->send();
Opis wykorzystanych metod i ich parametrów
metoda | parametry | opis |
---|---|---|
sendToLoggedUser | boolean | Czy wysłać również do zalogowanego użytkownika, jeśli jest na liście odbiorców |
setSenderType | string | Określa kto jest nadawcą; możliwe wartości:
|
setMetaData | array | Tablica metadanych określających parametry dla powiadomienia w strumieniu powiadomień takie jak tytuł, treść, przyciski. |
setTemplate | string | Ścieżka do pliku *.tpl z szablonem wiadomości; domyślnie system ich szuka w ścieżce public_html/apps/edokumenty/var/tpl/ . Jeśli chcemy użyć pliku z innego miejsca należy podać ścieżkę względną z folderu tpl do właściwego umiejscowienia pliku. Template ustawiamy w przypadku widomości email |
setContextBean | object | Przesyłamy beana, z którego template wiadomości będzie mógł dynamicznie pobrać dane |
setReceivers | int, int[] | ID użytkownika / użytkowników (users.usr_id) |
setNotifiersType | string, string[] | Wybór kanału komunikacji. Wybrane opcje można przesłać jako string (zarówno pojedynczą wartość, jak kilka wybranych opcji, oddzielonych od siebie przecinkiem) lub jako tablicę stringów.
|
setTopic | string | Temat wiadomości w przypadku powiadomienia email. |
setMessage | string | Treść wiadomości dla powiadmień email bez własnej templatki, dla dokumentu oraz wiadomości na czacie |
send | none | Ta metoda nie przyjmuje parametrów; służy do wysłania powiadomienia. |