= Integracja z systemami ERP i FK = #integracja === Menu === 1. [#wprowadzenie Wprowadzenie] 2. [#opis Opis konfiguracji][[BR]] 2.1 [#wstep Czynności wstępne][[BR]] 2.2 [#xml_transfer Wymiana poprzez XML][[BR]] 2.3 [#db_transfer Wymiana poprzez połączenie z bazą danych][[BR]] 2.4 [#dalsze Dalsza konfiguracja] 3. [#przyklady Integracja z systemami zewnętrznymi] == Wprowadzenie == #wprowadzenie Integracja z systemami zewnętrznymi wykorzystuje mechanizm '''bs_connect''', który potrafi pobierać dane z wielu źródeł, jak bazy danych lub pliki XML. Dzięki temu możliwe jest podpięcie do dowolnego systemu, na którego bazie danych można zdefiniować widoki, z których dane zostaną pobrane (albo bezpośrednio, ale poprzez wygenerowane pliki XML). ''[#integracja Powrót do menu]'' == Opis konfiguracji == #przyklady === Czynności wstępne === #wstep Poniższy opis zawiera uniwersalne informacje niezależne od systemu. Zakłada użycie najczęściej stosowanej formy integracji. W dalszej części artykułu znajdują się odnośniki . Może zdarzyć się, że w konkretnym przypadku, konfiguracja integracji będzie różnić się od podanego przykładu. Każda konfiguracja integracji rozpoczyna się od zdefiniowania w pliku config.inc stałej SYNC_ACTIVE na 'NEW'. (Ewentualnie dla połączeń realizowanych w "stary" sposób ustawiamy na TRUE). {{{ #!php define('SYNC_ACTIVE', 'NEW'); // Najczęściej stosowana forma. //define('SYNC_ACTIVE',TRUE); // Może być zdefiniowana tylko jedna forma integracji }}} Po zdefiniowaniu formy integracji należy zalogować się do eDokumentów z prawami administratora. W menu ''Narzędzia'' Pojawia się opcja pt. ''Integracja z systemami zewnętrznymi''. [[BR]][[Image(001.png)]][[BR]]''Przycisk uruchamiania konfiguratora integracji''[[BR]] Po kliknięciu w ww. przycisk uruchamia się okno, w którym zostaną wykonane czynności integracyjne. [[BR]][[Image(002.png)]][[BR]]''Okno konfiguratora integracji''[[BR]] Pierwszym krokiem każdej integracji jest określenie zewnętrznego źródła danych. W tym celu należy kliknąć w przycisk ''Definicji źródeł wymiany danych'' (ikonka z dwiema strzałkami). [[BR]][[Image(003.png)]][[BR]]''Uruchamianie definiowania źródeł wymiany danych''[[BR]] Po kliknięciu w przycisk pojawi się okno, w którym zostanie zdefiniowane źródło wymiany danych. [[BR]][[Image(004.png)]][[BR]]''Okno źródła wymiany danych''[[BR]] Kolejnym krokiem jest dodanie nowego źródła wymiany danych. W tym celu należy kliknąć przycisk ''Nowy''. Zostanie uruchomione nowe okienko, w którym należy ustawić parametry wymiany danych. [[BR]][[Image(007.png)]][[BR]]''Okno konfiguracji wymiany danych''[[BR]] Poniżej pokazano przykładowe okna konfiguracyjne źródeł wymiany danych: [[BR]][[Image(005.png)]][[BR]]''Wymiana danych poprzez bezpośrednie podłączenie do bazy danych''[[BR]] [[BR]][[Image(006.png)]][[BR]]''Wymiana danych poprzez import/eksport plików XML''[[BR]] === Wymiana poprzez XML === #xml_transfer Wymiana poprzez XML wymaga: * wybrania na typu ''XML - Wymiana pliku poprzez pliki XML''. Po wybraniu tej opcji pojawiają się dodatkowe pola, w których najważniejsze jest: * Ścieżka składu, gdzie wskazujemy ścieżkę dostępu do katalogu, w którym znajdować się będą importowane/eksportowane pliki. Należy pamiętać o nadaniu uprawnień do tego katalogu dla użytkownika '''www-data'''. Dodatkowo w tym katalogu powinien znaleźć się podkatalog '''sent''', który przechowywać będzie przetworzone pliki XML * Pole ''Szablon XML'' określa nazwę szablonu do eksportu dokumentów. Fizycznie znajdować się powinien w katalogu {{{public_html/apps/edokumenty/var/tpl/bs_connect}}}. Niniejszy rysunek przedstawia przykładową konfigurację połączenia (w tym przypadku będzie to import dokumentów): [[BR]][[Image(008.png)]][[BR]]''Ustawienia źródła wymiany danych''[[BR]] Po wprowadzeniu niezbędnych danych i zatwierdzeniu formularza - źródło wymiany danych powinno pojawić się w formatce źródeł wymiany danych: [[BR]][[Image(009.png)]][[BR]]''Ustawione źródła wymiany danych''[[BR]] ''[#integracja Powrót do menu]'' === Wymiana poprzez połączenie z bazą danych === #db_transfer [TODO] Opis konfiguracji źródła wymiany danych poprzez ''[#integracja Powrót do menu]'' === Dalsza konfiguracja === #dalsze W momencie, gdy mamy zdefiniowane źródło wymiany danych, należy zamknąć okno i powrócić do okna Połączeń z systemami zewnętrznymi. W oknie tym należy kliknąć nowe połączenie. Otworzy się formatka, w której takie połączenie zostanie skonfigurowane. W okienku tym należy wprowadzić nazwę połączenia, wybrać identyfikator systemu zewnętrznego, [[BR]][[Image(010.png)]][[BR]]''Konfiguracja połączenia z systemem zewnętrznym''[[BR]] źródło wymiany danych. Pozostałe ustawienia są opcjonalne. [[BR]][[Image(011.png)]][[BR]]''Konfiguracja połączenia z systemem zewnętrznym''[[BR]] W tym momencie należy kliknąć przycisk ''Zapisz''. Wyświetli się komunikat o przejściu na zakładkę '''Synchronizacja''' oraz o dodaniu mapowania kolumn. [[BR]][[Image(012.png)]][[BR]]''Informacja o konieczności dodania mapowania kolumn''[[BR]] Odnośnie mapowania kolumn. Ten temat zostanie opisany poniżej, najpierw należy skupić się nad prawidłową konfiguracją połączenia z systemem zewnętrznym po stronie eDokumentów. [[BR]][[Image(013.png)]][[BR]]''Zakładka konfiguracja''[[BR]] W zakładce ''Synchronizacja'' klikamy Nowy i otwiera się okienko dodawania obiektów, które będą podlegać synchronizacji: [[BR]][[Image(014.png)]][[BR]]''Obiekty konfiguracji''[[BR]] Należy po kolei dodawać obiekty, które mają być integrowane z systemem zewnętrznym. [[BR]][[Image(015.png)]][[BR]]''Dodany obiekt konfiguracji''[[BR]] Przy dodaniu każdego z nich zostanie otwarte okno konfiguracji każdego obiektu: [[BR]][[Image(016.png)]][[BR]]''Konfiguracja obiektu dokumenty''[[BR]] W oknie tym znajdują się dwie zakładki: * ''Konfiguracja'' - w której wybieramy, czy obiekty mają być aktualizowane, jeżeli istnieją już w eDokumentach, ale ich warunki integracji (pola mapowania) nie zawierają żadnej wartości. Dodatkowo wymaga się, aby utworzyć '''stanowisko''', na które będą importowane dokumenty (dotyczy tylko obiektu Dokument). * ''Akcje'' - definiujemy, jakie akcje mogą być dostępne do uruchamiania. Dana akcja może być aktywna, lub nieaktywna. [[BR]][[Image(017.png)]][[BR]]''Zakładka Akcje obiektu Dokument''[[BR]] Klikając na edycję Akcji możemy ustawić wiele parametrów. Na szczególną uwagę zasługują: * szablon, według którego dane będą pobierane i synchronizowane, * źródło wymiany danych - oprócz globalnego ustawienia połączenia z systemem zewnętrznym, każda akcja może mieć zdefiniowany własne źródło wymiany danych. [[BR]][[Image(019.png)]][[BR]]''Ustawienia akcji''[[BR]] W przypadku importowania danych dokumentów z pliku XML nalezy pamiętać, iż oprócz akcji Pobierania nowych lub zmodyfikowanych dokumentów, należy zdefiniować szablony dla akcji pokrewnych, które wynikają ze struktury pliku XML: * Produkty - pobierz wszystkie, nowe i zmodyfikowane. * Kontrahenci - pobierz wszystkie, nowe i zmodyfikowane. Schemat szablonów można przedstawić nastepująco: {{{ #!sql -- Powiąż klienta COALESCE(REPLACE(REPLACE(RTRIM(LTRIM(nip___)), '-', ''), ' ', ''), '') = COALESCE(REPLACE(REPLACE('{nip___}', '-', ''), ' ', ''), '') AND RTRIM(LTRIM(LOWER(name_2))) = RTRIM(LTRIM(LOWER('{name_2}'))) -- Pobierz wszystkich klientów, pobranie nowych klientów, powiązanie klienta, aktualizacja danych klienta COALESCE(regexp_replace(nip___, '[ |-]*', '', 'g'), '') = COALESCE(regexp_replace('{nip___}', '[ |-]*', '', 'g'), '') OR lower(name_2) = lower('{name_2}') -- Aktualizuj produkt, pobranie nowych produktów, powiązanie produktu COALESCE(TRIM(symbol), '') = COALESCE(TRIM('{symbol}'), '') -- Pobranie nowych i zaktualizowanych dokumentów: COALESCE(TRIM(ex_sym), '') = COALESCE(TRIM('{symbol}'), '') }}} Nazwy kolumn w tokenie tj w nawiasach klamrowych odpowiadają kolumnom z mapowania. Właściwym polem jest prawe po znaku równości. [[BR]][[Image(020.png)]][[BR]]''Przykład mapowania pola synchronizacji''[[BR]] Finalnie, po skonfigurowaniu wszystkich potrzebnych akcji powinniśmy uzyskać wpis w oknie połączeń z systemami zewnętrznymi. Najistotniejszą informacją w tym oknie jest identyfikator połączenia, który będzie częścią nazwy pliku konfiguracji i pliku mapy. [[BR]][[Image(018.png)]][[BR]]''Ustawione połączenie z systemem zewnętrznym.''[[BR]] W tym miejscu należy omówić tworzenie map. Na dzień dzisiejszy oparty jest on na dwóch plikach: * NAZWASYSTEMU_documents_conf.ini * NAZWASYSTEMU_columns_map.ini Pliki te można znaleźć w katalogu: {{{public_html/apps/edokumenty/var/tpl_default/sync}}}. Należy taki zestaw plików przekopiować do katalogu: {{{public_html/apps/edokumenty/etc/sync}}}. Dodatkowo należy zmienić nazwę pliku, tak aby zamiast NAZWASYSTEMU był numeryczny identyfikator połączenia z systemem zewnętrznym np. * 3_documents_conf.ini * 3_columns_map.ini ''[#integracja Powrót do menu]'' == Przykładowe integracje == #przyklady === Aktualne === * [wiki:DeployerGuide/Customization/Forte Integracja z systemem Forte Handel] * [wiki:DeployerGuide/Customization/ForteFK Integracja z systemem Forte FK] * [wiki:DeployerGuide/Customization/Integration/ENOVAMySQL Integracja z systemem ENOVA (MySQL)] * [wiki:DeployerGuide/Customization/Integration/ENOVAMSSQL Integracja z systemem ENOVA (MSSQL)] * [wiki:DeployerGuide/Customization/Integration/WaproWfMag Integracja z systemem WAPRO WF-Mag] * [wiki:DeployerGuide/Customization/ExternalConfigurationFK/Optima Integracja z Optimą] === Integracja w starszych wersjach systemu === * [wiki:DeployerGuide/Customization/ExternalsConfigurationFK Definiowanie połączenia z systemami FK] * [wiki:DeployerGuide/Customization/ExternalsConfigurationCDNXL Integracja z systemem CDN XL] * [wiki:DeployerGuide/Customization/SymfoniaFK Integracja z systemem Symfonia Finanse i Księgowość] * [wiki:DeployerGuide/Customization/SymfoniaHandel Integracja z systemem Symfonia Handel] ''[#integracja Powrót do menu]''