177 | | |
178 | | {{{ |
179 | | #!php |
180 | | |
181 | | // Plik MyService.php umieszczony w apps/edokumenty. |
182 | | // MyService.php |
183 | | <?php |
184 | | // stałe są w confing.inc i są to dane potrzebne do autentykacji usługi |
185 | | require_once('./../../framework/lib/util/Translator/Translator.inc'); |
186 | | require_once('./config.inc'); |
187 | | |
188 | | // klient SOAP systemu eDokumenty wysyłający nagłówki WSSecurity zmienić na |
189 | | // odpowiednią ścieżkę w zależności od lokalizacji pliku MyService.php |
190 | | require_once('./classes/eDokumentyApi/EDokApiClient.inc'); |
191 | | |
192 | | // wartość {host}:{port} zmienić na odpowiednią dla serwera |
193 | | $ops = array( |
194 | | 'location' => 'http://{host}:{port}eDokumentyApi.php', |
195 | | "uri" => "eDokumentyAPI", |
196 | | 'encoding'=>'UTF-8' |
197 | | ); |
198 | | |
199 | | |
200 | | // Dodatkowo od wersji 3.3 autentykacja nie wymaga nadpisania klienta Soap. Wystarczy do url z adresem serwisu dodać parametry GET w postaci |
201 | | // a1 - login, |
202 | | // a2 - hasło, |
203 | | // a3 - symbol jednostki |
204 | | /* |
205 | | $ops = array( |
206 | | 'location' => 'http://{host}:{port}eDokumentyApi.php?a1='.EDOK_API_LOGIN.'&a2='.md5(md5(EDOK_API_PASSWORD).'_SOAP_eDok_api').'&a3='.DEFAULT_ENTITY_SYMBOL.'', |
207 | | "uri" => "eDokumentyAPI", |
208 | | 'encoding'=>'UTF-8' |
209 | | ); |
210 | | |
211 | | // bezpośrednie wywołanie klienta Soap |
212 | | $client = new SoapClient(NULL, $ops); |
213 | | */ |
214 | | $client = new EDokApiClient(null, $ops); |
215 | | $client->setUser(EDOK_API_LOGIN); // ten sam co w config.inc |
216 | | $client->setPass(md5(EDOK_API_PASSWORD)); // to samo co w config.inc |
217 | | |
218 | | $header = new SoapHeader('eDokumentyAPI', 'entity_symbol', DEFAULT_ENTITY_SYMBOL); |
219 | | $client->__setSoapHeaders($header); |
220 | | |
221 | | // Tworzy kontakt |
222 | | $contid = NULL; |
223 | | |
224 | | try { |
225 | | $data = array( |
226 | | 'name_1' => 'SOAP TEST'.date('d H:m:s'), |
227 | | 'name_2' => 'SOAPTEST', |
228 | | 'nip___' => 1111111111, |
229 | | 'street' => 'Główna', |
230 | | 'symbol' => 'FGH99' |
231 | | ); |
232 | | $contid = $client->createContact($data); |
233 | | var_dump($contid); |
234 | | |
235 | | } catch(SoapFault $fault) { |
236 | | |
237 | | var_dump($fault); |
238 | | |
239 | | if ($fault->faultcode < 100) { |
240 | | trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR); |
241 | | } |
242 | | } |
243 | | |
244 | | // Tworzy sprawę |
245 | | $prc_id = NULL; |
246 | | |
247 | | try { |
248 | | $data = array( |
249 | | 'dscrpt' => 'SOAP TEST '.date('d H:m:s'), |
250 | | 'briefcase_symbol' => 'DK.023', |
251 | | 'orunid' => 49, |
252 | | 'rspoid' => 54, |
253 | | 'fxtrid' => 60, |
254 | | 'prtpid' => 1, |
255 | | ); |
256 | | $prc_id = $client->createProcess($data); |
257 | | var_dump($prc_id); |
258 | | |
259 | | } catch(SoapFault $fault) { |
260 | | |
261 | | var_dump($fault); |
262 | | |
263 | | if ($fault->faultcode < 100) { |
264 | | trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR); |
265 | | } |
266 | | } |
267 | | |
268 | | // tworzy dokument w sprawie |
269 | | if ($prc_id) { |
270 | | |
271 | | $doc_id = NULL; |
272 | | |
273 | | try { |
274 | | $data = array( |
275 | | 'dscrpt' => 'SOAP TEST '.date('d H:m:s'), |
276 | | 'prc_id' => $prc_id, |
277 | | 'dctpid' => 1, |
278 | | 'target' => 54, |
279 | | 'from_contact_symbol' => '12345', |
280 | | 'to_contact_symbol' => '54321', |
281 | | ); |
282 | | $doc_id = $client->createDocument($data); |
283 | | var_dump($doc_id); |
284 | | |
285 | | } catch(SoapFault $fault) { |
286 | | |
287 | | var_dump($fault); |
288 | | |
289 | | if ($fault->faultcode < 100) { |
290 | | trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR); |
291 | | } |
292 | | } |
293 | | |
294 | | // dodaje załącznik do utworzonego dokumentu |
295 | | // o treści Testowy plik i nazwie dokument.txt |
296 | | if ($doc_id) { |
297 | | try { |
298 | | $filePath = './test.pdf'; |
299 | | $content = base64_encode(file_get_contents(filePath)); |
300 | | |
301 | | $dd = $client->addAttachmentToDocument($content, basename(filePath), $doc_id); |
302 | | var_dump($dd); |
303 | | |
304 | | } catch(SoapFault $fault) { |
305 | | |
306 | | var_dump($fault); |
307 | | |
308 | | if ($fault->faultcode < 100) { |
309 | | trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR); |
310 | | } |
311 | | } |
312 | | } |
313 | | } |
314 | | |
315 | | // zwraca dane (tablica) o sprawie wszystko z tabeli processes gdzie prc_id = $prc_id |
316 | | try { |
317 | | |
318 | | $data = $client->getProcess($prc_id); |
319 | | var_dump($data); |
320 | | |
321 | | } catch(SoapFault $fault) { |
322 | | |
323 | | var_dump($fault); |
324 | | |
325 | | if ($fault->faultcode < 100) { |
326 | | trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR); |
327 | | } |
328 | | } |
329 | | |
330 | | ?> |
331 | | }}} |
332 | | |
333 | | W 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. |
334 | | |
335 | | |
336 | | |