WikiPrint - from Polar Technologies

Przewodnik wdrożeniowca > Synchronizacja kontrahentów

Strona główna Integracji
Strona główna sekcji importu danych

  1. Wstęp
  2. Kontrahenci
  3. Adresy
  4. Konta bankowe
  5. Osoby kontaktowe

Wstęp

Niniejsza sekcja opisuje synchronizację Kontrahentów. Do tego można zaliczyć pobieranie :

Dla każdego obszaru zostanie pokazane:

Niniejszy opis dotyczy integracji przy pomocy połączenia typu DB.

Powrót do menu

Kontrahenci

Widoki (perspektywy)

Do obsługi pobierania danych kontrahentów należy po stronie zewnętrznego systemu (w odpowiednim schemacie - tym samym, co tabela bs_export_queue) zdefiniować dwa widoki (perspektywy):

Perspektywa bs_contacts_view zawiera kartoteki wszystkich kontrahentów, natomiast bs_modified_contacts_view jest złączeniem wewnętrznym tabeli bs_export_queue z widokiem bs_contacts_view. Definicja takiego widoku zostanie przedstawiona poniżej. Przykładowy widok bs_contacts_view może wyglądać w sposób następujący:


Rys. 1. Przykład widoku bs_contacts_view

W definicji widoku zaleca się następujących kolumn (pogrubione kolumny są wymagane):

KolumnaTyp danychOgraniczeniaOpisWymagalność
bs_contact_idintPRIMARY KEY (UNIQUE, NOT NULL)Kolumna z identyfikatorem numerycznym typu całkowitego. Kolumna wymagana.Nazwa kolumny nie może być zmieniona
Nazwavarchar(n)NOT NULLNazwa kontrahentaKolumna wymagana
Skrotvarchar(n)NOT NULL (UNIQUE)Skrót nazwy kontrahentaOpcjonalna, służyć może jako kolumna szablonowa do porównań istnienia kontrahentów
NIPvarchar(n)NOT NULL (UNIQUE)NIP kontrahentaOpcjonalna, służyć może jako kolumna szablonowa do porównań istnienia kontrahentów

Powrót do menu

Mapowanie kolumn

W lokalizacji public_html/apps/edokumenty/etc/sync należy utworzyć pliki .ini o nazwie x_columns_map.ini , gdzie "x" oznacza numer połączenia z systemem zewnętrznym. Np. połączenie nr. 1 będzie szukać pliku 1_colaumns_map.ini. Dla kontrahenta przykładowe mapowanie winno wyglądać:


Rys. 2. Przykład mapowania dla kontrahenta

Jak widać na powyższym obrazku mapowania składa się z dwóch części:

W mapowaniu kolumn należy mieć na uwadze to, że po lewej stronie znaku "=" znajdują się kolumny z widoku bs_contacts_view, a po prawej nazwy kolumn z bazy systemu eDokumenty (z kilkoma wyjątkami, ale dotyczącymi innych obszarów). W pliku tym nie wprowadzamy kolumn kluczowych, czyli w tym przypadku bs_contact_id !!!

W poniższej tabelce przedstawiono przykłady pól z systemu eDokumenty (po prawej stronie znaku "=") z opisem:

Nazwa pola|Opis pola
name_1Nazwa kontrahenta
name_2Skrót (akronim) kontrahenta
symbolSymbol kontrahenta
streetUlica domyślnego/podstawowego adresu kontrahenta
bldnumNumer budynku domyślnego/podstawowego adresu kontrahenta
fltnumNumer lokalu domyślnego/podstawowego adresu kontrahenta
codeKod pocztowy domyślnego/podstawowego adresu kontrahenta
cityMiejscowość domyślnego/podstawowego adresu kontrahenta
postPoczta domyślnego/podstawowego adresu kontrahenta
gmina_Gmina domyślnego/podstawowego adresu kontrahenta
powiatNazwa powiatu domyślnego/podstawowego adresu kontrahenta
woj_Województwo (nazwa powinna się zgadzać ze słownikiem województw Ustawienia>Panel Sterowania)
countrKraj (nazwa powinna się zgadzać ze słownikiem krajów Ustawienia>Panel Sterowania)
nip_Numer NIP kontrahenta
regon_Numer REGON kontrahenta
pesel_Numer PESEL kontrahenta
ph_numNumer stacjonarny kontrahenta
faxnumNumer faksu kontrahenta
email_Adres email kontrahenta
websitAdresy strony WWW kontrahenta
saldo_Saldo obrotów z kontrahentem

Uwaga! Jedna kolumna nie może być podwójnie mapowana (do dwóch różnych pól).

Powrót do menu

konfigurowanie akcji

Po stworzeniu pliku mapowania kolumn następnym krokiem jest konfiguracja akcji pobierania danych. W tym celu należy:

  1. Wejść do konfiguracji Połączeń z systemami zewnętrznymi Narzędzia > Połączenia z systemami zewnętrznymi.
  2. W otwartym oknie wybiera się utworzone połączenie i otwieramy je do edycji.
  3. W oknie edycji połączenia należy przejść na zakładkę Synchronizacja.
  4. Na zakładce Synchronizacja klikając Nowy dodajemy obiekt: Klient (dzieje się to w małlym okienku pt. Nowy obiekt synchronizacji). Po zatwierdzeniu dodania obiektu kreator pyta się, czy dodać domyślne akcje (dodaje wszystkie akcje zdefiniowane na tym obiekcie) oraz czy przejść do konfiguracji.
  5. Wybierając wybraną akcję należy kliknąć ikonę ołówka w celu wyedytowania jej.
  6. Istotną kwestią jest wprowadzenie szablonu mapowania (zaznaczony obszar na poniższym obrazku). Jeżeli przycisk przy polu Użyj szablonu jest zaznaczony, to szablon musi być wprowadzony. W przeciwnym przypadku należy odznaczyć pole Użyj

szablonu.


Rys. 3. Konfiguracja akcji Pobierania wszystkich klientów

Przeznaczenie funkcji Użyj szablonu jest następujące. Na podstawie szablonu system wyszukuje, czy w bazie systemu eDokumenty istnieje już klient o takich samych danych, co aktualnie pobierane z systemu zewnętrznego. Konstrukcja jest następująca:

warunek po stornie PostgreSQL = warunek po stronie SZBD systemu zewnętrznego

Poniżej przedstawiono kilka przykładowych szablonów mapowania:

-- Przykład 1.
trim(nip___) = ltrim(rtrim('{nip___}'))
-- Przykład 2.
lower(symbol) = lower('{symbol}')

W przykładzie 1. następuje porównanie pól nip-u (usuwanie zbędnych spacji przed i po numeru NIP). Lewa strona warunku to kolumna nip___ w bazie eDokumenty w tabeli contacts. Po prawej stronie jest brana pod uwagę prawa kolumna z pliku mapowana (Uwaga, dla niektórych akcji ta zasada jest inna!!!). Dodatkowo muszą być wykorzystywane funkcje dostępne w SZBD Systemu zewnętrznego (tutaj z MS SQL Server).

Analogicznie w przykładzie 2. Tu bierzemy pod uwagę pole symbol i dla ujednolicenia wyszukiwania sprawdzamy wg. małych liter w symbolu.

Opcji wyszukiwania jest wiele. Powyższe stanowią najczęściej stosowane przypadki.

Powrót do menu

Adresy kontrahenta

Pobieranie adresów kontrahenta jest ściśle związane z pobieraniem kartotek kontrahentów.

Widoki (perspektywy)

Na potrzeby pobierania adresów kontrahenta należy w schemacie integracji utworzyć widok:

W widoku wymaganym jest zdefiniowanie następujących kolumn:

KolumnaTyp danychOgraniczeniaOpisWymagalność
bs_address_idintPRIMARY KEY (UNIQUE, NOT NULL)Nazwa kontrahentaKolumna wymagana..Nazwa kolumny nie może być zmieniona
bs_contact_idint NOT NULLKolumna z identyfikatorem kontrahenta numerycznym typu całkowitego. Kolumna wymagana.Nazwa kolumny nie może być zmieniona


Rys. 4. Przykładowy widok adresów kontrahentów

Powrót do menu

Mapowanie kolumn

Mapowanie kolumn odbywa się w tym samym pliku x_columns_map.ini , co mapowanie kontrahenta.Przykładowy schemat mapowania przedstawiony na poniższym rysunku


Rys. 5. Przykład mapowania adresów kontrahentów

Mapowanie kolumn adresów kontrahenta należy rozpocząć od zdefiniowania w pliku sekcji [CONTACT_ADDRESS]

Nazwa pola|Opis pola
streetUlica domyślnego/podstawowego adresu kontrahenta
bldnumNumer budynku domyślnego/podstawowego adresu kontrahenta
fltnumNumer lokalu domyślnego/podstawowego adresu kontrahenta
codeKod pocztowy domyślnego/podstawowego adresu kontrahenta
cityMiejscowość domyślnego/podstawowego adresu kontrahenta
postPoczta domyślnego/podstawowego adresu kontrahenta
gmina_Gmina domyślnego/podstawowego adresu kontrahenta
powiatNazwa powiatu domyślnego/podstawowego adresu kontrahenta
woj_Województwo (nazwa powinna się zgadzać ze słownikiem województw Ustawienia>Panel Sterowania)
countrKraj (nazwa powinna się zgadzać ze słownikiem krajów Ustawienia>Panel Sterowania)
distkmDystans w kilometrach
is_def Wartość 0,1 lub t,f - znacznik domyślności danego adresu

Powrót do menu

konfigurowanie pobierania

Pobieranie adresów kontrahentów nie posiada swoich dedykowanych akcji. Jest ono powiązane ściśle z pobieraniem samych kartotek kontrahentów. Aby skonfigurować pobieranie adresów należy:

  1. Wejść do konfiguracji Połączeń z systemami zewnętrznymi Narzędzia > Połączenia z systemami zewnętrznymi.
  2. Wyedytować połączenie. Otworzy się okno z obiektami synchronizacji.
  3. Zaznaczyć pojedynczym kliknięciem obiekt: Klient, a następnie wyedytować go.
  4. Na głównej zakładce należy wybrać opcję Pobierz adresy

Dodatkowo od wersji 4.2.xx pojawiła się opcja łączenia adresów. Oznacza to, że w przypadku zaistnienia takiego samego adresu (np. ulica + kod pocztowy) to taki adres dostaje dodatkowe powiązania, natomiast nie jest duplikowany w bazie danych. Przykładowy warunek może być następujący:

lower(street) = lower('{street}') AND COALESCE(regexp_replace(code__, '[ |-]*', '', 'g'), '') = COALESCE(regexp_replace('{code__}', '[ |-]*', '', 'g'), '')

Poniższy rysunek przedstawia konfigurowanie akcji pobierania adresów kontrahenta:


Rys. 6. Konfiguracja pobierania adresów kontrahentów

Powrót do menu