{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

{Quick Tip}QR Code Reader using Dynamics 365

Microsoft Dynamics 365 has a new feature which you might have read about: A BAR code scanner visual control.

However, there is another hidden gem of this control. Lets see it in action:

· Adding a single line of text field called QR Demo to Account entity:

clip_image002

· Drag the field on the form and Select controls tab, Barcode scanner:

clip_image004

· Select the control and select Barcode scanner for Tablets and Phones:

clip_image005

· Click Ok, Save and Publish the field and customizations. Next we move to Dynamics CRM App for Phone:

QR Code Reader in Action:

· Following QR code is available to scan:

clip_image006

· Open the Dynamics 365 Phone App, select the QR demo field and tap highlighted icon:

clip_image008

· QR code scanner will open up:

clip_image010

· Code is now scanned and filled into the field:

clip_image012

Great stuff, isn’t it. Go try it out yourself.

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} Enabling Custom entity for Quick Create

In one of the recent query asked to me, Quick create form was created for a custom entity

but was not appearing in the Quick Create Menu:

After researching, solution was as follows:

In Entity customizations, there is option to Enable Quick create which was not selected:

clip_image004

Once the changes are published, Entity is available in the Quick create area:

clip_image006

 

Hope it helps and Happy CRMing!

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}List of Supported languages for CRM 2016

We were looking for list of supported languages for CRM 2016 and could not find documented list of combinations.

image

Here is a quick list as per available options in Microsoft download centre(Click here):

 

  • English
  • Arabic
  • Basque
  • Bulgarian
  • Catalan
  • Chinese (Hong Kong SAR)
  • Chinese (Simplified)
  • Chinese (Traditional)
  • Croatian
  • Czech
  • Danish
  • Dutch
  • English
  • Estonian
  • Finnish
  • French
  • Galician
  • German
  • Greek
  • Hebrew
  • Hindi
  • Hungarian
  • Indonesian
  • Italian
  • Japanese
  • Kazakh
  • Korean
  • Latvian
  • Lithuanian
  • Malay (Malaysia)
  • Norwegian (Bokmål)
  • Polish
  • Portuguese (Brazil)
  • Portuguese (Portugal)
  • Romanian
  • Russian
  • Serbian (Cyril ic)
  • Serbian (Latin)
  • Slovak
  • Slovenian
  • Spanish
  • Swedish
  • Thai
  • Turkish
  • Ukrainian
  • Vietnamese

Hope it helps and Happy CRMing!

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

{New Preview Feature}Relationship Insights for Dynamics 365: Part 1

Relationship assistant is a new preview feature released by Microsoft. It keeps an eye on your daily actions and communications and

generates a collection of action cards that are displayed prominently throughout the application to provide tailored, actionable insights.

· Navigate to Settings-> Relationship Insights

clip_image002

· Accept the terms Checkbox and click Continue

clip_image004

· Oops! Things don’t work out yet:

clip_image006

· Go back to Settings-> Administration->System Settings->Preview:

clip_image008

· Click Ok.

Note: Relationship insights is a Preview feature.

Navigate back to Settings->Relationship Insights. Things work out this time:

clip_image010

In the remainder of this post, Let us explore one of the components of Relationship assistance – Base cards. Click on base card and you will see:

clip_image012

Click Save and Navigate to Service Overview dashboard:

clip_image014

clip_image015

You will see Relationship assistant coming to assist you in your day to day work:

clip_image017

image

As per official documentation, Please note that as of 24/01/2017 this feature is only available for North America data centres.

Thanks again and Happy CRMing!

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

{Happy milestone} Celebrating 490+ Followers and 200000+ hits

Today, I am posting a special thank you note to all my followers, readers and kudos to you for making this milestone happen for me.

image

 

In July 2013, I started writing some articles on Dynamics CRM, developing some tools in my spare time.

Getting involved with various kind of experiences on Dynamics CRM.

image

This blog has over time been a keen source of inspiration for myself to keep learning, sharing ideas and connecting with some great minds. 

Thanks again and Happy CRMing!

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

{New Tool} Crypto for Dynamics 365

It has been a while that there was a new tool being published from my end on Dynamics CRM. One of the recent things that I noticed which was needed was the ability of people to be able to encrypt sensitive/critical information.

This is particularly relevant in some scenarios in Dynamics 365 implementations such as:

  • Storing Credit card information in Dynamics 365
  • Storing bank account details in Dynamics 365
  • Storing sensitive information such as Public service numbers in Dynamics 365(For example Social security number in US, etc.)

In all such scenarios, there is need to encrypt certain fields in addition to field security. Me and fellow CRM community member Simaranjit researched about this and have come up with a set of workflow activities which let you encrypt and decrypt the fields that you wish. Not only that you can choose between two encryption standards:

AES Encryption

AES (acronym of Advanced Encryption Standard) is a symmetric encryption algorithm.

The method looks like this:

  • From the 128-bit key, AES generates 10 keys of 128 bits each.
  • These keys are placed into 4×4 arrays.
  • The plain text is also divided into 4×4 arrays (128 bits each).
  • Each of the 128-bit plain-text items is processed in 10 rounds (10 rounds for 128-bit-keys, 12 for 192, 14 for 256).
  • After the 10th round the code is generated.
  • Each single byte is substituted in an S box and replaced by the reciprocal on GF (2 8).
  • Then a bit-wise modulo-2 matrix is applied, followed by an XOR operation with 63.
  • The lines of the matrices are sorted cyclically.
  • The columns of the matrix multiplication are interchanged on GF (2 8).
  • The sub-keys of each round are subjected to an XOR operation

MD5 Encryption with TES Algorithm

The MD5 algorithm is a widely-used hash function producing a 128-bit hash value. Due to its vulnerabilities, we have combined the MD5 algorithm with another algorithm Triple DES Cryptography to enhance its performance. A configured alphanumeric string is used for computing the hash key.

Here is a video demonstrating the tool:

Here is the download link: Click here

Note: This is one way of encryption/decrypting CRM data and adding additional security on top. CRM provides encryption over the database as shared on following link:  Click here

Hope it helps and Happy CRMing!

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} Add Record Hyperlink with text in Send Email via workflow in Dynamics CRM

It is a very common scenario to send record URL while sending emails from Workflows in Dynamics CRM.

Ever been in a situation where notifications need to be sent with URL via Email to a user/set of users for example on creation of a new Opportunity.

Using out of box workflow(Settings->Process->New) and Send Email step, this can be achieved easily:

clip_image002

Send Email step Set Properties:

clip_image004

When Email is sent out, it will appear as below:

clip_image006

Notice the way that the record URL does not appear as a hyperlink but full URL.

Here is a simple solution to make record URL appear as Hyperlink:

Navigate back to the Send Email step of the workflow, Click set properties and Select Insert Hyperlink:

clip_image008

Insert Text and select URL as Record Dynamics URL and click OK:

clip_image010

Notice that this time Email body will be generated with hyperlink with a meaningful text:

clip_image012

Remember, Giving attention to Little details creates the best user experience!

Please keep in mind that in internet facing deployments the record URL always points to the external URL. This can be a bit annoying for users as they probably need to authenticate before they can open the record mentioned in the email.

Hope it helps and Happy CRMing!

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

{Code Tip} Get record ID using FetchXml for any entity record based on MAX or MIN field value

I had written some posts a while back on Aggregate FetchXml queries here:

https://dynamicsofdynamicscrm.com/2014/07/23/aggregate-fetchxml-queries-for-dynamics-crm-20112013/

https://dynamicsofdynamicscrm.com/2015/10/01/code-tipaggregate-fetchxml-queries-code-for-dynamics-crm/

Recently in a project somebody referred to my query to first get the highest opportunity estimated revenue and then used a second query for getting the record id by passing a condition for highest revenue returned via the first aggregate query.

There is a lot simpler approach and single query which can be used for scenarios like:

“Get the recordid for the record where field is maximum across all records”

or

“Get the recordid for the record where field is minimum across all records”

Here are some examples below with Opportunity and estimated revenue on CRM online trial data:

Opportunity with highest estimated revenue

<fetch top=1>

  <entity name=opportunity>

    <attribute name=name/>

    <attribute name=estimatedvalue/>

    <filter type=and>

      <condition attribute=estimatedvalueoperator=not-null/>

    </filter>

    <order attribute=estimatedvaluedescending=true/>

  </entity>

</fetch>

Output is as below:

clip_image001[4]

Opportunity with lowest estimated revenue

<fetch top=1>

  <entity name=opportunity>

    <attribute name=name/>

    <attribute name=estimatedvalue/>

    <filter type=and>

      <condition attribute=estimatedvalueoperator=not-null/>

    </filter>

    <order attribute=estimatedvalue/>

  </entity>

</fetch>

Output is as below:

clip_image002[4]

However, in practical scenarios it is always good to do a comparison with second highest or second lowest Opportunity estimated revenue(even more or can filter by some id fields/etc.).

Top 2 opportunities with highest estimated revenue

Output i

<fetch top=2>

  <entity name=opportunity>

    <attribute name=name/>

    <attribute name=estimatedvalue/>

    <filter type=and>

      <condition attribute=estimatedvalueoperator=not-null/>

    </filter>

    <order attribute=estimatedvaluedescending=true/>

  </entity>

</fetch>

Output is as below:

clip_image003[4]

Bottom 2 Opportunity with lowest estimated revenue

<fetch top=2>

  <entity name=opportunity>

    <attribute name=name/>

    <attribute name=estimatedvalue/>

    <filter type=and>

      <condition attribute=estimatedvalueoperator=not-null/>

    </filter>

    <order attribute=estimatedvalue/>

  </entity>

</fetch>

Output is as below:

clip_image004[4]

Hope it helps and Happy CRMing!

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