Mamut Maniek 114 Napisano 26 Września 2019 Udostępnij Napisano 26 Września 2019 w Scalanie kontrahentów w jednego Mam takie sytuacje, że niektóre transakcje nie pobierają się na czas. Np zamówienie z dzisiaj rano Sello pobierze dopiero wieczorem lub jutro a klient dzwoni i chce mieć wysłane dzisiaj to robimy tak, że tworzymy kontrahenta i transakcje w Sello ręcznie. Potem to zamówienie wpada i tworzy się kolejny kontrahent. To jedna taka sytuacja ale zdarza się również, że klient jest już w Sello a potem zamawia przez telefon/email i tworzymy kolejnego kontrahenta. Dało by się ich scalić? Fajnie jak by była taka opcja bezpośrednio w Sello ale wiem jak jest dlatego chciałbym to zrobić modyfikacją w bazie. Proszę tylko o potwierdzenie od ST (@Bartosz Rosa) czy dobrze kombinuję. Otóż, mam kilku kontrahentów których chce scalić. Najpierw sprawdzam identyfikator tego głównego kontrahenta, który zostanie. Wykonuje polecenie SQL, które w poniższych polach podmienia identyfikator tych scalanych kontrahentów na tego głównego. em_CustomerId (z tabeli em__Email)pc_CustomerId (z tabeli pc__Package)tr_CustomerId (z tabeli tr__Transaction) Po takim zabiegu usuwam tych "pustych" kontrahentów, których e-maile, paczki i transakcje zostały przypisane do głównego kontrahenta. Będzie dobrze? Czy coś pominąłem? Cytuj Link to postu
Bartosz Rosa 1 762 Napisano 26 Września 2019 Udostępnij Napisano 26 Września 2019 w Scalanie kontrahentów w jednego Jeśli zaktualizujesz wszystkie tabele z kluczami obcymi wskazującymi na klienta to powinno być ok - trzeba by zajrzeć do dokumentacji bazy, bo też każdej tabeli na pamięć nie znam . Cytuj Link to postu
HotKey . 249 Napisano 26 Września 2019 Udostępnij Napisano 26 Września 2019 w Scalanie kontrahentów w jednego Przydało by się gotowe narzędzie do scalania Kontrahentów, ale to jest temat dla Subiekta chyba. Podobnie scalanie kartotek Towarów. Cytuj Link to postu
Mamut Maniek 114 Napisano 26 Września 2019 Autor Udostępnij Napisano 26 Września 2019 w Scalanie kontrahentów w jednego 7 godzin temu, Bartosz Rosa napisał: Jeśli zaktualizujesz wszystkie tabele z kluczami obcymi wskazującymi na klienta to powinno być ok - trzeba by zajrzeć do dokumentacji bazy, bo też każdej tabeli na pamięć nie znam . Tylko jeśli chodzi o bazę to chcę przypisać transakcję do klienta a nie na odwrót, więc w teorii zmieniam tylko tr_CustomerId na tego nowego i transakcja powinna przeskoczyć do nowego klienta, czyż nie? Reszta powiązań jest bezpośrednio z transakcją. Cytuj Link to postu
Bartosz Rosa 1 762 Napisano 27 Września 2019 Udostępnij Napisano 27 Września 2019 w Scalanie kontrahentów w jednego Powinna. Cytuj Link to postu
Mamut Maniek 114 Napisano 25 Listopada 2019 Autor Udostępnij Napisano 25 Listopada 2019 w Scalanie kontrahentów w jednego (edytowane) Udało mi się pomyślnie scalić kontrahentów. W zasadzie przypisałem z jednego kontrahenta do drugiego elementy takie jak transakcje, paczki, wiadomości. Powiązałem również kontrahenta z Subiekta, żeby się nie utworzył nowy przy tworzeniu dokumentów. Zapytanie wygląda tak (może się komuś przyda): Declare @IdKontrahenta_TenCoZostaje INT = '' Declare @IdKontrahenta_TenKtoregoPrzenosimy INT = '' update tr__Transaction set tr_CustomerId = @IdKontrahenta_TenCoZostaje where tr_CustomerId = @IdKontrahenta_TenKtoregoPrzenosimy -- transakcje update pc__Package set pc_CustomerId = @IdKontrahenta_TenCoZostaje where pc_CustomerId = @IdKontrahenta_TenKtoregoPrzenosimy -- paczki update em__Email set em_CustomerId = @IdKontrahenta_TenCoZostaje where em_CustomerId = @IdKontrahenta_TenKtoregoPrzenosimy -- wiadomości e-mail update cs__Customer set cs_Linked = 1, -- powiazanie z Subiekt = TAK cs_RegistrationId = (SELECT cs_RegistrationId from cs__Customer where cs_Id = @IdKontrahenta_TenKtoregoPrzenosimy), -- id programu sprzedaży (Subiekta) cs_Symbol = (SELECT cs_Symbol from cs__Customer where cs_Id = @IdKontrahenta_TenKtoregoPrzenosimy), -- nick kontrahenta z bazy Subiekt cs_ExternalCustomerId = (SELECT cs_ExternalCustomerId from cs__Customer where cs_Id = @IdKontrahenta_TenKtoregoPrzenosimy) -- id kontrahenta z bazy Subiekt where cs_Id = @IdKontrahenta_TenCoZostaje Edytowane 25 Listopada 2019 przez maniootek • Cytuj Link to postu
Mamut Maniek 114 Napisano 25 Listopada 2019 Autor Udostępnij Napisano 25 Listopada 2019 w Scalanie kontrahentów w jednego Jeszcze jedno pytanie: Czy dało by się stworzyć kontrahenta w Sello w taki sposób, aby miał już powiązanie z klientem w Allegro? Czy wystarczy w bazie (w tabeli cs__Customer) uzupełnić pole cs_ExtServiceId (id kontrahenta w Allegro, który można odczytać z linka prowadzącego do karty użytkownika z ocenami) oraz dodatkowe takie jak cs_SvcProvId (powiązanie z serwisem Allegro, wartość 1) cs_Rank (punkty Allegro, wartość 0) Dało by mi to możliwość stworzenia transakcji ręcznej w sytuacji kiedy nie mogła by się pobrać ta prawidłowa. Potem ta prawidłowa wpadła by już do tego samego klienta. Czy to zadziała? Czy na coś zwrócić uwagę? Cytuj Link to postu
Bartosz Rosa 1 762 Napisano 26 Listopada 2019 Udostępnij Napisano 26 Listopada 2019 w Scalanie kontrahentów w jednego Tak, wystarczy te właśnie pola (cs_Rank niekoniecznie, będzie niedługo usunięte) + nick. Nowy mechanizm pobierania transakcji powinien działać o wiele bardziej niezawodnie, więc pewnie nie będzie takiej potrzeby. Nie polega on już na różnych dziwnych konstrukcjach pamiętających jeszcze rok 2006, gdzie problem z działaniem jednej funkcji w API wpływał na działanie całego mechanizmu pobierania i zapisywania transakcji. Teraz transakcje są (będą w 1.33) tworzone wprost według danych zwróconych z Allegro z jednej tylko funkcji. Cytuj Link to postu
Mamut Maniek 114 Napisano 26 Listopada 2019 Autor Udostępnij Napisano 26 Listopada 2019 w Scalanie kontrahentów w jednego 27 minut temu, Bartosz Rosa napisał: Tak, wystarczy te właśnie pola (cs_Rank niekoniecznie, będzie niedługo usunięte) + nick. Nowy mechanizm pobierania transakcji powinien działać o wiele bardziej niezawodnie, więc pewnie nie będzie takiej potrzeby. Nie polega on już na różnych dziwnych konstrukcjach pamiętających jeszcze rok 2006, gdzie problem z działaniem jednej funkcji w API wpływał na działanie całego mechanizmu pobierania i zapisywania transakcji. Teraz transakcje są (będą w 1.33) tworzone wprost według danych zwróconych z Allegro z jednej tylko funkcji. Czyli pobieranie transakcji też będzie jeszcze szybsze? Cytuj Link to postu
Bartosz Rosa 1 762 Napisano 27 Listopada 2019 Udostępnij Napisano 27 Listopada 2019 w Scalanie kontrahentów w jednego Stare pobieranie używa 4 różnych funkcji API, z których każda może mieć opóźnienia, może zawieść, zwrócić niepełne dane, co spowoduje opóźnienie lub brak transakcji. Nowy mechanizm korzysta tylko z jednej funkcji API, która zwraca komplet danych potrzebnych do realizacji zamówienia - czyli stworzenia transakcji w Sello. Jeśli chcesz dociągnąć dane jednej transakcji to wywoływany jest jeden request do API, odpowiedź przychodzi poniżej 200ms + czas wyszukania transakcji w bazie + czas przetwarzania danych + zapis transakcji do bazy - wszystko poniżej 1s. Do tego nowy mechanizm synchronizacji, który z założenia jest dużo szybszy i zużywa dużo mniej pamięci również działają tutaj na plus. Cytuj Link to postu
Mamut Maniek 114 Napisano 27 Listopada 2019 Autor Udostępnij Napisano 27 Listopada 2019 w Scalanie kontrahentów w jednego 2 godziny temu, Bartosz Rosa napisał: Stare pobieranie używa 4 różnych funkcji API, z których każda może mieć opóźnienia, może zawieść, zwrócić niepełne dane, co spowoduje opóźnienie lub brak transakcji. Nowy mechanizm korzysta tylko z jednej funkcji API, która zwraca komplet danych potrzebnych do realizacji zamówienia - czyli stworzenia transakcji w Sello. Jeśli chcesz dociągnąć dane jednej transakcji to wywoływany jest jeden request do API, odpowiedź przychodzi poniżej 200ms + czas wyszukania transakcji w bazie + czas przetwarzania danych + zapis transakcji do bazy - wszystko poniżej 1s. Do tego nowy mechanizm synchronizacji, który z założenia jest dużo szybszy i zużywa dużo mniej pamięci również działają tutaj na plus. 1 Cytuj Link to postu
Polecane posty
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.