= [wiki:DeployerGuide Przewodnik wdrożeniowca] > Import danych z systemu zewnętrznego do eDokumenty = #import [wiki:DeployerGuide/Customization/Integration Strona główna Integracji] === Menu === 1. [#wstep Wstęp] 2. [#kontrahenci Kontrahenci i Osoby kontaktowe] 3. [#dokumenty Dokumenty] 4. [#produkty Produkty] 5. [#zdarzenia Zdarzenia] 6. [#urządzenia Urządzenia] 7. [#sprawy Sprawy] 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) == Wstęp == #wstep Import danych z systemu zewnętrznego możemy wykonać dla obszarów: * Kontrahentów (z danymi kont bankowych) i Osób kontaktowych * Dokumentów (z załącznikami) * Produktów * Zdarzeń Planuje się dodatkowo uruchomienie możliwości synchronizacji obszarów jak: * Urządzenia * Sprawy Po stronie systemu zewnętrznego występują widoki/tabele o odpowiednich nazwach np. * bs_contacts_view - widok wszystkich kontrahentów * bs_contact_persons_view - widok wszystkich osób kontaktowych kontrahenta * bs_depository_view - widok wszystkich produktów * bs_documents_view - widok wszystkich dokumentów * bs_fk_elements_view - widok pozycji dokumentów 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: * CONTACT - kontakt * CONTACTPERSON - osoba kontaktowa * PRODUCT - produkt * DOCUMENT - dokument 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: {{{ #!sql 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'); }}} [#import Powrót do menu] == Kontrahenci i Osoby kontaktowe == #kontrahenci Niniejsza sekcja opisuje synchronizację Kontrahentów. Do tego można zaliczyć pobieranie : * kartotek kontrahentów, * kont bankowych kontrahentów, * adresów siedziby kontrahenta (FUNKCJONALNOŚĆ PLANOWANA) * osób kontaktowych kontrahenta Szczegółowy opis procedury jest dostępny na stronie:[[br]] * [wiki:DeployerGuide/Customization/Integration/Import/Contacts Synchronizacja kontrahentów] [#import Powrót do menu] == Dokumenty == #dokumenty W tym dziale opisano sposób importowania dokumentów z zewnętrznego systemu. Za pomocą mechanizmu BSConnect można pobierać: * Dokumenty (nagłówki) * Pozycje (linie) dokumentów Opis konfiguracji przedstawiono na stronie: [[br]] * [wiki:DeployerGuide/Customization/Integration/Import/Documents Synchronizacja dokumentów] [#import Powrót do menu] == Produkty == #produkty W niniejszej sekcji zostanie opisany sposób pobierania produktów z zewnętrznego systemu. === Widoki === Import produktów zakłada utworzenie dwóch widoków na bazie danych zewnętrznego systemu: * '''bs_depository_view''' - widok wszystkich produktów * '''bs_moddified_depository_view''' - widok nowych/zmodyfikowanych produktów. Jest złączeniem widoku bs_depository_view i tabeli kolejki bs_export_queue. 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: [[Image(dep_001.png)]][[BR]]''Rys. Widok produktów''[[BR]] === Mapowanie kolumn === Przykładowe mapowanie kolumn może mieć postać: {{{ #!ini [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. sztuka, kilogram|| ||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ć: {{{ #!sql lower(symbol) = lower('{symbol}') }}} [#import Powrót do menu] Dodatkowo można importować typ produktu (pole Typ na kartotece produktu) jako 1 z 3 wartości: - usługa - produkt - towar Aby tego dokonać należy w pliku mapowań ustawić mapowanie dla kolumny type__. Wartość dla tego pola musi być jedną z wyżej wymienionych. == Zdarzenia == #zdarzenia [#import Powrót do menu] == Urządzenia == #urządzenia ''FUNKCJONALNOŚĆ PLANOWANA'' [#import Powrót do menu] == Sprawy == #sprawy 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''. === Widoki === Należy zdefiniować następujące perspektywy: * bs_processes_view * bs_modified_processes_view 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|| === Mapowanie kolumn === Przykładowe mapowanie kolumn:[[BR]] [[Image(Sprawy_mapowanie_kolumn.png)]][[BR]]''Rys. 1. Przykład mapowania sprawy ''[[BR]] {{{ #!ini [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: {{{ #!sql lower(symbol) = lower('{symbol}') }}} [[BR]] [#import Powrót do menu]