Bu hatayı aldığımızda windows feature larından Windows Identity Foundation ı yüklememiz gerekiyor.
Server Manager - Add Roles and Features seçelim.
Daha sonra aşağıdaki adımları Next butonuna tıklayarak gecelim.
Features ekranından Windows Identity Foundation 3.5 i seçip Install butonuna tıklayarak yükleyebiliriz.
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
Çö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.
CRM 2011 Code - Export Solution (.NET)
//Export a solution
String outputDir = @"C:\solutions\";
ExportSolutionRequest exportSolutionRequest = new ExportSolutionRequest();
exportSolutionRequest.Managed = false;
//Specify the unique name of your solution
exportSolutionRequest.SolutionName = "TestSolution";
ExportSolutionResponse exportSolutionResponse = (ExportSolutionResponse)crmServiceDev.Execute(exportSolutionRequest);
byte[] exportXml = exportSolutionResponse.ExportSolutionFile;
string filename = "TestSolution" + ".zip";
File.WriteAllBytes(outputDir + filename, exportXml);
Console.WriteLine("Solution exported to {0}.", outputDir + filename);
CRM 2016 - Form Düzenini Değiştirme (Changing the Form Layout in Dynamics CRM)
Dynamics CRM le çalıştığınız zamanlarda bulunduğunuz ortama göre formu tam ekran yaptığınız zaman fomun sağ tarafında boş bir alanın göründüğü sorunuyla kaşılaşmış olabilirsiniz.
Bu sorunu çözmek için Form Özelliklerinden formun Maximum Genişliğini değiştirmeye ihtiyacınız olacaktır.Benim karşılaştığım sorunda Maximum Genişiği 2300 pixel yaparak sorun giderilmiş oldu.
Ayarlar - Özelleştirmeler - Sistem Özelikleri
Varlıkları Genişletelim (Sol Panelden) - Varlığımızı Bulup Genişletelim - Form
Formu Aç - Form Özelliklerine Tıkla
Kısa Yol : Açılan form üzerinde Form Editor e tıklayalım.
Açılan ekrandan Görüntü tabını seçelim.Maximum Genişlik alanına değerimizi yazalım.OK butonuna tıklayarak işlemimizi kaydedelim.
Bu sorunu çözmek için Form Özelliklerinden formun Maximum Genişliğini değiştirmeye ihtiyacınız olacaktır.Benim karşılaştığım sorunda Maximum Genişiği 2300 pixel yaparak sorun giderilmiş oldu.
Ayarlar - Özelleştirmeler - Sistem Özelikleri
Varlıkları Genişletelim (Sol Panelden) - Varlığımızı Bulup Genişletelim - Form
Formu Aç - Form Özelliklerine Tıkla
Kısa Yol : Açılan form üzerinde Form Editor e tıklayalım.
Açılan ekrandan Görüntü tabını seçelim.Maximum Genişlik alanına değerimizi yazalım.OK butonuna tıklayarak işlemimizi kaydedelim.
CRM 2011 - Equipment Oluşturma (Create Equipment)
C# Code
#region Create TesisEkipman
Equipment equipment = new Equipment();
equipment.Name ="New Created Equipment";
equipment.Description ="Item description";
equipment.CalendarId = new EntityReference("calendar", "guidvalue") ;
equipment.DisplayInServiceViews =true;
equipment.EMailAddress = "gkhnmnts@hotmail.com";
equipment.IsDisabled = false;
equipment.SiteId =new EntityReference("site", "guidvalue") ;
equipment.Skills =" item.Skills";
equipment.TimeZoneCode = 1;
equipment.BusinessUnitId = new EntityReference("businessunit", "guidvalue") ;
crmService.Create(equipment);
#endregion
Örnek :
string fetchBU = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
<entity name='businessunit'>
<attribute name='name' />
<attribute name='address1_telephone1' />
<attribute name='websiteurl' />
<attribute name='parentbusinessunitid' />
<attribute name='businessunitid' />
<order attribute='name' descending='false' />
</entity>
</fetch>";
EntityCollection resultequipments = crmServiceDev.RetrieveMultiple(new FetchExpression(fetchBU));
if (resultequipments.Entities.Count > 0)
{
Guid BuId;
BuId = (Guid)resultequipments.Entities[0]["businessunitid"];
Entity equipment = new Entity("equipment");
equipment["name"] = "test";
equipment["businessunitid"] = new EntityReference("businessunit",BuId);
equipment["timezonecode"] = 1;
crmServiceDev.Create(equipment);
Console.WriteLine("Facility successfully created");
}
CRM 2015 - Hızlı Form Ekranı (Quick Create Form)
Hızlı Form Ekranı (Quick Create Form)
Microsoft Dynamics CRM Online 2015 Update 1 ve daha sonraki versiyonları desteklemektedir.
Xrm.Utility namespace içerisinde openQuickCreate metodu ile kullanılır.
Metodun kullanım şekli ve alacağı parametreleri gösteren liste aşağıdadır.
Hızlı bir şekilde kayıt oluşturmak için kullanabileceğiiz bu ekran sayesinde dafault değerler veya mapping ile veri göndererek yenı bir kayıt açılması sağlanır.
Aşağıdaki script function ile kullanılır.
Örnek javascript kod account formunda çağrıldığında yeni bir hızlı kayıt girişi ekranı açılır ve default olarak Ad alanı setlenir. Save butonu tıklanarak yeni kayıt girilir.
function openQuickCreate() {
try {
var thisAccount = {
entityType: "account",
id: Xrm.Page.data.entity.getId()
};
var callback = function (obj) {
console.log("Created new " + obj.savedEntityReference.entityType + " named '" + obj.savedEntityReference.name + "' with id:" + obj.savedEntityReference.id);
}
var setName = { name: "Child account of " + Xrm.Page.getAttribute("name").getValue() };
Xrm.Utility.openQuickCreate("account", thisAccount, setName).then(callback, function (error) {
console.log(error.message);
});
}
catch (e) {
alert(e.message);
}
}
Function çağrıldığındaki ekran görüntüsü
Daha fazla bilgi için tıklayınız.
Microsoft Dynamics CRM Online 2015 Update 1 ve daha sonraki versiyonları desteklemektedir.
Xrm.Utility namespace içerisinde openQuickCreate metodu ile kullanılır.
Metodun kullanım şekli ve alacağı parametreleri gösteren liste aşağıdadır.
Hızlı bir şekilde kayıt oluşturmak için kullanabileceğiiz bu ekran sayesinde dafault değerler veya mapping ile veri göndererek yenı bir kayıt açılması sağlanır.
Aşağıdaki script function ile kullanılır.
Örnek javascript kod account formunda çağrıldığında yeni bir hızlı kayıt girişi ekranı açılır ve default olarak Ad alanı setlenir. Save butonu tıklanarak yeni kayıt girilir.
try {
var thisAccount = {
entityType: "account",
id: Xrm.Page.data.entity.getId()
};
var callback = function (obj) {
console.log("Created new " + obj.savedEntityReference.entityType + " named '" + obj.savedEntityReference.name + "' with id:" + obj.savedEntityReference.id);
}
var setName = { name: "Child account of " + Xrm.Page.getAttribute("name").getValue() };
Xrm.Utility.openQuickCreate("account", thisAccount, setName).then(callback, function (error) {
console.log(error.message);
});
}
catch (e) {
alert(e.message);
}
}
Function çağrıldığındaki ekran görüntüsü
Daha fazla bilgi için tıklayınız.
Teklif Entitisi Üzerinde ParaBirimi Alanı Değiştirildiğinde Alınan "Entity type not defined" Hatası
( Error "Entity type not defined" on changing Currency Fields in Quote entity)
MS CRM 2015 ve MS CRM 2016 Teklif formu üzerinde currency onchange de "Entity type not defined" hatasını alıyorsak Form onload a aşağıdaki gibi script satırlarını ekleyerek problemi çözebiliriz.
Mscrm.QuoteMainSystemLibraryWebResource.onTransactionCurrencyChange = function () {
!Mscrm.InternalUtilities.JSTypes.isNull(Xrm.Page.ui.controls.get("pricelevelid")) && Xrm.Page.data.entity.attributes.get("pricelevelid").setValue(null);
Xrm.Utility.alertDialog(Xrm.Internal.getResourceString("LOCID_CURRENCY_CHANGE_ALERT"), null)
};
CRM 2011 - Timeout Hatası (Unhandled Exception: System.TimeoutException)
Hata
System.TimeoutException: İstek kanalı, yanıt beklerken 00:02:00 sonra zaman aşımına uğradı. Request çağrısına geçirilen zaman aşımı değerini artırın ya da Binding üstündeki SendTimeout değerini artırın. Bu işlem için ayrılan süre daha uzun bir zaman aşımı değerinin bir bölümü olabilir. ---> System.TimeoutException: 'http://xxxx/xxCRM/xrmservices/2011/Organization.svc' öğesine HTTP tarafından yapılan istek, ayrılan zaman aşımı süresini (00:02:00) aştı. Bu işlem için ayrılan süre daha uzun bir zaman aşımı değerinin bir bölümü olabilir. ---> System.Net.WebException: İşlem zaman aşımına uğradı
-
-
Serviceproxy nin defaulttakı timeout değeri 2 dakikadır. Bu zamandan sonraki sürelerde timeout hatası verilecektir. Bunu crm le connection kurduğumuz yerde serviceproxy değeri üzerinde değiştirebiliriz.
ClientCredentials credentials = new ClientCredentials();
credentials.Windows.ClientCredential = new System.Net.NetworkCredential(_settingFactory.GetUserName, _settingFactory.GetPassword, _settingFactory.GetDomainName);
//credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
Uri organizationUri = new Uri(_settingFactory.GetOrganizationSvc);
OrganizationServiceProxy orgService11 = new OrganizationServiceProxy(organizationUri, null, credentials, null);
orgService11.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
//This line is required to enable Early Bound Types
orgService11.EnableProxyTypes();
orgService11.Authenticate();
orgService11.Timeout = new TimeSpan(0, 15, 0); // extends timeout to 15 minutes
return (IOrganizationService)orgService11;
Kaydol:
Kayıtlar (Atom)