= [wiki:DeployerGuide Przewodnik wdrożeniowca] > Podstawowa konfiguracja systemu eDokumenty (uruchomienie modułu BSConnect) = #konfiguracja [wiki:DeployerGuide/Customization/Integration Strona główna Integracji] === Wprowadzenie === #menu 1. [#zrodlo_danych Konfiguracja źródeł danych] 2. [#uruchomienie Uruchomienie modułu BSConnect] 3. [#zrodla_wymiany_danych Konfiguracja źródeł wymiany danych] 4. [#polaczenie Tworzenie połączenia z systemem zewnętrznym] 5. [#bs_export_queue Tabela bs_export_queue dla połączeń typu DB] == Konfiguracja źródła danych == #zrodlo_danych Sekcja ta opisuje sposób konfiguracji źródła danych. Źródło jest ciągiem tekstowym, który zawiera dane połączenia do zewnętrznej bazy danych, takie jak: * Server - Nazwę instancji serwera. Zawiera w sobie adres hosta serwera baz danych, numer portu (np. dla zdalnych połączeń z Ms SQL Server). Przykładowe dane to {{{localhost\sqlexpress}}} lub też {{{192.168.0.1:1024}}}, * Database - Nazwę bazy danych. * Uid, User - identyfikator użytkownika baz danych * Pwd, Password - hasło użytkownika bazy danych * Port - [parametr opcjonalny] numer portu, na którym nasłuchuje serwer baz danych. Parametr nie jest wykorzystywany przez Ms SQL Server. * Encoding - [parametr opcjonalny] kodowanie połączenia z systemem zewnętrznym. W poniższym listingu przedstawiono przykładowe ciągi połączeń dla różnych systemów zarządzania bazami danych: {{{ # Microsoft SQL Server : Server=localhost\sqlexpress;Database=eDok;Uid=edokumenty;Pwd=edokumenty; lub Server=192.168.0.1:1433;Database=eDok;Uid=edokumenty;Pwd=edokumenty; # MySQL : Server=192.168.0.1;Port=3306;Database=eDok;User=edokumenty;Password=edokumenty; # Oracle : Server=192.168.0.1;Database=192.168.0.1/eDok;Uid=edokumenty;Pwd=edokumenty;encoding=AL32UTF8; # PostgreSQL : host=localhost port=5432 dbname=eDok user=edokumenty password=edokumenty # ODBC DSN=SYSTEMOWE_ZRODLO_32BIT_ODBC_TYPU_SQL_SERVER;Server=localhost ;Database=eDok;Uid=edokumenty;Pwd=edokumenty; }}} Konfigurację źródła danych przeprowadzamy w menu ''Ustawienia > Panel Sterowania > Źródła danych'' : [[Image(20131111_090914.png)]][[BR]]''Rys. 1. Ustawienia > Panel Sterowania''[[BR]] [[Image(20131111_091202.png)]][[BR]]''Rys. 2. Panel Sterowania i Źródła danych''[[BR]] [[Image(20131111_091317.png)]][[BR]]''Rys. 3. Okno konfiguracji źródeł danych''[[BR]] W oknie tym można uruchamiać dodawanie, edycję lub też usuwać źródła danych. W przypadku dodawania lub edycji uruchomi się okno, w którym należy: * wprowadzić unikalną nazwę (najlepiej identyfikującą system zewnętrzny) * wybrać sterownik do odpowiedniego SZBD * wpisać ciąg połączenia. [[Image(20131111_091456.png)]][[BR]]''Rys. 4. Okno dodawania / edycji źródła danych''[[BR]] Po kliknięciu przycisku Zapisz okienko edycji powinno się zamknąć. Oznacza to, że źródło zostało poprawnie dodane. W przeciwnym przypadku zostanie wyświetlony komunikat o błędzie połączenia. ''[#konfiguracja Powrót do menu]'' == Uruchomienie modułu BSCOnnect == #uruchomienie Kolejnym etapem w procesie Integracji z systemem zewnętrznym jest uruchomienie modułu '''BSConnect'''. Aby rozpocząć prace integracyjne należy włączyć moduł BSConnect. Moduł ten włącza się modyfikując plik {{{config.inc}}} w katalogu: {{{ [katalog instalacji]/public_html/apps/edokumenty/config.inc }}}. W pliku tym należy wprowadzić następujace wyrażenie: {{{ #!php define('SYNC_ACTIVE', 'NEW'); }}} [[Image(001.jpg)]][[BR]]''Rys. 5. Wpis w pliku config.inc'' Następnie należy zalogować się ponownie na koncie administratora systemu eDokumenty. Po ponownym zalogowaniu się w menu ''Narzędzia'' powinno pojawić się polecenie ''Połączenia z systemami zewnętrznymi'': [[Image(003.jpg)]][[BR]]''Rys. 6. Widok menu po uruchomieniu modułu BSConnect'' Klikając na polecenie: ''Narzędzia > Połączenia z systemami zewnętrznymi'' uruchamia się okno konfiguracji połączeń z systemami zewnętrznymi.: [[Image(004.jpg)]][[BR]]''Rys. 7. Okno konfiguracji połączeń z systemami zewnętrznymi'' ''[#konfiguracja Powrót do menu]'' == Konfiguracja źródeł wymiany danych == #zrodla_wymiany_danych Sprzedane na allegro: Mając otwarte okno konfiguracji połączeń z systemami zewnętrznymi można odpowiednio: * dodawać nowe połączenie * edytować połączenie * usuwać połączenie * planować zadania dla każdego z połączeń osobno * przeglądać historię dla wybranego połączenia * przeglądać dziennik zdarzeń związanych z wybranym połączeniem * definiować źródło wymiany danych Pierwszym krokiem, który należy wykonać to zdefiniować źródło wymiany danych. Jest obiekt pośredniczący, który definiuje przy pomocy jakich mechanizmów dane połączenie będzie miało pobierać lub eksportować dane. W tym celu na pasku menu należy kliknąć Źródła wymiany danych. W nowo otwartym oknie po wybraniu opcji Nowe otworzy się okno, w którym można zdefiniować parametry źródła wymiany danych. Są to: * Nazwa unikalna źródła wymiany danych * Typ źródła wymiany danych [[Image(20131111_100120.png)]][[BR]]''Rys. 8. Konfiguracja źródła wymiany danych''[[BR]] Wyróżnia się następujące typy źródeł wymiany danych: * DB - Wymaga danych poprzez bazę danych (wymaga utworzenia dedykowanych widoków) * CUSTOM_DB - Wymaga danych poprzez bazę danych z wykorzystaniem dedykowanej klasy PHP. Klasę należy umieścić w lokalizacji {{{ public_html/apps/edokumenty/classes/BSConnectReadOnly/exchange/custom. }}} Przykład takiej klasy zamieszczono poniżej. * XML - Wymiana poprzez plik XML o odpowiedniej strukturze. * CUSTOM_XML - Wymiana poprzez plik XML o odpowiedniej strukturze z dedykowaną klasę PHP. * CUSTOM_SOAP - Wymiana danych poprzez usługę SOAP - określenie dedykowanej klasy PHP * EPUAP - Wymiana danych ze skrzynką podawczą ePUAP (określenie konfiguracji podmiotu ePUAP) Przykład klasy PHP dla wymiany CUSTOM_DB. {{{ #!php }}} Dalsze parametry źródła wymiany danych zależą od wybranego typu. dla typu: * '''DB''' * Źródło danych - zdefiniowane źródło danych (''Ustawienia > Panel Sterowania > Źródła danych '') * Nazwa schemy - nazwa schematu w bazie danych (Uwaga, dla SZBD typu MsSQL pole należy zostawić puste. Spowodowane jest to faktem, że system ten nie obsługuje schematów). [[Image(20131125_095523.png)]][[BR]]''Rys. 9. Opcje dla typu DB ''[[BR]] * '''CUSTOM_DB''' - zawiera podobne pola jak typ ''DB'', z dodatkowym polem na nazwę klasy np. ''CustomDBExchange'' [[Image(20131125_095837.png)]][[BR]]''Rys. 10. Opcje dla typu CUSTOM_DB ''[[BR]] * '''XML''' * Ścieżka składu - ścieżka dostępu do pliku XML, np. {{{/mnt/integration/}}} lub dla Ms Windows {{{ D:/Integracja/ }}}. Uwaga należy używać znaków slash zamiast back-slash (jak jest to pokazane w przykładach) * Szablon - nazwa pliku szablonu flexy .tpl znajdującego się w katalogu systemu eDokumenty: {{{ public_html/apps/edokumenty/var/tpl/bs_connect}}}. [[Image(20131125_100444.png)]][[BR]]''Rys. 11. Opcje dla typu XML ''[[BR]] * '''CUSTOM_XML''' - integracja poprzez plik XML ze wskazaniem własnej klasy. Nazwę klasy należy podać zamiast szablonu nazwę klasy. [[Image(20131125_100742.png)]][[BR]]''Rys. 12. Opcje dla typu CUSTOM_XML ''[[BR]] * '''CUSTOM_SOAP''' - Wykorzystujący mechanizm SOAP: * Klasa - nazwa klasy np. ''MojaKlasa'' zapisana jako plik ''MojaKlasa.inc'' w katalogu: {{{public_html//apps/edokumenty/classes/BSConnectReadOnly/exchange/custom}}}. * Adres serwisu - Adres web serwisu obsługującego żadania. W przypadku pustego pola wymagane jest aby to dedykowana klasa miała skonfigurowany adres web serwisu. [[Image(20131125_101941.png)]][[BR]]''Rys. 13. Opcje dla typu CUSTOM_SOAP ''[[BR]] * '''ePUAP''' - w tej konfiguracji podawany jest z listy wyboru podmiot ePUAP, z którą nastąpi połączenie. Jeśli lista jest pusta należy przejść do ''Narzędzia -> Konfiguracja podmiotów ePUAP'' i tam postępując zgodnie z dokumentacją zdefiniować podmiot ePUAP. [[Image(20131125_102341.png)]][[BR]]''Rys. 14. Opcje dla typu ePUAP ''[[BR]] Na tym kończy się konfiguracja źródeł wymiany danych. W następnej części opisano tworzenie Połączenia z systemem zewnętrznym. ''[#konfiguracja Powrót do menu]'' == Tworzenie połączenia z systemem zewnętrznym == #polaczenie Na tym etapie zostanie utworzone połączenie z systemem zewnętrznym. Mając otwarte okno definicji ''Połączeń z systemami zewnętrznymi'', które należy wywołać z menu ''Narzędzia'' klikamy ''Nowy''. [[Image(20131125_103413.png)]][[BR]]''Rys. 15. Okno definicji Połączenia z systemem zewnętrznym ''[[BR]] W oknie tym są trzy przyciski na pasku poleceń: * Zaplanowane zadania - definicja automatycznego wykonywania akcji przy wykorzystaniu linuksowego Cron-a lub Harmonogramu Zadań systemu Windows. * Historia połączenia - historia wyników operacji dla danego połączenia * Dzienniki zdarzeń - eksplorator plików log-ów z każdego wywołania połączenia z systemem zewnętrznym. Pola, które dla danego połączenia należy wypełnić to: * Nazwa - unikalna nazwa połączenia z systemem zewnętrznym. * Opis - [parametr opcjonalny] - opis połączenia z systemem zewnętrznym. * Identyfikator systemu - uwaga, dla integracji z wykorzystaniem BSConnect domyślnie należy wybrać '''inny'''. * Źródło wymiany danych - domyślne źródło wymiany danych dla całego połączenia. * Priorytet - [parametr opcjonalny] Domyślnie puste (automatycznie nadawane przez system). Parametr służy ustawieniu kolejności wyświetlania danego połączenia na liście połączeń. * Domyślne połączenie - znacznik, czy dane połączenie jest połączeniem domyślnym. Należy dodać, iż jedno połączenie może zawierać w sobie odwołania do wielu źródeł wymiany danych. Np. w konfiguracji ogólnej możemy wybrać jedno domyślne źródło wymiany danych (np. typu DB), natomiast dla poszczególnych akcji połączenia z systemem zewnętrznym możemy wybrać inne (np. CUSTOM_DB lub XML). Po zapisaniu formatki pojawia się zakładka synchronizacja, w której konfigurowane będą akcje dla każdego z obiektów synchronizacji. ''[#konfiguracja Powrót do menu]'' == Tabela bs_export_queue dla połączeń typu DB == #bs_export_queue Konfigurację pobierania danych z systemu zewnętrznego z wykorzystaniem źródła wymiany danych typu DB należy rozpocząć od utworzenia na bazie danych systemu zewnętrznego (lub bazie pośredniej) tabeli: '''.bs_export_queue'''. Wymagana struktura tabeli powinna być następująca: ||Kolumna||Typ danych||NULL?||Klucz główny||Auto increment||Default|| ||exp_id||bigint||NOT NULL||Tak||Tak ||-|| ||keyval||int||NULL||Nie||-||-|| ||clsnam||varchar(32)||NULL||Nie||-||-|| ||chadat||timestamp with time zone / datetime ||NULL||Nie||-||GETDATE()|| Przykładowe skrypty tworzące tabelę: {{{ #!sql -- Ms SQL Server -- USE GO IF OBJECT_ID('edokumenty.bs_export_queue') IS NOT NULL BEGIN DROP TABLE edokumenty.bs_export_queue END GO CREATE TABLE edokumenty.bs_export_queue( exp_id bigint IDENTITY(1,1) NOT NULL, keyval int NULL, clsnam varchar(32) NULL, chadat datetime NULL, CONSTRAINT pk_exp_id PRIMARY KEY CLUSTERED (exp_id ASC) ) ; GO ALTER TABLE edokumenty.bs_export_queue ADD DEFAULT (getdate()) FOR chadat GO -- PostgreSQL -- DROP TABLE IF EXISTS edokumenty.bs_export_queue CASCADE; CREATE TABLE edokumenty.bs_export_queue ( exp_id bigint NOT NULL PRIMARY KEY, keyval int NULL, clsnam varchar(32) NULL, chadat timestamp with time zone DEFAULT current_timestamp ); DROP SEQUENCE IF EXISTS edokumenty.bs_export_queue_seq CASCADE; CREATE SEQUENCE edokumenty.bs_export_queue_seq INCREMENT BY 1 START 1 NO MAXVALUE OWNED BY edokumenty.bs_export_queue.exp_id; ALTER TABLE edokumenty.bs_export_queue ALTER COLUMN exp_id SET DEFAULT nextval('edokumenty.bs_export_queue_seq'); ALTER TABLE edokumenty.bs_export_queue OWNER TO edokumenty; GRANT ALL ON TABLE edokumenty.bs_export_queue TO edokumenty; GRANT ALL ON TABLE edokumenty.bs_export_queue TO http; -- MySQL -- DROP TABLE IF EXISTS bs_export_queue; CREATE TABLE bs_export_queue( exp_id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT, keyval INT NULL, clsnam VARCHAR(32) NULL, chadat TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); }}} [wiki:DeployerGuide/Customization/Integration/Import Import danych z systemu zewnętrznego][[BR]] ''[#konfiguracja Powrót do menu]''