= 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. * zmiana stałej w pliku config.inc * sprawdzenie danych w tabeli wsdl_config_table w systemie eDokumenty * utworzenie tabeli kolejki w systemie Subiekt * założenie triggerów na tabele * dok!__Dokument * adr!__Ewid * kh!__Kontrahent * założenie widoków (eDokumenty > 2.0 RC15) * 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 == Zmiana stałej == W pliku config.inc należy zmienić stałą "SUBIEKT_DATA_SOURCE_DTSCNM" na {{{ define('SUBIEKT_DATA_SOURCE_DTSCNM', 'nazwa'); }}} gdzie nazwę należy zastąpić nazwą bazy danych systemu Subiekt == Sprawdzenie danych w tabeli == Jeśli w systemie eDokumenty tabela wsdl_config_table jest pusta należy wykonać odpowiedni skrypt SQL dla Subiekt znajduję się on w katalogu {{{ apps\edokumenty\classes\BsConnect\install\data\subiekt_wsdl_ins.sql }}} następnie należy przejść do punkty [wiki:Deployment/SystemsIntegration#wsdl Konfiguracja tabeli wsdl_config_table] aby dokonać niezbędnych poprawek oraz ustawień według zaleceń. == 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. == 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 bądź 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. == Założenie widoków == Począwszy od wersji 2.0 RC16 można decydować jakie dane mają być pobierane z systemu zew. poprzez modyfikacje specjalnych widoków przeznaczonych do synchronizacji. Widoki te są wymagane w celu prawidłowego funkcjonowania. Można je znaleźć w katalogu {{{ edokumenty\classes\BsConnect\install\sql\subiekt\views }}} ''' 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. Widoki modyfikujemy jeśli klient zażyczy sobie aby z systemu zew. były pobierane dodatkowe dane, których podstawowa definicja nie uwzględniła. Następnie w pliku konfiguracyjnym {{{ SUBIEKT_columns_map.ini }}} dodajemy kolejny wpis pod odpowiednim indeksem [contacts] - kontakty, [documents] - dokumenty z rzutowaniem danych z dodanej kolumny w widoku na kolumnę w systemie eDokumenty. ''' Jaka metoda jaki widok wykorzystuje ''' * Importuj wszystkie kontakty - subiekt_export_all_contacts_view * Aktualizuj dane - subiekt_export_all_queued_contacts_view * Aktualizuj dokumenty - subiekt_export_all_queued_contacts_documents_view * Aktualizuj dane kontaktów - subiekt_export_all_queued_contacts_view * Aktualizuj dokumenty kontaktów - subiekt_export_all_queued_contacts_documents_view * Pobierz wszystkie dokumenty - subiekt_export_all_contacts_documents_view == Reset == Na wypadek gdyby wprowadzone zmiany miały wpływ na stabilność systemu Subiekt należy wykonać plik reset_subiekt.sql który usuwa tabele export_queue, triggery oraz widoki.