Makale Özeti

2 makaleden oluşan bu makale serimizin ilkinde CRM'deki İlişki (RelationShip) kavramlarını inceleyeceğiz.

Makale

Relationship kavramını entityler arasında bağlantı kurmak diye özetleyebiliriz. Daha programcı görüşü bir ifade ile de entity tabloları içinde foreign, primary key ilişkileri tanımlayarak, tablolar arasında bağlantı kurmak diye tanımlayabiliriz. Bu makalemizde CRM içinde bunun nasıl yapıldığından, arka planda veritabanında hangi işlemlerin yapıldığını ve ilişkiler ile ilgili konfigürasyonları inceleyeceğiz.

CRM’de İlişki Türleri

CRM’de 3 tip ilişki vardır. 1:N,N:1,N:N. N’e N olan ilişki CRM 4.0 ile gelen yeniliklerden biridir.

İlişkiler entiy’ler arasında kurulur ve ilişkinin adı hangi entitynin diğerine nasıl bağlı olduğunu açıklar. Mesela Fırsat(Opportunity) ve Teklif(Quote) entitylerini düşünün. Teklif Ekranında iken Fırsat ekranı ile yapacağınız N:1 bir ilişki şu anlama gelir. N tane yani birden fazla teklif sadece 1 fırsata bağlı olabilir. Bu da teklif ekranından fırsat’ın gösterildiği bir lookup alana işaret eder. Aşağıdaki ekran görüntüsünde Teklif ekranında ona bağlı Fırsat Lookup’I gösterilmiştir.

O zaman buradan şu sonuç da çıkıyor. Eğer, Forma Lookup alan eklemek istiyorsanız Attributes ekranında “New Attribute” diyerek bunu yapmazsınız. Bunun yerine N:1 ilişki kurmanız gerekir. Daha sonra Form görünümü açıp Add Fileds diyerek Lookup alanınızı forma ekleyebilirsiniz.

Şimdi N:1 ilişkinin nasıl ekleneceğine bakalım. Settings --> Customizations -->Customize Entities komutunu vererek istediğiniz entity’yi açın. Örneğin Fırsat entity’si olabilir.

N:1 Relationships bağlantısını tıklayın. Aşağıdaki ekran görüntüsünde de görebileceğiniz gibi Fırsat ekranında zaten kurulmuş olan N:1 ilişkileri yada başka bir deyişle Look up’ları görebilirsiniz.

New Many-to-1 Relationship komutunu vererek ilişki tanımlama penceresini açın. Primary Entity alanından ilişki kuracağınız Entity seçilir. Örneğimizde Contact entity’si ile ilişki kurmak istiyoruz. Contact’I seçin. Daha Sonra Display Name alanından Lookup’ın yanında belirecek açıklamayı yazın. Formda bu açıklama görünecektir. Ben “İlgili Kişi” diye yazıyorum. CRM “Name” alanına otomatik bir isim verecektir ama bunu değiştirebilirsiniz. Projeniz içinde sitematik ve kolay ulaşılır olması açısından buraya isim olarak bağladığınız entity’nin adını sonuna id koyarak vermenizi tavsiye ederim. Mesela Bu örnekte Contact entitysini bağladığımız için new_contactid ismini vermek iyi bir yaklaşım olacaktır.

Buradaki önemli diğer konuda “RelationShip Behaviour” kısmıdır. Bu ilişkinin konfigurasyon ayarlarının yapıldığı kısımdır.

“Type of Behaviour” kısmı, hazır bazı tipler sunar. Mesela Delete Seçeneği kayıt seçildiğinde ilişki tanımlanmış kayıtların ne olacağını belirler. Yada Assign edildiğinde bağlı kayıtların da sahibinin değiştirilip değiştirlmeyeceğini belirler.

Save tuşuna basmanız ile bilrikte CRM ilişkiyi kuracaktır.

Eğer eklediğimiz Contact bağlantısını form üzerinde de görmek istiyorsak, Form görünümünde Add Fileds diyerek “İlgili Kişi” isimli alanı bulup eklememiz gerekir.

Formu kaydedip entity’yi publish ettiğimizde artık Fırsat ekranı içinde ilgili Kişi alanı lookup olarak gözükecektir.

Peki her Fırsat için bir tane Contact bağlayabiliyoruz ve bunu ekranda görüyoruz. Peki Bu Contact’a bağlı fırsatların neler olduğunu nasıl göreceğiz diye sorabilirsiniz. Contact Ekranını açtığınızda sol tarafta Opportunities bağlantısı belirmiştir. Buraya tıklayarak bu Contact’ın bağlı olduğu Fırsatları görebilirsiniz.

İşte Contact ekranındaki bu bağlantı da 1:N ilişki olarak tanımlanır. Ve aslında Fırsat ekranında N:1 ilişki tanımlarken 1:N ilişki de Contact ekranında otomatik olarak tanımlanmış oldu. 1:N ilişki mantığında da örneğimizde 1 contact birden fazla fırsata bağlı olabilir. Nitekim yukarıdaki ekran görüntüsünde de görebileceğiniz gibi “New Opportunity” düğmesine tıklayarak bu ekrandan Contact’a ait yeni bir fırsat oluşturabilir veya “Add Existing Opportunity” düğmesine tıklayarak mevcut fırsatlardan birini Contact ile ilişkilendirebilirsiniz.

Nitekim Contact ekranında 1:N Relationships bağlantısına tıkladığınızda ilişkiyi de görebilirsiniz.

Olaya Veritabanı açısından baktığımızda new_contactid isimli bir alan opportunity entity tablosuna eklenmiştir. Contact entity tablosunda ise Kolon ekleme gibi bir işlem olmamıştır.

Makalemizin ikinci yarısında ise N:N ilişkileri ve bu ilişkilerin veri tabanında nasıl konumlandırıldığını ve Mapping kavramını göreceğiz.