{Quick Tip}Server side sync vs Email router in CRM 2013/2015: What to choose?

Recently I was researching on Server side sync in CRM 2013 as I have been part of yet another CRM 2013 Upgrade project. One of the required discussion was which is the better option to choose between Server side sync and Email router. I did some of my own research and found out the following from various sources (community and blogs). Yet again, I did not find a composite source as an answer, so decided to compile it into one readable unit:

PROs:

1. Simplified Administration as there is no need to connect to Email router server. All the settings can be managed from CRM UI itself.

2. It can be used to sync tasks, appointments and contacts from Exchange WEB Services. This can avoid the use of Outlook client which needs to be always open.

3. No need of a separate installation of Email router.

CONs:

1. Processing of emails is performed by the Asynchronous processing service. In large environments, there will be a huge load on Async (Backend) servers.

2. The server-side synchronization may show failures because of potential deadlocks in recurring appointment synchronization. In most cases those failures will be successfully retried in next run of server-side synchronization. However, these deadlocks may impact server performance.

Note:

The server side synchronization is not a total replacement for the Outlook client. Most users still prefer to manually pick and choose which emails get tracked inside of CRM.

For existing CRM Online customers, server-side synchronization requires that the organization database be updated to CRM Online Spring ‘14 (305320).

* Exchange Online (emails, appointments, contacts, and tasks) and white-listed POP3/SMTP servers (emails only).

Please ensure you have enough testing and hardware for CRM on-premises and Exchange Server on-premises before using server-side synchronization in your day-to-day environment.

The load and performance impact of server-side synchronization highly depends on the:

– Number of enabled mailboxes

– Load of user usage (daily or peak) on emails, appointments, contacts, and tasks

– Load on the Exchange server and Async server (such as workflows, etc)

– Optimization of the SQL servers

– Data topology of the Exchange server

– Hardware specification and Internet connection of the environments.

The main point to take here in terms of architecture is it uses Async service.

clip_image001

When I see the above image, I feel like Async service and server side sync just adds another thing in my things to do list.

Then I must give a separate backend server to my CRM installation, based on requirements if I am giving too much to my Async service, sometimes I find pity on it.

On the other hand, good thing is that my outlook client does not need to be on all the time. This is good for scenarios where users use CRM a lot from outlook client or majority of your users use outlook client.

It is also good because we do not need an email router or another server at all.

Our fellow MVP does a real good job at explaining further:

http://survivingcrm.com/2014/03/synchronization-vs-tracking-understanding-activity-management-options-dynamics-crm/

Now, to add last bits to my research on it. Known issues with server side sync. IF I already have email router working as in my client’s case, I will just want to be working with the same approach:

http://www.microsoft.com/en-us/dynamics/crm-customer-center/readme.htm#_Server-side_Synchronization_Known_1

Hope it helps!

2014 in review

The WordPress.com stats helper monkeys prepared a 2014 annual report for this blog.

Here’s an excerpt:

The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 27,000 times in 2014. If it were a concert at Sydney Opera House, it would take about 10 sold-out performances for that many people to see it.

Click here to see the complete report.

{Quick Tip}The Art of Being an Agile CRM Consultant

We often keep talking about Agile methodologies and have been using them more recently.

clip_image001

Here are some quick characteristics to develop, to become effective Agile Consultant:

ADAPTABILITY

Clearly everyone associated with agile must be adaptable, since that is the essence of agility, according to the manifesto and those who promote it. 

The AGILE CRM consultant defines improvements to business processes, assists decision-makers in gathering information to make decisions along

with providing technical expertise.

GOAL ORIENTATION

The AGILE Consultant’s goal is to add value to the organization not only by technical means but also by solving business problems.

INNOVATION

The AGILE Consultant challenges the business manager, sponsor, problem owner and users to define the real business problem behind the expressed “needs”

to ensure that the development done is solving the right problem, and not providing the right solution to the wrong problem.

LEADERSHIP

The AGILE Consultant is a leader providing solutions to business problems and continuous improvement to the organization. This leadership factor is not

achieved through authority, but through influence and through facilitation, communication and technical depth.

BUSINESS ORIENTATION

Let’s face it, the agile software development team is focused on the technological issues of producing working software every two weeks. Granted, this

working CRM must be oriented toward the business because it must produce value to the business.

References:

Pullan, Penny and Archer, James, “Business Analysis and Leadership: Influencing Change”, Kogan-Page Limited, 2013
Highsmith, James, “Agile Software Development Ecosystems”, Addison-Wesley Publishers, 2002

Hope it helps!

{DYNAMICS VERIFIED PROFESSIONAL} INTERVIEW WITH AILEEN GUSNI

image

Short Introduction for Aileen Gusni: A passionate Microsoft Dynamics CRM Professional who thinks that she loves Microsoft Dynamics CRM. She is Microsoft Community Contributor – Dynamics CRM

and works for TFP Solutions Sdn Bhdin Malaysia. She has a blog which ranks amongst top Dynamics CRM blogs and is real help for lot of CRM problems. She is an active community contributor also.

1. Name, current job title and social media links please

Aileen Gusni, CRM Consultant

My Blog: http://missdynamicscrm.blogspot.com

My Linkedin Profile: http://my.linkedin.com/in/aileengusni

My Twitter: https://twitter.com/aileengusni

My Slideshare: http://www.slideshare.net/aishev

My Rockstar Profile http://rockstar365.com/aileengusni

2. What does an average day at work look like

CRM-ing, sometimes not happy, sometimes happy CRM-ing J, but most of the time I enjoy my working day.

3. What different roles/Job titles have you had whilst using CRM

Technical Consultant, Functional Consultant, CRM Project Fire-fighter, and any role that I can be.

4. What job did you did before you starting using CRM

I was professionally unemployed (just a recent graduate Spoiled Kid, but I am not a Spoiled Brat J, then I tried to train people and got my first Internship Job), before I got my first CRM job (it was uncanny and unexpected experience I’d never thought before, but I’m lucky)

5. What was the first version of Microsoft Dynamics CRM you worked with and how long have you been using Microsoft Dynamics CRM

CRM 4.0, since 2011, my first job.

6. How do you stay up to date with the CRM

Google of course, plus Social Media with interaction with other experts that I admire.

I also keep looking the profound MSDN Articles with CRM SDK plus TechNet articles.

7. What one feature would you add to CRM Product.

Specifically, I wish CRM would grant my wish to give editable inline view (main grid or sub grid) to all entities, system and custom entities. Because I am frustrated that every customer ask me how to key in bunch of related records at once without opening form one by one.

If I may add another one, I want to have CRM with unlimited customization for some entities, such as Customer Address, Price List Item, Quote Product, etc to have other 1:N Relationship and flexibility in adding fields for those entities that we cannot add more fields.

8. What is the best tool/solution you have used recently

XRM Toolbox of course, because it has many things I want, like the Doraemon J

And if I can add one more tool, please let me mention Ribbon Workbench

9. What CRM certifications do you have, do you try and keep up to date with CRM certifications

All CRM 2011 Certifications, I try to keep up to date but just need a dedicated time to learn and take the exam.

10. How important is it to have good business analytical skills working with Microsoft Dynamics CRM.

It is very important, otherwise it’s just like building a house without enough foundation and material calculation because not enough skills to analyse them. Building the relationship, configure the security model, what potential conflict, what benefit if we use this, not use that, analyse the gap, solve the CRM requirement like a puzzle to construct them together piece by piece into big pictures or in other way from big pictures requirement we need to dismantle them, they all need business analytical skills, not only full programming skills, thus CRM needs Business/Functional Consultant with good analytical skills.

10 How useful is it to have programming knowledge to become a good Microsoft Dynamics CRM Professional?

It is 100% useful, for example, when you prepare a demo environment, you want to show wonderful things to customer, you can at least create a static HTML to make fancier and awesome UI to attract customer or when you need to show business logic, calculation (complex one especially), or import unstructured data you would feel its advantages that having programming skills can reduce your manual effort helping you simplify the data, reduce your waiting time for programmer to get idle time and then help you, you can do it yourself as creative as you like!

11. How often do you travel as a Microsoft Dynamics CRM Professional?

So far I travel to neighbouring countries of my home land, Indonesia.

12. Can you see yourself not using CRM in your career in the future

I hope not, at least not now, because I’m just starting my career in CRM, but if that happened, I would like to improve my skills in Project Management or go back to .NET and Android Apps. However, opening a Restaurant is one of my backup plan J, but I do love CRM and I will do what I love as long as it is possible J

13. What are your hobbies outside of CRM

I love blogging, playing guitar, going to the gym, driving, watching movie, TV series, and sports (My favourite TV series is The Mentalist and my lovely Teams are Germany, Chelsea, Bayern Munich, and Madrid, with my favourite player is Thomas Muller right now, and I used to love Andriy Shevchenko, Michael Ballack, and Miroslav Klose) J, and now, surprisingly, I love cooking J

14. What was the last book you read and what was the last film you watched

Book = Chinese – English Dictionary

Film = Taken 3 (Movie) and The Mentalist Season 7 (TV Series)

15. Has CRM ever got you in trouble with your partner/family.

Not really, only if it is related to overtime thing, especially during tight deadline, Deployment Time (Go Live!) or Server Crash Time, cannot stand to keep answering the phone. But CRM is all about relationship and it can be xRM, so if I want to be a good xRM Consultant, I must know how to handle good relationship with my Partner and my Family J

16. Have you friends ever told you to stop talking/tweeting/blogging about CRM? What does your partner/family member(s) think of CRM

No, they support me, they won’t let me stop what I love to do.

Most of them always think CRM is only Customer Relationship Management. Easiest way to think about something is to decipher its short-form.

17. Tell me something interesting/unusual about yourself

Even though I am Bachelor of Computer Science, honestly I never love coding, not until I chose Networking as my Minor in University, every day dealing with cable and Hardware and also fast-IP Calculation, then I found that Web Programming is more exciting than I thought. After that I got Internship job, it was lucky, I didn’t know anything about .NET but I got this Internship job to build my University website, so I didn’t want to embarrass my University, I just want to finish them all with happy Users.

And surprisingly and suddenly I do love cooking and slowly becoming the house-chef, I never believe that I can love cooking.

I also never believe that I could have interest to write a blog and my blog can be viewed by more than 50k visitors in less than 1 year.

I never believe that I could work oversea, but CRM skills does make it real.

It leads me into conclusion that I believe I am not a good planner, I love make a plan, but I am not a good plan executor, unpredictable, I love doing what I need to do right now.

18. Who is the first CRM Expert you remember reading/seeing

In e-life, he is Scott Durow, the Ribbon Workbench author and creator,

In daily life, I have no choice but it’s my ex-boss.

19. Tips for someone who wants to become a CRM Expert

Learning by doing is the best one I can share and also please be active in the CRM Community, asking questions, keep reading, giving relevant and detailed answers to help the others, not only to get the answer verified. Keep up to date with the experts and keep searching and browsing CRM Latest information and SDK.

If you were trapped in CRM accidentally (like what happened to me), try to love it with all of your heart, CRM is different from Web Programming, you need to understand its structure, relationship, out of the box features, vanilla CRM, SDK, and also its limitation, its inner is much more complicated than its outer, to understand all of them you need to have passion and also need luck plus timing to get it nailed.

Everyone has their own value, know your passion and make passion as your pair in working, keep being professional, but friendly, keep learning from Microsoft articles and expert blogs or community forum, thinking outside of the box, keep building good reputation and relationship, never forget who taught you, who hired you, keep thinking that there is always another good person who is better than you, who is more expert than you.

“”When you work with passion, all seems doable, possible, feasible, and of course comfortable”

Here is a token of appreciation from my end:

image

Note: Before I end this, humble thanks to Ben Hosking from where I got the idea and questionnaire to do this, hope he would also answer me some time on this questions.

Hope it helps!

{Information}Update Rollup 2 for Microsoft Dynamics CRM 2013 Service Pack 1

Notice

This article is being provided as a prerelease notification of changes that are likely to be included with Update Rollup 2 for Microsoft Dynamics CRM 2013 Service Pack 1. The items in this prerelease article are subject to change before the public release of the Update Rollup. When publicly released, this article will be updated to reflect the items that actually were included in the final Update Rollup 2 for Microsoft Dynamics CRM 2013 Service Pack 1 package.

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

Hope it helps!

{Issue Resolution} Auto-UNfollow a record enabled for Activity feeds in Dynamics CRM 2013/2015

In one of my earlier blogs I had shown how to automatically follow a record using code. Some of the community members wanted to unfollow also using code.

Opportunity entity is automatically enabled for Activity feeds, so I will not get to those bits.Here is the code to achieve the same

Link for the auto follow a record using code is : dynamicsofdynamicscrm.wordpress.com/…/issue-resolution-auto-follow-a-record-enabled-for-activity-feeds-in-dynamics-crm-20132015

There is no official code samples available, hence this piece of code also becomes very important:

//ID of the user

Guid userid = new Guid(“CE4C5141-9941-456B-9007-FBC3C5F02E8E”);

  //ID of the record for which auto-follow needs to be disabled

                    Guid pitch = new Guid(“3B5DE3B0-79A2-E411-80DE-C4346BAD5280”);

                   

                    QueryExpression query2 = new QueryExpression(“postfollow”);

                    query2.Criteria.AddCondition(new ConditionExpression(“ownerid”,ConditionOperator.Equal,userid));

                    query2.Criteria.AddCondition(new ConditionExpression(“regardingobjectid”, ConditionOperator.Equal, pitch));

                    EntityCollection postFollowCollection = service.RetrieveMultiple(query2);

                    foreach (Entity postFollow in postFollowCollection.Entities)

                    {

                        service.Delete(postFollow.LogicalName,postFollow.Id);

                    }

Hope it helps!

{Useful to know}Silverlight web resources AND CRM:the way forward

Google first announced their plan to deprecate support for Silverlight in their Chrome web browser last year, and they recently reaffirmed this decision with specific timelines. Support for Silverlight inside Chrome will see deprecation starting in January 2015, with workarounds ending in April 2015. The possibilities were (a) Google might push their timelines out; or (b) Microsoft might come with a solution. Before we talk about paths forward and the future, let’s discuss the current facts.

1. Sometime in January 2015, Google will release a version of Chrome that will prompt users to enable Silverlight when accessing a Silverlight application. Once enabled, the setting should stay indefinitely, and the user won’t be asked again. This is very similar to the functionality seen today in Firefox.

2. Following that change, sometime in April 2015, Google will roll out another update that will disable Silverlight from running in Chrome entirely.  At this point, it will be technically possible to override this behavior in Chrome’s settings, but the average end user can’t be expected to do this.

3. Finally, sometime around September 2015, Chrome will completely lose the ability to run Silverlight with no way to override.  

So in case you have some tools working on Silverlight, web resources in Silverlight in your CRM and you expect it to cross-browser, you will not be able to work through it .

Now the support for other browsers for Silverlight. Referring from Wikipedia:

http://en.wikipedia.org/wiki/Microsoft_Silverlight

clip_image002

Refer Microsoft site:

https://msdn.microsoft.com/en-us/library/gg328358.aspx

Important

Microsoft Silverlight web resources remain supported in Microsoft Dynamics CRM 2015 and Microsoft Dynamics CRM Online 2015 Update for backwards compatibility. For components that will be able to be presented on all clients, we recommend using HTML web resources with HTML5 instead of Silverlight.

HTML5 is the preferred client technology for the web, over web plug-ins like Silverlight and Flash. HTML5 can be consumed from any device (PC, tablet, smartphone, and more) and heavily uses JavaScript (and many powerful JavaScript libraries, such as jQuery) and CSS.

For some, standing up a parallel HTML5 application has taken only hours or a few days; for others it can be more time consuming, depending on the level of customization required. This is the way forward to go.

{ADVANCED XRM DEVELOPMENT} Retrieve country CODE IN JAVASCRIPT in CRM 2013/2015

The below code is SOAP call from JavaScript for retrieving user setting for country code:

HTTP REQUEST
————————————————–
POST https://orgname.crm4.dynamics.com/XRMServices/2011/Organization.svc/web
Content-Type: text/xml; charset=utf-8
SOAPAction: http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/RetrieveMultiple

<s:Envelope xmlns:s=”http://schemas.xmlsoap.org/soap/envelope/”>
  <s:Body>
    <RetrieveMultiple xmlns=”http://schemas.microsoft.com/xrm/2011/Contracts/Services” xmlns:i=”http://www.w3.org/2001/XMLSchema-instance”>
      <query i:type=”a:QueryExpression” xmlns:a=”http://schemas.microsoft.com/xrm/2011/Contracts”>
        <a:ColumnSet>
          <a:AllColumns>false</a:AllColumns>
          <a:Columns xmlns:b=”http://schemas.microsoft.com/2003/10/Serialization/Arrays”>
            <b:string>defaultcountrycode</b:string>
          </a:Columns>
        </a:ColumnSet>
        <a:Criteria>
          <a:Conditions>
            <a:ConditionExpression>
              <a:AttributeName>systemuserid</a:AttributeName>
              <a:Operator>Equal</a:Operator>
              <a:Values xmlns:b=”http://schemas.microsoft.com/2003/10/Serialization/Arrays”>
                <b:anyType i:type=”c:guid” xmlns:c=”http://schemas.microsoft.com/2003/10/Serialization/”>ce4c5141-9941-456b-9007-fbc3c5f02e8e</b:anyType>
              </a:Values>
              <a:EntityName i:nil=”true” />
            </a:ConditionExpression>
          </a:Conditions>
          <a:FilterOperator>And</a:FilterOperator>
          <a:Filters />
        </a:Criteria>
        <a:Distinct>false</a:Distinct>
        <a:EntityName>usersettings</a:EntityName>
        <a:LinkEntities />
        <a:Orders />
        <a:PageInfo>
          <a:Count>0</a:Count>
          <a:PageNumber>0</a:PageNumber>
          <a:PagingCookie i:nil=”true” />
          <a:ReturnTotalRecordCount>false</a:ReturnTotalRecordCount>
        </a:PageInfo>
        <a:NoLock>false</a:NoLock>
      </query>
    </RetrieveMultiple>
  </s:Body>
</s:Envelope>
————————————————–
OutPut In JavaScript
var xml = “” +
“<s:Envelope xmlns:s=\”http://schemas.xmlsoap.org/soap/envelope/\”><s:Body><RetrieveMultiple xmlns=\”http://schemas.microsoft.com/xrm/2011/Contracts/Services\” xmlns:i=\”http://www.w3.org/2001/XMLSchema-instance\”><query i:type=\”a:QueryExpression\” xmlns:a=\”http://schemas.microsoft.com/xrm/2011/Contracts\”><a:ColumnSet><a:AllColumns>false</a:AllColumns><a:Columns xmlns:b=\”http://schemas.microsoft.com/2003/10/Serialization/Arrays\”><b:string>defaultcountrycode</b:string></a:Columns></a:ColumnSet><a:Criteria><a:Conditions><a:ConditionExpression><a:AttributeName>systemuserid</a:AttributeName><a:Operator>Equal</a:Operator><a:Values xmlns:b=\”http://schemas.microsoft.com/2003/10/Serialization/Arrays\”><b:anyType i:type=\”c:guid\” xmlns:c=\”http://schemas.microsoft.com/2003/10/Serialization/\”>ce4c5141-9941-456b-9007-fbc3c5f02e8e</b:anyType></a:Values><a:EntityName i:nil=\”true\”/></a:ConditionExpression></a:Conditions><a:FilterOperator>And</a:FilterOperator><a:Filters/></a:Criteria><a:Distinct>false</a:Distinct><a:EntityName>usersettings</a:EntityName><a:LinkEntities/><a:Orders/><a:PageInfo><a:Count>0</a:Count><a:PageNumber>0</a:PageNumber><a:PagingCookie i:nil=\”true\”/><a:ReturnTotalRecordCount>false</a:ReturnTotalRecordCount></a:PageInfo><a:NoLock>false</a:NoLock></query></RetrieveMultiple></s:Body></s:Envelope>” +
“”;

var xmlHttpRequest = new XMLHttpRequest();

xmlHttpRequest.open(“POST”, Xrm.Page.context.getClientUrl() +”/XRMServices/2011/Organization.svc/web”, false);
xmlHttpRequest.setRequestHeader(“SOAPAction”,”http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/RetrieveMultiple”);
xmlHttpRequest.setRequestHeader(“Content-Type”, “text/xml; charset=utf-8”);
xmlHttpRequest.setRequestHeader(“Accept”, “application/xml, text/xml, */*”);
xmlHttpRequest.setRequestHeader(“Content-Length”, xml.length);
xmlHttpRequest.send(xml);

var resultXml = xmlHttpRequest.responseText;
alert(resultXml);

 

—–

Hope it helps!

Show Error Dialog in Microsoft Dynamics CRM style using Xrm.Internal.openErrorDialog

Unsupported still a good one to know

Debajit's Dynamic CRM Blog

By this time many of you might have already explored the Xrm.Internal namespace and displayed your custom webresources in CRM 2013/ 2015 modal style. Well, if you have not, I suggest you check my blog post https://debajitcrm.wordpress.com/2014/04/29/exploring-the-xrm-internal-namespace-in-crm-2013/ to explore the Xrm.Internal namespace and i bet you would like it.

Coming back to the topic, if we open our custom webresources in CRM modal style, why not show the custom client side errors in CRM 2013 style? If you are thinking how to to do this, you have to come back to Xrm.Internal namespace and explore its Xrm.Internal.openErrorDialog method.

First let us explore the Xrm.Internal.openErrorDialog method. The following is the nomenclature of this method.

So we can see that it accepts three parameters

  • Error Code
  • Message
  • Serialized Exception

Error Code : If you see the nomenclature, it appends “0x” to the error code. It should be a number. If you enter…

View original post 113 more words

Cortana voice commands for Microsoft Dynamics CRM 2015 for phones

Another great feature with CRM 2015 is ability to speak with your Microsoft Dynamics CRM for phones commands if you are using Cortana on Windows 8.1 phones.

Watch this quick video for an overview about using Cortana voice commands on Windows 8.1 phones:

clip_image001 Microsoft Dynamics CRM 2015 Cortana Demonstration (2:00)

You can use the following CRM voice commands with Cortana. Cortana voice commands for CRM are only available in English at this time.

To do this in CRM

Say this

Open an item

CRM open <item> called <item name>.

Example:

“CRM open account called Contoso.”

Variation:

“CRM open account named Contoso.”

Show a view

CRM show <view name>.

Examples:

“CRM show my active accounts.”

Variation:

“CRM show me my active accounts.”

Search for an item

CRM find <item> called <name>.

Example:

“CRM find account called Contoso.”

Variation:

“CRM find account named Contoso.”

Create a new item

CRM create <item type> called <item name>.

Example:

“CRM create contact called Maria Campbell.”

Variation:

“CRM add new contact named Maria Campbell.”

Create a phone call activity

CRM remind me to call <call name>.

Example:

“CRM remind me to call Maria Campbell to set up appointment.”

Create an appointment

CRM schedule meeting to <subject>.

Example:

“CRM schedule meeting to discuss quote with Maria Campbell.”

Create a task

CRM remind me to <task name>.

Example:

“CRM remind me to email Maria Campbell.”

Variations:

“CRM follow up Maria Campbell.”

“CRM follow up with Maria Campbell.”

“CRM follow up on Contoso.”

Open task list

CRM what should I do next?

Example:

“CRM what should I do next?”


Note

The create commands work only with Microsoft Dynamics CRM 2015 and Microsoft Dynamics CRM Online 2015 Update. The other commands work with Microsoft Dynamics CRM 2013 and Microsoft Dynamics CRM Online as well as Microsoft Dynamics CRM 2015 and Microsoft Dynamics CRM Online 2015 Update.

Source: Click here

Hope it helps!