Konfigurację pobierania danych z systemu zewnętrznego z wykorzystaniem źródła wymiany danych typu DB należy rozpocząć od utworzenia na bazie danych systemu zewnętrznego (lub bazie pośredniej)
Import danych z systemu zewnętrznego możemy wykonać dla obszarów:
Planuje się dodatkowo uruchomienie możliwości synchronizacji obszarów jak:
Po stronie systemu zewnętrznego występują widoki/tabele o odpowiednich nazwach np.
Powyższa lista nie wyczerpuje wszystkich obiektów. Na potrzeby kolejkowania wpisów nowych i zaktualizowanych wykorzystuje się tabelę: bs_export_queue która jest napełniana poprzez triggery na tabelach danych dodawanych lub zmienianych obiektów. Dzięki niej można utworzyć dodatkowy widok (modified_view) gdzie znajdują się w już tylko rekordy dodane lub zmienione. Mechanizm BsConnect po udanej operacji usuwa z tabeli kolejki identyfikatory pobranych rekordów. Do tabeli mogą zostać dodane dowolne obiekty (DOCUMENT, CONTACT itp).
Której struktura przedstawia się następująco:
Kolumna | Typ danych | Ograniczenia | Opis |
exp_id | bigint | NOT NULL, PRIMARY KEY, AUTO_INCREMENT/IDENTITY(1,1) | Klucz główny tabeli kolejki, automatycznie inkrementowany |
keyval | bigint | NOT NULL | Identyfikator wpisu np. kontrahenta, produktu, dokumentu |
clsnam | varchar(32) | NOT NULL | Klasa obiektu, której dotyczy identyfikator |
chadat | timestamp/datetime/varchar(19) | NOT NULL DEFAULT GETDATE()/current_timestamp | Znacznik czasowy dodania wpisu |
Wyróżniamy nastepujace klasy dla clsnam:
Użytkownik, który łączy się z systemu eDokumenty musi posiadać uprawnienia do odczytu z widoków, jak odczytu, zapisu oraz usuwania wpisów z tabeli kolejki.
Widoki z dopiskiem modified (np. bs_modified_contacts_view) są złączeniem wewnętrznym odpowiedniego widoku (w tym przypadku bs_contacts_view) oraz tabeli bs_export_queue. W związku z tym widok ten oprócz wszystkich kolumn widoku (bs_contacts_view) zawiera wszystkie kolumny tabeli bs_export_queue. Przykład złączenia to:
SELECT ... FROM bs_contacts_view INNER JOIN bs_export_queue ON (bs_export_queue.keyval = bs_contacts_view.bs_contact_id AND bs_export_queue.clsnam = 'CONTACT');
Niniejsza sekcja opisuje synchronizację Kontrahentów. Do tego można zaliczyć pobieranie :
Szczegółowy opis procedury jest dostępny na stronie:
W tym dziale opisano sposób importowania dokumentów z zewnętrznego systemu. Za pomocą mechanizmu BSConnect można pobierać:
Opis konfiguracji przedstawiono na stronie:
W niniejszej sekcji zostanie opisany sposób pobierania produktów z zewnętrznego systemu.
Import produktów zakłada utworzenie dwóch widoków na bazie danych zewnętrznego systemu:
W widokach wymagane/zalecane są następujące kolumny:
Kolumna | Typ danych | Ograniczenia | Opis | Wymagalność |
bs_product_id | int | PRIMARY KEY (UNIQUE, NOT NULL) | Klucz główny, identyfikator numeryczny produktu | Kolumna wymagana. Nazwa kolumny nie może być zmieniona |
symbol | varchar | NULL | Unikalny symbol produktu | przydatny w celach porównania |
nazwa | varchar | NOT NULL | Nazwa produktu | Kolumna wymagana |
Przykładowy widok produktów przedstawia poniższy rysunek:
Przykładowe mapowanie kolumn może mieć postać:
[PRODUCT] nazwa = name__ symbol = symbol pkwiu = pkwiu_ jm = unitid waluta = cursmb vat_nazwa = vat_id cena = netto_ zakup = purcst
Gdzie:
Kolumna | Opis |
name | Nazwa produktu |
symbol | Unikalny symbol produktu |
pkwiu_ | Numer PKWiU |
unitid | Nazwa jednostki miary zgodna ze słownikiem jednostek miar w systemie eDokumenty np. szt., dm3, kg |
cursmb | Waluta przypisana do produktu. Musi być zgodna z symbolem waluty ze słownikiem walut w systemie eDokumenty np. PLN, EUR, USD |
vat_id | Nazwa stawki VAT dla produktu. Musi być zgodna z nazwą stawki VAT w słowniku Stawek VAT systemu eDokaumenty np. 23.00% |
netto_ | Cena netto sprzedaży |
purcst | Koszt zakupu produktu |
Szablon mapowania produktu może mieć postać:
lower(symbol) = lower('{symbol}')
Dodatkowo można importować typ produktu (pole Typ na kartotece produktu) jako 1 z 3 wartości:
Aby tego dokonać należy w pliku mapowań ustawić mapowanie dla kolumny type. Wartość dla tego pola musi być jedną z wyżej wymienionych.
FUNKCJONALNOŚĆ PLANOWANA
Od wersji 4.4 systemu eDokumenty istnieje możliwość importowania spraw. W tym celu należy zdefiniować odpowiednie widoki po stronie systemu zewnętrznego oraz dodać odpowiednią sekcję do pliku mapowania x_columns_map.ini.
Należy zdefiniować następujące perspektywy:
Widok bs_processes_view zawiera dane wszystkich spraw, natomiast bs_modified_processes_view zawiera spis spraw zmodyfikowanych.
Wymagane kolumny:
Kolumna | Typ danych | Ograniczenia | Opis | Wymagalność |
bs_process_id | int | PRIMARY KEY (UNIQUE, NOT NULL) | Klucz główny, identyfikator numeryczny sprawy | Kolumna wymagana. Nazwa kolumny nie może być zmieniona |
orunsm | varchar | NOT NULL | Symbol jednostki organizacyjnej | Kolumna wymagana |
dossmb | varchar | NOT NULL | Symbol RWA | Kolumna wymagana |
symbol | varchar | NOT NULL | Numer/symbol sprawy | Kolumna wymagana |
Przykładowe mapowanie kolumn:
Rys. 1. Przykład mapowania sprawy
[PROCESS] symbol = symbol dossmb = dossmb orunsm = orunsm dscrpt = dscrpt rspuid = rspuid adduid = adduid rsptxt = rsptxt comnts = comnts adddat = adddat optime = optime cltime = cltime is_fix = is_fix fxtrid = fxtrid inidoc = inidoc is_grp = is_grp rel_to = rel_to
Po lewej stronie mapy znajdują się kolumny występujące w widoku, natomiast po prawej kolumny znajdujące się w bazie systemu eDokumenty. Z tego względu nazwy po lewej stronie mogą być różne, natomiast po prawej są niezmienne.
Gdzie:
Kolumna | Opis |
symbol | Symbol / numer sprawy (unikalny) |
orunsm | symbol jednostki organizacyjnej, w której jest opubliko0wana teczka |
dossmb | symbol RWA (teczki) |
adduid | Identyfikator numeryczny osoby/login/Imię Nazwisko dodającej sprawę (dane musza być zgodne z systemem eDokumenty) |
rsptxt | Login/Imię i nazwisko osoby odpowiedzialnej w sprawie |
dscrpt | Opis sprawy |
comnts | Uwagi do sprawy |
adddat | Data dodania sprawy w formacie RRRR-MM-DD, czyli 2014-05-16 |
optime | Data otwarcia sprawy w formacie RRRR-MM-DD, czyli 2014-05-16 |
cltime | Data zamkniecia sprawy w formacie RRRR-MM-DD, czyli 2014-05-16 |
is_fix | Znacznik, czy sprawa jest zamknięta (0/1 lub f/t) |
is_grp | Znacznik, czy sprawa jest grupą spraw (0/1 lub f/t) |
rel_to | Identyfikator sprawy nadrzędnej (numeryczny lub symbol sprawy) |
inidoc | Identyfikator dokumentu inicjującego sprawę |
Przykładowy warunek mapowania to:
lower(symbol) = lower('{symbol}')