You are here

Application Development

Subtleties of the Microsoft Dynamics CRM 2016 Upgrade

Here are 2 observations from our Microsoft Dynamics CRM 2016 upgrade experience (from Online 2015 to Online 2016) that might be helpful to you:

Duplicate detection rules got published – In our initial CRM installation, we had unpublished all existing duplicate detection rules, being not yet ready to employ them.  The upgrade process published the duplicate detection rules, so we needed a post-deployment step to unpublish them again.

Sending an Email Created in a Workflow

I had a situation where I was creating an email in a workflow using the standard step of "Create Email." After the email was created, some custom processing was done on it (specifically, creating a PDF and attaching it to the email). Since this was my first foray into the territory of creating emails in a workflow with custom processing, I thought it would be as easy as setting the status of the email to "Send" and it would automatically get sent. Nope, it's not that easy – but it isn't that hard to get done, either. It does take a little bit of code in a custom workflow step.

Simple FTP File Download/Upload (C#)

Recently, I was working on a solution which required a scheduled download of a hosted file. There are a few samples floating around online of how to do an FTP download/upload, but I figured I would share what I've been using as it is incredibly simple and does the job perfectly.

We utilize WebClient and NetworkCredential, so the System.Net namespace is required. Then, we just supply credentials and call either the DownloadFile() or UploadFile() method which require the source and destination folders - that's it! Below are examples of each.


CRM 2016 Quick Create Forms: How to Re-enable the Save Button

During the Quick Create Form’s save event, let’s say you have some JavaScript validation code and you want to use the fully-supported “preventDefault” to cancel the save if validation fails. In CRM 2016, you’ll notice that the Save button remains disabled, leaving the user no choice but to close the form and start over again. This bug means that you have to either set up the Quick Create in such a way that validation is not necessary or you’ll need to handle all validation during the “On Change” events, rather than “On Save.”

ADX Portal: Dynamic Behaviors in Entity Forms

ADX provides a powerful way to render CRM forms directly on websites. One thing that is not being supported by ADX is the application of business rules, especially the ones that trigger real time changes in the UI. One example is the dynamic appearance/disappearance of UI elements based on the value of a form field. The lack of support makes ADX forms relatively static when we use them out of the box. 

Earn the Nickname "Eagle Eye!"

Thorough testing is key to delivering quality software to our customers. In the software development sphere, we invest time and money to create test plans, suites, cases and scripts. Within these documents, we note the details that need to be verified based on the system features being delivered, providing a great cornerstone for our testing efforts.

Beyond the planning and the documents, though, great testing requires a tester who will:

Filtering a List Using Another List with LINQ

Usually, when filtering data from a database or a collection, you are comparing one or two values to a list of many. However, with a recent application, I found myself needing to filter a list of items using another list. The movies in Figure 1 below provides a good example.

Figure 1. Sample Movie Listing

Custom Entity Icons in Dynamics CRM

Recently, I had been making some seemingly simple adjustments to a CRM environment and ended up uncovering a lot of useful (but not very well-documented) information on icon usage in MSCRM - here is how it all played out.

Users are mentioning that the icons for custom entities in CRM for Outlook all look the same, and don't reflect what they see in the Web UI. Here is what they see:

CRM 2016 E-mails: Defaulting the “To” Field to a Specific Entity

Ever since CRM form rendering has been changed, a lot of unsupported-but-working JavaScript has been rendered useless and alternatives haven’t necessarily been readily available. One example of this would be the method used in CRM 2011/2013 to default the selected entity when the lookup window is opened for a PartyList control, such as the “To” field on the E-mail form.