Forum
Merhaba arkadaşlar;
Mail göndermesi için bir trigger yazdım, Mikro diye bir program üzerinden 'Depolar arası sevk fişi' girdiğimiz alanda birden çok satır girip kaydetmekteyiz bunları trigger üzerinden mail olarak göndermekte buraya kadar sorun yok sorun her satırı ayrı ayrı mail gönderiyor ve en sonunda toplu olarak geliyor misal 3 satırlık mikrodan ürün girdim ve kaydet dediğimde toplam 3 tane mail gelmekte en son gelen 3 mail da toplam ürünlerin listesi geliyor bunu tek mail üzerinden nasıl yapabilirim ?
Kodlarım aşağıda ki gibidir;
satır sayısını hesaplayıp en son mail gönderme işlemi bu kodun içinde yapabilir miyiz ? misal @@ROWCOUNT gibi
Günaydın;
if(@sth_cins=6) satırındaki koşulunuzu düzenlemelisiniz. Sistemi transaction'ın tamamlanıp ilgili kayıtların oluştuğu bilgisine yönlendirmelisiniz. Sonrasında oluşmuş olan kayıtlardan istediğiniz veri setini çekip şekillendirebilirsiniz.
İyi çalışmalar.
NOT: Bu tarz fonksiyonların veritabanı katmanında yönetilmesi önerilen bir yöntem değildir.
Merhaba @tslugr
sp_send_dbmail de @query parametresine sorgunu yazıp gönderebilirsin.
EXEC msdb.dbo.sp_send_dbmail
@recipients = '[email protected]',
@query = 'SELECT Adi, COUNT(*) Sayi
FROM Test
GROUP BY Adi
HAVING COUNT(*) > 1' ,
@subject = 'deneme'
Mehmet SUCU
HBYS Yazılım Uzmanı
[email protected]
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Merhaba
Maalesef düzgün bir sonuç alamadım
Şu şekilde yapsam acaba karşı tarafta nasıl karşılayıp mail göndere bilirim sizce ?
yani burada post yaptığında nasıl karşılayıp mail olarak göndere bilirim ?
Json çıktısı şu şekilde
[{"seri":"","sira":35,"tarih":"2021-05-05T00:00:00","kullanici":"Supervisor","stokkod":"YAĞ.003","sto_isim":"BİRYAĞ","miktar":12.0000,"hedef":"HIJYENBANK","kaynak":"Merkez depo"},{"seri":"","sira":35,"tarih":"2021-05-05T00:00:00","kullanici":"Supervisor","stokkod":"KEMER002","sto_isim":"DERİ KEMER","miktar":34.0000,"hedef":"HIJYENBANK","kaynak":"Merkez depo"},{"seri":"","sira":35,"tarih":"2021-05-05T00:00:00","kullanici":"Supervisor","stokkod":"TMZLK001","sto_isim":"ISLAK MENDİL","miktar":34.0000,"hedef":"HIJYENBANK","kaynak":"Merkez depo"}]
Merhaba;
Ömer ÇOLAKOĞLU Hocamız sağ olsun konuyla ilgili yardımcı oldu ve sorunumuzu çözdü, kendisine çok teşekkür ediyorum ilgi ve alakasından dolayı sağ olun var olun iyi ki varsınız. Teşekkürler.
Merhaba;
Ömer ÇOLAKOĞLU'nun başlık altında herhangi bir önerisi bulunmuyor. Çözümü detaylı bir şekilde burada da paylaşırsanız başlığa ulaşan arkadaşların da istifade etmesini sağlamış olursunuz. Bu şekilde geri bildiriminiz daha fazla değer kazanır. Teşekkürler.
Selamlar, Ömer hocam sağ olsun el atmış ancak evet çözüm paylaşabilirseniz herkese yardımcı olur.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Merhabalar;
Konuyu ve çözümü şu şekilde özetleyeyim
İlk olarak yapmış olduğumuz trigger ile bu işlemin olmayacağı anlaşılmıştır, nedeni ise her satırda ayrı insert işlemi yaptığı için her insert işleminde satırları ayrı ayrı mail atmakta idi ondan dolayı yeni bir tablo oluşturuldu STOK_HAREKETLERI_MAIL adında bunun içinde [DATE_], [STH_EVRAKNO_SERI], [STJ_EVRAKNO_SIRA], [MAILSENT], [MAILSENDDATE] adında alanlar oluşturuldu ve bu alana trigger üzerinden her satırın aynı numaralama kolonu yani sth_evrakno_seri STOK_HAREKETLERI_MAIL tablosunda STJ_EVRAKNO_SIRA kolonuna INSERT INTO yapılarak ve MAILSENT False değerleri atanarak işlem yapıldı sonra Stored Procedure, den CREATE PROCEDURE açarak STOK_HAREKETLERI_INSERT_MAIL mail gönderme kodu burada hazırlandı burada sadece MAILSENT False olanları ağılayıp True ye çevirip bilgileri o şekilde Update işlemi yapmakta en son olarak ta Job üzerinden 5dk ara ile Stored Procedure deki STOK_HAREKETLERI_INSERT_MAIL kontrol ederek MAILSENT False olan alanı kontrol edip mail gönderek bu işi bu şekilde halletmiş oldu.
Umarım anlaşılmıştır ve doğru anlatmıştır diye düşünüyorum, herk eze yardımlarından dolayı teşekkürler. Özelliklede Ömer hocamıza teşekkür ediyorum.
Günaydın;
if(@sth_cins=6) satırındaki koşulunuzu düzenlemelisiniz. Sistemi transaction'ın tamamlanıp ilgili kayıtların oluştuğu bilgisine yönlendirmelisiniz. Sonrasında oluşmuş olan kayıtlardan istediğiniz veri setini çekip şekillendirebilirsiniz.
İyi çalışmalar.
NOT: Bu tarz fonksiyonların veritabanı katmanında yönetilmesi önerilen bir yöntem değildir.
Bende benzer bir çözüme sizi yönlendirmiştim ancak Ömer bey kod tarafında da destek verdi sanırım. Geri bildiriminiz için teşekkürler.