319 Friday, May 20, 2016 |
Suresh Maurya
Dynamics CRM Consultant at IBM

Retrieve Records In Dynamics CRM Using FetchXML

Following example demonstrates how to retrieve records in dynamics crm using FetchXML.

Connection string

<connectionStrings>
<add name="connection" connectionString="Url=https://org.crm.dynamics.com; Username=user@org.onmicrosoft.com; Password=password;"/>
</connectionStrings>

C# 

using Microsoft.Xrm.Client.Services;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using System;

namespace CrmSampleCodes
{
class Program
{
static void Main(string[] args)
{
IOrganizationService _service = new OrganizationService("connection");

// Create query using FetchXML.
string fetch = @"
<fetch mapping='logical'>
<entity name='account'>
<attribute name='accountid'/>
<attribute name='name'/>
</entity>
</fetch>";

EntityCollection retrieved = _service.RetrieveMultiple(new FetchExpression(fetch));
System.Console.WriteLine("Query Using FetchExpression");
System.Console.WriteLine("===============================");

// Iterate through returned collection.
foreach (var c in retrieved.Entities)
{
System.Console.WriteLine("Name: " + c.Attributes["name"]);
}
System.Console.WriteLine("===============================");
}
}
}

Core Records in the Sales Process

  • Customers
    • Accounts
    • Contacts
  • Leads
  • Opportunities
  • Quotes
  • Orders
  • Invoices
  • Competitors
  • Sales
  • Literature
  • Product Catalog
  • Currency

SampleDataImportSteps

Difference between GAC, Database and Disk deployments in Microsoft Dynamics CRM

MS CRM Notes


Difference between GAC, Database and Disk deployments

GAC Deployment

  • Plugin assebly registered in GAC
  • Plugins do not backed up with database
  • Plugins cannot be added to the solution
  • Plugins needs IISRESET to refresh
  • Does not support Dynamics CRM online
  • You can refer external DLL assemblies used in Plugin only if they are registered in GAC
DB Deployment

  • Plugin uploaded into the database
  • Plugins backed up with database
  • Plugins can be added to the solution
  • Plugins do not need IISRESET to refresh
  • Supports Dynamics CRM online deployment
  • You can refer external DLL assemblies used in Plugin only if they are registered in GAC
Disk deployments

  • Plugin assembly saved on CRM server hard disk
  • Plugins do not backed up with database
  • Plugins cannot be added to the solution
  • Plugins needs IISRESET to refresh
  • Does not support Dynamics CRM online
  • You can refer external DLL assemblies from the disk and from GAC
Note:
  • With ILMerge external referenced assemblies can be merged together to deploy as a single plugin assemly. This will remove the restriction with Dynamics CRM online deployments, but large assemblies are slow to load.
Misconception:
  • You need to deploy plugin dll on the CRM server to enable remote debugging, but this is not required for database deployment, you will need to put pdb file in C:\Program Files\Microsoft Dynamics CRM\Server\bin\assembly folder on crm server.
Benefits of Database Deployment
  • Only database assemblies can be packaged in solutions
  • Zero service interruption to update a database assembly
  • Simplified organization backup / import.
  • Disk assemblies will not support multiple versions
  • All assemblies consolidated into a single place
  • Sandbox and CRM Online only support database assemblies

Msxrmtools.com

Activity Feeds Introduction (1 of 5): Dynamics CRM 2011

This snack explains how activity feeds allows users to stay up to date on the CRM records that are most important to them. After you complete this snack you will be able to:

• Install activity feeds

• Configure entities for activity feeds

• Disable activity feeds rules

• Auto post activity feeds

Top Companies to Work For in 2016

[Job] - IBM: Application Architect: MS Dynamics CRM, India

 

Company : IBM

Location: Bangalore, Gurgaon, Kolkata, Pune, Hyderabad

Required Technical and Professional Expertise:
Application Architect CRM Roles and Responsibilities: You will: -

  • -Evaluate and review new and existing software applications and technologies.
  • -Identify systems solutions to support business strategies and objectives
  • -Research, design, and develop software solutions to meet specifications.


Preferred Technical and Professional Experience:

Provide on-going support for production applications *Experience : 10 Years to 18 Years

Preferred Education:
Bachelor's Degree

Microsoft Dynamics CRM 2013 Customization New Features - Quick Create Forms

Hierarchical Security Modelling in Microsoft Dynamics CRM 2015

CRM Rules! for Microsoft Dynamics CRM 2011: Intro Demo #1

Email Router Demystified in MS CRM Part -3

Troubleshooting Incoming email issues

Now let’s shift our focus on troubleshooting to incoming email issues.  This is where the Email Router is going to connect to a mailbox and process the mail.  There are a few things to take into consideration when we talk about troubleshooting incoming emails.  The first one is to figure out if the user configuration is set to use Email Router or Forward Mailbox.  Each of these have different troubleshooting steps.

Email Router

Troubleshooting the Incoming Email option for Email Router is relatively simple.  It’s very similar to the Outgoing troubleshooting steps.  For this route, the user’s “Incoming Email” option must be set to Email Router:

Since this user is configured to use the Email Router for “Incoming Email” lets refer to the following mail flow diagram referenced from the earlier blog post (Email Router Demystified – Explanation) in the section labeled “E-mail Router – Incoming E-mails”:

Each step constitutes a potential problem so let’s break down each step below:

  1. Someone must send an email to the user.  Now, it’s important to ensure that the Email Router is connecting to the same mail profile that the user is using within Outlook.  I have actually run into cases where the user’s mail profile is configured for a different mailbox within Outlook and the Email Router is configured to use another one.  Typically, this is seen where the Email Address for the user in CRM does not match what is in Outlook.
  2. The Email Router connects to the user’s mailbox.  There are a few things that could be an issue here:
    1. Connecting to the user’s mailbox: This is done by what is specified in the Incoming profile, specifically what is set under Access Credentials.
    2. If Access Credentials is set to Other Specified, then this is going to be using a service account or the user’s own credentials to connect to the mailbox.  If using a service account, that account must have permissions to access user’s mailboxes.
        • You can give permissions, within Exchange, per mailbox using the Add-MailboxPermission or you can set the service account to use a Role Group such as View-only Organization Management.  However it is done, the credentials must allow for GetFolder and GetItem requests within the mailbox. 
        • Exchange is not the only protocol we can use to process incoming emails.  We can use POP3 as well.  In this case, you need to work with the POP3 provider to determine how to give access to a service account to other user’s mailbox
    3. User has not specified credentials in the Mailbox profile:

      If you have defined the Access Credentials within the Email Router to use User Specified, the user must enter in their credentials within their mailbox profile
    4. The user is not listed in the Email Router Configuration Manager after clicking on Load Data:

      This could be due to the Email Access Configuration for the user not set to Email Router for Outgoing or the user’s email address has not been approved. 
  3. Lastly, once the Email Router has processed the inbox and it has items to send to CRM, it must connect to CRM and query to see if the email should be a CRM email.  A user’s personal options dictate what emails make it into CRM.  If we go into the Personal Options for Email, what is the option for “Select the email messages to track in Microsoft Dynamics CRM”?

    Based on the setting determines what emails are created or promoted into CRM:
    • All email messages – This will promote every incoming email the user receives
    • Email messages in response to CRM email – This will promote only emails that were either sent out of CRM or they were in response to an email that was tracked within the CRM Outlook client
    • Email messages from CRM Leads, Contacts and Accounts – This will promote any emails that have an email address that correlate to a Lead, Contact, or Account
    • Email messages from CRM records that are email enabled – This will promote any emails that have an email address to any CRM records that are email enabled.

Additionally, if you are sending emails between users and you want both the outgoing and incoming emails to be created into Microsoft Dynamics CRM, you must check the Email System Setting for “Track emails sent between CRM users as two activities”

 

Forward Mailbox

If the user’s profile for “Incoming Email” is set to Forward Mailbox, then this will mean that the Email Router is going to be connecting to a Forward Mailbox and processing email from that mailbox:

  

This would mean that we would need to refer to the following mail flow diagram referenced from the earlier blog post (Email Router Demystified – Explanation) in the section labeled “Forward Mailbox”:

Again, each one of these steps indicate a potential break point in the email routing process for the forward mailbox.  You’ll notice that this is very similar to the Email Router method except that the email router is no longer connecting directly to a user’s mailbox but to a forward mailbox.  Additionally, emails are being forwarded as an attachment from the user mailbox into the forward mailbox.  Hence why we call it the forward mailbox.

Since most of what we talked about previous applies to the Forward Mailbox option, I will simply highlight them rather than going through those steps in detail:

  1. Someone must send an email to the user. 
  2. The email is being forwarded as an attachment from the primary user’s mailbox into the forward mailbox.  We use the Rule Deployment Wizard to try and help to automate this task by applying the forwarding rules programmatically for users.  However, there are situations where the Rule Deployment Wizard does not work and you must manually create this rule.  The bare necessities of the rule is that you forward the email as an attachment to the mailbox you designated as the forward mailbox:
  3. The Email Router connects to the Forward Mailbox.  The Forward Mailbox is defined within the Email Router Configuration Manager:
  4. Lastly, once the Email Router has processed the forward mailbox and it has items to send to CRM, it must connect to CRM and query to see if the email should be a CRM email.  A user’s personal options dictate what emails make it into CRM as we discussed above.

    Once the Email Router has been able to process the email for the forward mailbox, it has the ability to delete the message out of the mailbox for the forward mailbox as long as the option within the Forward Mailbox profile has been set:

    This helps maintain the size of the forward mailbox and not to retain emails that are unnecessary for the forward mailbox.

Incoming Protocols

So now that we understand the various breakpoints, we can now determine what tools we can use based on the different Incoming protocols being used.  Troubleshooting incoming issues are the same as troubleshooting outgoing email issues.  Our two options, realistically, is Exchange Web Services (EWS) and POP3. 

Exchange

When we are connecting to Exchange, we are connecting using Exchange Web Services.  We’ve already seen how we can troubleshoot EWS issues by using Fiddler and by using EWS Editor.

POP3

Troubleshooting POP3 issues are like troubleshooting SMTP issues.  To troubleshoot POP3 issues, we use a network sniffer like Microsoft Network Monitor (NetMon).

Color Grid for Dynamics 365

Color Form for Dynamics 365