InsERT GT => Subiekt GT => Wątek zaczęty przez: Marcin_B w Lipiec 20, 2011, 13:51:46
-
Witam serdecznie.
Posiadam subiekta gt oraz gestora. Potrzebowałbym funkcję automatycznego rozsyłania przypomnień o przekroczonym terminie płatności (via e-mail). Czy istnieje taka możliwość w posiadanym przeze mnie oprogramowaniu? Jeżeli nie czy istnieje jakieś rozszerzenie do subiekta umożliwiające to (dodatkowy moduł / plus)?
Pozdrawiam.
-
Raczej tylko zakup zewnętrznego programu. Poszukaj w rozwiązaniach partnerskich na stronie Insertu.
-
Może takie proste rozwiązanie Ci wystarczy:)
W załączniku są dwa pliki. Jeden to skrypt VBS wysyłający maile, drugi to zapytanie SQL pobierające listę przeterminowanych faktur, nazwę kontrahenta i adres email. Parametr @dni określa liczbę dni po terminie. W pliku mailing_1.vbs musisz ustawić:
1. Ścieżkę do pliku select_mail_1.sql
2. Parametry konta pocztowego z którego będą wysyłane maile. Teraz jest ustawione na pocztę Gmail.
3. Parametry połączenia do serwera SQL
Pozdrawiam!
-
Ciekawie zrobione (z "bajerami" :) ).
Najfajniejsze w tym wszystkim jest wykorzystanie rekurencji cte
Jak ustawiłbyś tam "and (e.id_dok < x.id_dok)" zamiast "and (e.id_dok > x.id_dok)" to przychodzące dokumenty nie byłyby odwrotnie ponumerowane.
Jak ktoś chciałby wpisać trochę więcej treści to może to zrobić zmieniając wartość objEmail.Textbody
objEmail.Textbody = "Prosimy o dokonanie zapłaty poniższych kwot " & vbcrlf & vbcrlf & objRecordSet("lista") & vbcrlf & "Tutaj dalsza część tekstu"
Podoba mi się :)
-
Ten Czarodziej to inspiracja z postu Sztywniaka:) dot. utargu. Ludzie lubią takie rzeczy.
Przetestowałeś tą wysyłkę? Szczerze mówiąc to dzisiaj to napisałem z myślą o późniejszym wdrożeniu.
-
"Przetestowałem" to trochę za dużo powiedziane - wysłałem kilka powiadomień.
Powinieneś jeszcze dodać sprawdzanie EOF przy MoveFirst bo się "wyłoży" w przypadku kiedy nie będzie należności do wysłania
-
Fakt. Trzeba po prostu usunąć linie "objRecordSet.MoveFirst".
Działa dobrze bez niej. Przy braku wysyłek Czarodziej informuje, że wysłał 0 ponagleń.
Dzięki za sprawdzenie!
-
Można też
if objRecordSet.EOF<>True then objRecordSet.MoveFirst
na wypadek jakby z jakiś dziwnych powodów przesunął się rekord
-
Normalnie widzę, że duet @birds22 i @gripex tutaj nam bajery szykują :).
Powiedzcie tylko, proszę, laikowi jak to uruchomić? Te zmiany w ustawieniu poczty i serwera kumam, ale gdzie te pliki podgrać i jak to wywołać?
-
Kopiujesz do jakiegoś katalogu.
Ja to miałem w C:\test i tak jest ustawiona scieżka w skrypcie do pliku select_mail_1.sql.
Po prostu klikasz dwukrotnie na pliku mailing_1.vbs, powinien się uruchomić skrypt.
-
no i pierwszy "dzonk"
Wysypuje się na agencie :) - nie mam go zainstalowanego, kiedyś próbowałem ale pod win7x64 nie chce mi chodzić.
Ile linii wywalić, żeby to obejść?
-
No tak. Musze to przerobić na wersje bez Czarodzieja. Ale to już nie będzie to samo.....
-
Na poniższej stronie można pobrać Agenta:
http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=969168&kbln=pl
Prześlą na podanego maila odpowiednią poprawkę. Po rozpakowaniu instaluje się poprawkę udostępniającą Czarodzieja :)
Na W7 32bit działa
Normalnie widzę, że duet @birds22 i @gripex tutaj nam bajery szykują .
Ja tu tylko sprzątam :)
-
Dziękuję za pomocną dłoń :)
-
Witam!
Mam mały problem. "czarodziej" mi się wysypuje i wyrzuca błąd jak na rysuneczku. Kombinuję już pół dnia jak to obejść i nic... Zna ktoś może sposób?
-
Masz SQL Server Management Studio ?
A najpierw spróbuj w pliku mailing_1.vbs
dopisać po
objConnection.Open
tę linię
objConnection.CommandTimeout=120
-
Niestety - dalej wyskakuje ten sam komunikat tyle że wiersz 88 a nie 87
-
Pasowałoby sprawdzić najpierw jak wykonuje się to co jest w pliku select_mail_1.sql
Nie napisałeś czy masz SQL Server Management Studio ?
Jeżeli nie, to uruchom linię poleceń
Wpisz tam coś takiego:
osql -S .\insertgt -E -d "nazwa_twojej _bazy" -i "C:\test\select_mail_1.sql" -o "C:\test\kontrola.txt"Uruchom
Zobaczy czy wykonało się w pliku kontrolka.txt
Ścieżki i nazwę serwera dostosuj do swojej instalacji
-
Czy jeżeli nie mam gestora gt, tylko samego subiekta gt - w/w rozwiązanie uda sie wdrożyć?
Od czego zacząć? ..., bo jestem laikiem informatycznym...
-
Oczywiście, że się da.
Zacznijmy od tego jaki masz system operacyjny
-
windows xp wersja 5.1
-
W Xp masz wbudowanego Agenta więc mniej kombinacji
1. Ściągasz oba pliki do jakiegoś katalogu (np C:\test)
2. Edytujesz plik select_mail_1.sql (Prawoklik->Edytuj)
3. Ustawiasz zmienną @dni na wartość Tobie odpowiadającą (ilość dni po terminie - teraz jest 180)
4. Zapisujesz plik
5. Edytujesz plik mailing_1.vbs (Prawoklik->Edytuj)
6. Znajdujesz sekcję gdzie ustawiasz parametry konta pocztowego, z którego będziesz wysyłała pocztę:
- "test@gmail.com" 'adres z którego wysyłamy poczte
- "user" 'użytkownik konta
- "psw" 'hasło do konta pocztowego
- "smtp.gmail.com" ' nazwa serwera smtp (nazwę serwera musisz odczytać zlabo w programie pocztowym albo w parametrach konta pocztowego
7 Znajdujesz sekcję, gdzie ustawiasz dostęp do bazy :
Sa dwie linie:
'objConnection.ConnectionString = "Provider=SQLOLEDB.1;Server=nazwa_serwera\INSERTGT;Database=nazwa_bazy;Trusted_Connection=yes"
objConnection.ConnectionString = "Provider=SQLOLEDB.1;Server=nazwa_serwera\INSERTGT;Database=nazwa_bazy;User ID=sa;Persist Security Info=False"
pierwsza jest zakomentowana (apostrof na początku).
Jeżeli w Subiekcie masz logowanie do serwera SQL przez Autentykację Windows to możesz użyć pierwszej wersji (pierwszy odkomentować, drugi zakomentować) i wstawiasz tam nazwę serwera oraz nazwę bazy (masz podane podczas uruchamiania Subiekta).
Jeżeli używasz logowania na koncie sa to użyj drugiej linijki wpisując nazwę serwera i nazwę bazy. Może być potrzebne dopisanie na końcu ;Password=twoje_haslo jeżeli masz założone hasło na logowaniu sa
Jeszcze jedno:
Jeżeli skopiowałaś pliki nie do katalogu c:\test tylko do innego to musisz też ustawić :
sSqlFile = "c:\test\select_mail_1.sql" - tu ustawiasz ścieżką gdzie zapisałaś plik
Uwaga - programik przy poprawnym ustawieniu wyśle automatycznie powiadomienia do wszystkich kontrahentów (posiadających wpisane konto pocztowe) z przeterminowanymi (o ustawionej liczbie dni) należnościami za pomocą Twojego konta email nie pytając już o nic więcej :)
-
Dziękuję za wskazówki, jak uda mi się to wprowadzić w życie, to napiszę :-)
Miłego dnia:)
-
Jeszcze pytanie: czy wysłane przypomnienia będą figurowały w wysłanych w skrzynce ?
-
To zależy od konta pocztowego raczej. Na Gmailu są.
Programik nie wykorzystuje programu pocztowego do wysyłania poczty.
-
A outlock?
dziekuję, Sławku:)
-
Tak jak wcześniej napisałem programik nie korzysta z programu pocztowego (czyli w Twoim przypadku - Outlooka) więc nie będzie tam śladu po wysłanych powiadomieniach.
Nie jestem specem od serwerów pocztowych - nie powiem dokładnie ale serwer gmail (ja mam jedno z moich kont pocztowych właśnie na gmailu) ma w folderze wysłane te powiadomienia.
nie wiem na jakim serwerze masz pocztę (to jest to po znaku @).
Nie mam możliwości aktualnie przetestować jak wygląda sprawa z innymi serwerami.
Może dałoby wysłać ukrytą kopię na Twój adres - ale teraz nie mam jak sprawdzić. Może @gripex gdzieś tu zabłądzi i będzie mógł sprawdzić
EDIT
Tak "na sucho" wydaje mi się, że wystarczyłoby po:
.Subject = "Lista przeterminowanych faktur"
dopisać
.bcc = "twojmail@serwer.com" 'tu wpisać adres, na który ma iść kopia wezwania
-
Dziękuję, św. Piotr pewnikiem przepuści Cię przez bramę, kolejny plusik masz na koncie :-)
-
Cieszę się, że mój skrypt robi się przydatny:)
W załączniku nowa wersja wysyłająca posumowanie wysłanych ponagleń oraz parę innych zmian.
Pozdrawiam wszystkich!
-
Widzę, że dalej z Merlinem.....
-
Widzę, że dalej z Merlinem.....
Proszę bez Merlina :)
Na końcu pliku select_mail_3 jest dodany warunek:
and kh_Pole1<>'N'
Możemy to wykorzystać do tego aby ograniczyć wysyłanie powiadomień tylko do niektórych klientów.
W tym celu Tworzymy pole standardowe na obiekcie Kontrahent o nazwie np "Wysyłka ponagleń" i w kontrahencie, do którego nie chcemy wysyłać wpisujemy w to pole literkę N.
Jeżeli pole, które utworzyliśmy jest kolejnym polem (bo już wcześniej korzystaliśmy z pola nr 1) to musimy zmienić nazwę tego pola pliku select_mail_3.sql
na np
and kh_Pole2<>'N'
Zmniejszyłem ilość dni przeterminowania na 30 (i już nie chce mi się poprawiać)
-
zmieniłem dane na moje i wysypuje się dając taki komunikat
(http://images37.fotosik.pl/968/fc27be5011a7cf62m.jpg) (http://www.fotosik.pl/showFullSize.php?id=fc27be5011a7cf62)
a mam autentykację windows
-
a wyłaczyłeś autentykacje SQL?
-
tak - wstawiłem apostrof - a zdjąłem go dla Windowsa i tam też uzupełniłem moje dane
-
Sprawdź parametry połaczenia do serwera. Wstaw ten kod jako zestawienie SQL i uruchom.
select
'serwer' = @@SERVERNAME,
'baza' = db_name(),
'użytkownik' = suser_name(),
'autentykacja'=
case SERVERPROPERTY('IsIntegratedSecurityOnly')
when 1 then 'Windows'
when 0 then 'Windows and SQL Server'
end
-
No i już jasne - użytkownik "sa" jednak.
Już działa.
@Towarzysz kiedys podał skrypty do wysyłki z outlooka
http://www.forumsubiekta.pl/off-topic/korespondencja-seryjna-z-zalacznikami-z-uzyciem-subiekta-worda-i-outlooka/ (http://www.forumsubiekta.pl/off-topic/korespondencja-seryjna-z-zalacznikami-z-uzyciem-subiekta-worda-i-outlooka/)
Może dało by się przerobić gmaila na Ootlooka?
Bo wysyłka z gmaila jest taka "sucha" bez danych firmy itp... no nie żebym wymuszał :).....
-
u mnie nie działa.
zestawienie sql "selcet_mail_1" ma zaczynać się od "select" a tak nie jest
proszę o pomoc. Czasy trudne, klienci słabo płacą:-(
-
zestawienie sql "selcet_mail_1" ma zaczynać się od "select" a tak nie jest
Chyba nie wkopiowałeś zawartości tego pliku do zestawień SQL?
Bo jeżeli tak to nie tędy droga. Przeczytaj moją wypowiedź nr 21 w tym wątku. Tam masz opisane co z tym zrobić
-
Pewno przeczytał:
Wstaw ten kod jako zestawienie SQL i uruchom.
-
Przeczytałem: wstawiłem i uruchomiłem. zgodnie z zapisem.
Poproszę instrukcję dla mało informatykujących :-)
-
@detemoto
Może dało by się przerobić gmaila na Ootlooka?
Jak bym znał dobrze VBS for MS to bym napisał sktypt pod "Ootlooka" :)
-
Przeczytałem: wstawiłem i uruchomiłem. zgodnie z zapisem.
Poproszę instrukcję dla mało informatykujących :-)
Czy przeczytałeś instrukcję (odpowiedź nr 21):
http://www.forumsubiekta.pl/subiekt/automatyczne-wysylanie-przypomnien-o-zaplacie/msg10026/#msg10026
i ustawiłeś zgodnie z zaleceniami?
Tam nie ma nic o wstawianiu treści do zestawienia SQL. Który plik uruchamiasz ?
-
Dzięki wielkie za cierpliwość.
Wyrzuca mi błąd:
wiersz 80
znak 1
błąd ...
Kod: 80004005
EDIT
Chyba doszedłem metodą prób i błędów.
Jak długo może trwać wysyłanie?
Używaj opcji "Modyfikuj" - nie pisz jednego postu pod drugim
-
To zależy ile przeterminowanych pozycji masz w należnościach... Którą wersję skryptu uruchomiłeś ?
-
uruchomiłem wesję 3
Męczę się, próbuję, kombinuję i nic.
Ciągle jakiś błąd.
Chyba to mnie przerasta.
Robię wszystko wg instrukcji i d..
Wyrzuca mi błąd:
skrypt: C:\test\mailing_3.vbs
wiersz:81
znak: 1
Błąd: Nieprawidłowy atrybut ciągu połączenia
Kod: 80004005
Źródło: Microsoft OLE DB Provider for SQL Server
Pomóżcie, należności tragedia :-(
-
u mnie wysypuje sie na agencie - win7
pobrac nie mozna - czy jakos inaczej da sie to urucvhomic