رفع خطای داشبوردها در مایکروسافت CRM
آنچه در این مقاله می خوانیم:
- نحوه تغییر تنظیمات داشبورد برای محدودیت حداکثر کنترل ها در Dynamics CRM ورژن 8 و 9
- راهکار اول
- راهکار دوم
- نکته مهم
- مراحل حذف یا افزودن تنظیمات XRMDeployment در IIS
نحوه تغییر تنظیمات داشبورد برای محدودیت حداکثر کنترل ها در Dynamics CRM ورژن 8 و 9
حد اکثر تعداد مجاز کنترل در داشبورد CRM ورژن 8 و 9 ، 6 مورد می باشد . بنا بر این شما نمی توانید بیش از 6 مورد نمودار ، گراف ، iframe ، منابع وب و غیره درون داشبورد خود جای دهید . ما می توانیم تعداد کنترل ها را بر اساس نیاز کاربر گسترش دهیم . لازم به یاد آوری است که این تنظیمات بر روی سرور اعمال می شود نه تنظیمات سازمانی .
لذا شما نمی توانید این تنظیمات را برای نسخه CRM Online تغییر دهید و فقط برای نسخه CRM On-Premise می توانند اعمال گردند .
راهکار اول :
با استفاده از Window Power Shell می توانیم تنظیمات مورد نظر را پیاده سازی نماییم .
1 . پنجره دستور Windows Power Shell را باز کنید .
2 . Microsoft Dynamics CRM Power Shell Snap-In را اضافه کنید .
- Add-PSSnapin Microsoft.Crm.PowerShell
گاهی اوقات ممکن است پیغامی مشابه پیام زیر دریافت نمایید . که در این صورت مشکلی وجود ندارد .
"Add-PSSnapin : Cannot add Windows PowerShell snap-in Microsoft.Crm.PoweShell because it is already added ."
3 . دستورات زیر را اجرا نمایید .
3.1 . $setting = Get-CrmSetting -SettingType DashboarSettings
3.2 . $setting.MaximumControlsLimit = 10
3.3 . Set-CrmSetting -Setting $setting
بعد از آن که وارد CRM خود شوید ، شما هم چنان در طراحی داشبورد تعداد شش Component مشاهده خواهید کرد اما می توانید بر اساس مقدار تعیین شده به تعداد Component ها اضافه کنید . اگر از حد مجاز تعداد اجزا در طراحی داشبورد خود فراتر روید با پیغام خطای زیر رو به رو خواهید شد .
راهکار دوم :
اگر Power Shell کار نمی کند و هنوز مشکل پا بر جا بود ، شما می توانید از کد C # زیر استفاده کنید .
public static void UpdateDashboardSettings()
{
//Create Instance of Deployment Service
Microsoft.Xrm.Sdk.Deployment.Proxy.ProxyClientHelper.CreateClient(new Uri("http://CRMServer/Organization/XRMDeployment/2011/Deployment.svc"));
//Use Default network Credentials(User should de Deployment Admin in Deployment Manager and System Admin in CRM)
service.ClientCredentials.Windows.ClientCredential =
(NetworkCredential)CredentialCache.DefaultCredentials;
//Retrieve Current Dashboard Settings MaximumControlsLimit
Microsoft.Xrm.Sdk.Deployment.RetrieveRequest retrieveReq = new Microsoft.Xrm.Sdk.Deployment.RetrieveRequest();
retrieveReq.EntityType = DeploymentEntityType.DashboardSettings;
Microsoft.Xrm.Sdk.Deployment.RetrieveResponse retrieveRes = (Microsoft.Xrm.Sdk.Deployment.RetrieveResponse)service.Execute(retrieveReq);
if (retrieveRes != null && retrieveRes.Entity != null)
{
DashboardSettings dsCurrentResult = (DashboardSettings)retrieveRes.Entity;
if (dsCurrentResult != null)
Console.WriteLine("Current DashboardSettings MaximumControlsLimit is " + dsCurrentResult.MaximumControlsLimit);
}
//Update Current Dashboard Settings MaximumControlsLimit = 10
Microsoft.Xrm.Sdk.Deployment.UpdateRequest updateReq = new Microsoft.Xrm.Sdk.Deployment.UpdateRequest();
DashboardSettings ds = new DashboardSettings();
ds.MaximumControlsLimit = 10;
updateReq.Entity = ds;
Microsoft.Xrm.Sdk.Deployment.UpdateResponse updateRes = (Microsoft.Xrm.Sdk.Deployment.UpdateResponse)service.Execute(updateReq);
//Retrieve again after updating Current Dashboard Settings MaximumControlsLimit
Microsoft.Xrm.Sdk.Deployment.RetrieveRequest retrieveReq1 = new Microsoft.Xrm.Sdk.Deployment.RetrieveRequest();
retrieveReq1.EntityType = DeploymentEntityType.DashboardSettings;
Microsoft.Xrm.Sdk.Deployment.RetrieveResponse retrieveRes1 = (Microsoft.Xrm.Sdk.Deployment.RetrieveResponse)service.Execute(retrieveReq1);
if (retrieveRes1 != null && retrieveRes1.Entity != null)
{
DashboardSettings dsUpdatedResult = (DashboardSettings)retrieveRes1.Entity;
if (dsUpdatedResult != null)
Console.WriteLine("After Updating DashboardSettings MaximumControlsLimit is " + dsUpdatedResult.MaximumControlsLimit);
{
{
نکته مهم :
شما باید از SDK برای دسترسی به کلاس ها و روش های گسترش ، Microsoft.xrm.sdk.deployment dll را اضافه کنید .
کاربری که این قسمت را در سیستم اجرا می کند باید ادمین deployment در محیط deployment manager و ادمین سیستم در CRM باشد .
اگر هنگام دسترسی به سرویس استقرار خطای 404 دریافت کردید ، باید تنظیمات IIS وب سرور CRM خود را بررسی کنید و مطمئن شوید که XRMDeployment در بخش های پنهان در IIS پیکر بندی نشده باشد .
مراحل حذف یا افزودن تنظیمات XRMDeployment در IIS
- 1 . Internet Information Services ( IIS ) Manager را باز کنید .
- 2 . در منوی سمت چپ ، server را باز نمایید .
- 3 . زیر منو ی Sites را باز نمایید .
- 4 . بر روی Microsoft Dynamics CRM کلیک کنید .
- 5 . روی نماد " درخواست فیلتر " در سمت راست پنجره IIS کلیک کنید .
- 6 . بر روی سر برگ " Hidden Segment " در پنجره درخواست فیلتر در سمت راست کلیک کنید .
- 7 . اگر XRMDeployment وجود داشت ، آن را انتخاب و راست کلیک کرده و سپس روی حذف کلیک نمایید تا آن را از بخش های مخفی حذف نمایید .
- 8 . پس از اجرای Power Shell ، کد SDK شما می توانید گزینه " Add Hidden Segment " را اضافه کنید ، وارد " XRM Deployment " در پنجره Hidden Segment شوید و بر روی " OK " کلیک کنید تا پنجره بسته شود .