Zmiany pomiędzy wersją 3 and wersją 4 dla DeployerGuide/Others/eDokumentyApi

Pokaż
Ignoruj:
Data i czas:
02/11/11 10:00:31 (13 years temu)
Autor:
TS (IP: 213.227.67.33)
Komentarz:

--

Legend:

Bez zmian
Dodane
Usunięte
Zmienione
  • DeployerGuide/Others/eDokumentyApi

    v3 v4  
    1313}}} 
    1414 
    15 wartości stałych w powyższym przykładzie są tylko danymi prezentacyjnymi i nie powinno się ich używać nigdzie indziej. 
    16  
    17 Stałe te mogą mieć dowolne wartości ważne jednak aby te same wartości podać przy wywołaniu usługi SOAP. Nagłówek SOAP powinien wyglądać 
     15wartości stałych w powyższym przykładzie są tylko danymi prezentacyjnymi i nie powinno się ich używać na produkcyjnej bazie. 
     16 
     17Stałe te mogą mieć dowolne wartości ważne jednak aby te same wartości podać przy wywołaniu usługi SOAP w kliencie. 
     18 
     19Usługa jest dostępna pod adresem: 
     20 
     21http://{host}:{port}/apps/edokumenty/classes/eDokumentyApi/EDokApiServer.php 
     22 
     23Opcjonalnie od wersji 0.9.8 usługa jest dostępna pod skróconym adresem:  
     24 
     25http://{host}:{port}/eDokumentyApi.php 
     26 
     27Wartość {host} oraz {port} należy zamienić odpowiednimi wartościami zgodnymi z konfiguracją serwera instalacyjnego systemu eDokumenty. 
     28 
     29Dokumentacja API znajduje się pod adresem 
     30 
     31http://{host}:{port}/apps/edokumenty/classes/eDokumentyApi/DokumentacjaAPI.txt 
     32 
     33Podgląd dokumentacji API 
    1834{{{ 
    19 <wsse:Security xmlns:wsse=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd” soapenv:mustUnderstand=”0”> 
    20     <wsse:UsernameToken> 
    21         <wsse:Username Type=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken”>edok_api_user</wsse:Username> 
    22         <wsse:Password Type=”http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText”>edok_api_pass</wsse:Password> 
    23     </wsse:UsernameToken> 
    24   </wsse :Security>  
     35Dokumentacja Webservice - API systemu eDokumenty w wersji 0.9.9 
     36/** 
     37 *  Tworzy nowy dokument  
     38 *    
     39 *  @param data Array - Tablica z parametrami 
     40 *  @param data['dscrpt'] String - opis dokumentu 
     41 *  @param data['dctpid'] Int - typ dokumentu (types_of_documents:dctpid) 
     42 *  @param data['target'] Int - identyfikator stanowiska (organization_units:orunid) 
     43 *  @param data['prc_id'] Int - identyfikator sprawy (processes:prc_id) 
     44 *  @param data['state_'] Int - rodzaj dokumenty (1-wychodzący, 2-przychodzący, 3-wewnętrzny) 
     45 *  @param data['from_contact_symbol'] String - symbol nadawcy (contacts:symbol) 
     46 *  @param data['to_contact_symbol'] String - symbol odbiorcy (contacts:symbol) 
     47 *    
     48 *  @return Int - id dokumentu jeśli sukces (documents:doc_id), 0 w razie niepowodzenia 
     49 *    
     50 *  @throws Exception - SoapFault 
     51 */ 
     52Int createDocument(Array data) 
     53 
     54 
     55 /** 
     56 *  Dodaje załącznik do dokumentu  
     57 *    
     58 *  @param fileContent String - Tablica z parametrami 
     59 *  @param fileName String - nazwa pliku 
     60 *  @param documentId Int - identyfikator dokumentu (documents:doc_id) 
     61 *  @param contentTransferEncoding String - kodowanie przesyłanej treści pliku (tylko base64) 
     62 * 
     63 *  @return Int - id pliku jeśli sukces, 0 w razie niepowodzenia 
     64 *    
     65 *  @throws Exception - SoapFault 
     66 */ 
     67Int addAttachmentToDocument(String fileContent, String fileName, Int documentId) 
     68 
     69 
     70/** 
     71 *  Tworzy nowy dokument typu raport dobowy z kasy 
     72 *  W przypadku jeśli dany dokument już istnieje następuje  
     73 *  jego aktualizacja.  
     74 *  Warunkiem sprawdzenia są 2 parametry acorid oraz datedr. 
     75 *    
     76 *  @param data Array - Tablica z parametrami 
     77 *  @param data['datedr'] Date - data raportu w formacie YYYY-MM-DD (np 2010-01-01) 
     78 *  @param data['netto_'] Numeric(12, 2) - wartość netto obrotów 
     79 *  @param data['vatval'] Numeric(12, 2) - wartość vat 
     80 *  @param data['brutto'] Numeric(12, 2) - wartość brutto obrotów  
     81 *  @param data['crdpay'] Numeric(12, 2) - wartość jaka została zapłacona kartami  
     82 *  @param data['clncnt'] Int - ilość klientów 
     83 *  @param data['acorid'] Int - jednostka rozliczeniowa (organization_units:orunid) jeśli isclun = TRUE 
     84 *    
     85 *  @return Int - id dokumentu jeśli sukces (documents:doc_id), 0 w razie niepowodzenia 
     86 *    
     87 *  @throws Exception - SoapFault 
     88 */ 
     89Int createFKDayReport(Array data) 
     90 
     91 
     92/** 
     93 *  Tworzy nową sprawę 
     94 *    
     95 *  @param data Array - Tablica z parametrami 
     96 *  @param data['dscrpt'] String - opis sprawy 
     97 *  @param data['briefcase_symbol'] String - symbol teczki 
     98 *  @param data['dsexid'] int - identyfikator teczki (doss_exctract_list:dsexid) 
     99 *  @param data['orunid'] int - identyfikator jednostki organizacyjnej, pod którą zostanie utworzona sprawa (organization_units:orunid) 
     100 *  @param data['rspoid'] int - identyfikator osoby odpowiedzialnej w sprawie (organization_units:orunid) 
     101 *  @param data['prtpid'] int - identyfikator procedury (procedures_def:prtpid) 
     102 *  @param data['contact_symbol'] String - symbol kontaktu (contacts:symbol) 
     103 *    
     104 *  @return Int - id sprawy jeśli sukces (processes:prc_id), 0 w razie niepowodzenia 
     105 *    
     106 *  @throws Exception - SoapFault 
     107 */ 
     108Int createProcess(Array data) 
     109 
     110 
     111/** 
     112 *  Zwraca dane sprawy 
     113 *    
     114 *  @param prc_id Int - Id sprawy (processes:prc_id) 
     115 *    
     116 *  @return Array - tablica danych sprawy jeśli sukces, SoapFault w razie niepowodzenia 
     117 *    
     118 *  @throws Exception - SoapFault 
     119 */ 
     120Array getProcess(Int prc_id) 
     121 
     122 
     123/** 
     124 *  Tworzy nowy kontakt 
     125 *    
     126 *  @param data Array - Tablica z parametrami 
     127 *  @param data['name_1'] String - nazwa kontaktu 
     128 *  @param data['name_2'] String - skrót kontaktu 
     129 *  @param data['nip___'] Int - numer NIP kontaktu 
     130 *  @param data['symbol'] String - symbol kontrahenta 
     131 *  @param data['notes_'] String - uwagi 
     132 *  @param data['ph_num'] String - numery telefonów 
     133 *  @param data['faxnum'] String - numery faxów 
     134 *  @param data['email_'] String - adresy email oddzielone przecinkiem 
     135 *  @param data['websit'] String - strona www kontaktu 
     136 *  @param data['regon_'] String - numer REGON 
     137 *  @param data['pesel_'] String - numer PESEL 
     138 *  @param data['bldnum'] String - numer domu 
     139 *  @param data['fltnum'] String - numer mieszkania 
     140 *  @param data['distkm'] Numeric(12, 2) - dystans 
     141 *  @param data['powiat'] String - nazwa powiatu 
     142 *  @param data['gmina_'] String - nazwa gmiany 
     143 *  @param data['woj___'] String - nazwa województwa ze słownika 
     144 *  @param data['post__'] String - poczta 
     145 *  @param data['countr'] String - kraj 
     146 *  @param data['city__'] String - miasto 
     147 *  @param data['code__'] String - kod_pocztowy 
     148 *  @param data['street'] String - nazwa ulicy 
     149 *    
     150 *  @return Int - id kontaktu jeśli sukces (contacts:contid), 0 w razie niepowodzenia 
     151 *    
     152 *  @throws Exception - SoapFault  
     153 */ 
     154Int createContact(Array data) 
     155 
     156 
     157/** 
     158 *  Zwraca dane kontaktu wraz z adresem 
     159 *    
     160 *  @param contid Int - Id kontaktu (contacts:contid) 
     161 *    
     162 *  @return Array - tablica danych kontaktu jeśli sukces, SoapFault w razie niepowodzenia 
     163 *    
     164 *  @throws Exception - SoapFault 
     165 */ 
     166Array getContact(Int contid) 
     167 
     168 
     169/** 
     170 *  Tworzy nowe zdarzenie 
     171 *    
     172 *  @param data Array - Tablica z parametrami 
     173 *  @param data['dscrpt'] String - opis zdarzenia 
     174 *  @param data['trmtyp'] String - typ zdarzenia (TODO - zadanie, PHONECALL - rozmowa tel., MEETING - spotkanie) 
     175 *  @param data['type__'] String - typ rozmowy tel. jeśli trmtyp = PHONECALL (IN - przychodząca, OUT - wychodząca, INT - wewnętrzna) 
     176 *  @param data['start_'] String - data rozpoczęcia w formacie YYYY-MM-DD HH:MM:SS np 2010-01-01 08:00:00 
     177 *  @param data['duratn'] String - czas trwania np 2h30m - co oznacza 2 godziny 30 minut 
     178 *  @param data['usr_id'] Mixed - identyfikator pracownika (może być tablica identyfikatorów), któremu zleca się wykonanie zdarzenia (users:usr_id)  
     179 *  @param data['contid'] Int - identyfikator kontaktu (contacts:contid) pod którym zostanie utworzone zdarzenie 
     180 *  @param data['prc_id'] Int - identyfikator sprawy (processes:prc_id) do której zostanie dołączone zdarzenie 
     181 *  @param data['adduid'] Int - identyfikator pracownika (users:usr_id) który zleca zdarzenie, musi należeć do jednostki i mieć aktywne konto 
     182 *    
     183 *  @return Int - id event jeśli sukces (events:evntid), 0 w razie niepowodzenia 
     184 *    
     185 *  @throws Exception - SoapFault  
     186 */ 
     187Int createEvent(Array data) 
     188 
     189 
     190/** 
     191 *  Zwraca dane zdarzenia 
     192 *    
     193 *  @param evntid Int - Id zdarzenia (events:evntid) 
     194 *    
     195 *  @return Array - tablica danych zdarzenia jeśli sukces, SoapFault w razie niepowodzenia 
     196 *    
     197 *  @throws Exception - SoapFault 
     198 */ 
     199Array getEvent(Int evntid) 
     200 
     201 
     202/** 
     203 *  Zwraca listę zdarzeń według zadanych parametrów 
     204 *    
     205 *  @param data Array - Tablica z parametrami 
     206 *  @param from__ Date - data w formacie YYYY-MM-DD (np 2010-01-01) z jakiego dnia ma pobrać zdarzenia 
     207 *  @param to____ Date - data w formacie YYYY-MM-DD (np 2010-01-10) do jakiego dnia ma pobrać zdarzenia, jeśli brak parametru do ustawiany na from__ 
     208 *  @param usr_id Int - Id praconwika (users:usr_id) 
     209 *  @param contid Int - Id kontaktu (contacts:contid) 
     210 *    
     211 *  @return Array - tablica zdarzeń (może być pusta jeśli nie ma takich, które spełniają kryterium wyszukiwania)  
     212 *                  jeśli sukces, SoapFault w razie niepowodzenia 
     213 *    
     214 *  @throws Exception - SoapFault 
     215 */ 
     216Array getEvents(Array data) 
     217 
     218 
     219/** 
     220 *  Zwraca dane etapów danej procedury. 
     221 *  Identyfikator procedury można pobrać wykonując $client->getProcess($prc_id) i w zwróconej  
     222 *  tablicy będzie kolumna procid. 
     223 *    
     224 *  @param Int procid - Id procedury (procedures:procid) 
     225 *    
     226 *  @return Array - tablica z danymi etapów jeśli pusta tzn, że procedura nie ma etapów 
     227 *    
     228 *  @throws Exception - SoapFault 
     229 */ 
     230Int getProceduresStages(Int procid) 
     231 
     232 
     233/** 
     234 *  Wykonuje dany etap procedury oraz aktywuje następny 
     235 *    
     236 *  @param Int procid - Id procedury (procedures:procid) 
     237 *  @param Int ptstid - Id etapu z wskazanej procedury jakie zostanie wykonany jako załatwiony 
     238 *  @param Int next_ptstid - Id etapu z tabeli stages_def  
     239 *              ("ptstid" jest etapem decyzyjnym to "next_ptstid" będzie wybrane 
     240 *              jako następny etap jeżeli jest następnikiem etapu "ptstid") 
     241 *    
     242 *  @return Boolean - TRUE w przypadku powodzenia w każdym innym jest zwracany wyjątek SoapFault 
     243 *    
     244 *  @throws Exception - SoapFault 
     245 */ 
     246Int completeStage(Int procid, Int ptstid, Int next_ptstid = NULL) 
    25247}}} 
    26248 
    27 Dodatkowo w nagłówku należy przesłać wartość jednostki 
     249 
     250 
     251Przykład wywołania API z poziomu PHP w systemie eDokumenty 
     252 
     253'''Hasło powinno być zakodowane przy użyciu funkcji md5''' 
    28254 
    29255{{{ 
    30 $header = new SoapHeader('eDokumentyAPI', 'entity_symbol', 'symbol jednostki'); 
     256// Plik MyService.php umieszczony w apps/edokumenty. 
     257// MyService.php 
     258<?php 
     259// stałe są w confing.inc i są to dane potrzebne do autentykacji usługi 
     260require_once('./../../framework/lib/util/Translator/Translator.inc'); 
     261require_once('./config.inc'); 
     262 
     263// klient SOAP systemu eDokumenty wysyłający nagłówki WSSecurity zmienić na  
     264// odpowiednią ścieżkę w zależności od lokalizacji pliku MyService.php 
     265require_once('./classes/eDokumentyApi/EDokApiClient.inc'); 
     266 
     267// wartość {host}:{port} zmienić na odpowiednią dla serwera 
     268$ops = array( 
     269    'location' => 'http://{host}:{port}eDokumentyApi.php', 
     270    "uri" => "eDokumentyAPI", 
     271    'encoding'=>'UTF-8' 
     272); 
     273         
     274$client = new EDokApiClient(null, $ops); 
     275$client->setUser(EDOK_API_LOGIN); 
     276$client->setPass(md5(EDOK_API_PASSWORD)); 
     277 
     278$header = new SoapHeader('eDokumentyAPI', 'entity_symbol', DEFAULT_ENTITY_SYMBOL); 
     279$client->__setSoapHeaders($header); 
     280 
     281// Tworzy kontakt 
     282$contid = NULL; 
     283 
     284try { 
     285    $data = array( 
     286        'name_1' => 'SOAP TEST'.date('d H:m:s'), 
     287        'name_2' => 'SOAPTEST', 
     288        'nip___' => 1111111111, 
     289        'street' => 'Główna',        
     290        'symbol' => 'FGH99' 
     291    ); 
     292    $contid = $client->createContact($data); 
     293    var_dump($contid); 
     294 
     295} catch(SoapFault $fault) { 
     296     
     297    var_dump($fault); 
     298     
     299    if ($fault->faultcode < 100) { 
     300        trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR); 
     301    } 
     302} 
     303?> 
    31304}}} 
    32305 
    33 Usługa jest dostępna pod adresem: 
    34  
    35 http://{host}:{port}/apps/edokumenty/classes/eDokumentyApi/EDokApiServer.php 
    36  
    37 Opcjonalnie od wersji 0.9.8 usługa jest dostępna pod skróconym adresem:  
    38  
    39 http://{host}:{port}/eDokumentyApi.php 
    40  
    41 Wartość {host} oraz {port} należy zamienić odpowiednimi wartościami zgodnymi z konfiguracją serwera instalacyjnego systemu eDokumenty. 
    42  
    43 Dokumentacja API znajduje się pod adresem 
    44  
    45 http://{host}:{port}/apps/edokumenty/classes/eDokumentyApi/DokumentacjaAPI.txt 
     306W przypadku jeśli chcemy utworzyć własnego klienta SOAP dla innego języka programowania np. JAVA należy skontaktować się z działem oprogramowania celem wyszczególnienia specyfikacji takiego klienta.