W większości przypadków istnieje potrzeba aby lista kontrahentów która zapisana jest w systemie ERP przedsiębiorstwa automatycznie synchronizowała się z naszym systemem do obsługi korespondencji.
Poniższa instrukcja przedstawia konfigurację synchronizacji listy kontrahentów zawartej w programie Sekretariat Firma z zewnętrznym systemem opartym o bazę Microsoft SQL Server.
Co znajdziesz w tym artykule:
1. W Administracja – Opcje – Synchronizacja kontrahentów należy uzupełnić następujące dane
– Zapytanie SQL – zapytanie zwraca tablicę z bazą kontrahentów
– Połączenie – Serwer SQL baza login i hasło do serwera gdzie znajduję się źródłowa baza kontrahentów.
Za pomocą synchronizuj sql można sprawdzić czy synchronizacja przebiegła poprawnie nie powinny wyskoczyć żadne błędy.
Dodatkowo na liście kontrahentów operator może cyklicznie wywoływać synchronizację.
2. Budowa zapytania
Pole Kod oraz Nazwa są wymagane. Do pustego zapytania należy do warunku from dodać tabele z systemu ERP oraz zmapować kolumny w zapytaniu Select. Ważne nie wolno zmieniać nazw kolumn w zapytaniu po zwrocie as Kod as Nazwa. Podczas importu mogą pojawić się błędy w różnicy wielkości pół tekstowych źródłowych oraz docelowych. W takim przypadku należy dokonać konwersji w zapytaniu SQL. Na końcu dokumentu informacja odnośnie budowy tabeli Kontrahenci.
Przykład pustego zapytania:
SELECT '' as Kod, '' as Nazwa, '' as AdresKraj, '' as Regon, '' as Nip, '' as AdresMiejscowosc , '' as AdresKodpocztowy, '' as AdresPoczta, '' as AdresUlica, '' as AdresNumerdomu, '' as AdresNumerlokalu, '' as AdresWojewodztwo, '' as KiegoweNrkonta, '' as KontaktEmail, '' as KontaktImie, '' as KontaktKodpocztowy, '' as KontaktKraj, '' as KontaktMiejscowosc, '' as KontaktNazwisko, '' as KontaktNrfax, '' as KontaktNrtelefonu, '' as KontaktNumerdomu, '' as KontaktNumerlokalu, '' as KontaktPoczta, '' as KontaktStanowisko, '' as KontaktUlica, '' as KontaktWojewodztwo, '' as KsiegoweNazwabanku '0' as Grupa FROM Tabela
Przykład zapytania do systemu ERP Enova
SELECT Kontrahenci.Kod as Kod, Kontrahenci.Nazwa as Nazwa, Kontrahenci.NIP,Adresy.AdresKraj as AdresKraj, '' as Regon, Adresy.AdresMiejscowosc as AdresMiejscowosc , case (Adresy.AdresKodPocztowy) when 0 then '' else substring(cast(right('00000'+convert(varchar(5), Adresy.AdresKodPocztowy), 5) as varchar(20)),1,2)+'-'+ substring(cast(right('00000'+convert(varchar(5), Adresy.AdresKodPocztowy), 5) as varchar(20)),3,3) end as AdresKodpocztowy, Adresy.AdresPoczta as AdresPoczta, Adresy.AdresUlica as AdresUlica, Adresy.AdresNrDomu as AdresNumerdomu, Adresy.AdresNrlokalu as AdresNumerlokalu, '' as AdresWojewodztwo, '' as KiegoweNrkonta, '' as KontaktEmail, '' as KontaktImie, '' as KontaktKodpocztowy, '' as KontaktKraj, '' as KontaktMiejscowosc, '' as KontaktNazwisko, '' as KontaktNrfax, '' as KontaktNrtelefonu, '' as KontaktNumerdomu, '' as KontaktNumerlokalu, '' as KontaktPoczta, '' as KontaktStanowisko, '' as KontaktUlica, '' as KontaktWojewodztwo, '' as KsiegoweNazwabanku, '35' as Grupa FROM Kontrahenci INNER JOIN Adresy ON Kontrahenci.ID = Adresy.Host where Adresy.HostType='Kontrahenci' and Adresy.Typ=1 order by kod
Tablica źródłowa systemu Sekretariat
CREATE TABLE [dbo].[Kontrahenci]( [Id] [int] IDENTITY(1,1) NOT NULL, [DataWprowadzenia] [datetime] NULL, [DataModyfikacji] [datetime] NULL, [Pracownik] [int] NULL, [Aktywny] [bit] NULL, [Kod] [varchar](20) NULL, [Nazwa] [varchar](240) NULL, [Nip] [varchar](13) NULL, [Regon] [varchar](20) NULL, [AdresKraj] [varchar](40) NULL, [AdresWojewodztwo] [varchar](40) NULL, [AdresMiejscowosc] [varchar](40) NULL, [AdresKodpocztowy] [varchar](10) NULL, [AdresPoczta] [varchar](40) NULL, [AdresUlica] [varchar](40) NULL, [AdresNumerdomu] [varchar](10) NULL, [AdresNumerlokalu] [varchar](10) NULL, [KontaktKraj] [varchar](40) NULL, [KontaktWojewodztwo] [varchar](40) NULL, [KontaktMiejscowosc] [varchar](40) NULL, [KontaktKodpocztowy] [varchar](10) NULL, [KontaktPoczta] [varchar](40) NULL, [KontaktUlica] [varchar](40) NULL, [KontaktNumerdomu] [varchar](10) NULL, [KontaktNumerlokalu] [varchar](10) NULL, [KontaktImie] [varchar](20) NULL, [KontaktNazwisko] [varchar](30) NULL, [KontaktStanowisko] [varchar](50) NULL, [KontaktNrtelefonu] [varchar](20) NULL, [KontaktNrfax] [varchar](20) NULL, [KontaktEmail] [varchar](50) NULL, [KiegoweNrkonta] [varchar](50) NULL, [KsiegoweNazwabanku] [varchar](50) NULL, [Grupa] [int] NULL, [Autonumer] [int] NULL,