Zmiany pomiędzy wersją 5 and wersją 6 dla DeployerGuide/Customization/ExternalConfigurationFK/Insert

Pokaż
Ignoruj:
Data i czas:
03/25/10 12:34:30 (15 years temu)
Autor:
JP (IP: 217.153.108.173)
Komentarz:

--

Legend:

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

    v5 v6  
    44 
    55Aby umożliwić synchronizację z systemem Subiekt 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 Subiekt 
    10  *  założenie triggerów na tabele 
     6 * 1. Utworzenie źródła danych  
     7 * 2. Zmiana stałej w pliku config.inc 
     8 * 3. Zmiana danych w Panel Sterowania > Systemy zewnętrzne 
     9 * 4. Utworzenie tabeli kolejki w systemie Subiekt (baza MSSQL) 
     10 * 5. Założenie triggerów na tabele w bazie Subiekt 
    1111    * dok!__Dokument 
    1212    * adr!__Ewid 
    1313    * kh!__Kontrahent 
    14  *  założenie widoków (eDokumenty > 2.0 RC15) 
     14 * 6. Założenie widoków w bazie Subiekt (MSSQL) 
    1515    * subiekt_export_all_contacts_documents_view.sql 
    1616    * subiekt_export_all_contacts_view.sql 
     
    1818    * subiekt_export_all_queued_contacts_view.sql 
    1919 
    20 == Zmiana stałej == 
    21 W pliku config.inc należy zmienić stałą "SUBIEKT_DATA_SOURCE_DTSCNM" na 
     20== 1. Utworzenie źródła danych == 
     21Wchodzimy do Panelu sterowania > Źródła danych. Tworzymy źródło podając !ConnectionString np.: 
     22{{{ 
     23Server=SERWEREK\SUBIEKT;Uid=sa;Pwd=secret;Database=SubiektGT 
     24}}} 
     25  
     26== 2. Zmiana stałej == 
     27W pliku config.inc należy zmienić stałą "SUBIEKT_DATA_SOURCE_DTSCNM" na nazwę nadaną dla źródła danych np.: 
    2228{{{ 
    2329 define('SUBIEKT_DATA_SOURCE_DTSCNM', 'nazwa'); 
    2430}}} 
    25 gdzie nazwę należy zastąpić nazwą bazy danych systemu Subiekt 
    2631 
    27 == Sprawdzenie danych w tabeli == 
    28 Jeśli w systemie !eDokumenty tabela wsdl_config_table jest pusta należy wykonać odpowiedni skrypt SQL dla Subiekt znajduję się on w katalogu 
     32== 3. Zmiana danych w Panel Sterowania > Systemy zewnętrzne == 
     33Jeś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''. 
     34{{{ 
     35Otwórz w Windows Menu Start > Postgresql > psql to postgres. 
     36cd C:\Program files\BEtaSoft\eDokumenty\public_html\apps\edokumenty\classes\BsConnect\install\data 
     37psql -U postgres -f subiekt_wsdl_ins.sql edokumenty 
     38}}} 
    2939 
    30 {{{ 
    31 apps\edokumenty\classes\BsConnect\install\data\subiekt_wsdl_ins.sql 
    32 }}} 
    33 nastę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 == 
    40 Nastę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]] 
     40Jeś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]] 
    4441{{{ 
    4542UPDATE wsdl_config_table SET wsdl__ = replace(wsdl__, '{host}', 'localhost:8080/edokumenty'); 
    4643}}} 
     44 
    4745 *  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  
    52 wyszukiwanie kontaktu w systemie OT!MA gdzie kolumna Knt_Nip będzie równa numerowi nip  
    53 kontaktu z systemu eDokumenty (token {nip___} jest zamieniany na dane) itd) 
    54 }}} 
    5546 
    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. 
     47Resztę można pozostawić taj jak jest. Dla zaawansowanych podajemy [wiki:DeployerGuide/Customization/ExternalConfigurationFK/advanced dodatkowe informacje] 
    5748 
    58 Róż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  
    60 Reszta 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  
    62 Tablica (mapa kolumn) ułatwia sparsowanie danych i lepsze rozeznanie przykład 
    63  
    64 {{{ 
    65 apps\edokumenty\etc\sync\OPTIMA_columns_map.ini 
    66 Przykładowa konfiguracja tablicy mapy dla kontaktu dla OPT!MY 
    67 [contacts] 
    68 Knt_KntID = contid 
    69 Knt_Nazwa1 = name_1 
    70 Knt_Nazwa2 = name_2 
    71 Knt_Nazwa3 = name_2 
    72 Knt_Kraj = countr 
    73 Knt_Wojewodztwo = woj___ 
    74 Knt_Powiat = powiat 
    75 Knt_Ulica = street 
    76 Knt_NrDomu = bldnum 
    77 Knt_NrLokalu = fltnum 
    78 Knt_Miasto = city__ 
    79 Knt_KodPocztowy = code__ 
    80 Knt_Nip = nip___ 
    81 }}} 
    82 Oznacza 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 {{{ 
    84 nip___='{nip___}' 
    85 }}} 
    86 Czyli 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 == 
     49== 4. Utworzenie tabeli kolejki == 
    8950W systemie Subiekt (w bazie) wykonujemy skrypt z pliku  
    9051{{{ 
    91 apps\edokumenty\classes\BsConnect\install\sql\subiekt\subiekt_export_queue.sql 
     52apps\edokumenty\classes\!BsConnect\install\sql\subiekt\subiekt_export_queue.sql 
    9253}}} 
    9354Po wykonaniu tego skryptu w systemie Subiekt powinna pojawić się dodatkowa tabela o nazwie export_queue. 
    9455 
    95 == Założenie triggerów == 
    96 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 
    97 {{{ 
    98 apps\edokumenty\classes\BsConnect\install\sql\subiekt 
    99 }}} 
    100 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/) 
     56== 5. Założenie triggerów == 
     57Triggery 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'' 
     58znajdują 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/).  
    10159[[BR]]Dla tabeli adresów 
    10260[[BR]] 
     
    11068Możemy przetestować działanie mechanizmy poprzez dodanie do systemu Subiekt dokumentu lub kontrahenta i sprawdzeniu czy w tabeli export_queue pojawiły się wpisy. 
    11169 
    112 == Założenie widoków == 
    113 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 
     70== 6. Założenie widoków == 
     71Widoki te są wymagane w celu prawidłowego funkcjonowania. Można je znaleźć w katalogu 
    11472{{{ 
    11573edokumenty\classes\BsConnect\install\sql\subiekt\views  
     
    12684kolejność wykonywania nie ma znaczenia. 
    12785 
    128 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. 
    129 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  
    130 {{{ 
    131 SUBIEKT_columns_map.ini 
    132 }}} 
    133 dodajemy kolejny wpis pod odpowiednim indeksem [contacts] - kontakty, [documents] - dokumenty z rzutowaniem danych z dodanej kolumny w widoku na kolumnę w systemie eDokumenty. 
    134  
    135 ''' Jaka metoda jaki widok wykorzystuje ''' 
    136  *  Importuj wszystkie kontakty - subiekt_export_all_contacts_view 
    137  *  Aktualizuj dane - subiekt_export_all_queued_contacts_view 
    138  *  Aktualizuj dokumenty - subiekt_export_all_queued_contacts_documents_view 
    139  *  Aktualizuj dane kontaktów - subiekt_export_all_queued_contacts_view 
    140  *  Aktualizuj dokumenty kontaktów - subiekt_export_all_queued_contacts_documents_view 
    141  *  Pobierz wszystkie dokumenty - subiekt_export_all_contacts_documents_view 
     86Widoki 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] 
    14287 
    14388== Reset ==