Kısıtlamalar yüzünden can sıkıcı bir hal alan queue'lar ve onların "Olmaz olsun" dedirten özellikleri. Müşteriler haklı olarak queue kullanmak ister, "Bunu yaparbilir miyiz? yapamayız. Bu olur mu? oluru yok.". Hayır, hiç hoş değil. Sizde benim gibi queue view'e kolon eklemek yada varsayılan sıralamayı değiştirmek isterseniz şunları yapabilirsiniz.
_MSCRM isimli CRM veritabanının tabloları arasından "MetadataSchema.Entity" isimli tablosuna gerçekleştirilecek şöyle bir update script çalıştırılır ve IIS yeniden başlatılır, böylece yeni bir aleme adım atılır.
UPDATE MetadataSchema.Entity SET IsCustomizable = 1 WHERE [Name] = 'Queueitem'
Şu andan itibaren "customize entities" bölümünde QueueItem'ları görebilir ve View'ları değiştirebilir ve yayınlayabilirsiniz.
NOT: Yayınlamalarınız bittikten sonra "IsCustomizable = 0" yapmayı ve IIS'i yeniden başlatmayı unutmayın, üzülürsünüz.
English Subtitle:
Queue's and their limited features. Clients want to use queues but for each time. "Can we implement this? No, we can't. Is it possible ? No way." which is not nice. If you want to add columns or maybe change the sort-order column for queueview you can use this solution.
Run update script which is specified below for MetadataSchema.Entity table which is in CRM database (_MSCRM ), than restart IIS and say "hi".
UPDATE MetadataSchema.Entity SET IsCustomizable = 1 WHERE [Name] = 'Queueitem'
Now on in "Customize Entities" section you will able to see "QueueItem" and you can update views and publish them.
PS: After publishment don't forget to set "IsCustomizable = 0 " and restart IIS. Otherwise you migth be sad.
Sizede CRM ile ilgili garip isteklerin geldiği olmuştur, bana gelenlerden sonuncusu Case(Incident)'in "Customer" bilgisinin yalnızca Contact entitysi ile ilişkilendirilmesiydi. Malumunuz normalde contact yada account entity seçebiliyorsunuz, bunu contact ile sınırlandırmak istediler. Eyvallah dedim ve şu aşağıda açıkladıgım çözümü uyguladım:
Case entity'sinin form load event'i edit edilir ve biter:
crmForm.all.customerid.setAttribute("lookuptypes", "2"); //2: Contact entity code
Siz değiştirmeden önce default kod:
crmForm.all.customerid.setAttribute("lookuptypes", "1,2"); //1: Account entity code
Yok, o hiç aklınızdan geçmesin, "o zaman lead'ler içinde case oluşturabiliriz" diyenleriniz için tokat tadında cevap:
crmForm.all.customerid.setAttribute("lookuptypes", "1,2,4"); //4: Lead entity code
derseniz, Evet lead'leri lookup'larda görürsünüz ancak sanmayın ki çalışacak.
Entity code'larını nasıl ögrenebilirim diyenler için gelsin:
http://[server]/sdk/list.aspx
Metadata'nın nimetleri bu linkten tüm entity,attribute,relations bilgilerine ulaşabilirsiniz.
Do you speak English, I don't:
I'm sure that you are also recieving weird requests from your clients. My client requested to restrict Customer field relation which is in Case(Incident) entity with only contact entity. You know normally it's related with contact and account entity. I said "OK" and applied this solution:
OnLoad event of case entity:
crmForm.all.customerid.setAttribute("lookuptypes", "2"); //2: Contact entity code
Before you update the code it was working like:
crmForm.all.customerid.setAttribute("lookuptypes", "1,2"); //1: Account entity code
No, you should not think about that "If I configure lookup I can create case for leads also".
crmForm.all.customerid.setAttribute("lookuptypes", "1,2,4"); //4: Lead entity code
You will able to see Lead records in customer lookup but don't think that you will able to create successfully.
For users who is asking "How to get entity codes?":
http://[server]/sdk/list.aspx
You can get all entities, attributesi , relations etc.
Bu yazıyı okuyorsanız sisteminizdeki "System Customizer" rolüne bişeyler olmuş demektir ve muhtemelen hafif bir titreme ile "lan başkasının da başına gelmiş olmalı" diyorsunuz. Merak etmeyin, geldi. Daha fazla titretmeden çözümü söyleyelim:
Settings->Administration->Security Roles'den yeni bir "System Customizer" oluşturulacak, ister başka bir CRM sisteme bakarak haklarını verin, isterseniz System Administrator rolünü kopyalayın sonra güncelleyin.
- Şimdi CRM database'ine gidelim.
- RoleTemplateBase tablosunu açıp "System Customizer" RoleTemplateId değerini kenara yazalım.
- RoleBase tablosuna gidelim, Name'i "System Customizer" olan her satır için RoleTemplateId kolonuna o az önce kenara yazdıgımız guid değeri yapıştıralım.
Hepsini güncellediginizden emin olun dememe gerek yok sanırım.
Yinede basit bir query'e hayır demem.
SELECT [RoleTemplateId],[Name]
FROM [CET_MSCRM].[dbo].[RoleBase]
WHERE Name = 'System Customizer'
For English Press "2"
If you are reading this article, it means something is happened to your "System Customizer" role and your are saying that "Somebody should face with this issue before", don't worry: they are. Let me tell the solution:
Go to:
Settings->Administration->Security Roles. We'll create new security role which called by "System Customizer". For rigths, you can copy system administrator role and update, you can check from another CRM system or leave it empty.
- Go in to CRM Database.
- In the RoleTemplateBase table, copy the RoleTemplateId guid value for the "System Customizer".
- Go to the RoleBase table and paste that guid value into the RoleTemplateId column for each record that has the name "System Customizer".
I think I don't need to say , "be sure that you updated all necessary rows".
But a simple query will be useful.
SELECT [RoleTemplateId],[Name]
FROM [CET_MSCRM].[dbo].[RoleBase]
WHERE Name = 'System Customizer'