Makale Özeti

Bu makalede CRM'deki Lookup alanlara form üzerinde nasıl süzme uygulanabileceğinden bahsedeceğiz. Mesela, account ekranına bağlı bir contact lookup'ının içinde sadece eposta adresi dolu olan contact'ların görüntülenmesini sağlayabilirsiniz. Bu örnekleri çoğaltmak da mümkündür.

Makale

Bildiğiniz üzere lookup alanlar farklı entityler arasında ilişki kuran yapılardır. Mesela Account ekranında Bulunan Contact lookup alanını kullanarak iligli Account ile bir Contact’I ilişkilendirmiş olursunuz. Buradaki lookup alana tıkladığınızda karşınıza Contact listesi çıkacaktır. Buradan yapacağınız bir seçim ise account ekranına yansıyacaktır.

Bu zaten CRM sisteminin bilindik lookup yapısıdır ama dezavantajı bütün contact kayıtlarını listelemesidir. Öyle ki bu her zaman istenen bir durum değildir. Mesela Account ekranında seçilebilen Kontakların sadece Eposta adresi dolu olan kullanıclardan olmasını istiyorsunuz. Javascript ile bunu sağlayabilirsiniz.

var alan = crmForm.all.primarycontactid; alan.lookupbrowse = 1;  

alan.AddParam("search", "<fetch mapping='logical'>"  
+ "<entity name='contact'>"
 + "<filter>"  
+ "<condition attribute='emailaddress1' operator='not-null' />"
 
+ "</filter>"
 + "</entity>"  + "</fetch>");

Yukarıdaki script’i entity’nin onLoad yordamı içerisine eklenmelidir. alan olarak tanımladığımız alan süzülecek olan form nesnesini belirler. Biz Account ekranı içindeki Contact Lookup’a süzme uygulayacağımız için burada primarycontactid ismini kullandık. fieldAddParam metodu içinde işletmek istediğiniz sorgunun fetch karşılığı yazılmalıdır. Bu ifadeyi Account’un OnLoad yordamı içine yazdığınızda Artık account ekranında seçeceğiniz contactlarda sadece EPosta adresi dolu olanlar gelecektir.

Lookup süzmenin kullanım alanı geniştir. Yukarıdaki basit bir örnektir. Fetch ile yapabileceklerinizi genişletmeniz mümkündür. Mesela formda seçilen başka bir Alana göre Lookup içini de süzebilirsiniz. Bu durumda field.AddParam içinde bir de formdan aldığınız parametreyi kullanmanız gerekir.

CRM 4.0'in ilk release olduğu zamanlarda lookup süzme özelliği çalışmıyordu. Daha sonra çıkan rollup'lar ile bu rsorun düzeltilmiş olmalı. Gen de rollup süzme ile ilgili sorun yaşarsanız, bana danışabilirsiniz.