Skip to main content

Synchronizacja XML

Synchronizacja - uruchamianie

1. W folderze z systemem znajduje się folder /lib/XMLsynch

2. W tym folderze znajdują się 2 pliki konfiguracyjne, które nas interesują:

a) config.php.org

b) config.pgsql.php.org

3. Należy zmienić nazwy tych plików na odpowiednio:(lub utworzyć kopię, aby w razie awarii mieć wzór pliku)

a) config.php

b) config.pgsql.php

4. Po zmianie nazwy wchodzimy do pliku config.pgsql.php, a następnie podajemy dane do bazy systemu, gdzie:

$pgHOST to adres IP serwera (domyślnie localhost)

$pgUSER nazwa użytkownika bazy danych

$pgPASS hasło użytkownika bazy danych

$pgPORT port na którym nasłuchuje baza

$pgDB nazwa bazy danych

Przy uzupełnianiu tego pliku należy pamiętać o pojedynczych cudzysłowach oraz średnikach kończących linie (obowiązuje tutaj składnia języka PHP)

5. Po uzupełnieniu danych tworzymy 3 foldery z prawem do zapisu i odczytu.

a) upload (tutaj będą trafiać pliki XML)

b) backup (tutaj pliki będą backupowane)

c) enqueue (tutaj system będzie ciąć duże pliki xml na mniejsze i przechowywać ID tych plików w bazie - tabela xml_files_queue)

6. Po utworzeniu folderów należy wrócić do folderu XMLsynch i otworzyć plik config.php.

Trzy pierwsze linie kodu odpowiadają za dostęp do folderów które wcześniej utworzyliśmy(należy podać teraz prawidłowe ścieżki to tych folderów)

7. Linia 4 mówi o folderze gdzie znajdują się odpowiednie metody (funkcje) do działania synchronizacji. Domyślnie jest to zawsze /XMLsynch/methods/

Tutaj również obowiązuje składnia języka PHP, należy zwrócić szczególna uwagę na pojedyncze cudzysłowie oraz slashe.

8. Linia define('SYNCH_LOG_LEVEL', 4); mówi nam ile komunikatów chcemy widzieć w synchronizacji. 0 - wszystkie, 4 - tylko błędy.

Niezalecane jest włączanie poziomu 0 ponieważ log synchronizacji bardzo szybko rośnie do rozmiarów kilku gigabajtów, jeżeli synchronizacja jest wykonywana 24/h.

9. Po utworzeniu plików konfiguracyjnych należy stworzyć plik o nazwie start_xml.sh, a w nim nastepujące dane:

cd sciezka_do_folderu_systemu/lib/XMLsynch<br/> php cliDoSynchronize.php | tee -a sciezka_do_pliku_log/import-xml.log

czyli np.

cd /var/www/system/lib/XMLsynch<br/> php cliDoSynchronize.php | tee -a /var/www/system/lib/XMLsynch/import-xml.log

jeżeli nie mamy na linuxie zainstalowanej komendy też należy ja zainstalować.

10. Z poziomu shela wydajemy komendę jako root: sh start_xml.sh

Synchronizacja startuje.

Bardzo przydaje się również użycie programu screen który uruchamiany jest z poziomu terminala. Pozwala on uruchomić synchronizację w tle

przez co okno terminala nie musi być cały czas uruchomione.

Program wywołujemy komendę screen

Po uruchomieniu synchronizacji (pkt 10) wybieramy jednocześnie na klawiaturze przyciski ctrl shift a, puszczamy ten klawisze i wybieramy literę d

Należy pamiętać, aby w php włączony był moduł XML, ponieważ bez niego synchronizacja może się nie uruchomić

Tworzenia dokumentu XML i integracja bazy danych

Dokumentacja dot. tworzenia dokumentu XML znajduje się w plikach systemu, w folderze doc/xml/

Kiedy dokument jest już utworzony należy powiadomić synchronizację XML, które moduły ma wgrywać do bazy(może to być tylko np. produkt, lub stan magazynowy)

W tabeli xml_synch_api_method wprowadzamy nazwy, które umieściliśmy w pliku XML.

api_method_id - id z tabeli xml_synch_api_key_to_api_method

method_name oraz xml_method_name to nagłówki z dokumentacji XML.

method_description uzupełniamy wg własnych potrzeb.

xml_method_parameters - pozostawiamy puste

parameters_quantity - pozostawiamy puste

description - pozostawiamy puste

Tabela: xml_synch_api_key

api_key_id - dowolny id

key_value klucz który tworzymy qg dokumentacji XML

key_owner - właściciel klucza

is_active - czy klucz jest aktywny (TRUE/FALSE)

active_from - od kiedy klucz ma być aktywny

active_to - do kiedy ma być aktywny

last_usage - pozostawiamy puste

hosts_available - adresy IP z jakich synchronizacja ma sie łączyć (mogą być rozdzielone przecinkiem)

Tabela: xml_synch_api_key_to_api_method

id - dowolne

api_key_id - api_key_id z tabeli xml_synch_api_key

api_method_id - api_method_id z tabeli xml_synch_api_method

is_active - czy klucz jest aktywny (TRUE/FALSE)

active_from - od kiedy klucz ma być aktywny

active_to - do kiedy ma być aktywny