Przejdź do głównej treści
Konektor Wapro łączy Omnilinkera z Wapro Mag, systemem magazynowo-sprzedażowym firmy Asseco. To jedyny konektor ERP dostępny dziś. Działa wewnątrz agenta ERP Sync w Twojej sieci i komunikuje się bezpośrednio z bazą SQL Server Wapro, bo Wapro Mag nie udostępnia internetowego API.

Co odczytuje konektor

Omnilinker odczytuje ceny sprzedaży z Wapro, by porównać je z Twoimi, i zapisuje je jako Twoje ceny tylko na poziomie cen, który pozwolisz ustalać Wapro (zobacz Ceny z Twojego ERP). Kategorii i zestawów z Wapro nie bierze. Stany są pokazywane obok Twoich do porównania i stają się stanami magazynu tylko wtedy, gdy pozwolisz Wapro zarządzać tym magazynem (zobacz Przekaż magazyn do ERP). Zobacz Co integracja robi dziś.

Szczegóły produktów

Oprócz kodu i nazwy konektor wysyła te szczegóły każdego produktu. To, które z nich trafiają do Twojego katalogu i czy zastępują to, co tam jest, ustawiasz dla każdego połączenia przyciskiem Edytuj ustawienia produktów na karcie Magazyny i produkty: zobacz Produkty z Twojego ERP. Wapro przechowuje dla tego samego artykułu osobny wiersz w każdym magazynie. Szczegóły pochodzą z głównego wiersza produktu: pierwszego aktywnego, z pierwszeństwem dla magazynu źródłowego połączenia, a potem o najniższym identyfikatorze artykułu. To wiersz, do którego zapisywane są ceny. Szczegół, który w Wapro jest pusty, nie jest wysyłany, a Omnilinker nigdy nie czyści wartości w Katalogu z powodu pustej.

Które produkty są tworzone automatycznie

Przy włączonym automatycznym tworzeniu Omnilinker tworzy produkt w katalogu dla każdego produktu z Wapro, który jest oznaczony dla systemów zewnętrznych i nie jest zablokowany. Dokładnie: któryś wiersz produktu w Twojej firmie ma AKTYWNY_DLA_SYS_ZEW = 1, ZABLOKOWANY = 0 i FLAGA_STANU <> 5 (nie jest oznaczony jako usunięty). Artykuł, którego wiersz w magazynie źródłowym jest zablokowany, nadal spełnia warunki przez aktywny, niezablokowany wiersz w innym magazynie. Zobacz Automatyczne tworzenie.

Jak odczytywane są stany

Wapro trzyma stany na samych wierszach artykułów: jeden wiersz na artykuł w każdym magazynie. Konektor sumuje wiersze produktu (zobacz Jak identyfikowane są produkty) osobno dla każdego magazynu i wysyła dla każdej pary produkt i magazyn firmy ilość na stanie, ilość zarezerwowaną i ilość w edytowanych dokumentach. Omnilinker liczy dostępne jako na stanie minus zarezerwowane minus w dokumentach, tak jak Wapro, i pokazuje wynik obok Twoich stanów; zobacz Stany z ERP obok Twoich.
  • Kiedy. Gdy zmapowany jest choć jeden magazyn połączenia (zobacz Listy i mapowania), agent odczytuje cały stan co 5 minut, licząc od końca poprzedniego odczytu. Gdy żaden magazyn nie jest zmapowany, odczytuje go raz dziennie.
  • Jak mało przeszkadza Wapro. Agent czyta krótkimi stronami i zwalnia, gdy Wapro jest zajęte: strona, która trwa dłużej niż około 2 sekund, sprawia, że następna jest mniejsza, a po niej jest przerwa. Na blokadę czeka najwyżej 5 sekund, a potem próbuje później, i nigdy nie czyta niezatwierdzonych danych.
  • Co wysyła. Porównuje każdy odczyt z ostatnim wysłanym i przesyła tylko produkty i magazyny, których liczby się zmieniły, więc spokojne Wapro wysyła prawie nic. Wiersz stanu, który zniknął z Wapro, jest wysyłany jako 0. Raz dziennie wysyłany jest pełny zestaw, który poprawia też to, co mogło umknąć.
  • Stan, którego Wapro nie wymienia. Produkt, którego nie ma w ostatnim pełnym zestawie Wapro w danym magazynie, ma tam 0 z oznaczeniem „brak na ostatniej liście z ERP”.
  • Wstrzymanie i aktualizacja. Wstrzymany agent nie odczytuje stanów; zobacz aplikację w zasobniku.
Gdy baza Wapro jest mocno obciążona, wsparcie może wydłużyć odstęp; zobacz Opis konfiguracji.

Numer firmy

Baza Wapro może zawierać kilka firm, a każdy poziom cen, magazyn i artykuł należy do jednej z nich. Wpisz numer firmy (ID_FIRMY, zwykle 1) w polu Numer firmy w formularzu połączenia agenta: w konfiguracji albo później w Ustawieniach > Zmień… aplikacji w zasobniku. Pole jest wymagane: agent odczytuje listy tylko tej firmy, a bez niego nie odczytuje żadnej.

Jak identyfikowane są produkty

W Wapro każdy magazyn ma własny wiersz tego samego artykułu. Konektor traktuje wszystkie wiersze firmy o tym samym indeksie katalogowym (INDEKS_KATALOGOWY) jako jeden produkt:
  • Spacje na początku i na końcu indeksu są pomijane. Nic więcej: abc-1 i ABC-1 to dwa produkty.
  • Artykuł, którego indeks jest pusty albo zawiera same spacje lub inne białe znaki, nie jest produktem i zostaje pominięty.
  • Kodem produktu w Omnilinkerze jest jego indeks. Domyślnie Omnilinker wiąże produkt z ERP z produktem w katalogu, którego SKU jest równe temu kodowi; połączenie może też wiązać po EAN. Zobacz Wiązanie produktów.
  • Klucz ERP produktu to najniższy identyfikator artykułu (ID_ARTYKULU) wśród jego wierszy, także usuniętych. Nie zmienia się, gdy zmienisz indeks we wszystkich wierszach produktu na taki, którego nie ma żaden inny produkt, wyłączysz lub usuniesz wiersz albo dodasz magazyn, więc powiązanie przetrwa te zmiany.
  • Produkt jest aktywny, gdy co najmniej jeden z jego wierszy jest aktywny dla systemów zewnętrznych (AKTYWNY_DLA_SYS_ZEW = 1) i nie jest oznaczony jako usunięty (FLAGA_STANU = 5).
Całkowite usunięcie wiersza artykułu, który przechowuje klucz (a nie tylko oznaczenie go jako usuniętego), albo wyczyszczenie jego indeksu sprawia, że produkt pojawia się pod nowym kluczem. Omnilinker przenosi wtedy powiązanie na produkt, który ma teraz stary kod, jeśli jest dokładnie jeden taki produkt. Inaczej jest przy zmianie indeksu tylko w części wierszy produktu i Omnilinker o tym nie ostrzega:
  • Jeśli wśród zmienionych wierszy jest ten, który przechowuje klucz, powiązanie idzie za zmienionymi wierszami. Dostaje ich nowy kod, a wiersze, które zachowały stary indeks, pojawiają się jako nowy produkt bez powiązania.
  • Jeśli zmieniony nie jest ten wiersz, powiązanie zostaje tam, gdzie było, a zmienione wiersze pojawiają się jako nowy produkt.
Nadanie wierszom indeksu, który ma już inny produkt (we wszystkich wierszach produktu albo tylko w części), łączy te wiersze z tym produktem i Omnilinker też o tym nie ostrzega. Po zmianie każdy produkt jest na liście pod najniższym identyfikatorem artykułu spośród swoich wierszy, więc to, pod którym kluczem znajdą się połączone wiersze, zależy od tego, które wiersze się zmieniły. Każde powiązanie jest potem rozstrzygane osobno:
  • Powiązanie, którego klucz nadal jest na liście, zostaje przy produkcie wymienionym pod tym kluczem i przyjmuje indeks tego produktu jako kod.
  • Powiązanie, którego klucza nie ma już na liście, przechodzi na produkt z listy, który ma jego kod, ale tylko wtedy, gdy dokładnie jeden produkt go ma i nie ma jeszcze powiązania. W przeciwnym razie powiązanie zostaje i pokazuje się w sekcji Powiązania z produktami, których nie ma już na liście produktów ERP, dopóki nie usuniesz tego powiązania (Usuń powiązanie; zobacz Produkty, których nie ma już w ERP).
Cena wysłana do połączonego produktu trafia tylko do jego głównego wiersza (aktywnego wiersza o najniższym ID artykułu w magazynie źródłowym, w przeciwnym razie o najniższym ogólnie), a nie do każdego wiersza produktu. Po połączeniu może to być jeden z połączonych wierszy, a ceny są odczytywane z tego samego wiersza. Zobacz Wysyłanie cen do Wapro. Po zmianie indeksu tylko w części wierszy produktu albo po nadaniu wierszom indeksu, który ma już inny produkt, sprawdź ten produkt (a przy połączeniu oba produkty) na karcie Magazyny i produkty połączenia. Aby zmienić nazwę produktu, zmień indeks we wszystkich jego wierszach na taki, którego nie ma żaden inny produkt.

Jak odczytywane są ceny

Wapro trzyma cenę artykułu na poziomie cen na wierszu artykułu: CENA_ARTYKULU zawiera jeden wiersz na artykuł i poziom cen. Konektor wysyła dla każdej pary poziom cen firmy i produkt cenę, którą ma Wapro, aby Omnilinker mógł pokazać ją obok Twojej albo, na poziomie cen, który pozwolisz ustalać Wapro, użyć jej jako ceny. Tylko czyta. Czy czyta w ogóle i jak często, opisuje sekcja Ceny: tylko gdy poziom cen jest zmapowany, a opcja Odczyt cen z ERP jest włączona dla Twojej organizacji, co 15 minut przez porównanie i w całości raz dziennie.
  • Który wiersz. Artykuł ma po jednym wierszu na magazyn (zobacz Jak identyfikowane są produkty). Konektor odczytuje cenę z głównego wiersza produktu: jego aktywnego wiersza w magazynie źródłowym połączenia albo aktywnego wiersza o najniższym numerze, gdy magazyn źródłowy go nie ma. Ceny z pozostałych wierszy magazynowych artykułu pomija. To też wiersz, do którego trafia wysłana przez Ciebie cena. Zobacz Magazyn źródłowy.
  • Co wysyła. Cenę netto i brutto tak, jak trzyma je Wapro, z czterema miejscami po przecinku, razem z walutą wiersza. Wapro zostawia walutę ceny w PLN pustą, a konektor wysyła dla niej PLN. Cena w innej walucie jest wysyłana w tej walucie: Wapro przelicza ją dopiero na dokumencie, po kursie z danego dnia, więc Omnilinker niczego nie przelicza.
  • Co pomija. Wiersz, w którym netto i brutto wynoszą 0, wiersz z brakującą kwotą i produkt bez aktywnego wiersza. Pominiętą cenę Omnilinker odczytuje jako brak ceny, nigdy jako 0.
  • Która jednostka. Cena jednostki podstawowej artykułu. Sprzedaż w innej jednostce kosztuje cenę razy przelicznik jednostki w Wapro, czego konektor nie stosuje; ceny dla innych jednostek i progów ilościowych nie są odczytywane.
  • Jak mało przeszkadza Wapro. Tak samo jak przy stanach: krótkie strony, przerwa, gdy Wapro zwalnia, oczekiwanie na blokadę najwyżej 5 sekund i nigdy niezatwierdzone dane. Porównuje każdy odczyt z ostatnim wysłanym i przesyła tylko ceny, które się zmieniły. Cena, która znika z Wapro, jest oznaczana jako zniknięta, a nie ustawiana na 0.
  • Wstrzymanie i aktualizacja. Wstrzymany agent nie odczytuje cen; zobacz aplikację w zasobniku.
Te same ceny we wszystkich magazynach. Wapro utrzymuje równą cenę poziomu w wierszach magazynowych artykułu tylko wtedy, gdy synchronizacja artykułów firmy (SynchroArt) jest ustawiona na „Wspólne dane i ceny podstawowe”, a synchronizacja jest włączona dla poziomu cen. Gdy Twoja firma ma więcej niż jeden aktywny magazyn i tak nie jest, sprawdzenia agenta pokazują Te same ceny we wszystkich magazynach z podpowiedzią, że Omnilinker odczytuje ceny z wiersza artykułu w magazynie głównym i do niego je wysyła. To tylko informacja: żadna operacja nie jest wyłączana, a połączenie pozostaje sprawne. Sprawdzenie potrzebuje SELECT na trzech dodatkowych tabelach (zobacz Login SQL Server); bez nich nie może tego ustalić, więc pokazuje podpowiedź ze szczegółami zaczynającymi się od „Not checked”, i nic więcej się nie zmienia. Zobacz Monitorowanie.

Wysyłanie cen do Wapro

Wyślij do ERP zapisuje cenę na poziomie cen Wapro zmapowanym na jej poziom katalogu, procedurą dbo.Api_ProductPriceModify, tą samą, której używa okno cen w Wapro. Potrzebne są:
  • Użytkownik ERP do zapisu ustawiony w połączeniu (zobacz Karta Przegląd). Wapro sprawdza jego prawo zmiany cen sprzedaży (ArtykCenSprz) w magazynie zapisywanego wiersza. Wybierz użytkownika z tym prawem i bez większych uprawnień, niż potrzebuje zapis, a nie administratora Wapro.
  • Prawo wykonania dbo.Api_ProductPriceModify i odczytu wierszy cen (CENA_ARTYKULU) dla loginu SQL agenta; zobacz Login SQL Server.
Jak cena jest zapisywana:
  • W jednym wierszu produktu opisanym w sekcji Jak identyfikowane są produkty, netto albo brutto, tak jak ją wysłano; drugą kwotę Wapro wylicza ze stawki VAT sprzedaży produktu. Produkt musi już mieć wiersz ceny na tym poziomie: procedura zmienia cenę, a nigdy jej nie tworzy.
  • Nie na poziomie, który Wapro wylicza z innego poziomu: Omnilinker odrzuca go przed wysłaniem.
  • Nie dla jednostki innej niż podstawowa ani z minimalną ilością.
  • W walucie wiersza; Wapro niczego nie przelicza.
  • Znacznik Cena domyślna artykułu nigdy się nie przesuwa.
Po zapisie konektor odczytuje wiersz ponownie. Cena jest Zapisana tylko wtedy, gdy Wapro zapisało dokładnie to, co wysłano. Użytkownik Wapro bez prawa ArtykCenSprz sprawia, że Wapro pomija zmianę bez błędu: cena kończy jako Niepotwierdzona z ostrzeżeniem „Wapro did not apply the change; the Wapro user may lack the ArtykCenSprz permission”. Ceny, którą Wapro już ma, konektor nie zapisuje ponownie. Od wydania ERP Sync, które wysyła ceny paczkami, konektor najpierw odczytuje wiersz ceny i jeśli wiersz ma już dokładnie tę cenę netto i brutto, którą by zapisał, nie zapisuje niczego: cena jest Zapisana, z uwagą „unchanged: Wapro already stores these values”. Dzięki temu wyzwalacze cen w Wapro nie uruchamiają się dla ceny, która się nie zmieniła, także te, na których opierają się Twoje własne integracje, na przykład eksport do sklepu. Skoro nic nie jest zapisywane, Wapro nie sprawdza też dla tej ceny prawa ArtykCenSprz. Starsze wersje agenta zapisują każdą wysłaną cenę.

Jak odczytywane są zdjęcia produktów

Konektor odczytuje zdjęcia produktów, które są powiązane w Omnilinkerze, i tylko wtedy, gdy opcja Odczyt zdjęć produktów z ERP jest włączona dla Twojej organizacji, a pole Zdjęcia połączenia nie jest Wyłączone (zobacz Zdjęcia produktów). Niczego nie zapisuje w Wapro.
  • Które zdjęcia. Zdjęcia produktu to wiersze ARTYKUL_BLOB, których indeks katalogowy (INDEKS_KATALOGOWY) jest równy indeksowi jednego z wierszy produktu w Twojej firmie, bez względu na wielkość liter, tak jak pokazuje je samo Wapro. Dwa produkty, których indeksy różnią się tylko wielkością liter, mają więc wspólne zdjęcia. Zdjęcie innej firmy nigdy nie jest odczytywane.
  • Zdjęcie główne to zdjęcie oznaczone jako domyślne (DOMYSLNE). Jeśli oznaczonych jest kilka, najstarsze z nich; jeśli żadne, najstarsze zdjęcie. Pozostałe idą w kolejności dodania, nigdy według nazwy. Nazwa zdjęcia (NAZWA) staje się nazwą jego pliku w Omnilinkerze.
  • Znaczniki sklepu i aukcji (DOSTEPNE_ABSTORE, DOSTEPNE_AUKCJE) są odczytywane, ale jeszcze niczego nie filtrują: brane są wszystkie zdjęcia produktu.
  • Zmiany. Agent porównuje zdjęcia mniej więcej co godzinę i raz dziennie odczytuje je w całości. Nowe, podmienione albo usunięte zdjęcie, nowa nazwa albo przeniesione oznaczenie zdjęcia głównego są zauważane przy następnym porównaniu. Edytor zdjęć w samym Wapro potrafi podmienić zawartość zdjęcia z zachowaniem jego identyfikatora, a czasem i dokładnego rozmiaru; taką zmianę wykrywa codzienne sprawdzenie o 2:00 w nocy (czas komputera agenta), które oblicza odciski zdjęć na serwerze SQL. To sprawdzenie wymaga SQL Server 2016 lub nowszego: na starszym serwerze okno Rozwiązywanie problemów w aplikacji w zasobniku pokazuje ostrzeżenie Codzienne sprawdzanie zawartości zdjęć: Wyłączone (SQL Server starszy niż 2016), a niezauważone zostaje tylko zdjęcie o dokładnie tym samym rozmiarze.
  • Zdjęcia w folderze. Wapro może trzymać zdjęcia dodane w programie w folderze zamiast w bazie danych (tryb dyskowy). Omnilinker nie odczytuje tego folderu: te zdjęcia nie trafiają do Omnilinkera, nigdy nie są traktowane jak usunięte, a okno Rozwiązywanie problemów pokazuje ostrzeżenie Gdzie Wapro przechowuje zdjęcia towarów: W folderze zdjęć (tryb dyskowy). Zdjęcia zapisane w bazie danych trafiają dalej, w każdym trybie. Aby poznać tryb, konektor odczytuje WAPROERP_KONFIGURACJA (albo INTERFIRMAPOZYCJA i POZYCJAKONFIG); bez dostępu do nich przyjmuje tryb bazy danych.
  • Zdjęcia bez danych. Funkcja Wapro zmniejszająca rozmiar bazy czyści dane zdjęć, ale zostawia ich wiersze. Takie zdjęcie jest na liście bez danych, a Omnilinker zachowuje zdjęcie, które już ma, bez zmian.
  • Obciążenie. Dane zdjęć są odczytywane po jednym zdjęciu, w częściach, i domyślnie przesyłane z prędkością najwyżej 30 MB na minutę, więc pierwszy odczyt dużego katalogu trwa godziny. Gdy agent jest wstrzymany, nic nie jest odczytywane. Co 50 zdjęć, jeśli agent właśnie zapisuje w Wapro cenę albo zamówienie, przesyłanie czeka, aż skończy, najwyżej 30 sekund.

Co zapisuje w Twojej bazie

Odczyt list, stanów i cen niczego nie zapisuje: konektor tylko czyta CENA, MAGAZYN, ARTYKUL i CENA_ARTYKULU, a dla szczegółów produktów JEDNOSTKA i KOD_KRESKOWY. Odczyt zamówień z powrotem (ich statusu, faktur i numerów KSeF) też niczego nie zapisuje: czyta tylko tabele zamówień, faktur i dokumentów magazynowych wymienione w sekcji Login SQL Server. Nie rejestruje śledzenia zmian Wapro (WFM_INT) i nic nie zapisuje w tabelach WFM_INT_*; odczyt stanów i cen też nie: Omnilinker sprawdza, co się zmieniło, porównując odczyty. Wcześniejsze wersje agenta mogły zarejestrować się w śledzeniu zmian; taka rejestracja nie jest już używana, a następna sekcja opisuje, jak ją usunąć. Wysyłanie ceny zapisuje dane. Zobacz Ceny do ERP. Konektor zapisuje przez własną procedurę Wapro Api_ProductPriceModify, tę, która stoi za ekranem cen w Wapro, jako Użytkownik ERP do zapisu, który potrzebuje uprawnienia Wapro ArtykCenSprz. Zmienia cenę netto i brutto głównego wiersza produktu na danym poziomie jednym poleceniem, a potem odczytuje wiersz z powrotem, by to sprawdzić, i nigdy nie zapisuje pozostałych wierszy magazynowych artykułu. Ceny, którą wiersz już ma, nie zapisuje wcale. Zobacz Wysyłanie cen do Wapro. Wysyłanie zamówień zapisuje dane. Co to dla Ciebie znaczy, opisują Zamówienia do ERP i Klienci w ERP. Konektor zapisuje przez własne procedury Wapro, więc obowiązują jego zasady:
  • Zamówienie to zamówienie od klienta, zakładane przez Api_OrderDocumentHeaderAdd, Api_OrderDocumentPositionAdd i Api_OrderDocumentAccept (a dla pozycji będącej zestawem RM_DodajZestawNaZam_Server), w jednej transakcji: zapisuje się całe zamówienie albo nic. Przy włączonym Rezerwuj w ‹połączenie› (domyślnie) rezerwuje towar w magazynie źródła zamówienia. Odnośnik Omnilinkera do zamówienia (OMNI-…) trafia do internetowego numeru zamówienia, a numer zamówienia z kanału i login kupującego do wolnego pola wybranego na zakładce Zamówienia.
  • Klient jest zakładany przez Api_CustomerAddOrModify tylko wtedy, gdy żaden istniejący nie pasuje. Klucz Omnilinkera trafia do wybranego wolnego pola. Konektor nigdy nie zmienia istniejącego klienta.
  • Miejsce dostawy. Adres dostawy zamówienia jest dodawany do miejsc dostawy klienta jako osobne miejsce przez Api_DocumentDeliveryAddressessAddOrUpdate, po jednym zwykłym INSERT do MIEJSCE_DOSTAWY; pasujące miejsce jest używane ponownie. Domyślne miejsce dostawy klienta nigdy się nie zmienia. Dla paczkomatu miejsce ma własny adres paczkomatu, z operatorem InPost SHIPX, jeśli Allegro podało adres.
  • Anulowanie idzie przez RM_ZatwierdzStatusZamowienia, które zwalnia też rezerwację.
  • Zmiana produktów zamówienia, które jest już w Wapro (zobacz Zmiana zamówienia, które jest w ERP), idzie przez Api_OrderDocumentPrepareForModify, Api_OrderDocumentPositionDelete, Api_OrderDocumentPositionModify, Api_OrderDocumentPositionAdd i Api_OrderDocumentAccept, wszystkie w jednej transakcji. Samo Wapro niczego nie odmawia dla zamówienia zrealizowanego, zafakturowanego ani zamkniętego, więc konektor najpierw czyta zamówienie i odrzuca zmianę, niczego nie zapisując, gdy zamówienie jest zrealizowane, częściowo zrealizowane, zafakturowane, zamknięte lub anulowane, gdy ktoś zmienił jego pozycje w Wapro od ostatniej wysyłki z Omnilinkera albo gdy ma pozycję będącą zestawem. Pozycji będącej zestawem nigdy nie edytuje, a pozycję dostawy i pozostałe dane zamówienia zostawia bez zmian.
  • Kursy walut, jeśli zostawisz włączone Pobieraj kursy NBP: przed zamówieniem w obcej walucie konektor wywołuje własną procedurę Wapro Api_CurrencyImport, która pobiera tabele Narodowego Banku Polskiego tak, jak robi to Wapro. Sam nigdy nie zapisuje kursu. Pobranie wymaga, by SQL Server zezwalał na CLR, ufał komponentowi pobierania Wapro i miał dostęp do api.nbp.pl przez HTTPS. Gdy czegoś brakuje, pobranie kończy się ostrzeżeniem w potwierdzeniu zamówienia (Integracja ERP > Polecenia), a zamówienie jest zakładane na tabelach, które Wapro już ma, jeśli są dość świeże (zobacz Zamówienia do ERP).
  • Wolne pola. POLE1 do POLE10 Wapro zapisuje dynamicznym SQL; konektor wypełnia klucz klienta i numer zamówienia z kanału, a pozostałe Twoje pola zostawia bez zmian. Pól 6 i 7 nigdy nie używa, bo Wapro zapisuje je nieprawidłowo.
Zanim zamówienie zostanie założone albo zmienione, konektor sprawdza, czy Wapro je przyjmie, więc odrzucenie (brak kursu waluty, zablokowany klient, zamówienie już zrealizowane) niczego nie zapisuje. Licencja. Zapytaj swojego partnera Wapro, czy Twoja licencja pozwala programowi innemu niż Wapro zapisywać zamówienia przez procedury Api_. Omnilinker używa wyłącznie procedur, które instaluje Wapro, ale warunki licencji ustalasz z Asseco.

Usuwanie starej rejestracji

Wcześniejsze agenty Omnilinkera rejestrowały konsumenta OMNILINKER w śledzeniu zmian Wapro. Nikt go już nie czyta, ale wyzwalacze Wapro nadal zapisują dla niego wiersz zmiany przy każdej zmianie w śledzonej tabeli, co kosztuje Wapro dodatkowy zapis na darmo. Jeśli agent znajdzie tę rejestrację, okno Rozwiązywanie problemów aplikacji w zasobniku pokazuje ostrzeżenie Stara rejestracja w śledzeniu zmian Wapro: Jest; zobacz aplikację w zasobniku. Nic nie przestaje działać z jej powodu, więc nie ma pośpiechu. Usuwa ją raz administrator Twojej bazy danych albo partner Wapro, poniższym skryptem. Omnilinker sam nigdy nie zmienia śledzenia zmian Wapro.
Najpierw zrób kopię zapasową bazy Wapro i uruchom skrypt w tej bazie loginem, który może usuwać z tabel WFM_INT. Skrypt działa w jednej transakcji. Jeśli nie znajdzie rejestracji OMNILINKER albo znajdzie więcej niż jedną, kończy się błędem i niczego nie zmienia. Usuwa tylko wiersze tej rejestracji (nigdy wiersze innego systemu) i nie zmienia żadnej tabeli, wyzwalacza ani kolumny. Gdy działa, zapisy w Wapro czekają, więc uruchom go, gdy nikt nie pracuje w Wapro, na przykład po godzinach pracy.
Aby zobaczyć rejestrację, agent potrzebuje SELECT na WFM_INT_SYSTEM (obejmuje to członkostwo w roli db_datareader). Bez tego uprawnienia nie może jej rozpoznać i nie pokazuje ostrzeżenia.

Login SQL Server

Konektor łączy się loginem SQL Server wpisanym w ustawieniach agenta albo przez uwierzytelnianie Windows jako konto usługi. Potrzebuje:
  • SELECT na ARTYKUL, MAGAZYN, CENA i CENA_ARTYKULU albo członkostwa w roli db_datareader (CENA_ARTYKULU zawiera wiersze cen; konektor czyta ją, by odczytywać ceny i by sprawdzić wysyłaną cenę),
  • EXECUTE na dbo.Api_ProductPriceModify. Test połączenia agenta to sprawdza (Procedura cen Wapro zainstalowana) i bez tego nie przechodzi.
Odczyt stanów nie potrzebuje niczego więcej: czyta ARTYKUL i MAGAZYN. Aby agent mógł ostrzec o starej rejestracji (zobacz Usuwanie starej rejestracji), potrzebuje też SELECT na WFM_INT_SYSTEM, co obejmuje db_datareader; bez tego ostrzeżenie po prostu się nie pojawia. Aby sprawdzić, czy ceny w Twoich magazynach mogą się różnić (Te same ceny we wszystkich magazynach), czyta też ARTYKUL_CENA_IE, POZYCJAKONFIG i INTERFIRMAPOZYCJA, więc nadaj SELECT także na nie (obejmuje je db_datareader). Są opcjonalne: bez nich odczyt i wysyłanie cen działają dalej, a sprawdzenie pokazuje swoją podpowiedź. Do szczegółów produktów czyta też JEDNOSTKA (jednostka) i KOD_KRESKOWY (dodatkowe kody kreskowe), więc nadaj SELECT także na nie. Bez nich produkty nadal docierają, ale bez jednostki i dodatkowych kodów kreskowych, a agent zapisuje w logu ostrzeżenie. Aby wysyłać zamówienia i zakładać klientów, login potrzebuje też, zgodnie z listą w Wymaganiach:
  • EXECUTE na procedurach zamówień, klientów, miejsc dostawy i anulowania oraz na trzech funkcjach, których używają;
  • INSERT na MIEJSCE_DOSTAWY;
  • UPDATE na ZAMOWIENIE_INTERNETOWE_ID i na wolnych polach POLE1 do POLE10 klientów, zamówień i pozycji zamówień, bo Wapro zapisuje te pola dynamicznym SQL, który działa z uprawnieniami wywołującego;
  • SELECT na tabelach zamówień, klientów, dostaw, krajów, VAT, walut i form płatności;
  • opcjonalnie EXECUTE na Api_CurrencyImport do pobierania kursów walut.
Sprawdzenie agenta pokazuje, czy to wszystko jest na miejscu: Procedury zamówień i kontrahentów dostępne nie przechodzi i wskazuje, czego brakuje („W bazie ERP brakuje procedur lub uprawnień do kolumn, których potrzebują zamówienia i kontrahenci: zaktualizuj Wapro albo nadaj te uprawnienia loginowi SQL ERP Sync”). Dopóki nie przechodzi, zamówienia i klienci stają: lista kontrolna na zakładce Zamówienia nadal pokazuje gotowość, ale wysyłka jest odrzucana przy przekazaniu agentowi, a zamówienie czeka z komunikatem Połączenie z ERP nie jest gotowe. Zapis cen, odczyt i stany działają dalej. Bez Użytkownika ERP do zapisu nie przechodzi też Ustawiony użytkownik ERP do zapisu, a zakładka Zamówienia pokazuje Brak użytkownika ERP do zapisu. Dokładne polecenia znajdziesz w Wymaganiach. Aby odczytywać zamówienia z powrotem (zobacz Faktury), login potrzebuje też SELECT na POZYCJA_DOKUMENTU_MAGAZYNOWEGO, DOKUMENT_MAGAZYNOWY, DOKUMENT_HANDLOWY (razem z kolumną KSEF_ID) i TYP_DOKUMENTU_HANDLOWEGO oraz, opcjonalnie, na MAG_SLOWNIK_STATUSOW_DOKUMENTOW. Odczyt potrzebuje też ZAMOWIENIE i POZYCJA_ZAMOWIENIA, ale te tabele są już wśród uprawnień do wysyłania zamówień powyżej. Obejmuje je db_datareader. Gdy brakuje którejś z tych czterech tabel, wyłącza się tylko ten odczyt: karta Komputer i konektor pokazuje Odczyt zamówień wysłanych z Omnilinkera jako wyłączone, log agenta wskazuje, czego brakuje, żadne sprawdzenie nie kończy się błędem, a zamówienia, klienci, ceny i pozostałe listy działają dalej. Bez MAG_SLOWNIK_STATUSOW_DOKUMENTOW odczyt działa, ale karta nie może pokazać własnej nazwy statusu z Wapro. Zobacz Wymagania. Aby odczytywać zdjęcia produktów (zobacz Jak odczytywane są zdjęcia produktów), login potrzebuje też SELECT na ARTYKUL_BLOB oraz na WAPROERP_KONFIGURACJA, by poznać, gdzie Wapro je trzyma; obie obejmuje db_datareader. Bez ARTYKUL_BLOB wyłączają się tylko zdjęcia: karta Komputer i konektor pokazuje Odczyt zdjęć produktów, Odczyt plików zdjęć i Sprawdzanie zmian w plikach zdjęć jako wyłączone, a cała reszta działa dalej. Aby zmieniać zamówienia, które są już w Wapro, login potrzebuje też EXECUTE na dbo.Api_OrderDocumentPrepareForModify, dbo.Api_OrderDocumentPositionModify i dbo.Api_OrderDocumentPositionDelete oraz SELECT na POZYCJA_ZAMOWIENIA_SPRZEDAZ_TRANSGRANICZNA, oprócz czterech tabel odczytu. SELECTy obejmuje db_datareader. Gdy brakuje któregoś z tych uprawnień, wyłącza się tylko zmiana: karta Komputer i konektor pokazuje Zmiana zamówień jako wyłączone, a zmiana zamówienia w Wapro jest odrzucana jako „połączenie z ERP nie jest gotowe”, podczas gdy zakładanie, anulowanie i odczyt zamówień działają dalej. Zobacz Wymagania.

Znane ograniczenia

  • Omnilinker bierze z Wapro powyższe listy i szczegóły produktów z tabeli. Stany trafiają do magazynu Omnilinkera tylko wtedy, gdy zarządza nim Wapro; w pozostałych są odczytywane do porównania. Ceny sprzedaży są odczytywane, by porównać je z Twoimi, i trafiają do katalogu tylko na poziomie cen, który pozwolisz ustalać Wapro; kategorie i zestawy nie są importowane.
  • Ceny są porównywane, a importowane tylko na poziomie cen, który pozwolisz ustalać Wapro. Odczytywana jest tylko cena głównego wiersza produktu i jego jednostki podstawowej; cena tego samego artykułu w innym magazynie, w innej jednostce albo na progu ilościowym nie jest.
  • Produkty są odczytywane jako pełna lista, mniej więcej raz dziennie albo po kliknięciu Odśwież listy, więc zmiana w Wapro widoczna jest w Omnilinkerze po następnej liście. Stany są szybsze: zwykle w ciągu kilku minut od zmiany.
  • Produkt, którego indeks różni się od innego tylko wielkością liter, jest w Omnilinkerze osobnym produktem. Ich zdjęcia są wspólne: oba produkty dostają te same zdjęcia.
  • Zdjęcia produktów trzymane w folderze zdjęć Wapro (tryb dyskowy) nie są odczytywane, a znaczniki sklepu i aukcji przy zdjęciach niczego nie filtrują. Zdjęcia WMF i EMF, które Wapro przyjmuje, nie są brane.
  • Klucz produktu zmienia się, gdy wiersz artykułu, który go przechowuje, zostanie całkowicie usunięty albo jego indeks zostanie wyczyszczony, a nowy indeks tylko w części wierszy produktu może przenieść jego powiązanie na te wiersze. Nadanie wierszom indeksu, który ma już inny produkt, łączy te wiersze z tym produktem i może zostawić powiązanie bez produktu (zobacz wyżej).
  • Omnilinker odczytuje z powrotem status zamówienia, jego faktury sprzedaży i ich numery KSeF i tylko je pokazuje. Zmiana pozycji zamówienia w Omnilinkerze jest wysyłana do Wapro po Twoim potwierdzeniu, ale zmiana pozycji w Wapro nie wraca do Omnilinkera (kolejna zmiana z Omnilinkera jest wtedy odrzucana, dopóki nie sprawdzisz zamówienia), podobnie jak zamówienie utworzone w Wapro.
  • Zmiana zamówienia nie przenosi kosztu dostawy, danych kupującego, adresów, notatek, płatności ani statusu, a pozycji będącej zestawem (Zestaw) nie można zmienić. Zobacz Zmiana zamówienia, które jest w ERP.
  • Zamówienie nie jest wysyłane z pozycją własną lub rabatową, z pozycjami z więcej niż jednego magazynu, z więcej niż 150 pozycjami ani jako sprzedaż wewnątrzwspólnotowa firmie lub eksport. Sprzedaż transgraniczna konsumentowi (OSS) jest wysyłana tylko dla towarów w stawce 23%. Zobacz Zamówienia do ERP.

Powiązane strony

Wymagania

Sieć, login SQL Server i uprawnienia.

Listy i mapowania

Mapuj poziomy cen i magazyny Wapro oraz wiąż produkty.

Produkty z Twojego ERP

Wybierz, które pola produktów uzupełnia Wapro, i jak produkty się wiążą i powstają.