Wysyłka faktur e-mail

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

Tyriado
Posty: 62
Rejestracja: 07 kwie 2023, 09:30
Rola: Użytkownik CDN XL
Wersja: 2023

Wysyłka faktur e-mail

Post autor: Tyriado »

Dzień dobry,

Mam pytanie, które pewnie było już X razy, ale zlepiłem w całość to, co znalazłem.
Chciałbym móc wysyłać w jakiś sposób faktury w formie PDF do kontrahentów. Po prostu w formie szablonu z dołączonym załącznikiem. W XLu domyślnie jest ikonka wyślij, ale podejrzewam, zę to odpala normalnie Outlooka i załącza maila do wiadomości). Jak mam X użytkowników to teraz dla każdego na profilu trzeba by było go konfigurować jeśli się nie mylę.

Czy jest możliwość zrobienia czegoś na wzór wysyłki z poziomu SQL (Database Mail)? Obecnie mam juz sprawdzanie informacji o zaległych fakturach i to działa całkiem ok i mógłbym to w pewien sposób wykorzystać dublując rozwiązanie. POwiedzmy klikam przycisk, następnie robi się PDF w jakimś katalogu (jak się domyślam jakiś współdzielony, aby skrypt mógł też tam dotrzeć), skrypt wysyła maila szablon + załącznik, ale:
1. Nie wiem, jak zrobić PDF. Znalazłem ten post: viewtopic.php?p=11942#p11942 , lecz nie wiem, jak wybrać "właściwy" wydruk z listy za pomocą API. Czy to zawsze drukuje się domyślny? Możliwe, że to parametry XLWydruk.Zrodlo, XLWydruk.Wydruk?
2. Jak to mogę wywołać automatycznie? Jakoś w formie raportu, czy coś?

A może można to jakoś lepiej wykonać?

varox
Posty: 187
Rejestracja: 10 sie 2022, 14:49
Rola: Administrator CDN XL

Re: Wysyłka faktur e-mail

Post autor: varox »

Najszybciej będzie to chyba zrobić za pomocą automatu XL.

Tyriado
Posty: 62
Rejestracja: 07 kwie 2023, 09:30
Rola: Użytkownik CDN XL
Wersja: 2023

Re: Wysyłka faktur e-mail

Post autor: Tyriado »

varox pisze:
05 sie 2024, 12:44
Najszybciej będzie to chyba zrobić za pomocą automatu XL.
Coś więcej możesz mi powiedzieć? Jak rozumiem to dodatkowy moduł? Niepowiązany z samym XLem?

MateuszR
Posty: 105
Rejestracja: 29 kwie 2016, 10:13
Rola: Administrator CDN XL

Re: Wysyłka faktur e-mail

Post autor: MateuszR »


taszek
Posty: 609
Rejestracja: 12 wrz 2012, 13:20
Rola: Administrator CDN XL
Wersja: 2016

Re: Wysyłka faktur e-mail

Post autor: taszek »

Modelowanie procesów jest dodatkowo płatne oraz należy pamiętać, że ERP XL nie wspiera logowania OAUTH2 jeżeli miałoby to być wysyłane z O365.

Możesz też takie rozwiązanie napisać za pomocą Powershella, który to wywoła API i wykona wydruk. A następnie wyśle email.

Innym sposobem może być wydruk kaskadowy (XML), który wykona wydruk, a następnie przekaże ścieżkę do pliku do aplikacji lub skryptu, które to wyślą email.
Pozdrawiam
Wojtek Cyrklewicz

JarekZ
Posty: 148
Rejestracja: 02 paź 2014, 14:11
Rola: Administrator CDN XL
Lokalizacja: Bielsko Biała
Kontakt:

Re: Wysyłka faktur e-mail

Post autor: JarekZ »

my to mamy zrobione tak :
- oznaczam kontrahenta, który ma dostawać dokumenty jako pdf - atrybut lub inny sposób
- mam serwis, który sprawdza czy jest wystawiony dokument
- serwis pobiera plik "rpt" wg typu dokumentu i generuje PDF, który zapisuje się określonym folderze
- samo wysłanie realizuje też ten serwis - konfigurację SMTP dostaje z procedury, jak również treść wiadomości, temat,odbiorców i plik który ma załączyć.
Wadą jest to, że przez durny CrystalReports raz w miesiącu występuje problem z błędem "bo tak", dlatego w weekend robie restart serwisu w harmonogramie i temat zamknięty. Działa na gmail,onet,ovh,cyberfolks i innych serwerach.

Tyriado
Posty: 62
Rejestracja: 07 kwie 2023, 09:30
Rola: Użytkownik CDN XL
Wersja: 2023

Re: Wysyłka faktur e-mail

Post autor: Tyriado »

taszek pisze:
05 sie 2024, 21:13
Modelowanie procesów jest dodatkowo płatne oraz należy pamiętać, że ERP XL nie wspiera logowania OAUTH2 jeżeli miałoby to być wysyłane z O365.

Możesz też takie rozwiązanie napisać za pomocą Powershella, który to wywoła API i wykona wydruk. A następnie wyśle email.

Innym sposobem może być wydruk kaskadowy (XML), który wykona wydruk, a następnie przekaże ścieżkę do pliku do aplikacji lub skryptu, które to wyślą email.
Właśnie widziałem pomoc odnośnie procesów, ale mam pytanie może nie licencyjne, bo to sobie sprawdzę. Mam jednak inne pytanie.
Jak rozumiem, ten proces musi "skądś" wziąć dane do SMTP itd. To się konfiguruje jakiegoś agenta na serwerze SQL? Zrobię proces, który wywołuje powiedzmy zdarzenie "Zatwierdzenie dokumentu"" i po nim jest wysyłka maila. Ale skąd program ma wiedzieć, z jakiego adresu i serwera wysłać? W parametrach czynności procesu widzę, ze podaje się tam <DO> itd., ale nie ogarniam skąd ustawienia SMTP, bo to musi "chodzić" jakiś agent skoro to się kolejkuje. A mogę bez agenta odpalić to ręcznie (do testów)?
JarekZ pisze:
06 sie 2024, 13:23
my to mamy zrobione tak :
- oznaczam kontrahenta, który ma dostawać dokumenty jako pdf - atrybut lub inny sposób
- mam serwis, który sprawdza czy jest wystawiony dokument
- serwis pobiera plik "rpt" wg typu dokumentu i generuje PDF, który zapisuje się określonym folderze
- samo wysłanie realizuje też ten serwis - konfigurację SMTP dostaje z procedury, jak również treść wiadomości, temat,odbiorców i plik który ma załączyć.
Wadą jest to, że przez durny CrystalReports raz w miesiącu występuje problem z błędem "bo tak", dlatego w weekend robię restart serwisu w harmonogramie i temat zamknięty. Działa na gmail,onet,ovh,cyberfolks i innych serwerach.
Serwis- masz na myśli własny skrypt? Mógłbyś to troszkę rozwinąć? Bo widzę, ze także korzystasz z procedury.

Ogólnie to zastanawiałem się (właśnie chciałem wykorzystać ten system, który mam do informowania o zaległych płatnościach) jak mogę wywołać w jakiś sposób odpalenie procedury SQL dla konkretnych dokumentów. Myślałem, że przykładowo mam otwarty dokument, bądź znaczony ptaszkiem (tak byłoby wygodniej) i nie wiem poprzez raporty uruchamiam jakiś raport, który wywołuje procedurę, ale nie wiem raz jak to ogarnąć, a dwa kolejnym problemem jets wydruk przez API, którego nie bardzo rozumiem. Jest jakaś dokumentacja ogólnodostępna do tego API, jakieś małe chociaż przykłady? Bo mógłbym to w sumie wrzucić w Visual Studio Code w jakimś C# i zrobić .exe, które ma w sobie
1. Generowanie wydruku z API do katalogu, który widzi także serwer SQL (Zakładam, że musi skoro ma to wysyłać procedura)
2. Odpala procedurę SQL

StabiL
Posty: 69
Rejestracja: 28 cze 2017, 15:41
Rola: Konsultant CDN XL

Re: Wysyłka faktur e-mail

Post autor: StabiL »

Parametry SMTP ustawię się w: Konfiguracja -> Ogólne -> Parametry2. Bez licencji raczej nie odpalisz procesów nawet do testów.
Tak jak było już wspomniane Modelowanie Procesów ogarnęłoby Ci temat. Jeżeli miałby to działać 'bezobsługowo' i w momencie zatwierdzania dokumentu to poza procesami dałoby się to zrobić Dużą Hydra (wyzwalane na kliknięcie dyskietką plus warunki zabezpieczające na wypadek jakiś błędów i niemożności zatwierdzenia dokumentu). Choć Hydra jest mniej pewna niż procesy (można zatwierdzić dokument z listy, też trzeba by oprogramować, co w przypadku błędu przy zatwierdzaniu - czy da się to złapać i nie wysyłać wtedy maila lub jak to inaczej zabezpieczyć). Tutaj musiałby być jakiś exec. Z drugiej strony kolejka w procesach też może się "zapełnić" i wysyłka nie pójdzie :P

Na żądanie, żeby nie orać bazy co chwile można zrobić dedykowany przycisk do takiej wysyłki. Można też zrobić wykres i przekazać stosowne informacje do programu wysyłającego maile (3 zakładka w definicji wykresu). Można też zrobić w schedulerze wywoływanie programu co jakiś czas i odpalać go co jakiś czas - napisać zapytanie łapiące dokumenty nadające się do wysłania, jak są logować do XL, robić wydruk i puszczać maila :P

Dostęp do dokumentacji API jest wyłącznie dla partnerów Comarch ;)
Od Comarchu ogólnie dostępne jest:
https://pomoc.comarch.pl/xl/index.php/d ... pi-erp-xl/

oraz tutejsze forum, gdzie ludzie dzielą się kodem.

Tyriado
Posty: 62
Rejestracja: 07 kwie 2023, 09:30
Rola: Użytkownik CDN XL
Wersja: 2023

Re: Wysyłka faktur e-mail

Post autor: Tyriado »

Ok, dziękuję za odpowiedz. Znalazłem parę tematów i zacząłem sklejać jakiś programik .exe do wydruku z XLa i prawie mi się to udaje, ale mam tam fragment

Kod: Zaznacz cały

wydruk.FiltrSQL = "(TrN_GIDTyp=XXXX AND TrN_GIDNumer=YYYY)";
który biorę z CTRL+click na drukarkę i w Parametry jest filtr SQL.
Bo jest jeszcze

Kod: Zaznacz cały

  wydruk.Zrodlo, wydruk.Format, wydruk.Wydruk
i jak rozumiem, to biorę z definicji wydruku (to są te wartości jakby ID tam podane)?

I jak wstawię na sztywno, to nawet działa, ale jak to zrobić "dynamicznie", aby uzyskać coś na wzór pobierania wartości dla FiltrSQL dla otwartego dokumentu? Jakaś tabela, z której pobiorę to po numerze otwartego dokumentu?

Dwa jak mogę zrobić coś na wzór dodania przykładowo raportu (pod tym wykrzyknikiem), który uruchomiłby mi tego .exe? Wtedy bym sobie jakoś spróbował ogarnąć sam wydruk, a potem ewentualnie to rozbudować powoli.

Swiety_M
Posty: 420
Rejestracja: 19 lip 2012, 13:05
Rola: Administrator CDN XL
Wersja: 8.0
Lokalizacja: Poznań, Września, Konin
Kontakt:

Re: Wysyłka faktur e-mail

Post autor: Swiety_M »

No dynamicznie, za każdym razem musisz przekazać te parametry chwytając z definicji wydruku...
Najlepiej zrób sobie tabelkę, do tabelki zbieraj jakąś procedura dokumenty do wysłania wraz ze wszystkimi ich parametrami (filtr) + źródło wydruku i wyślij jak będziesz miał komplet.. :)

Niech exec chodzi w harmonogramie windy, a jak będziesz musiał coś wysłać drugi raz to pod wykrzyknikiem dasz użytkownikowi możliwość ponownej wysyłki z tabelki.
Marek Michałowski
www.tecado.pl
ERP/WMS/SFA
POZNAŃ - WRZEŚNIA

ODPOWIEDZ