Autor Wątek: INVALID_PICKUP_POINT_FORMAT  (Przeczytany 15110 razy)

maniootek

  • Newbie
  • *
  • Wiadomości: 39
W programie ProstaPaczka v23.5.0 nie pobierało punktu odbioru z Paczki Sello podczas tworzenia listu. W wersji v23.5.1 zostało to poprawione i teraz pobiera dane ale jest problem, jeżeli w danych punktu odbioru są dwie wartości umieszczone w nawiasie.
Chodzi o przesyłki "Allegro Wysyłka z Polski do Czech - Automaty Paczkowe Packeta"
Dokładniej zostało to opisane tutaj:
https://forum.insert.com.pl/index.php?/topic/81102-automaty-paczkowe-packeta/page/2/#comment-415426

Tomek

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 322
Czy po zastosowaniu rozwiązania zaproponowanego przez Pana Bartosza (konfiguracja WzA w Sello) problem nadal występuje?

maniootek

  • Newbie
  • *
  • Wiadomości: 39
To co Pan Bartosz zasugerował dotyczy konfiguracji nadawania przesyłek przez Sello a nie przez program ProstaPaczka więc to nie ma znaczenia.

Tomek

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 322
Odnoszę wrażenie, że to o czym pisze Pan Bartosz, dotyczy umieszczania id punktu odbioru w polu ID punktu, z którego PP2 pobiera sobie identyfikator punktu.

Tomek

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 322
Proszę wysłać screen z paczki Sello oraz screen z formularza listu w PP2 na adres office@lcsoft.pl

maniootek

  • Newbie
  • *
  • Wiadomości: 39
Odnoszę wrażenie, że to o czym pisze Pan Bartosz, dotyczy umieszczania id punktu odbioru w polu ID punktu, z którego PP2 pobiera sobie identyfikator punktu.
Z tego co się orientuje, to baza danych Sello nie przewiduje pola "id punktu". Dane dotyczące punktu są zapisywane w polu 'adr_Name' w tabeli adr__Address i identyfikator trzeba wyciągnąć parsując tego stringa. Można by to zrobić wyrażeniem regularny (regex):
\((\d+)\)
Proszę wysłać screen z paczki Sello oraz screen z formularza listu w PP2 na adres office@lcsoft.pl
screen przesłany
« Ostatnia zmiana: Czerwiec 03, 2023, 11:36:31 am wysłana przez maniootek »

Tomek

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 322
Przekazuję temat do analizy.

Piotr

  • Administrator
  • Hero Member
  • *****
  • Wiadomości: 1830
W wersji v23.6 dodaliśmy możliwość wpisania własnego wyrażenia regularnego do pobierania id punktu odbioru dla każdej usługi dostawy Wysyłam z Allegro.
Możliwość ta pojawi się w oknie konfiguracji ustawień przetwarzania:
PACZKI SELLO -> zębatka -. zakładka WYSYŁAM Z ALLEGRO -> przycisk WYSYŁAM Z ALLEGRO -. przycisk KONFIGURACJA w sekcji dla edycji ustawień -> zakładka PUNKT ODBIORU.

Dla danych punktu Packety powinno wystarczyć wpisanie wyrażenia:
(?<=\) \().*?(?=\))

maniootek

  • Newbie
  • *
  • Wiadomości: 39
Dla danych punktu Packety powinno wystarczyć wpisanie wyrażenia:
(?<=\) \().*?(?=\))
Tutaj jest chyba błąd w tym wyrażeniu regularnym bo nie wczytuje kodu z nawiasu. Wydaje mi się, że chodziło Panu o taki kod:
(?<=\().*?(?=\))Który powinien zadziałać ale tylko gdy w polu "Punkt odbioru" paczki Sello jest tylko jeden nawias (a zdarzają się dwa, tak jak to odpisane było na forum Sello https://forum.insert.com.pl/uploads/monthly_2023_05/cats2.jpg.7e189aad1cbf9e361e547a7ff8380447.jpg).
Wg mnie, prawidłowy regex to:
(?<=\()\d+(?=\))który przetestowałem i działa
https://regex101.com/r/UinFXk/1

Piotr

  • Administrator
  • Hero Member
  • *****
  • Wiadomości: 1830
Dziękujemy za podpowiedź :)

Tomek

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 322
W Allegro pojawiły się przypadki, gdy id punktu odbioru zapisane jest jako cyfry przed nawiasem zamykającym i proponowane przez nas wcześniej rozwiązanie przestaje działać.
W przypadku identyfikatorów zapisanych jako ciąg cyfr przed nawiasem zamykającym sugerujemy zastosowanie wyrażenia:
(?<=\s)(\d+)(?=\))