Sunday, 21 January 2018

July Update for Dynamics 365(V9) is now available for New signup - APAC Region

Long Waited the July update(Dynamics 365 v9) is now available for the new signup in APAC region. Today when i configure a new instance for one of my customers in Singapore region, i was able to select the July update of dynamics 365. but still there is no update available for the existing dynamics 365 instance.

July Update instance:


Existing Dynamics 365 Instance:



Hope this helps for the customers waiting for the new versions signup.

Thanks
Syed Hanifa

Tuesday, 2 January 2018

Dynamics CRM V9 connection Error in Pluging/Console or Custom Web Application/Report Viewer in VS

Recently faced a strange issue in CRM v9 while connecting to Org Service. It was perfectly working before last night. Issues faced  in different scenarios. Am trying to consolidate all here . If any one faces any of the below issue then try the solution given below.

ISSUES:
Not able to login Plugin registration tool (Keep popping up for Credentials)
Not able to see custom entites in Plugin Registration tool
Connection to CRM from Custom Web application & console failed
Can able to retrive data in DataSet in Report rdl but not able to Preview





























ROOT CAUSE:
Its all because of the latest update in the Microsoft TSL(Transport Security Layer) Protocol in SDK assemblies..Microsoft allowed the TSL connection 1.0  and 1.1 for the browsers or client to connect the CRM org.Now Microsoft will support only TSL 1.2 or above going forward(Reference) . If you are connecting your org with the old version of plugin registration tool , then you may face this issue.


HOW TO IDENTIFY:
Use fiddler to check the your server request TSL Version. Install fiddler https://www.telerik.com/download/fiddler



SOLUTION:
1.For Plugin Issue: Update latest SDK from the Plugin Registration Tool 
or Download tools from NuGet

2.For Report: Uninstall Report Authoring Extension and install the latest.(Make sure Installed dll is the latest SDK 9.0). if this doesnt resolve the issue then follow the below step.

On the machine where VS is installed go to the start menu, then type run and then enter. Type in regedit and then OK.

Once the Registry Editor is open, go to: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319
Right click on the name of the folder (the v4.0.30319 folder) and select New, then DWORD. Give it the name of SchUseStrongCrypto and the Value of 1. Exit the Registry Editor, then restart your machine. 

3.For Custom Application or Console App : Include the below reference to your project(to global config file the line before where your client credentials is configured) and change the .Net framework to 4.6.1 and rebuild 
"ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12"



If you can't update you project to the latest assembly version (4.6) then follow the step give by Mr.Massoud in the comment.

IMPORTANT:
4. Modify using TSL to 1.2 through Fiddler . Keep open the fiddler after modifying and try to connect if you dnt have latest SDK or if you were not able to connect with the above methods.

FOR END USERS:
Please upgrade all your browsers(IE,Chrome,Firefox,Safari) which supports TSL 1.2 and  can send the secure request to all your client applications

Saturday, 23 December 2017

Custom Approval Process in Dynamics 365 v9 using Java Script


 NOTE: This will work only in V9 and not applicable for earlier version (8.x and below)

With the new JS method Xrm.Navigation.openConfirmDialog & Xrm.Navigation.openAlertDialog given in the XRM object of the dynamics 365 v9, we can customize for approval process without third party library like Alert.JS
For Example, If you want to send an Quote for Approval process and get the outcome(approved/Rejected), then follow the below steps.

1.Create a two buttons 1.Request Approval 2. Approve and an OptionSet (new_ApprovalStatus)with values (1. Approval Requested 2. Approved 3. Rejected).

2.By Setting Display rule, Show “Approve” button upon change of OptionSetValue to “Approval Requested”

3.Upon click on the “Request Approval” button Set the Value to “Approval Requested” using below code



function RequestApproval () {

    debugger;

    Xrm.Page.getAttribute("new_approvalstatus").setValue(100000000);
    Xrm.Navigation.openAlertDialog({text:"Quote Sent for Approval"});

}
  

4.Use the below code for Approval Button.

function ApproveQuote() {

        debugger;

        var ConfirmString = {
            text: "Are you sure want to Approve?",
            title: "Confirmation Alert",
            subtitle:" This Quote is requested for your approval",
            confirmButtonLabel:"Approve",
            cancelButtonLabel: "Reject"
           
        };
        var OptionalParameter = { height: 200, width: 400 };

        Xrm.Navigation.openConfirmDialog(ConfirmString, OptionalParameter).then(

        function (success) {
                if (success.confirmed)
{
        Xrm.Page.getAttribute("new_approvalstatus").setValue(100000001);

        Xrm.Navigation.openAlertDialog({ text: "You Approved the Request" });
}
else
{
       Xrm.Page.getAttribute("new_approvalstatus").setValue(100000002);

       Xrm.Navigation.openAlertDialog({text: "You Rejected the Request" });

}

},

      function(error){

      var ErrorDetails = error.message;

      Xrm.Navigation.openAlertDialog({text:ErrorDetails});
});

}








Hope this helps






Tuesday, 12 December 2017

Add Sequence Number to records in SSRS report

While we create report using SSRS report for CRM it is good to should the  sequence number like 1,2,3 .... . you can use the below expression in your S.No column to show auto numbering

Expression:
=RunningValue(CountDistinct("YourTableName"),Count,"YourTableName")

How to Check CRM instance is online or OnPremise

Most of the time during the troubleshooting we may need to know whether the instance is online or OnPremise. Based on that we may need to go for different troubleshooting methods. So first we need to identify is it online or premise. Here is the simple JS code which you can run on you browser console to identify

var globalContext = Xrm.Utility.getGlobalContext();
 var instance = globalContext.isOnPremises();
Xrm.Navigation.openAlertDialog({ text: instance });// or you can use simple alert method "alert(instance );"



If the result is False - your instance is Online CRM
If it is True - your instance is CRM is on OnPremise

Friday, 3 November 2017

Limitation of Multi-select OptionSet in Dynamics 365

In the July Update, long waited Multi Select OptionSet is cool. People started using it. So far i haven't seen issues or limitation on any forum. I have faced few issues recently which i wanted to share to benefit others.

Limitations Faced:

1.Multi-select optionset cant be used in the Form Head Section

2.There is no method provided in SDK to query the field values

3.Multi-select option set fields cannot be a calculated or rollup field (single-select option set fields can be a calculated field).

4.Multi-select option sets support only the web client, unified interface, advanced find, FetchXML, Platform SDK, and Client SDK

5.We cannot set default value during the field customization

Featured Of MultiSelect OptionSet:

  • New AttributeType: MultiSelect Option Set
  • The ability to add them to forms, views, and quick create forms, and read-only and editable grids
  • Can add up to 150 values available for selection
  • Select All and Clear selection feature
  • Can leverage existing (select a global) and new option sets
  • Supported in Web Client and the new Unified Interface (coming in July as well)
  • Supported in Advanced Find and FetchXML queries

Friday, 6 October 2017

Customize CRM Portal Default Sign-up



Customize CRM Portal Default Sign-up

Literally it’s good news for who were all working on CRM poral. CRM portal version 8.2 and earlier you can’t customize the Signup. With dynamics 365 July release, now we can change the Signup using custom attributes like NRIC/FIN, Mobile No, email id etc. of CRM portal using Azure AD-B2C.
Azure AD-B2C is an Azure service that does not require an actual subscription, can be started for free, and can go live in Production within certain service limits.

Pros of Azure AD-B2C:
1.    The entire logon experience can be configured from the Azure Portal
2.    Azure AD- B2C will do email verifications for local logons

3.    It can be configured for two factor authentications

4.    Multiple identity providers can be selected as part of the configuration

5.    On selecting a single identity provider, the portal will go directly into the identity provider’s logon page

6.    Azure AD-B2C login pages can be customized
7.    Fields that have to be on a sign-up page can also be selected in the Azure portal

Steps to Customize Logon Screen:

1.  Azure Portal View – Identity Providers Selection (can sign in using email address instead  of user id & External identity like Facebook,Google,Azure etc)

  customer engagement portals


2. Select the data that will be part of sign up attributes(can use any custom attribute)


customer engagement portals

3.Customized Logon page

 customer engagement portals

4.The new sign out experience will sign out from the identity provider and is configurable for each identity provider.


customer engagement portals