SP 2010 Isakisi Ornegim-Kurala gore mail gonderme

Yanıt SP 2010 Isakisi Ornegim-Kurala gore mail gonderme

  • 06 Nisan 2012 Cuma 16:24
     
     

    Merhaba...

    Ornegin bir listem var, icerisinde Yorum ve Mail Adresi degerlerini tutan 2 stunum var

    yapmak istedigim sey ise su

    Mesala bu listeye xxx@gmail.com mail adresiyle 3 defa kayit giren bir kisiye mail atmak istiyorum

    Mail atma islemini gmail uzerinden yapiyorum ve herhangibir problem yok ancak kural olusturuken bu 3 defal olayini nasil bir if bloguna sokabilirim onu bilmiyorum. yani kisiye listeye her kayit girdiginden degilde ayni mail adresiyle 3 defa kayit girdiginde mail gondermek istiyorum. anladigim kadariyla bu list tablodan count cekmem lazim ama nasil? veya en azindan bu mumkunmu ? mumkun degilmi? bunu ogrensemde yeterli bos yere ter dokmeyeyim...

    aslinda soyle bir cevap aldim

    Mail adresinin olduğu alana veri girildiğinde bu sütuna kural koyun boş değil ise ve Say(listedekimail=kayıtlılisteverilerindekimail) bu size o mailden listede kaç tane olduğunu verir. Bu rakamı da bir alana yazdırın. Bundan sonra iş akışına 3 veya üstü ise şunu yap mail at hopla zıpla gibi kuralları yazabilirsiniz :) 

    ama detaylandirilmasi lazim. 1 haftadir ugrasiyorum ancak basaramiyorum

    mumkunse bu ornegi gerceklestirmemde yardimci olurmusunuz?

Tüm Yanıtlar

  • 08 Nisan 2012 Pazar 08:36
     
     

    Merhaba Ozgur Sahin,
    iş akışını neyle oluşturduğunuzu belirtmemişsiniz. SPD ile böyle bir işlemi doğrudan yapamazsınız. Kural koyduğunuzda ise kural sadece ilgili öğe için çalışır, bütün listeden sayıyı alamazsınız.

    Eğer infopath kullanarak listeyi oluşturur iseniz infopath içerisinde sharepoint REST Servisleri ile listeden bu mail adresinden kaç adet var gibi bir sorgu oluşturabilirsiniz. Veya yine infopath içerisinde web service çağırarak listsvc.asmx üzerinden bu mail adresine ait öğeleri getir deyip sayısını alabilirsiniz. Bu işlemler kod yazmadan infopath içerisinde gerçekleştirilebilir.

    Eğer InfoPath olmadan yapmak istiyorsanız item_added event handler'ını kullanan bir event reciever yazarak bunun içerisinde CAML query veya LINQ to SharePoint query ile sayıları alabilirsiniz. En hızlı çözümü bu yöntemde elde edersiniz.

    Saygılarımla,

    Mehmet E. SAPMAZ

  • 08 Nisan 2012 Pazar 18:32
     
     

    Ilginiz icin tesekkurler...

    Listeyi Infopath kullanarak olusturdum...

    Hocam burda aslina bakarsaniz benim elimdeki projenin bir onemi yok ben sadece olayi kavramaya calisiyorum ufak bir proje uzerinde bu olayi kavraya bilsem zaten kendi projemde kullanirim

    Infopath i baya kurcaladim filtreme olaylarini filan cozdum ama kural koymayi bilmiyorum ve bu konu ile ilgili ornekde bulamiyorum bulsamda benim istedigim kapiyi acmiyor

    Mesala sizin bahsettiginiz REST servisleri hakkinda bir bilgim yok veya listsvc.asmx i de hic kullanmadim....

    Eger mumkunse ufak bir ornek uzerinde bu olayi benim icin detaylandirmaniz mumkun mu? veya belki elinizde detayli bir anlatim makalesi vardir...
    Ilgilenirseniz cok memnun olurum bir kac haftadir bu olayi arastiriyorum ama bir turlu basaramadim

    Tek yapmak istedigim listede 3 defa tekrarlanan birseyi (email veya isim farketmez) nasil olurda cekebilirim? eger mumkunse oncelik olarak infopath uzerinde yapmak istiyorum cunki csharp bilgim olsada visual studio uzerinde henuz SP islemleri yapcak kapasitede degilim

    Tesekkurler....


  • 10 Nisan 2012 Salı 22:22
     
     Yanıt

    Cevabı doğru almışsınız  Özgür bey :)  Ayrı oluşturacağınız bir liste ile başka bir listedeki tek bir öğe için değil tüm öğeler için sayı alabilirsiniz.Ama şimdilik buna girmeden daha basit şekilde halledeceğiz.

    Şimdi öncelikle infopath den başlayalım. Infopath de mail girilen alana dediğim kuralı yazın.

    Bunun için size lazım olanlar;

    Öncelikle ayrıca sayıları tutacağımız bir sütun bunun adı "toplamMail" olsun. Infopath üzerinizdeki formun mail ayarları kısmında bu alana veri girildiğinde sorgu çalıştırıp saydırma yapacağız.

    Bunun için bu formunuzun ilgili verilerin tutulduğu listeye bağlı olması lazım. Veri Bağlantılarından ekleyin. Eklerken Kimlik, toplamMail ve mailadresi alanlarınız seçili olsun. Diğerlerini gereksiz se eklemeyin ki formu yavaşlatmasın.

    Daha sonra , mailadresi alanına gelin kurallara girip eylem ekleyin. Eyleminiz "alanın değeri ayarla".  Bu eylemi seçtikten sonra toplamMail alanını alan olarak seçin. Değer  kısmına ise , say işlevini ekleyin. Say(Dışveribağlantınızdangelenmailadresi) .  Tabi boyle bırakırsanız gmail felan bakmadan hepsini sayar :) . veribağlantısı olarak eklediğiniz mailadresi alanını çift tıklayın sol alt kısımda veri filtrele alanını göreceksiniz. Bunu seçin  sonra yeni filtre ekleyin. Sizin talebinize göre bu filtre şu şekilde olur; "dışveridekimailadresi içerir gmail.com" tamam diyerek forma dönün ve yayınlayın. Artık her kayıtta sayarak ilgili gmail.com içerenleri sayarak toplammail alanına yazacak. Şimdi aynı listenize açın sp designerı ve kuralınızı yazın .

    Koşul : ToplamMail => 3 ise

    eylem: mail gonder

    Bu kadar... Temel olarak bu kadar basit. Herhangi bir custom koda ihtiyacınız yok . Rahatlıkla çalıştırabilirsiniz.