Wysyłanie powiadomienia

Definicja parametrów:

<?php

/**
 * Powiadom pracownika 
 *
 *  @param data Array - Tablica z parametrami
 *  @param data['usr_id'] Int - identyfikator pracownika (users:usr_id)
 *  @param data['msgtxt'] String - treść powiadomienia
 *  @param data['type__'] Mixed - typ powiadomienia jako tablica lub tekst (kolejne typy oddzielone przecinkiem). Typy to: Communicator - komunikator systemowy, Document -notatka służbowa, Mail - wysyłany jest email na konto pracownika. Domyślnie jest to Communicator
 *
 *  @param data['metaData'] Array - dodatkowe atrybuty do powiadomienia obsługiwane klucze to:
 *  - ns.... to źródło powiadomień np. dokument
 *  - nscls_ - klasa obiektu, którego dotyczy powiadomienie np. PROCESS, DOCUMENT
 *  - nskey_ - identyfikator obiektu (klucz główny z właściwej tabeli np. processes, documents)
 *  - nstxt_ - wyświetlany tekst 
 * 
 *  - nt.... to target powiadomień np. sprawa czy dodanie dokumentu (source) do sprawy (target)
 *  - ntcls_ - to samo co powyżej tylko dotyczy targetu
 *  - ntkey_ - to samo co powyżej tylko dotyczy targetu 
 *  - nttxt_ - to samo co powyżej tylko dotyczy targetu
 *  @return True - zawsze zwraca TRUE 
 *
 *  @throws Exception - SoapFault
 */
Int notifyUser(Array data)

?>

Przykłady wywołań:


// Plik MyService.php umieszczony w apps/edokumenty.
// MyService.php
<?php

define('EDOK_API_LOGIN', 'developer');
define('EDOK_API_PASSWORD', 'developer');
define('DEFAULT_ENTITY_SYMBOL', 'demo');

require_once('./classes/eDokumentyApi/EDokApiClient.inc');

$options = array(
    'location' => 'http://{host}:{port}/eDokumentyApi.php',
    "uri" => "eDokumentyAPI",
    'encoding'=>'UTF-8'
);
        
$client = new EDokApiClient(NULL, $options);
$client->setUser(EDOK_API_LOGIN);
$client->setPass(md5(EDOK_API_PASSWORD));
$header = new SoapHeader('eDokumentyAPI', 'entity_symbol', DEFAULT_ENTITY_SYMBOL);
$client->__setSoapHeaders($header);

$data = array(
'usr_id' => 19,
'msgtxt' => 'Ważna wiadomość'
);


try {
    $out = $client->notifyUser($data);
    var_dump($out);
} catch(SoapFault $fault) {   
    var_dump($fault);
    
    if ($fault->faultcode < 100) {
        trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
    }
}

?>