= Integracja z zewnętrznymi systemami = == Sposób utworzenia połączania z systemem Subiekt == Aby umożliwić synchronizację z systemem Subiekt należy wykonać poniższe czynności. * 1. Utworzenie źródła danych * 2. Zmiana stałej w pliku config.inc * 3. Zmiana danych w Panel Sterowania > Systemy zewnętrzne * 4. Utworzenie tabeli kolejki w systemie Subiekt (baza MSSQL) * 5. Założenie triggerów na tabele w bazie Subiekt * dok!__Dokument * adr!__Ewid * kh!__Kontrahent * 6. Założenie widoków w bazie Subiekt (MSSQL) * subiekt_export_all_contacts_documents_view.sql * subiekt_export_all_contacts_view.sql * subiekt_export_all_queued_contacts_documents_view.sql * subiekt_export_all_queued_contacts_view.sql == 1. Utworzenie źródła danych == Wchodzimy do Panelu sterowania > Źródła danych. Tworzymy źródło podając !ConnectionString np.: {{{ Server=SERWEREK\SUBIEKT;Uid=sa;Pwd=secret;Database=SubiektGT }}} == 2. Zmiana stałej == W pliku config.inc należy zmienić stałą "SUBIEKT_DATA_SOURCE_DTSCNM" na nazwę nadaną dla źródła danych np.: {{{ define('SUBIEKT_DATA_SOURCE_DTSCNM', 'nazwa'); }}} == 3. Zmiana danych w Panel Sterowania > Systemy zewnętrzne == Jeśli tabela po wejściu jest pusta należy wykonać odpowiedni skrypt SQL. Dla Subiekta znajduję się on w katalogu ''apps\edokumenty\classes\BsConnect\install\data\subiekt_wsdl_ins.sql''. {{{ Otwórz w Windows Menu Start > Postgresql > psql to postgres. cd C:\Program files\BEtaSoft\eDokumenty\public_html\apps\edokumenty\classes\BsConnect\install\data psql -U postgres -f subiekt_wsdl_ins.sql edokumenty }}} Jeśli w nazwie występuje słowo {host} należy ja zamienić na lokalizacje systemu eDokumenty standardowo jest to localhost, w przypadku vhosta należy podać port (np.: localhost:8080), jeśli system znajduje się katalogu różnym niż public należy dodać nazwę tego katalogu do nazwy (np.: localhost:8080/edokumenty), zmianę tą można dokonać poprzez edycję każdego wpisów w tabeli osobno, lub z linii poleceń psql np.[[br]] {{{ UPDATE wsdl_config_table SET wsdl__ = replace(wsdl__, '{host}', 'localhost:8080/edokumenty'); }}} * System - wskazuje na nazwę systemu dla którego konfigurowana jest dana metoda(zostawiamy bez zmian) Resztę można pozostawić taj jak jest. Dla zaawansowanych podajemy [wiki:DeployerGuide/Customization/ExternalConfigurationFK/advanced dodatkowe informacje] == 4. Utworzenie tabeli kolejki == W systemie Subiekt (w bazie) wykonujemy skrypt z pliku {{{ apps\edokumenty\classes\!BsConnect\install\sql\subiekt\subiekt_export_queue.sql }}} Po wykonaniu tego skryptu w systemie Subiekt powinna pojawić się dodatkowa tabela o nazwie export_queue. == 5. Założenie triggerów == Triggery mają za zadanie dodawać do kolejki dokumenty i kontaktu które zostały zmodyfikowane bądź dodane do systemu Subiekt. Triggery wykonujemy z załączników na bazie MSSQL Inserta. W folderze ''apps\edokumenty\classes\!BsConnect\install\sql\subiekt'' znajdują się pliki oryginalne. Kolejność ich wykonywania nie ma znaczenia. Po ich wykonaniu należy sprawdzić czy tabele dok__Dokument, adr__Ewid oraz Kontrahent posiadają dodatkowe triggery. Można tego dokonać za pomocą narzędzia SQL Manager Lite for SQL Server firmy EMS. (http://www.sqlmanager.net/). [[BR]]Dla tabeli adresów [[BR]] [[Image(sbAd.png, nolink)]] [[BR]] Natomiast dla tabeli Kontrahenci [[BR]] [[Image(sbKh.png, nolink)]] [[BR]] Natomiast dla tabeli dokumentów[[BR]] [[Image(sbDk.png, nolink)]] [[BR]] Możemy przetestować działanie mechanizmy poprzez dodanie do systemu Subiekt dokumentu lub kontrahenta i sprawdzeniu czy w tabeli export_queue pojawiły się wpisy. == 6. Założenie widoków == Widoki te są wymagane w celu prawidłowego funkcjonowania. Można je znaleźć w katalogu {{{ edokumenty\classes\BsConnect\install\sql\subiekt\views }}} Można też je pobrać z załączonego niżej katalogu subiekt.zip. Widoki należy wykonać na bazie Subiekt (MsSQL). ''' Opis widoków ''' * subiekt_export_all_contacts_documents_view - wyświetla wszystkie dokumenty, które mają kontrahenta * subiekt_export_all_contacts_view - wyświetla wszystkich kontrahentów * subiekt_export_all_queued_contacts_documents_view - wyświetla wszystkie dokumenty, które mają kontrahenta oraz zostały zmodyfikowane(dodane do systemu) i znajdują się w tabeli export_queue w systemie zew. * subiekt_export_all_queued_contacts_view - wyświetla wszystkich kontrahentów którzy zostali zmodyfikowani(dodani do systemu) i znajdują się w tabeli export_queue w systemie zew. kolejność wykonywania nie ma znaczenia. Widoki te można modyfikować według potrzeb(dodawać kolumny itd) eliminując w ten sposób dodatkową pracę ze strony programisty i aktualizacji w postaci nowej wersji ze zmodyfikowanym widokiem. Więcej w [wiki:DeployerGuide/Customization/ExternalConfigurationFK/advanced konfiguracji zaawansowanej] GOTOWE. Po przelogowaniu się w systemie eDokumenty w module Klienci i kartotece klienta mamy dostępne nowe przyciski m.in. "Insert > pobierz wszystkie kontakty". == Reset == Na wypadek gdyby wprowadzone zmiany miały być z jakiegoś względu wycofane z bazy Subiekta, należy wykonać plik reset_subiekt.sql który usuwa tabele export_queue, triggery oraz widoki. == Raporty z parametrem klienta == Aby raportować rozrachunki z klientem, sprzedaż czy cokolwiek z nim związane można do tego użyć raportów ze zdefiniowanym zewnętrznym źródłem danych patrz: [wiki:DeployerGuide/Customization/AdvancedReporting tworzenie raportów SQL]