Autor Wątek: Jak wybrać dane punktu odbioru Poczty z dokumentu Subiekta GT?  (Przeczytany 7222 razy)

Piotr

  • Administrator
  • Hero Member
  • *****
  • Wiadomości: 1830
(na podstawie zgłoszenia)
W polu własnym dokumentu Subiekta GT mam zapisane dane punktu odbioru:
[OP]|UP Chrząstowice (235939)|Dworcowa 38|46-053 Chrząstowice|PL|tel: +48 503 904 548|e-mail: yjh73tdxec+be940c28@allegromail.pl [/OP]

Jakie wyrażenia regularne należy wstawić aby automatycznie tworzony był list z punktem odbioru?
« Ostatnia zmiana: Luty 10, 2020, 11:38:25 am wysłana przez Piotr »

Piotr

  • Administrator
  • Hero Member
  • *****
  • Wiadomości: 1830
Jeżeli wyszukiwanie punktu ma się odbywać po danych adresowych to można użyć wyrażeń:

Nazwa: (?<=\[OP]\|).*?(?= \()
Adres: (?<=^(?:[^|]+\|){2})[^|]+
Kod pocztowy: (?<=^(?:[^|]+\|){3})[^\s]+
Miasto: (?<=^(?:[^|]+\|){3}.{7})[^|]+

Jeżeli wyszukiwanie punktu odbioru Poczty Polskiej ma odbywać się po identyfikatorze placówki (zalecany sposób), to można użyć wyrażenia:

id: (?<=\[OP]\|.*\().*?(?=\))

Piotr

  • Administrator
  • Hero Member
  • *****
  • Wiadomości: 1830
Przykład wybierania identyfikatora punktu odbioru Poczty Polskiej z uwag dokumentu.

Przykład zawartości uwag:
**...tura*Punkt:976670*Janusza ...

Wyrażenie:
(?<=
  • Punkt:).*?(?=
  • )

Wybierze wartość pomiędzy "*Punkt" a "*".

Piotr

  • Administrator
  • Hero Member
  • *****
  • Wiadomości: 1830
Przykład wybierania identyfikatora punktu odbioru Poczty Polskiej z uwag dokumentu Subiekta GT dla przesyłki Pocztex Kurier 48

Uwagi dokumentu:
Forma dostawy: Poczta Polska Odbiór w punkcie
Typ dokumentu: Faktura
PNI: 260497
Punkt odbioru: UP Poznań 33 - Poznań - ul. Bukowa 4 - 260497

Jako identyfikator wyszukiwania wpisujemy:
Poczta Polska Odbiór w punkcie

Ustawiamy wyszukiwanie w uwagach po identyfikatorze punktu odbioru i wpisujemy wyrażenie regularne:
(?<=PNI: ).*?(?=\r|\r\n|\n\r|\n)

Piotr

  • Administrator
  • Hero Member
  • *****
  • Wiadomości: 1830
Dla przykładowej treści:
FUP Łomianki (123123) | A1: Ul. Przykłądowa 11 | A2: | P: Polska | K: 01-485 | M: Warszawa

Id punktu odbioru można odczytać wyrażeniem:
(?<=\().*?(?=\))

Dane punktu odbioru można wybrać wyrażeniami:
Nazwa: ^.*?(?= \()
Adres1: (?<=A1: ).*?(?= \|)
Państwo: (?<=P: ).*?(?= \|)
Kod pocztowy: (?<=K: ).*?(?= \|)
Miasto: (?<=M: ).*

kidl

  • Jr. Member
  • **
  • Wiadomości: 95
Mam zapis punktu odbioru jak poniżej wrzucone w Uwagi dokumentu oraz w Polu własnym w ZK w Subiekcie GT:
Sello|210,00|Dok:PAi|Dostawa:Allegro OWP|Email:u4pni9svf4+298e11963@allegromail.pl|IDPO:747787|

Zapis: |IDPO:747787| to identyfikator punktu odbioru

Zastosowałem wyrażenie regularne:  (?<=[|]IDPO:).*?(?=[|])

Jeśli ustawię w ProstejPaczce, żeby pobierał ID punktu odbioru z Pola własnego, powyższe wyrażenie regularne wyciąga właściwy numer.

Gdy ustawię, żeby pobierał ID punktu odbioru z Uwag dokumentu, to samo wyrażenie regularne już nie zwraca wyniku. Okno z danymi punktu odbioru pozostaje puste.

Czy w przypadku danych zapisanych w polu Uwagi dokumentu, powinienem zastosować inne wyrażenie?

A może zapisywać ID punktu w inny sposób?

Tomek

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 322
Dla Allegro Poczta Odbiór w Punkcie z uwag Subiekta nie wybieramy ID Punktu, tylko jego adres, a więc w uwagach powinien się znaleźć pełen adres punktu odbioru i zestaw wyrażeń regularnych do jego wyciągania, a nie jego identyfikator. Identyfikator ustalamy sami na podstawie adresu.

kidl

  • Jr. Member
  • **
  • Wiadomości: 95
Panie Tomku, w ustawieniach PP jest możliwość włączenia pobierania identyfikatora punktu odbioru z Uwag dokumentu, co wg mnie wyraźnie sugeruje, że da się pobrać ID punktu.
Załączam screen.

Tomek

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 322
I tu musimy się uderzyć w pierś, bo nazwa tego pola jest wybitnie nietrafiona i wprowadzająca w błąd. Zgłosiłem już poprawkę - wyjdzie w najbliższej wersji.

Na tą chwilę niestety działa to tak, jak opisałem powyżej. Jeśli w uwagach dokumentu Subiekta jest treść zdefiniowana w ustawieniach w tym nieszczęsnym polu, to podchodzimy do poszukiwania danych punktu w uwagach, a jeśli tej treści nie ma, to uznajemy, że w uwagach nie ma punktu odbioru.

kidl

  • Jr. Member
  • **
  • Wiadomości: 95
Jest szansa, żeby ID punktu odbioru mogło być pobierane z Uwag? Pełne dane punktu odbioru zabierają sporo miejsca, szczególnie że musimy zastosować jakiś identyfikator określający np nazwę punktu, czy kod pocztowy, a do tego jeśli się trafiają długie nazwy miejscowości jak "Sobienie Kiełczewskie Pierwsze" (jest taka miejscowość :)  ). To już mało miejsca tam zostaje.
Pole ma 500 znaków ale jest tam szereg też innych ważnych informacji (np do sterowania exportem), również uwagi klienta itd.

Sprawa nie jest pilna, ale do rozważenia.

Piotr

  • Administrator
  • Hero Member
  • *****
  • Wiadomości: 1830
Będziemy mieli to na uwadze przy rozwoju tego elementu programu, jednak nie mogę zagwarantować terminu w  wprowadzenia zmiany.