Capture Signature Using Pen Control In Dynamics 365

Step 1: Open form editor create a multiple line of text field with maximum length 15000 and place it on form.

Step 2: Double click the field created in previous step or select field and click change properties.

Step 3: Click “Control” Tab.

Step 4. Click “Add Control”.

Step 5. From the listed controls ,choose “Pen Control” .

Step 6. Click “Add” button.

Step 7. Enable the pen control it for Web/Phone/Tablet and click “OK”.

Step 8. Save and Publish the form.

Step 9. On UCI or Phone/Tablet you will be able to capture signature by draging the pointing device. Clear and OK options are available with pen control.

Step 10. In classic UI the captured signature will look like this.



Create Case Record In Dynamic 365 Using Microsoft Flow On Receiving Mail in Gmail

The recent release of CRM for Dynamics 365 brought many new features. Microsoft flow is one of them. So come , let’s explore more about it.

Microsoft Flow:  “A cloud based tool that can be used to automate workflow across multiple applications and services without the need for developer help.”

Now let’s see the practical implementation of it.

Scenario: To create case record in dynamic 365 on receiving email in gmail.

A case can be originated from various sources line phone , email, web, social networking sites etc.Here we will create a case record through flow with origin source as email.

Step 1. Navigate to Settings->Microsoft flow->My flows

Step 2. Click “Create from blank”


Step 3. Select GMail connector from the list of connectors available.Select Trigger from the list of triggers.Here we will select “When a new email arrives”.

Step 4. Sign in to Gmail with username and password.

Step 5. Now click  “Add condition”

Step 6. Give condition. Here we give condition as Email Subject contains word MSCRM .

Step 7. Now choose action and select a connector. Here we select “Dynamic 365” as connector and “Create a new record” as action.

Step 8. Give Organization , entity name and then give other fields values .Here firstly we create account record which will be taken as customer in Case record later.

Step 9. Add next step to create case record and pass reference of above created account record in Customer field .Select customer type as account.Set Case Title with Email subject .Set values for other fields.Click Save.

Step 10. To test the  flow, I send a mail on gmail account and the subject line of email contains word “MSCRM”.

Step 11. Check in Case Entity a new case record is created.

Good Luck!! Keep Exploring..


  2.             dynamics-365/


URL Encoder-Decoder

The Problem I faced: Yesterday I was going through a CRM Web Api code, there an encoded URL was used that was little difficult to read and understand.

Where did the encoded URL code come from???????  

REST Builder tool -“A code generator that creates JavaScript to perform actions against CRM’s  REST endpoints.”

To know more click here.

MSCRM Developers must be familiar with the REST Builder tool. There is a tab to use predefined query in REST Builder tool. We pass readable fetch Xml code there and when query is built ,we get the code having encoded URL as shown below:

What is URL encoding?Why the URL get encoded ? How the URL get encoded ? Can we encode/decode URL?

Let’s find out the answers

URL encoding  is the practice of translating unsafe characters or characters with special meaning within URLs to a representation that is unambiguous and universally accepted by web browsers and servers.

The characters allowed in a URL are either reserved or unreserved (or a percent character as part of a percent-encoding).

Reserved characters are those characters that sometimes have special meaning, while unreserved characters have no such meaning.

The unreserved characters are:


a b c d e f g h i j k l m n o p q r s t u v w x y z

0 1 2 3 4 5 6 7 8 9 – _ . ~

The reserved characters are:

! * ‘ ( ) ; : @ & = + $ , / ? % # [ ]

For worldwide interoperability , URL have to be encoded uniformly.Browser converts the entered URL into a format that can be transmitted over the Internet.

Yes, we can encode/decode URL

You can try this tool to perform URL Encoding/Decoding operation.

It has user friendly U.I . Simple to use. Just give Input URL .Click required operation (Encode or Decode) button and get the Output URL. Simple.

Have a look..

You can find the tool on

Keep Exploring..




MultiSelect OptionSet

Using MultiSelect Option Set field, we can specify and select multiple values up to 150. This seems like an amazing feature of V9.0. Let’s find out good or bad of it. 🙂

1.Can add up to 150 values available for selection
2.Supported in Advanced Find & Fetch XML queries.
3.Can be used for filtering in views.

1.Can’t be used in Business Rules.
2.Can’t be used in BPF
3.Can’t be used in Workflow
4.Can’t be used as Plugin Filtering Attribute
5.Some Data migration tools doesn’t support MSOS.
6.Can’t be used in calculated & roll up fields.

Set Value Of MultiSelect OptionSet Field
function setFieldValue() {
var picklist = [1, 3];

Get Value from MultiSelect OptionSet Field
function showValue() {
var picklist = Xrm.Page.getAttribute(“new_qualification”).getValue();
// Output: 1,3

Get Text Value from MultiSelect OptionSet Field
function showText() {
var picklist = Xrm.Page.getAttribute(“new_qualification”).getText();
//Output: B.Tech,M.Tech

Retrieve Value Of MultiSelect OptionSet Field using web api
function fetchAccountData() {
var EntityName = “account”;
var accid = Xrm.Page.getAttribute(“parentcustomerid”).getValue();
if (accid != null) {
var id = accid[0].id;
var guid = id.replace(‘{‘, ”).replace(‘}’, ”);
var url = window.parent.Xrm.Page.context.getClientUrl() + “/api/data/v8.0/” + EntityName + “s(” + guid + “)?$filter= statecode eq 0”;
var req = new XMLHttpRequest();“GET”, url, false);
req.setRequestHeader(“OData-MaxVersion”, “4.0”);
req.setRequestHeader(“OData-Version”, “4.0”);
req.setRequestHeader(“Accept”, “application/json”);
req.setRequestHeader(“Content-Type”, “application/json; charset=utf-8”);
req.setRequestHeader(“Prefer”, “odata.include-annotations=\”OData.Community.Display.V1.FormattedValue\””);
if (req.status == 200)
var result = JSON.parse(req.response);
if (result != null && result != undefined)
// Output: “1,3”
// Output: “B.Tech; M.Tech”
for (var i = 0; i < result.new_qualification.split(“,”).length; i++)
// “B.Tech”
// “M.Tech”

Keep Learning!! Keep Exploring!!