Makale Özeti

CRM'de ilişki ve mapping kavramlarından bahsettiğimiz iki makalelilik serimizin bu ikinci makalesinde NxN ilişki kavramını inceliyor olacağız. Daha sonra ilişkili entity'ler içinde nasıl mapping tanımlanabileceğinden bahsedeceğiz.

Makale

Merhaba Yeniden CRM’de ilişkiler konusuna konusuna kaldığımız yerden devam ediyoruz. Bu makalemizde ise N:N ilişkilerin nasıl tanımlanacağını ve veritabanında nasıl bir yapıya denk geldiğini göreceğiz. Makelemizin son kısmında ise Mapping kavramını inceleyeceğiz.

N:N ilişki birbirine bağlı iki entiy’nin ikisinin de biribirine birden fazla kayıt içerek şekilde bağlanabilmesidir. Örnek vermek gerekirse CRM kullanıcılarının tutulduğu User entity’si ile güvenlik rollerinin tanımlandığı Roles Entity’si birbirine böyle bağlıdır. Bir kullanıcının birden fazla rolü olabileceği gibi bir rolü kullanan birden fazla kullanıcı da olabilir. Iki entity’de biribirine çoğullayacak şekilde bağlıdır. N:N ilişkilerde bağlı alanlar LookUp olarak görünmezler. Her iki entity de sol tarafta navbar üzerinde görüntülenirler.

Şimdi Örnek bir N:N ilişki tanımlaması yapalım. Fırsat (Opportunity) ekranı ile Muhatap Kişi (Contact) ekranı arasında bu tanımlamayı yapalım. Settings --> Customization --> Customize Entitties komutunu vererek Opportunity(Fırsat)’I seçin.

N:N RelationShips kısmından “New Many to Many Relationship” düğmesine tıklayın.

Other Entity kısmından bağlamayı yapacağımız entity seçilir. Burada Contact Entity’sini seçin. Bağlantının görüntülenebilmesi için Display Option kısmından “UsePlural Name” seçeneğini de seçin. “Save and Close” düğmesine basın. CRM arka planda ilişkiyi tanımlayacak ve web servise gerekli bildirimleri de ekleyecektir. Buradaki new_opportunity_contact ismine dikkat etmek gerekir. Çünkü her N:N ilişki veritabanında yeni bir tablo demektir. Ve bu tablonun adı budur. Veri tabanında aşağıdaki gibi bir sorgu yaptığınızda bu kayıtları görebilirsiniz.

Şimdi Opportunity ekranını açın sol tarafta navbar üzerinde Contacts bağlantısını görebilirsiniz. Buradan “Add Existing Contact” komutunu vererek contact’ları Opportunity ile ilişkilendirebilirsiniz.

Aynı matık Contact Ekranında da geçerlidir.

Mapping Kavramı

CRM’de Mapping ilişkilerle ilgili bir olaydır. Mesela 1:N ilişki kurarak iki entity’yi bağladınız. Biri içinden diğerini oluşturmaya kalktığınızda ana entity’deki istediğiniz alanları yavru entity’deki alanlarla eşleştirip otomatik kopyalanmasını sağlayabilirsiniz. Mesela Opportunity ekranı içindeyken Quotes bağlantısını kullanarak New Quote dediğinizde Opportunity’deki istediğiniz alanların yeni quote entitysine de kopyalanmasını sağlayabilirsiniz.

Örnek üzerine konuşalım. Fırsat entity’sini açın ve 1:N Relationships kısmına gelin.

Quote ile olan ilişkiyi çift tıklayarak açın.Burada Mapping bağlantısı altında mevcut eşleştirmeleri görebilirsiniz.

Mesela Opportunity’deki Topic alanı ile Quote’daki Name alanı eşleştirilmiştir. Gerçekten de Fırsat içinden bir teklif oluşturmaya çalıştığınızda ismi aynı kalacaktır. Benzer şekilde Campaignid alanı da eşleştirilmiştir. Yani fırsat’dan Teklif ürettiğinizde Source Campaign alanı otomatik olarak quote üzerinde campaignid alanına kopyalanacaktır.

Şimdi bir tane de biz ekleyelim. New Komutunu verin.

Soldaki alan Source Entity yani Opportunity entity’sinin alanlarını verir.Sağ taraf ise Target Entity yani Teklif entity’sinin alanlarını içerir. Eşleştirmek istediğimiz alanları karşılık seçip OK düğmesine tıklamamız gereklidir. Iki Taraftan da Descirption alanını seçin ve OK tuşuna basın. İşte Mapping işlemi tamamdır. Artık bir fırsat içinden teklif oluşturmaya çalıştırdığınızda description alanı da otomatik olarak taşınacaktır.