Archive

Archive for October, 2013

Role based Dashboards – CRM 2013

October 26, 2013 1 comment

With the release of  CRM 2011, we got System dashboards/charts and Personal dashboards/charts feature.

Dashboards/charts visibility

  • System charts are like System views, only Users with System Administrator or System Customizer can create and view-able by all users.
  • Personal charts are like Personal views, only visible to User who created them (i.e., Unless the created user shares the personal Dashboard/chart, nobody else can see it, not even a system administrator)

Restrict User to access Dashboards/Charts

  • To restrict users to access System dashboards/Charts
    • Open security role –> Customization tab, set ‘System Chart/System Form’ access level to ‘none’
System charts Access/Privilages

System charts Access/Privileges

    • To restrict users to access Personal dashboards/Charts
      • Open security role –> Core Records tab, set ‘User Chart/User Dashboard’ access level to ‘none’
Personal charts Privileges/Access

Personal charts Privileges/Access

By removing privileges to User, he can’t access any of the Dashboards or Charts in the system.

What if you want to restrict a particular System Dashboard or Chart to all ‘Sales Person’ security role Users but not others? You cannot configure OOB this in CRM 2011 (However you can do this by Plug-ins).

With CRM 2013,  we got a new feature Role based dashboards similar to Role based forms.

Role based Dashboards in CRM 2013

  • With CRM 2013, we can manage permissions for Dashboards and control which user can see each dashboards based on security roles.
  • To configure the dashboards based on security roles.
    • Open the Solution –> Dashboards, choose single dashboard and click ‘Enable Security Roles‘ button
Configure dashboards by roles

Configure dashboards by roles

    • Select the “Display only to these select security roles” and select the security roles which are allowed to view this dashboard.
    • Publish the customization’s.

🙂

Notifications using script – CRM 2013

October 21, 2013 3 comments

CRM 2013 has a new feature to display notifications (i.e., Errors,Warnings and Information’s) like a banner message using JavaScript.

Notifications

Notifications

We can create both Form level notifications as well as Field notifications.

  • Form notifications
    • This method display notifications on the top of the record form.

              Syntax – Xrm.Page.ui.setFormNotification(<Notification message>,’ ERROR\WARNING\INFORMATION’);

Form Notifications

Form Notifications

  • Field notifications

              Syntax – Xrm.Page.getControl(Field).setNotification(<Notification message>);

Field Notifications

Field Notifications

Observations

  • The Save action happens even if you have form level error notifications
  • The order of notifications are 1) Information notifications 2) Error notifications and 3) Warning notifications
  • The banner only show 3 rows of notification, the user has to scroll down to see the other
  • Use Xrm.Page.ui.clearFormNotification() to clear the banner notifications

Refer this link for more details

🙂

Categories: CRM 2011 Tags: , ,

Legacy Feature Check Tool – CRM

October 15, 2013 1 comment

The next major release of CRM (CRM 2013) is slated to release and will be dropping support for some of the legacy features.

The following legacy components that will not be supported in the next release:

  • The 2007 web service endpoint from HTML\JavaScript web resources.
  • Plug-ins and custom workflow activities built using the Microsoft Dynamics CRM 4.0 SDK.
  • ASPX web pages in the ISV folder.
  • The 2007 endpoint from external applications using IIS logs.

Legacy Feature Check Tool

  • The “Legacy Feature Check Tool” tool scans the deployment (plug-ins, web resources, IIS logs, and more) and detects the legacy components.
  • The tool is safe to run on production deployments and does not update or modify any data or configurations in the deployment

How to run the tool

  • Open the CRM web server
  • Copy the “LegacyFeatureCheck.zip” folder and extract
  • Open the command prompt and point to the “LegacyFeatureCheck” folder
  • Run the tool with the /? command-line argument to get the usage instructions
Legacy Feature Check - Help

Legacy Feature Check – Help

  • To inspect one of my organization named “Venilla” for legacy features, run following command

Microsoft.Crm.LegacyFeatureCheck.exe /org:vanilla /out:log.xml

Legacy Feature Check

Legacy Feature Check

  • It writes the log into ‘log.xml’, on the “LegacyFeatureCheck” directory
  • The XML will be in below format with issue will be given in <VerificationResult> node

<DeploymentVerificationResults>
<Result>
<OrganizationName>***Deployment***</OrganizationName>
<OrganizationId>00000000-0000-0000-0000-000000000000</OrganizationId>
<Issues>0</Issues>
<Results />
</Result>
<Result>
<OrganizationName>Venilla</OrganizationName>
<OrganizationUniqueName>Venilla</OrganizationUniqueName>
<OrganizationId>f50b3196-b029-e311-bb69-00155db03129</OrganizationId>
<Issues>1</Issues>
<Results>
<VerificationResult>
<Severity>Warning</Severity>
<Component>PluginAssembly</Component>
<ComponentId>b7bed020-bed1-e111-83d9-0019b9f8f548</ComponentId>
<Message>
Assembly “Venilla.Crm.Workflow” with version ‘1.0.0.0’
references the CRM 4.0 SDK.
</Message>
</VerificationResult>
</Results>
</Result>
</DeploymentVerificationResults>

🙂

Plug-in on related entities during ‘Cascade All’ actions

Assume the relationship behavior between ‘Contact’ and ‘Appointment’ is “Cascade All” on ‘Assign’ action.

Relationship Behavior

Relationship Behavior – Assign – Cascade All

By virtue of that, if a Contact has 2 Appointments, if I change the owner of ‘Contact’ the related 2 Appointment owner also changes.

In one of the requirement, we have to restrict the Cascade operation based on business logic on child record (i.e.,  Appointment)

So I registered a Plugin on ‘Assign’ of ‘Appointment’ and want to handle the Cascade operation, but the Plugin never get executed.

Reason & Solution

  • CRM treats Cascade Assign operation on Child records as an Update.
  • Register the Plug-in on ‘Update’ instead of ‘Assign’ message.
  • In the Update plug-in, the Target entity only contain ‘Owner’ field

🙂