Saturday, 1 June 2013

CRM 2011 On Premises - External Connector License

 

UPDATE: The External Connector License is obsoleted. The connector was removed from the pricelist in January 2014. From the quick reference guide:
"Access by external (third party) users is included with the Server License; you do not need CALs unless using Microsoft Dynamics CRM client applications. External users are users that are not either your or your affiliates’ employees, or your or your affiliates’ onsite contractors or onsite agents."

 

One of our customers, working on CRM 2011 on-premises, would like to provide the access of CRM data to external parties, like their service providers, customers and other contacts. At present, these people have been created as contacts in CRM. I was asked to prepare high level design, a work model that allows this group of people to access the Dynamics CRM data. I have prepared a design wherein we decided to give access to external parties via the existing web site of my customer. I have also explained that we require External Connector License for this implementation. However, as I never used it before, I would like to collect more details on External Connector License.

I thought once we purchase such uncommon license from Microsoft, they would allow us to assign it to one of the existing Dynamics CRM users and the credentials of that user can be consumed at web portal then to fetch/update CRM data. To validate my understanding, I put the same as question on different Dynamics CRM communities, forums and groups.

I found that my conception was wrong. The External Connector License is just a paper license, a trust license. It has nothing to do with the implementation. To validate the cost for this license, you can refer below link.

http://crmpublish.blob.core.windows.net/docs/Pricing_Licensing_Guide.pdf

You could also refer the below links that help me to confirm it.

http://social.microsoft.com/Forums/en-US/crmdevelopment/thread/6843ac17-4946-4ac4-8e88-22a5fae3e425

http://www.linkedin.com/groups/Can-some-explain-Employee-Self-21231.S.99273324?trk=group_search_item_list-0-b-ttl

Note: The External Connector License is not applicable to Dynamics CRM 2011 online

Please feel free to update this post with your experience about External Connector License.

Saturday, 27 April 2013

Dynamics CRM 2011 – Be careful while setting up an owner of workflow in production environments

Yesterday one of my customers had discussed about the functionality of uncomforting orders, which was stopped working unexpectedly. She said that everything was working well a week ago.

This customer works on Dynamics CRM 2011 online. So, being a system administrator on the same instance, I immediately tried to login to the production server, but unfortunately she had deactivated me as she wanted to assign the same license to one of their new sales team member. So, I asked her to invite me again and provide the admin rights to validate the problem. For, this functionality I had configured a workflow (process) to activate the fulfilled order. So, on very first step I did validate the System Jobs in Settings area. Over there, I found that the some of the workflow records were sitting in listening (waiting) mode, while some had executed successfully.

Upon further inspection, I had discovered that the waiting mode workflows were still owned by me. As she deactivated me on the production server, all the workflow jobs were waiting for me to be activated again. So, we instantly changed the owner of those workflows and resume the workflow jobs. Voila! Everything started working well then.

Hence, the learning is, we should not own the workflows in production environment of our customers, so that they do not face the above problem.

I hope this would be helpful.

Friday, 12 April 2013

Vote me for "2013 TOP 100 MOST INFLUENTIAL MICROSOFT DYNAMICS PEOPLE"

Hello everybody,

I would like to draw your attention to the Microsoft Dynamics Most Influential Top 100 List for 2013.

I am pleased to tell you that I have been nominated and that we are now in the voting process.

If you believe that I deserve it then please spare a few seconds time and take part in below voting poll by giving your invaluable vote to “Ankit Shah”.

http://www.dynamicsworld.co.uk/the-top-100-most-influential-people-in-microsoft-dynamics-list-for-2013-page-1/

Saturday, 6 April 2013

Dynamics CRM 2011 – Send an e-mail on a specific date

 

Currently, I came across a scenario where we had to configure a workflow to send an e-mail on a specified date value on an opportunity entity. On opportunity entity I had a date field “Date 1” and what we were required to do was to send an email to opportunity owner on a date specified in the Date 1 field value. To achieve this, I can configure a workflow with timeout or wait condition set on the Date 1 value.

First, I tried to make it work using the Timeout criteria but it seemed to fail our requirements when the date value is null. So, I decided to work with wait condition.

Following are the steps configured in workflow to meet the requirements:-

image

Step 1: Start workflow on Record Created and Record Fields change. In Record fields change select the Date1 field.

Step 2: Check if Date1 field is null. If the field is null then no need to set any wait condition.

Step 3: Since we have fired this workflow on field change also, we had to make sure that there should not be more than one workflow with wait condition. When opportunity record is created and Date 1 field contains data, a workflow record would be created in wait mode. At the same time, if somebody modifies the date 1 value for the same opportunity record then another workflow record should not be crated in waiting mode to be executed on that particular updated date value. Instead, the previously created workflow should be updated with new value. To achieve this we have taken a custom attribute here DateValue which is a two option field. Default value of DateValue is false. Once a date is entered the value of datevalue gets updated to true. This way we ensure that on field change we don’t create a new wait condition if one already exists.

Step 4: If the attribute value is false means there is no previously existing system job with wait condition. So, Add step of wait condition and set process execution time on or after the Date1 value. If the value is true means the workflow record was already created and nothing to do in that scenario.

Step 5: Add a Send Email step and configure required values.

I hope this would be helpful.

Friday, 29 March 2013

Dynamics CRM 2011 – Limitations of Report Wizard (OOB)

 

Feature List

Report Wizard (OOB)

Custom SSRS Report - BIDS

Remarks

Grouping

Yes

Yes

-

Adding extra rows and columns

No

Yes

-

Expressions Based Values

No

Yes

-

Design, Font, Colour Change

No

Yes

No option available while creating report through wizard. Is possible after exporting and changing the report.

Context specific

Yes (By Default)

Yes

-

Group Summary

Yes (With limited functions)

Yes

Average, Maximum, Minimum, Percentage of total, Sum are the summary types that can be used in report wizard for a field.

Lookup Functionality

No

Yes

-

Hyperlink

No

Yes

-

Use of Sub Reports

No

Yes

-

Charts

Yes (Limited Type)

Yes

Only vertical bar chart, horizontal bar chart, line chart, pie chart are supported in report wizard.

Tools like line, list, image, sub report, gauge, map,
indicator, sparkline

No

Yes

 

Custom Code

No

Yes

 

Functions Available in Expressions

No

Yes

 

Hide Show based on expressions

No

Yes

 

Report filters

No

Yes

 

Parameters

No

Yes

There is no way to add new parameter to the report
through report wizard.

Header - Body - Footer

No

Yes

 

Page Nos. in footer

No

Yes

 

Accessing Current Date Time

No

Yes

 

Entities could be involved in generating a report

One primary entity and it's first level related entity

No such limitation

 

I hope this would be helpful. Please feel free to comment on this post with more limitations.

Friday, 15 March 2013

Dynamics CRM - Trigger a workflow from JavaScript

 
Updated on – 24th Sep 2015
 
Recently I had a requirement to trigger a workflow on click of ribbon button when it meets certain criteria. Refer below link for calling JavaScript function from custom ribbon button.

http://ankit.inkeysolutions.com/2012/01/crm-2011-how-to-use-visual-ribbon.html

The criteria values are checked using JavaScript and if all criteria are satisfied then the workflow is to be triggered. The function below will take two inputs where entityId is the id of the record for which the workflow will execute and workflowProcessId is the id of the workflow which we want to execute.
function startWorkflow(entityId, workflowProcessId) {
  var request = "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
   "<s:Body>" +
     "<Execute xmlns=\"http://schemas.microsoft.com/xrm/2011/Contracts/Services\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">" +
       "<request i:type=\"b:ExecuteWorkflowRequest\" xmlns:a=\"http://schemas.microsoft.com/xrm/2011/Contracts\" xmlns:b=\"http://schemas.microsoft.com/crm/2011/Contracts\">" +
         "<a:Parameters xmlns:c=\"http://schemas.datacontract.org/2004/07/System.Collections.Generic\">" +
           "<a:KeyValuePairOfstringanyType>" +
             "<c:key>EntityId</c:key>" +
             "<c:value i:type=\"d:guid\" xmlns:d=\"http://schemas.microsoft.com/2003/10/Serialization/\">" + entityId + "</c:value>" +
           "</a:KeyValuePairOfstringanyType>" +
           "<a:KeyValuePairOfstringanyType>" +
             "<c:key>WorkflowId</c:key>" +
             "<c:value i:type=\"d:guid\" xmlns:d=\"http://schemas.microsoft.com/2003/10/Serialization/\">" + workflowProcessId + "</c:value>" +
           "</a:KeyValuePairOfstringanyType>" +
         "</a:Parameters>" +
         "<a:RequestId i:nil=\"true\" />" +
         "<a:RequestName>ExecuteWorkflow</a:RequestName>" +
       "</request>" +
     "</Execute>" +
   "</s:Body>" +
 "</s:Envelope>";
 
  var requestURL = Xrm.Page.context.getClientUrl() + "/XRMServices/2011/Organization.svc/web";
  var xmlHttpRequest = new XMLHttpRequest();
  xmlHttpRequest.open("POST", requestURL, false)
  xmlHttpRequest.setRequestHeader("Accept", "application/xml, text/xml, */*");
  xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
  xmlHttpRequest.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Execute");
  xmlHttpRequest.send(request);
}


That’s it. The above common method can be used to trigger workflow from JavaScript.

I hope this would be helpful.



Friday, 8 March 2013

Dynamics CRM 4.0 to 2011 upgrade - ISV tab dilemma

Currently, I am working on one of my projects where in I was told to develop an upgrade plan, to upgrade an organization from CRM 4.0 to 2011. The customer uses couple of third party add-ons and these add-ons have applied some changes in ISV.config file in CRM 4.0. I have prepared my lists for upgrade and started with test runs, during this time I found some unwanted ISV tab(highlighted in below screen shot) on some of the in-built and custom entities.

image

After some binging, I came to know that this is by design. All Custom Menu and Grid Buttons of CRM 4.0 would be upgraded as new tab besides Customize tab in CRM 2011. To know more about this symptom, you can refer below link.

http://support.microsoft.com/kb/2501761

There are couple of solutions which could be applied to get rid of this ISV tab as explained below,

1. You can remove these buttons from CRM 4.0 via updating ISV.config file before upgrade.

2. You can change the RibbonDiffXml part of customization xml file, as described in above link after upgrading an organization.

If you want to apply second solution then you can use Ribbon Workbench tool for CRM 2011. You can download & import this add-on with the help of below URL.

http://www.develop1.net/public/page/Ribbon-Workbench-for-Dynamics-CRM-2011.aspx

And then,

1. Create a solution with just the application ribbon in it.

2. Find the ISV tab

3. Right click on it and select 'Un-customise Tab'

4. Publish your solution.

According to my knowledge the Visual Ribbon Editor tool does not support this feature as of now.

I hope this would be helpful.