Zmiany pomiędzy wersją początkową i wersją 1 dla DeployerGuide/Customization/ExternalConfigurationFK/Optima

Pokaż
Ignoruj:
Data i czas:
03/24/10 12:11:54 (14 years temu)
Autor:
mgrys (IP: 213.227.67.33)
Komentarz:

--

Legend:

Bez zmian
Dodane
Usunięte
Zmienione
  • DeployerGuide/Customization/ExternalConfigurationFK/Optima

    v1 v1  
     1= Integracja z zewnętrznymi systemami = 
     2 
     3== Sposób utworzenia połączania z systemem Optima == 
     4 
     5Aby umożliwić synchronizację z systemem Optima należy wykonać poniższe czynności. 
     6 
     7 *  zmiana stałej w pliku config.inc 
     8 *  sprawdzenie danych w tabeli wsdl_config_table w systemie eDokumenty 
     9 *  utworzenie tabeli kolejki w systemie Optima 
     10 *  założenie triggerów na tabele 
     11    * dok!__Dokument 
     12    * adr!__Ewid 
     13    * kh!__Kontrahent 
     14 *  założenie widoków (eDokumenty > 2.0 RC15) 
     15    * subiekt_export_all_contacts_documents_view.sql 
     16    * subiekt_export_all_contacts_view.sql 
     17    * subiekt_export_all_queued_contacts_documents_view.sql 
     18    * subiekt_export_all_queued_contacts_view.sql 
     19 
     20== Zmiana stałej == 
     21W pliku config.inc należy zmienić stałą "SUBIEKT_DATA_SOURCE_DTSCNM" na 
     22{{{ 
     23 define('OPTIMA_DATA_SOURCE_DTSCNM', 'nazwa'); 
     24}}} 
     25gdzie nazwę należy zastąpić nazwą bazy danych systemu Optima 
     26 
     27== Sprawdzenie danych w tabeli == 
     28Jeśli w systemie !eDokumenty tabela wsdl_config_table jest pusta należy wykonać odpowiedni skrypt SQL dla Optima znajduję się on w katalogu 
     29 
     30{{{ 
     31apps\edokumenty\classes\BsConnect\install\data\optima_wsdl_ins.sql 
     32}}} 
     33następnie należy przejść do punktu "Konfiguracja tabeli wsdl_config_table" aby dokonać niezbędnych poprawek oraz ustawień według zaleceń. 
     34 
     35{{{ 
     36#!html 
     37<h1 id="wsdl" style="visibility:hidden"></h1> 
     38}}} 
     39== Ustawienia w tabeli wsdl_config_table == 
     40Następny krok to sprawdzenie tabeli wsdl_config_table oraz czy zawiera dane. W przypadku jeśli jest pusta proszę udać się na stronę z integracją wybranego systemu. Edycję ustawień połączeń możemy dokonać z interfejsu eDokumentów '''Ustawienia -> Systemy zewnętrzne''' 
     41 
     42'''Opis kolumn''' 
     43 *  Adres - adres pliku (serwera), 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ć z linii poleceń psql według ustawień instalacji [[br]] 
     44{{{ 
     45UPDATE wsdl_config_table SET wsdl__ = replace(wsdl__, '{host}', 'localhost:8080/edokumenty'); 
     46}}} 
     47 *  System - wskazuje na nazwę systemu dla którego konfigurowana jest dana metoda(zostawiamy bez zmian) 
     48 *  Warunek SQL - warunek po jakim będą synchronizowane dane 
     49   * dla akcji "Podwiąż kontakt" z lewej strony znaku równości wskazujemy kolumnę z systemu zew. natomiast z prawej w wąsach kolumnę z systemu eDokumenty  
     50{{{ 
     51(np. dla OPT!MY: Knt_Nip='{nip___}' AND Knt_Nazwa1='{name_1}' co oznacza, że będzie  
     52wyszukiwanie kontaktu w systemie OT!MA gdzie kolumna Knt_Nip będzie równa numerowi nip  
     53kontaktu z systemu eDokumenty (token {nip___} jest zamieniany na dane) itd) 
     54}}} 
     55 
     56   *  dla pozostałych akcji po lewej stronie jest nazwa kolumny z systemu eDokumety a z prawej token z maski(zobacz w katalogu apps\edokumenty\etc\sync) z jakimi zostanie zastąpiony. 
     57 
     58Różnica między tymi metodami polega na tym iż w przypadku szukania kontaktu w systemie zew. należy wykonać zapytanie na zew. bazie dlatego z lewej strony są nazwy kolumn z systemu zew. a z prawej tokeny nazwy kolumn systemu eDokumenty, które zostaną zastąpione danymi wybranego kontaktu. 
     59 
     60Reszta metod służy do porównania danych przychodzących z systemu zew. do systemu eDokumenty. Zapytanie jest wykonywane na bazie eDokumenty dlatego z lewej strony wstawiamy nazwę kolumny z tabeli z bazy eDokumenty natomiast z prawej dane z tablicy "mapy" z systemu zew.  
     61 
     62Tablica (mapa kolumn) ułatwia sparsowanie danych i lepsze rozeznanie przykład 
     63 
     64{{{ 
     65apps\edokumenty\etc\sync\OPTIMA_columns_map.ini 
     66Przykładowa konfiguracja tablicy mapy dla kontaktu dla OPT!MY 
     67[contacts] 
     68Knt_KntID = contid 
     69Knt_Nazwa1 = name_1 
     70Knt_Nazwa2 = name_2 
     71Knt_Nazwa3 = name_2 
     72Knt_Kraj = countr 
     73Knt_Wojewodztwo = woj___ 
     74Knt_Powiat = powiat 
     75Knt_Ulica = street 
     76Knt_NrDomu = bldnum 
     77Knt_NrLokalu = fltnum 
     78Knt_Miasto = city__ 
     79Knt_KodPocztowy = code__ 
     80Knt_Nip = nip___ 
     81}}} 
     82Oznacza to, że do dyspozycji będą dane pod danymi kluczami np.: klucz "nip_!__" będzie zawierał numer nip kontaktu z systemu zew. (w tym przypadku OPT!MA) dlatego warunek zapytania w bazie eDokumeny będzie miało postać 
     83{{{ 
     84nip___='{nip___}' 
     85}}} 
     86Czyli szukamy kontaktu w bazie eDokumenty gdzię nip_!__ (lewa strona) kontaktu z bazy eDokumenty jest równy numerow nip z tabeli - mapy danych jakie otrzymamy z systemu zew. Należy pamiętać aby token w wąsach był dodatkowo w pojedyńczych apostrofach. Ze względu na różny typ danych i sposób w jaki mogą być potraktowane przez SQL (cyfry, liczby nie wymagają apostrofów natomiast litery tak!!) lepiej jest dla każdego typu danych w wąsach stosować apostrofy. 
     87 
     88== Utworzenie tabeli kolejki == 
     89W systemie Optima (w bazie) wykonujemy skrypt z pliku  
     90{{{ 
     91apps\edokumenty\classes\BsConnect\install\sql\optima\optima_export_queue.sql 
     92 
     93}}} 
     94Po wykonaniu tego skryptu w systemie Optima powinna pojawić się dodatkowa tabela o nazwie export_queue. 
     95 
     96== Założenie triggerów == 
     97Triggery 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 
     98{{{ 
     99apps\edokumenty\classes\BsConnect\install\sql\optima 
     100}}} 
     101znajdują 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/) 
     102[[BR]]Dla tabeli dokumentów 
     103[[BR]] 
     104[[Image(opDkAd.png, nolink)]] [[BR]] 
     105 
     106Natomiast dla tabeli Kontrahenci [[BR]] 
     107[[Image(opKh.png, nolink)]] [[BR]] 
     108 
     109Możemy przetestować działanie mechanizmy poprzez dodanie do systemu Subiekt dokumentu lub kontrahenta i sprawdzeniu czy w tabeli export_queue pojawiły się wpisy. 
     110 
     111== Założenie widoków == 
     112Począ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 
     113{{{ 
     114edokumenty\classes\BsConnect\install\sql\optima\views 
     115}}} 
     116 
     117Można też je pobrać z załączonego niżej katalogu optima.zip. Widoki należy wykonać na bazie Optima (MsSQL). 
     118 
     119''' Opis widoków ''' 
     120 *  subiekt_export_all_contacts_documents_view - wyświetla wszystkie dokumenty, które mają kontrahenta 
     121 *  subiekt_export_all_contacts_view - wyświetla wszystkich kontrahentów 
     122 *  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. 
     123 *  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. 
     124 
     125kolejność wykonywania nie ma znaczenia. 
     126 
     127Widoki 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. 
     128Widoki 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  
     129{{{ 
     130SUBIEKT_columns_map.ini 
     131}}} 
     132dodajemy kolejny wpis pod odpowiednim indeksem [contacts] - kontakty, [documents] - dokumenty z rzutowaniem danych z dodanej kolumny w widoku na kolumnę w systemie eDokumenty. 
     133 
     134''' Jaka metoda jaki widok wykorzystuje ''' 
     135 *  Importuj wszystkie kontakty - subiekt_export_all_contacts_view 
     136 *  Aktualizuj dane - subiekt_export_all_queued_contacts_view 
     137 *  Aktualizuj dokumenty - subiekt_export_all_queued_contacts_documents_view 
     138 *  Aktualizuj dane kontaktów - subiekt_export_all_queued_contacts_view 
     139 *  Aktualizuj dokumenty kontaktów - subiekt_export_all_queued_contacts_documents_view 
     140 *  Pobierz wszystkie dokumenty - subiekt_export_all_contacts_documents_view 
     141 
     142== Reset == 
     143Na wypadek gdyby wprowadzone zmiany miały być z jakiegoś względu wycofane z bazy optimy, należy wykonać plik reset_optima.sql który usuwa tabele export_queue, triggery oraz widoki. 
     144 
     145== Raporty z parametrem klienta == 
     146 
     147Aby 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]