CRM 2011 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
CRM 2011 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

CRM 2011 - Key Error (CrmWRPCTokenKey is expired)


Crm e erişmeye çalıştığımıza CRM Key hatasını alırsak aşağıdaki şekilde hatayı giderebiliriz.

CRM Mimarisi

Hata Logu



Çözüm

Microsoft CRM Asynchronous Processing Service i çalışır hale getirelim.


Microsoft Dynamic CRM kurulum dosyaları altından Tools içerisinden  Microsoft.Crm.Tools.WRPCKeyRenewal.exe i "/R" komutu ile command prompt üzerinden çalıştıralım.



ERROR: PROXY TYPE WITH THE NAME ACCOUNT HAS BEEN DEFINED BY ANOTHER ASSEMBLY

Aşağıdaki hata isnai durumlarda custom ASP.NET sayfalarında veya crm için yazılan pluginlerde alınmaktadır.

A proxy type with the name account has been defined by another assembly.

Current type: Account, MyAssembly, Version=1.0.0.4, Culture=neutral, PublicKeyToken=be9afbacb707a086,

Existing type: Account, CustomPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Parameter name: account


Çözüm

CRM connection olusturulduğunda yerde aşağıdaki değişiklikleri yapılmalı.

   var connection = CrmConnection.Parse(connectionString);

Connection ın  ProxyTypesAssembly  propertisine ;

     connection.ProxyTypesAssembly = Assembly.GetExecutingAssembly();





CRM 2011 - Auditing

Enabling Auditing


CRM 2011 de Autiding kullanılmaya başlamadan önce system ayarlarından Auditing enable edilmelidir.



Daha sonra hangi entiti için Autiding kullanılacaksa o entitinin ayarlarından Autiding aktif hale getirilmelidir.






Audit Security



  • View Audit History –  allows Audit History to be viewed within the context of a record
  • View Audit Summary – allows the Audit Summary View of all audit records to be viewed from Settings -> Auditing
  • View Audit Partitions – allows the Audit Log Management area to be viewed from Settings -> Auditing
  • Delete Audit Partitions – allows audit log partitions to be deleted from the Audit Log Management area

Non-Audited Information


  • Excel dışarı alımlarda
  • Kayıt görüntülemede
  • Kullanıcıarın log-off olduğu durumlarda
  • Rapor üretildiğinde
  • Workflow çalıştığında
  • Workflow ve Dialog  adımlarındaki değişikliklerde

Auditing Best Practices


Data import boyunca auditing disable olur.
Sadece önemli olan bilgileri auditleyin.
Eski denetim logları periyodik olarak silinir.


Daha fazla bilgi için tıklayınız.





CRM 2011 - Dynamics CRM 2011 Grid içerisinden Lync Çağrısı başlatmak

CRM 2011 de Grid içerisinden Lync Çağrısı başlatmak için;

Eğer sisteminizde Lync kurulu ve Browser AddOn ları Enabled ise Sayfa üzerindeki Telefon Numarası yazan metinlerin hemen sağında Lync Çağrısı başlatmak için kullanılan ikon belirir.

Fakat bunun bir şartı daha var! Numaranın Lync in tanıyacağı formatta olması.

Lync için doğru format;

– CRM 2011 de Telefon Numarasının “+” karakteri ile başlaması ve boşluksuz rakam ile devam etmesi.
– CRM 2011 de Numara içerisinde en az 1 boşluk veya “-“, ya da telefon numarasının 2 nokta ile ayrılması.

Örnek : +90.552.8890100

CRM 2011 - Kullanıcıların Son Giriş Tarihi ve Saati (How to get the last login date and time of a CRM user)

Microsft Dynamics CRM 2011 de Kullanıcıların CRM ' e  son giriş tarihi ve saati’ni listelemek için aşağıdaki sorguyu sorgulamak yeteri olacaktır.


select AuthInfo, O.FriendlyName, SUO.LastAccessTime
from SystemUserOrganizations SUO
left join SystemUserAuthentication SUA ON SUO.UserId = SUA.UserId AND LEFT(AuthInfo, 1)='C'
left join Organization O ON SUO.OrganizationId=O.Id
where LastAccessTime IS NOT NULL
order by SUO.LastAccessTime DESC


        

CRM 2011 - Gelişmiş Bul 'da Her Sayfada Görünecek Kayıt Sayısını Değiştirme (Change the number of records per page in any list of records)

Aşağıdaki yazımda Gelişmiş Bul ;'da yapılan sorgulamada her sayfa için 50 adet kayıt listeleniyordu. Ben bunu her sayfada 250 kayıt gelecek şekilde değiştireceğim.

CRM ana ekranında File butonuna tıklayalım. Gelen seçeneklerden Options a tıklayalım.

Set Personal Options penceresinde General tabının altından Set the number of records per page in any list of records  kısmından her sayfada kaç adet kayıt geleceğini seçelim.Ok butonuna basalım.
 50 olan seçeneği 250 olarak değiştirelim..
 Seçeneğimi 250 olarak değiştirdikten sonra Ok butonuna basalım.
 Gelişmiş Bul 'u açalım ve ekranda 250 kayıt görelim.

CRM 2011 - Kullanıcı TimeZone Ayarları (CurrentUser Timezone Settings)

CRM ana ekranında File butonuna tıklayalım. Gelen seçeneklerden Options a tıklayalım.

Set Personal Options penceresinde General tabının altından Set the time zone you are in  kısmından Time Zone u seçelim.Ok butonuna basalım.




CRM 2011 - Retrive Kullanımı (Get Opportunity)

IOrganizationService içerisindeki Retrieve metodu ile guid si bilinen değerlere kısa yoldan ulaşabilirsiniz.

 Opportunity opportunity = (Opportunity)crmService.Retrieve("opportunity", opportunityId, new ColumnSet("opportunityid", "pricelevelid", "name"));
                 

CRM 2011 - Is Guid (REGEX)

   public static bool IsGuid(this string s)
        {
            if (s == null)
                throw new ArgumentNullException("s");

            Regex format = new Regex(
                "^[A-Fa-f0-9]{32}$|" +
                "^({|\\()?[A-Fa-f0-9]{8}-([A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}(}|\\))?$|" +
                "^({)?[0xA-Fa-f0-9]{3,10}(, {0,1}[0xA-Fa-f0-9]{3,6}){2}, {0,1}({)([0xA-Fa-f0-9]{3,4}, {0,1}){7}[0xA-Fa-f0-9]{3,4}(}})$");
            Match match = format.Match(s);

            return match.Success;
        }

Extension Kullanımı

 if (!string.IsNullOrEmpty(entityid) && entityid.IsGuid())
{

}

CRM 2011 - İki Varlık Arasında İlişki lup Olmadığını Bulma (RelationshipExists)

private static bool RelationshipExists(IOrganizationService service, string relationshipname, Guid entity1Id, string entity1Name, Guid entity2Id, string entity2Name)
        {
            try
            {
                string relationship1EtityName = string.Format("{0}id", entity1Name);
                string relationship2EntityName = string.Format("{0}id", entity2Name);

                //This check is added for self-referenced relationships
                if (entity1Name.Equals(entity2Name, StringComparison.InvariantCultureIgnoreCase))
                {
                    relationship1EtityName = string.Format("{0}idone", entity1Name);
                    relationship1EtityName = string.Format("{0}idtwo", entity1Name);
                }

                QueryExpression query = new QueryExpression(entity1Name)
                {
                    ColumnSet = new ColumnSet(false)
                };

                LinkEntity link = query.AddLink(relationshipname,string.Format("{0}id", entity1Name), relationship1EtityName);
                link.LinkCriteria.AddCondition(relationship1EtityName,ConditionOperator.Equal, new object[] { entity1Id });
                link.LinkCriteria.AddCondition(relationship2EntityName,ConditionOperator.Equal, new object[] { entity2Id });

                return service.RetrieveMultiple(query).Entities.Count != 0;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

Metot Kullanımı

bool isRelationshipExists = RelationshipExists(service, relationshipentityname, entityid, entityname, entityreferenceId, entityreferencename);
                if (!isRelationshipExists)
                {

}

CRM 2011 - Atama İşlemi (Assign Team or User)

Assign işlemi kullanıcıya ya da takıma yapılabilir . Bunun için aşağıdaki metoda hangi kayıt ı kime assign edeceğimiz bilgilerini göndermek yeterli olacaktır.

Target : Atama yapılacak varlık
Assignee : Atama yapılacak kullanıcı ya da takım

public static void AssignTeamorUser(IOrganizationService serviceCRM, string assigneeLogicalName, Guid assigneeGuidId, string targetLogicalName, Guid targetGuidId)
        {
            try
            {
                AssignRequest assign = new AssignRequest
                {
                    Assignee = new EntityReference(assigneeLogicalName, assigneeGuidId),
                    Target = new EntityReference(targetLogicalName, targetGuidId)
                };
                serviceCRM.Execute(assign);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

CRM 2011 - CRM Arayüzü Dilini Değiştirme (Change User Interface Language)

CRM ana ekranında File butonuna tıklayalım. Gelen seçeneklerden Options a tıklayalım.

Set Personal Options penceresinde Languages tabının altından User Interface Languages kısmından crm i kulanacağımız dili seçelim.Ok butonuna basalım.


Not : Kullanıcı arayüzü dilini seçecegimiz dili ilk önce CRM e yüklememiz gerekir.

CRM 2011 - Excel Export Kayıt Sayısını Arttırma

Crm’de gelişmiş buldan bir sorgu hazırlayarak kayıtları listelediğinizde ya da grid üzerinden tüm kayıtları excele çıkarttığınızda 10.000 satırdan daha fazlasını çıkartmak mümkün değildir.

Bu sayıyı attrımak için regeditte değişiklik yapmamız gerekmektedir.

Regedit’ten aşağıdaki şekilde Dword oluşturmamız gerekmektedir.

HKEY_LOCAL_MACHINE
      SOFTWARE
          Microsoft
             MSCRM

Dword Name  : maxrecordsforexporttoexcel
Decimal Value: 65535

Regedit içerisinde değiştirdiğimizde sayı artmamışsa OrganizationBase tablosundan kontrol etmek gerekir. Burada MaxRecordsForExportToExcel değerini Sql’den değiştirmek gerekir.

Not: Bu veritabanına direk müdahale olduğu için Microsoft tarafından destek verilmez.

CRM - Error initializing component with element id=’xxxx’ and with type=’null’: Object doesn’t support this action – CRM

<CrmScriptErrorReport>
<ReportVersion>1.0</ReportVersion>
<ScriptErrorDetails>
<Message>Error initializing component with element id=’xxxx’ and with type=’null’: Object doesn’t support this action</Message>

Yukarıdaki hatanın sebebi Microsoft Dynamics CRM site ının Authentication larında Anonymous Authentication ının Disabled olmasıdır.Bu özelliği IIS ten Enabled yapıp ,IIS'e reset atarak hatayı çözmüş oluruz.



CRM 2011 - CRM e Farklı Browserlardan Erişim

Bildiğiniz gibi CRM 2011 RU 12 sonrası IE harici tarayıcılarda da kullanılabiliyor. Ancak CRM IFD yapılandırmasında ADFS Authentication için Extended Protection kullanılıyor. Bu özellik diğer tarayıcılarda tam çalışmadığından maalesef CRM e login olamıyorsunuz ve sürekli olarak kullanıcı adı ve şifre girerek başa dönüyorsunuz.Bunu düzeltmek için aşagıdaki adımları yapmamız gerekmektedir.


  • ADFS kurulu olan sunucuya gidip IIS Manager başlatılır.
  • "Default WebSite" altında "ADFS" onun altında da "LS" yi seçiniz.
  • Sol tarafta "Authentication" altında "Windows" Authentication için "Advanced Settings" e sağ tıklayalım.
  • Extended Protection ı "Accept" durumundan "Off" durumuna getiriniz.
  • Enable Kerner-mode authentication ı seciniz.II i restart ettipğimizde IE harici tarayıcılardan da CRM e girebiliyor olacaksınız.



CRM 2011 - Kullanıcılardan Excel Export Yetkisiini Almak

Bu işlem data güvenliğini sağlamak adına yapılır.


Rol tanımlarından "Business Management" veya "İşletme Yönetimi" tabı altında görebilirsiniz.Bu yetkiyi aldığımız takdirde bu role sahip kullanıcılar CRM üzerindeki ekranlardan excel çıktısı alamaz.

System - Administrator - Security Roles  altından bir rol seçelim ve gerekli işlemlerimizi yapalım.


CRM 2011 - 2013 - Eklenen Dosya için Maximum Boyut Tanımlama( Setting the Maximum File Size limits for attachments)

Crm üzerinde not eklerken bazen buyuk boyutlu dosya sectıgınızde hata alacaksınız.
(The attachment is too large)
CRM de dosya boyutu default  5.192 mb olarak gelmektedir.Biz bu sorunu ekleyecegimiz dosya byutundan fazla vererek hatayı gidermiş oluruz.

  1. Go to Settings -> Administration - Ayarlar
  2. Click on System Settings - Sistem Ayarları
  3. Click on E-mail tab -Email 
  4. Go to the bottom, on the section 'Set file size (in kilobytes)' - Ekler için dosya boyutu ekleme
  5. Replace current value with  "8,192" - 8192 (8 mb)









CRM 2011 - ParticipationTypeMask Değerleri

Activity party typeValueDescription
Sender- From
1
Specifies the sender.
ToRecipient - To
2
Specifies the recipient in the To field.
CCRecipient -CC
3
Specifies the recipient in the Cc field.
BccRecipient -BCC
4
Specifies the recipient in the Bcc field.
RequiredAttendee
5
Specifies a required attendee.
OptionalAttendee
6
Specifies an optional attendee.
Organizer
7
Specifies the activity organizer.
Regarding
8
Specifies the regarding item.
Owner
9
Specifies the activity owner.
Resource
10
Specifies a resource.
Customer
11
Specifies a customer.
Partner
12
Specifies a partner.

CRM 2011 - Invalid Action - The selected action was not valid.

Kullanıcılar CRM'e erişirken "Invalid Action - The selected action was not valid." ya da türkçe kurulumlarda "Geçersiz Eylem - Seçilen eylem geçerli değil" şekline bir hata ile karşılaşmaktadır.

Bu rounla karşılaştığınızda ilk olarak yapılması gereken CRM Async Service'in çalıştığını teyit etmektir. Ancak bazen bu servis çalışmasına rağmen sorun devam edebilmektedir. Bu durumda loglara baktığımızda aşağıdaki gibi bir hata ile karşılaşırız:


Source: Current active key (KeyType : CrmWRPCTokenKey) is expired. This can indicate that a key is not being regenerated properly. Current Active Key : CrmKey(Id:e1a5b215-d01e-de11-9d16-0003ffd0167c, ScaleGroupId:00000000-0000-0000-0000-000000000000, KeyType:CrmWRPCTokenKey, Expired:True, ValidOn:04/01/2009 15:16:36, ExpiresOn:05/04/2009 15:16:36, CreatedOn:04/01/2009 15:16:36, CreatedBy:NT AUTHORITY\NETWORK SERVICE. Key Setting :



Bu durumda CRM klasöründe tools (C:\Program Files\Microsoft Dynamics CRM\Tools) altında bulunan WRPCKeyRenewal  aracı command line (cmd.exe) üzerinden /R  (Microsoft.Crm.Tools.WRPCKeyRenewal.exe /R) parametresi ile çalıştırılarak sorun çözülebilmektedir.

CRM 2011 Error - Principal user is missing prvReadUserQuery privilege


Yeni bir rol actıgınızda ve kullanıcıya sadece bu rolu atadıgınızda kullanıcının CRM e girişlerinde yukarıda belirtilen hatayı verebilir.

Çünkü custom entitiler için view okuma yetkisi verilmemiştir.Yetkiyi verdikten sonra sorun kalkacaktır.