{Happy Milestone} Mastering Dynamics CRM 2016 Released

It gives me great pleasure to announce that my first book on Dynamics CRM is released now.

Thanks to Packt Publishing for providing the opportunity to author a book.

Thanks for all those who helped on the book – Nishant Rana for reviewing the book.

Also, thanks to Simaranjit Singh Bhalla for his code contributions in the book.

Thanks to my wife Yamini and parents , for the time they gave me out of personal life and support provided by them have given me the motivation to complete it.

image

This has been my hardest project delivered on CRM from my end till date. At one point, due to my health issues this year, it seemed that I will not be completing the book at all. But one should always follow the motto:

“Try, Try but Don’t Cry”

This has made this book finally a reality.

Hope it helps and Happy CRMiing!

Any requirements in CRM/Dynamics 365 – end user,Microsoft  partner or an individual?

Requirement Area – Technical, Functional, Training, Development or consulting?

I am here to help, get in touch here: deepeshsomani@hotmail.com

ABOUT THE AUTHOR:

clip_image001

Twitter: https://twitter.com/msdynamicsblog
LinkedIn: https://www.linkedin.com/in/deepesh-somani-00296932

Google Play Store:

https://play.google.com/store/apps/details?id=com.dynamicsofdynamicscrm.msdynamicsblog&hl=en

Advertisement

{Dynamics 365 9.0 Series} Chat bot integration with Dynamics 365

In the blog we will go through Chat bot integration with Dynamics 365:

Technologies used:

  1. AZURE Cognitive Service and AZURE Web Service
  2. Bot Builder SDK for .NET
  3. Dynamics 365 ADXStudio Portal: Customer Self Service
  4. Dynamics 365 – CRM
  5. Cafex Live Assist for Dynamics 365

Hope it helps and Happy CRMiing!

Any requirements in CRM/Dynamics 365 – end user,Microsoft  partner or an individual?

Requirement Area – Technical, Functional, Training, Development or consulting?

I am here to help, get in touch here: deepesh.somani@dynamisity.com

ABOUT THE AUTHOR:

clip_image001

Twitter: https://twitter.com/msdynamicsblog
LinkedIn: https://www.linkedin.com/in/deepesh-somani-00296932

Google Play Store:

https://play.google.com/store/apps/details?id=com.dynamicsofdynamicscrm.msdynamicsblog&hl=en

{Dynamics 365 9.0 Series} New Themes available with Dynamics 365

In this series, I will be covering my exploration of the Dynamics 365 9.0 features as I traverse them over the coming weeks.

Microsoft recently released Dynamics 365 9.0 for all trials. One of the most interesting change is with respect to the look and feel which sees a lot more streamlines Dynamics 365 UI.

Default theme (CRM Blue Theme) is available in the following look and feel:

Dashboards:

clip_image002

Views:

clip_image004

Forms:

clip_image006

Two other themes have been natively shipped with this release. Here is a look and feel of the other two themes. Navigate to Settings->Customizations->Themes:

clip_image008

CRM Default Theme:

Dashboard:

clip_image010

Views:

clip_image012

Forms:

clip_image014

CRM Orange Theme:

Dashboard:

clip_image016

Views:

clip_image018

Forms:

clip_image020

Hope it helps and Happy CRMiing!

Any requirements in CRM/Dynamics 365 – end user,Microsoft  partner or an individual?

Requirement Area – Technical, Functional, Training, Development or consulting?

I am here to help, get in touch here: Click here

ABOUT THE AUTHOR:

clip_image001

Twitter: https://twitter.com/msdynamicsblog
LinkedIn: https://www.linkedin.com/in/deepesh-somani-00296932

Google Play Store:

https://play.google.com/store/apps/details?id=com.dynamicsofdynamicscrm.msdynamicsblog&hl=en

{Quick Tip} 3 Tips for mentoring Dynamics 365 teams and professionals effectively

In this blog, I am putting up some of the tips that are required to mentor a Dynamics 365 practice based on my experiences and the ones which I have shared from different people doing the same role across different companies, cultures and geographies.

clip_image002

Below is the list of 3 tips:

· Understanding the Action Plan and Goal: It is very important in mentoring to set an Action plan and a goal. The goal and action plan can be for an individual which flows on to a team and then to the entire company. Realistic action plans and goals are very important. Over time, it is very important to take feedback and adjust the ability and way to mentor depending on it. Regular interactions are very important part of forming an effective methodology.

· Being Open and Non-judgmental: It is very important not to have a prejudiced approach for someone you are mentoring. Being open in conversations and non-judgmental is critical in being able to build a healthy mentoring relationship with anybody – may it be an individual or team.

· Motivate and Encourage: It is very important to be motivated and encourage individuals, peers and teams. It becomes even a big priority when things are not going well or a particular module or sprint is not working through well.

Hope it helps and Happy CRMing!

Any problem in CRM – end user,Microsoft  partner or an individual?

Problem Area – Technical, Functional, Training, Development or consulting?

I am here to help, get in touch here: Click here

ABOUT THE AUTHOR:

clip_image001

Twitter: https://twitter.com/msdynamicsblog
LinkedIn: https://www.linkedin.com/in/deepesh-somani-00296932

Google Play Store:

https://play.google.com/store/apps/details?id=com.dynamicsofdynamicscrm.msdynamicsblog&hl=en

{Dynamics 365 Portal Code Tip} Dynamically Show/Hide field based on Lookup field on Entity form

Achieving Business rules kind of functionality in portal forms is a bit trickier as Business rules do not directly reflect on the Dynamics 365 Portals.

One of such requirements is to show/hide a field based on other field value dynamically on Dynamics 365 Portals.

In the below scenario, Requirement is to show Other Reason text field if user selects lookup value of “Other” on the portal form for a custom lookup field Called “Reason” on Case entity portal form.

Navigate to Entity Form called “Customer Service – Create Case” and scroll down to custom JavaScript area:

image

Paste the following script:

$(document).ready(function () {
  if (typeof (Page_Validators) == ‘undefined’) return;
  var newValidator = document.createElement(‘span’);
  newValidator.style.display = “none”;
  newValidator.id = “contactFieldValidator”;
  newValidator.controltovalidate = “primarycontactid”;
  newValidator.errormessage = “<a href=\’#primarycontactid_label\’ onclick=\’javascript:scrollToAndFocus(\”primarycontactid_label\”,\”primarycontactid\”); return false;\’> Contact is a required field. </a>”;
  newValidator.initialvalue = “”;
  newValidator.evaluationfunction = function () {
    var customerType = $(“#customerid_entityname”).val();
    if (customerType != “account”) return true;
    // only require contact if customer type is account.
    var value = $(“#primarycontactid”).val();
    if (value == null || value == “”) {
      return false;
    } else {
      return true;
    }
  };

  Page_Validators.push(newValidator);

  updateEntitlementRequired();
  $(“#customerid”).change(onCustomerChange);
  $(“#customerid”).change();
  $(“#new_reason”).change(onReasonChange);
  $(“#new_reason”).change();
});

  function onReasonChange()
  {
    //alert(“On Reason Change called”);
    if ($(‘#new_reason_name’).val() == “Other”)
{
$(‘#new_otherreason’).show();
$(‘#new_otherreason_label’).show();
}
else
{
$(‘#new_otherreason’).hide();
$(‘#new_otherreason_label’).hide();
}
  }
  function onCustomerChange() {
    var val = $(“#customerid”).val();
    var entitlement = $(“#entitlementid”).parent();
    var product = $(“#productid”).parent();
    if (val) {
      disableEnable(entitlement, false);
      disableEnable(product, false);
    }
    else {
      disableEnable(entitlement, true);
      disableEnable(product, true);
    }
    updateContactRequired();
   
  }

  function disableEnable($param, disabled) {
    $param.find(‘input’).each(function () {
      $(this).attr(“disabled”, disabled);
    });

    $param.find(‘button’).each(function () {
      $(this).attr(“disabled”, disabled);
    });
  }

  function updateContactRequired() {
    var customerTypeVal = $(“#customerid_entityname”).val();
    if (customerTypeVal && customerTypeVal == “account”) {
      $(“#primarycontactid_label”).parent().addClass(“required”);
    }
    else {
      $(“#primarycontactid_label”).parent().removeClass(“required”);
    }
  }
 
  function showHideOtherReason()
  {
  $(‘#new_otherreason’).hide();
$(‘#new_otherreason_label’).hide()
  }
  function updateEntitlementRequired() {
var entitlementField = $(“#entitlementid”);
if (entitlementField && entitlementField.closest(‘td’).get(0).style.display == “none”) {
  //remove required class and validator if entitlement isn’t showing
  $(“#entitlementid_label”).parent().removeClass(“required”);
  if (typeof (Page_Validators) == ‘undefined’) return;
  if ($(“#RequiredFieldValidatorentitlementid”) != ‘undefined’ && entitlementField.closest(‘td’).get(0).style.display == “none”) {
   $(“#entitlementid_label”).parent().removeClass(“required”);
   Array.remove(Page_Validators, document.getElementById(‘RequiredFieldValidatorentitlementid’));
  }
}
}

The important functions to understand are below:

Function to show/hide text field based on Lookup field in portal:

  function onReasonChange()
  {
    //alert(“On Reason Change called”);
    if ($(‘#new_reason_name’).val() == “Other”)
{
$(‘#new_otherreason’).show();
$(‘#new_otherreason_label’).show();
}
else
{
$(‘#new_otherreason’).hide();
$(‘#new_otherreason_label’).hide();
}
  }

This function needs to be attached on Document ready main function in the portal:

$(“#new_reason”).change(onReasonChange);
$(“#new_reason”).change();

Output:

The output is as below:

When Reason is not selected:

image

When Reason is selected as Other:

image

Happy CRMing!

Any problem in CRM – end user,Microsoft  partner or an individual?

Problem Area – Technical, Functional, Training, Development or consulting?

I am here to help, get in touch here: Click here

ABOUT THE AUTHOR:

clip_image001

Twitter: https://twitter.com/msdynamicsblog
LinkedIn: https://www.linkedin.com/in/deepesh-somani-00296932

Google Play Store:

https://play.google.com/store/apps/details?id=com.dynamicsofdynamicscrm.msdynamicsblog&hl=en

Thanks Microsoft and community for the BUSINESS SOLUTIONS MVP AWARD 2017

image

I was awarded for the third time as a Dynamics Business Solutions MVP.

I want to keep contributing for the next year and beyond. It has been a great journey so far for me and blog has been an integral part of it.

I want to thanks everyone in the community that view my videos on read my blog, my CRM YouTube channel  and finally follow me on twitter and other social media networks.

Thanks Microsoft within the organization as well which gave me the boost to start leveraging my ability well for serving the community.

Happy CRMing!

Any problem in CRM – end user,Microsoft  partner or an individual?

Problem Area – Technical, Functional, Training, Development or consulting?

I am here to help, get in touch here: Click here

ABOUT THE AUTHOR:

clip_image001

Twitter: https://twitter.com/msdynamicsblog
LinkedIn: https://www.linkedin.com/in/deepesh-somani-00296932

Google Play Store:

https://play.google.com/store/apps/details?id=com.dynamicsofdynamicscrm.msdynamicsblog&hl=en

{Step by Step and Overview} Microsoft Dynamics 365 Organisation Insights App

One of the top most issues with Dynamics CRM online used to be to be able to monitor entity tables by size(to know which entities are occupying the maximum space?)

Well not any more! The new Microsoft Dynamics 365 App helps you there and actually does a lot more.

Here is a step by step and overview on how to get started with this awesome App from Microsoft!

Locate the App on the AppSource first:

clip_image002

Next agree to some conditions from Microsoft:

clip_image004

After the first one you might be asked to agree one more time, just go ahead and Click Agree:

clip_image006

Keep monitoring the solution and it will be enabled soon:

clip_image008

Next: As System administrator on your instance Navigate to Settings -> Organisation Insights:

Home screen on the Organisation insight shows Total active users, API success rate , etc.

clip_image010

Clicking on Storage you will land on the following dashboard, it outlines total used space, Space used by CRM instances,

Top tables by size, etc.

clip_image012

Also shows size of some common tables:

clip_image014

What is more: you can export to excel sizes(Isn’t that cool!):

clip_image016

There is also a System jobs area which shows number of Workflow executions, pass rates and throughput rates, etc.

Since this is a trial organisation, I do not have much stuff happening:

clip_image018

It also allows you to check API Success rates etc:

clip_image020

Last but not the least you can go and check Active usage as well:

clip_image022

For detailed description of each area, visit following link: Click here

This is a great tool for Dynamics 365 and kudos to the Microsoft product team!

Hope it helps and Happy CRMing!

Any problem in CRM – end user,Microsoft  partner or an individual?

Problem Area – Technical, Functional, Training, Development or consulting?

I am here to help, get in touch here: Click here

ABOUT THE AUTHOR:

clip_image001

Twitter: https://twitter.com/msdynamicsblog
LinkedIn: https://www.linkedin.com/in/deepesh-somani-00296932

Google Play Store:

https://play.google.com/store/apps/details?id=com.dynamicsofdynamicscrm.msdynamicsblog&hl=en

{Quick Tip} Allow lookup field to search on multiple attributes and show attributes on parent entity form using Quick View

In a recent query presented across to me lookup field created for Category (custom entity) was being searched  not only based on the code

but also based on Description attribute of the Lookup.

It is a usual scenario for Category fields to have code and description attributes as well.

I tried to replicate the scenario in my Vanilla instance:

The sample values of categories are:

· A: Alpha

· B: Beta

· C: Captcha

 

clip_image002

Replicating the scenario below on Account entity form, we can see that searching based on description has issues:

To fix the problem navigate to Lookup entity (in this case Category mapping), Views and select Quick Find view

for the entity (as highlighted below):

clip_image004

Next click Add Find columns:

clip_image006

Add the relevant find column(selected Category description) as well:

clip_image008

Save, Publish your customizations. Next time on the form, even if description is typed

Category code will be automatically pulled:

clip_image010

Let’s go a step ahead in improving the functionality. Now say once the Category is selected, user wishes to also see the

Category description along with the code on the form.

This can be achieved by Quick View form.

Navigate to Entity customizations, Category Mapping entity in this example -> Forms and Click New Quick View Form:

clip_image012

Next add Category Description on the form and publish:

clip_image014

After Publish, Navigate to Account entity form for this example and Select Quick View form on the Insert tab:

clip_image016

Pick the Category Mapping Quick View form created earlier and click Ok:

clip_image018

Form should now be appearing like this, Click Save and Publish:

clip_image020

Now, whenever user types in either the category code or description both will be visible to the user on the form:

clip_image022

Please note that the values for Category Description are just shown on the form and not actually brought over to the

Account entity in this case.

Hope it helps and Happy CRMing!

Any problem in CRM – end user,Microsoft  partner or an individual?

Problem Area – Technical, Functional, Training, Development or consulting?

I am here to help, get in touch here: Click here

ABOUT THE AUTHOR:

clip_image001

Twitter: https://twitter.com/msdynamicsblog
LinkedIn: https://www.linkedin.com/in/deepesh-somani-00296932

Google Play Store:

https://play.google.com/store/apps/details?id=com.dynamicsofdynamicscrm.msdynamicsblog&hl=en

{Scripting Tip}Color Email field in CRM 2013

Recently I was again asked to color another type of CRM field based on my old post for CRM 2013 version:

https://dynamicsofdynamicscrm.com/2014/05/06/change-color-for-text-fields-dynamics-crm-2013/

This time around it was about how to be able to color an Email field.

I tried my hands with the script and this works:

$(‘#emailaddress1’).find(‘a[class=”ms-crm-gridurl”]’).css(‘color’,’red’);

Result is as below:

image

Please note this is unsupported and not recommended unless absolutely needed.

Microsoft Idea site is the right place to put this requirement – it seems to be a good product feature that should be included potentially as a Business rule!!

Hope it helps and Happy CRMing!

Any problem in CRM – end user,Microsoft  partner or an individual?

Problem Area – Technical, Functional, Training, Development or consulting?

Get in touch here: Click here

ABOUT THE AUTHOR:

clip_image001

Twitter: https://twitter.com/msdynamicsblog
LinkedIn: https://www.linkedin.com/in/deepesh-somani-00296932

Google Play Store:

https://play.google.com/store/apps/details?id=com.dynamicsofdynamicscrm.msdynamicsblog&hl=en

{Quick Tip} Considerations during a Dynamics 2016/Dynamics365 Upgrade

Are you a customer or you have a customer who is still on an old version of Dynamics CRM like CRM 4.0 or CRM 2011?

Are you planning to upgrade to either Dynamics CRM 2016 or Dynamics 365?

Are you migrating to the cloud directly (Dynamics 365 online) or you wish to upgrade first to an on premise version and have a vision to go to the cloud in the near future?

Since there has been so long that you have upgrade – do you wish to also re-engineer, re-design and improve your business processes along with the upgrade implementation?

This are some questions which frequently get asked around me on Upgrade assessments.

image

Here are some quick high level recommendations to consider before making the choice:

· Consider that between Dynamics CRM 4.0/ CRM 2011 there is gap of almost 4 versions to Dynamics 365 – CRM 2013, CRM 2015, CRM 2016 and Dynamics 365 (I have skipped mentioning the Service packs,

   Update 1 or rollups of each version in between). This fact adds to technical complexity for the upgrade.

· It might seem very simple to add re-engineering, re-design and improvements to an Upgrade project but since there is no straight upgrade path, try and better understand the technical complexity involved.

· Understand deprecated features and ways to re-implement them. Understand that Deprecated features will result in re-design and re-design meets fresh development to maintain existing functionality.

· Understand that existing features might be able to be mapped to out of box features of Dynamics CRM 2016/Dynamics 365 and try and implement a re-design for such features which might mean fresh configurations or some development.

    Doing this will help in giving longevity to your implementation on the latest platform.

· If you have tighter deadlines, skip the improvements and re-design wherever you can concentrate on the technical upgrade.

· Understand that Dynamics CRM 2016 Platform/Dynamics 365 platform has improved and usability has changed in multiple places. This will require proper User training and such effort needs to be incorporated into the Upgrade effort.

· In case you are upgrading to the cloud, this has impact on how technical implementation has been implemented and how CRM is administered. For instance, there is no direct database access in case of CRM online which you have readily available in CRM on premise.

Hope it helps and Happy CRMing as usual!

Any problem in CRM – end user,Microsoft  partner or an individual?

Problem Area – Technical, Functional, Training, Development or consulting?

Get in touch here: Click here

ABOUT THE AUTHOR:

clip_image001

Twitter: https://twitter.com/msdynamicsblog
LinkedIn: https://www.linkedin.com/in/deepesh-somani-00296932

Google Play Store:

https://play.google.com/store/apps/details?id=com.dynamicsofdynamicscrm.msdynamicsblog&hl=en