Archive

Archive for the ‘CRM Integrations’ Category

Customizing Charts using XML – Part 1

Dynamics CRM 2011 provides a very useful feature called charts. Charts can be designed within charts designer provided out of box and they can also be customized using charts XML. In this post we will look into various customization options available to design charts using XML.

Charts are used to display and portrait information in a meaningful way so that chart’s audience can quickly understand and analyse data trends. Some charts convey message more accurately than other. For example, a line chart conveys trending information better than a pie chart.

There are a handful of chart types available in charts designer such as:

  1. Column chart
  2. Bar chart
  3. Line chart
  4. Pie chart
  5. Funnel chart
  6. Multi-series chart
  7. Stacked charts
  8. Mixed chart
  9. Series chart

Dynamics CRM 2011 uses Microsoft Chart Controls for Microsoft .NET Framework 3.5. This framework is rich in functionality and provides more chart types. Following chart types can be consumed within Dynamics CRM 2011.

Area StackedArea Column StackedColumn100
Pyramid Funnel Renko PointAndFigure
Bar StackedArea100 Doughnut StepLine
Radar Kagi Spline Polar
BoxPlot StackedBar ErrorBar Stock
Range Line SplineArea ThreeLineBreak
Bubble StackedBar100 FastLine
RangeBar Pie SplineRange
Candlestick StackedColumn FastPoint
RangeColumn Point

Let’s dig deep into Chart XML and Customize few of them to unleash their potential.

Selecting a Mail Merge Addon for Microsoft Dynamics CRM 2011

Microsoft Dynamics CRM 2011 is an innovative product with limitless possibilities to extend and customize according to various industry requirements. In last few years, Microsoft has improved CRM product but there are still some features missing specially in the area of mail merge. These gaps have been beautifully covered by many ISV’s by developing innovative add ons to support enterprise CRM deployments.
Today i will discuss selection of a mail merge addon for Microsoft Dynamics CRM 2011. CRM 2011 provides comprehensive mail merge functionality but still some advanced features as below are missing from this version.

  • Ability to display 1-M records
  • Ability to display multi hop away entities records
  • Ability to convert documents in PDF
  • Ability to perform logical / conditional formatting
  • Ability to display Query based records
  • Import Export Templates
  • Security Configuration for Templates
  • Auto Merge


There are two major ISV’s providding mail merge addons.

  • MSCRMADDONs
  • c360


Here is a feature comparison for both ISV’s:

Ability to display 1-M records:
Both addons are very smart at handling 1: M relationships. Task Pane provides 360 degree view of all entities and their relationships as shown below:

In your templates, you will be able to create a 1: M (one to many) relationship in few clicks as shown below:

Ability to display multi hop away entities records
You can build complex relationship using FetchXML tool. Link entity section will provide you a way to attach entities in a relationship. This tool generated FetchXML as per you entity selection and you have an option to use your own FetchXML and build relationships on multi hop away entities as shown below.

Ability to convert documents in PDF
Both addons can convert generated document to PDF as shown below. Moreover, you can create an activity and attach generated document to it.

Ability to perform logical / conditional formatting
Both addons provides limited conditional formatting capabilities.

Ability to display Query based records
FetchXML is standard way to query Microsoft Dynamics CRM 2011 platform. Using FetchXML tool you can build any FetchXML query insert resultant fields to template as shown earlier. Both addons provides FETCHXML support,

Export/Import Mail Merge Templates
Both addons provide template import/export feature. Import tool provides possibility to deploy existing templates to a different organization.

Security Configuration for Mail Merge Templates
Both addons expose Template as a CRM record. In this way, user can benefit from CRM integrated security model to build various permissions on template depending on user security roles.

Auto Merge
Auto merge feature is not included in DocumentCorePack addon. A separate addon is available by MSCRMADDONs for generation of documents automatically from processes.

Enhanced: FTP Server as Document Store for CRM4

Microsoft CRM can store files as annotation but is not a document management system at all. There are many ways to integrate CRM with Document Management Systems. My approach in this article is pretty much utilization of CRM as xRM. So this xRM based solution is built on top of powerful Dynamics CRM platform.

The idea behind this post is a cost effective way to create, persist, and distribute documents. Since document size can increase to GB’s so attaching documents as annotation is not a good idea and can clearly increase the size of database in days and degrade the system performance.

I am using FTP and FTPS protocol to manage documents. At CRM side i have created an entity representing document as a record and then associated this entity where ever required. So here is my entity.

I have document category and sub category (dependent picklist) to categorize and classify my document on FTP Server. I have a due date to trigger my document escalation/follow-up workflows. I have a status reason associated to a document (Draft/Approved/Pending/Rejected/On Hold/Reviewed). I have Upload and Download Button to save and retrieve document from FTP server. In the references section, I have the meta data attached to the document entity. The metadata could be a relationship to case/contact/account or any other custom entity. So in Case entity my document will appear as shown below:

I can instantly view the file without downloading it on local disk by just pressing download button and click open.

So now I can instantly Approve/Reject/On Hold/ Review in CRM by using ISV buttons depending on current user privileges.

I have a full log of actions on my document available with status, user performing action and dates.

I have a comprehensive log of correspondence on this document available as shown below:

I have configurable alerts regarding Pending document/document on hold or documents to be reviewed. They are available to me on daily/weekly/fortnightly/monthly etc. bases and they are right in my outlook with links to my document in CRM.

Also I can utilize these documents online in my customer portals (eService). My documents can be accessed online by using FTP/FTPs and utilized in various ways as below:

Support Portals

Online Product Catalogues

Online Newsletters

Online Product Notices

FTP Server as Document Store for CRM4

Microsoft CRM can store files as annotation but is not a document management system at all. There are many ways to integrate CRM with Document Management Systems. If you are looking for search within document, version control, and publishing workflow then this post is not for you.

The idea behind this post is to utilize CRM structural relationship model and build a Document Store to process documents and also a cost effective way create, persist, and distribute document. Since document size can increase to GB’s so attaching documents as annotation is not a good idea and can clearly increase the size of database in days.

I am using FTP and FTPS protocol to manage documents. At CRM side i have created an entity representing document as a record and then associated this entity where ever required. So here is my entity.\

 I have document category and sub category (dependent picklist) to categorize and classify my document on FTP Server. I have Upload and Download Button to save and retrieve document from FTP server. In the references section, I have the meta data attached to the document entity. The metadata could be a relationship to case/contact/account or any other custom entity. So in Case entity my document will appear as shown below:

 

So now I can apply approval workflows in CRM whenever a new document is created.

 

Also I can utilize these documents online in my customer portals (eService). My documents can be accessed online by using FTP and utilized in various ways as shown below:

Auto Complete Recursive/Waiting Workflows – Microsoft CRM 4

Microsoft Dynamics CRM provides very powerful workflow designer tools to create workflows for various business scenarios. Waiting workflows are one of them. Very often, it is required to create waiting workflow on dates. So if a date is changed the waiting workflow remains in waiting state and date change executes another waiting workflow. So this aggregation of workflows affects CRM Server performance and application functionality.

Recently I have created a custom workflow activity to kill these waiting workflows in a recursive workflow. So I would like to share my experience with all of you.

I am in a condition to create a waiting workflow to reschedule my activity periodically i.e. recurring appointments, Auto Reorder (Sales Order) etc. My workflow is fired on Create of activity/Order and on change of Next Due date/Next Order Date. So if the user has changed Next Due Date or Next Order Date, the workflows in waiting remains in waiting and also a new Waiting workflow is fired. My aim is to kill the existing workflow as it is invalid now and start a new waiting workflow with updated information.

My workflow name is Auto Reschedule Activity. Here is the description of my workflow:

Start:
                Wait for Next Due Date == Today
                                Reschedule Activity Accordingly
                                Recursive Call: Auto Reschedule Activity
End

What i am looking for is:

Start:
                Check if there is an existing workflow with same Workflow ID, Entity ID and in Waiting State.
                                Then Kill that workflow.
                Wait for Next Due Date == Today
                                Reschedule Activity Accordingly
                                Recursive Call: Auto Reschedule Activity
End

So I started with a custom Activity to fetch workflows in waiting state with same name and regardingobjectid:

I created a query object in my custom workflow activity:

QueryExpression query = new QueryExpression();
query.EntityName = “asyncoperation”;
 query.ColumnSet = cols;

And created 3 conditions as below:

ConditionExpression c1 = new ConditionExpression();
c1.AttributeName = “name”;
c1.Operator = ConditionOperator.Equal;
c1.Values = new Object[] {‘My workflow Name’}; //Workflow
ConditionExpression c2 = new ConditionExpression();
C2.AttributeName = “statecode”;
C2.Operator = ConditionOperator.Equal;
C2.Values = new Object[] {1}; //Waiting
ConditionExpression c3 = new ConditionExpression();
C3.AttributeName = “regadingobjectid”;
C3.Operator = ConditionOperator.Equal;
C3.Values = new Object[] {context. PrimaryEntityId}; //Waiting

So now I have all the waiting workflows regarding my activity. Ideally there will be only one workflow in waiting state all the time. This workflow will be responsible for rescheduling.

So now is the time to kill the outdated workflow. So here is the code for setting that workflow complete/cancelled.

foreach (BusinessEntity be in bec.BusinessEntities)
{
                    asyncoperation async = (asyncoperation)be;
                    async.statecode = new AsyncOperationStateInfo();
                    async.statecode.Value = AsyncOperationState.Completed;
                    service.Update(async);
}

You can improve this workflow utility to add lot more functionality to workflow designer.

HTML Content Editor in CRM4

It is often required to format and validate HTML contents in CRM 4. Here is a quick way of integrating a JavaScript WYSIWYG Editor. You can find many open source as well as 3rd part JavaScript WYSIWYG Editors. The editor I have used in my post is from TinyMCE – Javascript WYSIWYG Editor.

TinyMCE is a platform independent web based JavaScript HTML WYSIWYG editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems

So here is a step by step process to integrate this editor to CRM4.

Step One:

Create an ASPX page with only one HTML TEXTAREA control and a Submit Button. TextArea control will hold the content editor and button will move the generated HTML to crmForm Controls.

<asp:TextBox ID=”Content” runat=”server” TextMode=”MultiLine”></asp:TextBox>

    <div>

        <asp:Button ID=”btnSubmit” runat=”server” Text=”Submit”

            onclick=”btnSubmit_Click” OnClientClick=”javascript:OnSubmit();” />

        </div>

    </form>

 And copy the script as provided below:

This Script can be found at http://tinymce.moxiecode.com/examples/full.php#

<script src=”<your installation path>/tiny_mce/tiny_mce.js”></script>

<script>

tinyMCE.init({

                // General options

                mode : “textareas”,

                theme : “advanced”,

                plugins : “safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,imagemanager,filemanager”,

 

                // Theme options

                theme_advanced_buttons1 : “save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect”,

                theme_advanced_buttons2 : “cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor”,

                theme_advanced_buttons3 : “tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen”,

                theme_advanced_buttons4 : “insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage”,

                theme_advanced_toolbar_location : “top”,

                theme_advanced_toolbar_align : “left”,

                theme_advanced_statusbar_location : “bottom”,

                theme_advanced_resizing : true,

 

                // Example content CSS (should be your site CSS)

                content_css : “css/example.css”,

 

                // Drop lists for link/image/media/template dialogs

                template_external_list_url : “js/template_list.js”,

                external_link_list_url : “js/link_list.js”,

                external_image_list_url : “js/image_list.js”,

                media_external_list_url : “js/media_list.js”,

 

                // Replace values for the template plugin

                template_replace_values : {

                                username : “Some User”,

                                staffid : “991234”

                }

});

</script>

 

 

Step Two:

Write two JavaScript functions to handle Onload and button submit events:

Onload will load the generated HTML to Editor and On Submit will submit form and load Generated HTML back to crmForm.

function OnSubmit()

{   

    document.myform.submit();   

    window.parent.document.forms[0].all.end_content.DataValue = document.getElementById(‘content’).value;

}

 

function OnLoad()

{

    document.getElementById(‘content’).value = window.parent.document.forms[0].all.new_content.DataValue;

}

 

Step Three:

Place this page at ISV/ folder and use an IFRAME at the form where you want this editor to be visible. Set the IFRAME src to this aspx form and you all set to go.

 aaa

 

 

Generated HTML in crmForm control.

 aa

 

Let me know in case you need any assistance or suggestions.

xRM – Designing Survey Applications in Dynamics CRM

I have seen many people talking about designing survey applications in Dynamics CRM. I have analysed different approaches to design survey application and their integration with Dynamics CRM 4.0 during my stay at OA Systems.
  CRM survey comparison

Using WSS/MOSS 2007

WSS 3.0/MOSS 2007 provides a very comprehensive tool for planning, designing. Executing and analysing surveys. Following feature are provided out of the box in WSS/MOSS:
• Planning/Designing Survey
• Branching Survey
• Various Question Types
• Comprehensive analysis tool
• Executing survey

MOSS survey 1

MOSS survey 2

MOSS survey 3

MOSS survey 4

MOSS survey 5

Pros 

  1. Out of the box tools for Designing, Distributing, Executing and Analysis
  2. WSS 3.0 is Free so no Licensing Cost
  3. No Development Cost as its out of the box

Cons

  1. Data will be saved outside CRM
  2. Unavailability in offline client

WSS/MOSS survey can be integrated with MSCRM using IFRAME. This is a loose integration and data will be saved and presented in WSS/MOSS and not in CRM.

 Using InfoPath
Survey can be designed in InfoPath/Windows Form Server. InfoPath forms can be transmitted and rendered in IE. InfoPath Forms can collect information and save the survey response. This is also not ideal solution as data is saved in InfoPath forms and a comprehensive analysis tool needs to be developed.

infopath survey

Pros 

  1. Surveys can be designed in InfoPath
  2. Can be distributed using Online or by sending emails

 Cons 

  1. InfoPath required for Email Surveys
  2. Analysis tool needs to be developed for Response analysis and reporting

Custom Solution in CRM (xRM)
Custom solution can be developed with enough development effort. In this solution, survey is planned/designed and analysed in MSCRM but executed using Custom web application. This custom web application will be integrated in CRM or rendered online to execute Survey and collect survey response.

This solution provides access to survey data using web client, outlook online and outlook offline.

crm survey

Pros

  1. Available web, online and offline clients
  2. Fully supported and upgradable
  3. Executed through Custom Web application
  4. Survey Data and Response will be saved in Dynamics CRM

 Cons 

  1. Considerable development effort is required
  2. License is required in order to expose CRM data to non users

OA Systems Ltd

OA Systems are a specialist supplier of Microsoft Dynamics CRM, Business Intelligence and Office Collaboration software and services including Microsoft Office Sharepoint Server.

Whether it’s Customer Relationship Management (CRM) or Business Intelligence (BI), a successful deployment goes beyond just the software and its implementation. It requires a complete business strategy involving a number of factors: processes, technology and professional services.

Please comment or send your suggestions/issues at ayaz.ahmad at hotmail dot com.

Follow

Get every new post delivered to your Inbox.

Join 59 other followers