Archive

Archive for February, 2009

Business Action for ISVs

February 27, 2009 Leave a comment

We recently kicked off a worldwide tour events to help ISVs understand the potential of Dynamics CRM as a Line-of-Business Application platform.  We know that differentiating your line-of-business applications from those of your competitors has never been more important. If you’ve considered using Dynamics CRM as a line-of-business platform, Silverlight or WPF to build compelling experiences, Office or SharePoint to build on the familiar skills of your end-users or Partner-Hosting or Azure Services to extend you application to the cloud, well then this is the event for you.  We’re hosting a seminar near you that will help you understand how we can help you do that as a valued Microsoft Partner.

Because of the anticipated high-demand, we encourage you to register immediately so you can ensure your attendance at this valuable event.  To register, contact your local Microsoft ISV Evangelist or Partner Account Manager.

I’ve provided an overview and the upcoming event dates on my blog here.

Ben Riga

Fixing Report Snapshots in CRM 4.0

February 26, 2009 Leave a comment

Problem: V4: Report snapshots are never generated when scheduling a Report in CRM v4.0

Cause:
When the report snapshot is being generated, CRM Data Connector for SQL Server Reporting Service (SSRS) attempts to verify the identity of the calling user, it failed in several reasons:

1. We verify the caller by checking the System.Threading.Thread.CurrentPrincipal to see if it is a Windows Principal. Since this code is run from within a Windows Service (Reporting Service), it will be a Generic Principal, not the Windows Principal. The code asserts because of the check.

2. When the SSRS runs under the LocalSystem account, the code treats it as the direct member in the AD PrivUserGroup hence throws the exception.

3. When the CRM Server and SSRS are running in the different machines, the SSRS machine account was not added to the PrivUserGroup so the validation against the machine account failed.

Fix: Fix the issues for the calling user’s validation:

1. Use the static function WindowsIdentity.GetCurrent() for WindowsIdentity and to construct the WindowsPrincipal object.

2. Validate the SSRS machine account for the Windows LocalSystem account as well.

3. Add the SSRS machine account to the PrivUserGroup and PrivReportingGroup in AD.

Where is the fix?

The KB number for the first two issues are 955206 and the fix is part of CRM 4.0 UR2. You can download from the following link: http://www.microsoft.com/downloads/details.aspx?FamilyID=aa671769-61e9-45c4-919f-c88199aa4241&DisplayLang=en

The KB number for the third issue (CRM Server and SSRS run in different machine) is 968243 and the hotfix package is not available yet at this moment. Please contact your support personnel if you want to know when and where you can download the fix. You can also workaround it by adding the SSRS machine name into the PrivUserGroup and PrivReportingGroup manually in AD.

Thanks

Chris Xia

White paper: Performance and Scalability Assessments of an Implementation Case Study

February 25, 2009 Leave a comment

Good day.

The MS CRM E2 team is pleased to announce the release of the white paper, SAMPLE: Performance and Scalability Assessment of Customer Implementation, which is available for download at

http://www.microsoft.com/downloads/details.aspx?FamilyID=e76d8916-81a6-4330-90ae-b24f8263fff8&DisplayLang=en

This paper is based on the results of a performance and scalability assessment that was performed by the UK MCS team on a customer’s implementation of  Microsoft Dynamics CRM. The testing was designed to simulate real world scenarios of an enterprise customer.

This document, which is intended to provide a point of reference for others who are working on similar efforts, contains details of the testing methodology and environment, as well as the attending results of the performance and scalability assessment.

Thanks,

Jim Toland

Performance Testing using DbPopulator

February 23, 2009 1 comment

DbPopulator is a tool used by MSCRM performance team to populate different types of data (qualitatively and quantitatively) in the MSCRM test boxes for performance testing. This tool is available as part of CRM Performace Toolkit (download available in http://www.codeplex.com/crmperftoolkit) and can be used to test SDK Create performance. I will describe how we can do this using DbPopulator.

Getting Started

Download CRM Performance Toolkit from the above mentioned Url and install it into the test machine. After successful installation, you will find DbPopulator tool available in <installroot>\Binaries\DbPopulator directory. You will also find some sample XML files are put under the <installroot>\ CRM4_Perf_Toolkit\dbPopulator\Sample_Xmls directory. These sample XMLs can be used to measure SDK Create performance for different entities. Also, you can measure how performance varies when you increase number of concurrent threads for record creation.

For example, consider unitTest_Account XML. The body of this XML looks like,

<?xml version=”1.0″ ?>

<DbPopConfig>

   <exec threadCount=’1′ />

      <userGroups domain=”<DOMAINNMAME>” webserver=”<WEBSERVERNAME>”

             organization=”<ORGANIZATIONNAME>”>

   <userGroup name=’crmusr’ startidx=’1′ count=’1′ password='<PASSWORD>’/>

</userGroups>

   <objectDist>

      <account count=’10’ save_1=’settag(accountid,account,entityid)’

          save_2=’settype(accountidtype)’>

      </account>

   </objectDist>

</DbPopConfig>

 

You need to set the domainname, webserver and organizationname parameters for your test environment. Also you need to set the test user name and password properly. These are explained in more details in the blog http://blogs.msdn.com/crm/archive/2008/02/29/microsoft-dynamicstm-crm-4-0-performance-toolkit.aspx. Also, set the account count as 1000 so that it takes sufficient time to calculate throughput properly.

Now run DbPopulator as

dbPopulator.exe ..\..\CRM4_Perf_Toolkit\dbPopulator\Sample_Xmls\unitTest_Account.xml –q

 

Remember to use –q switch to run DbPopulator in quiet mode, else the console logging will take some extra time and throughput measurement may not be accurate. After execution, DbPopulator will display the result in console as

Creating entities for crmusr1

User crmusr1 took 19641 ms

 

dbpop Runtime is 30969 ms

The time taken by crmusr1 is 19.641 second for creating 1000 records. DbPop runtime is more because it does some extra processing like creating CrmService etc. So here, we get single threaded account creation throughput as 1000/19.641 = ~51.

Now run the same test after setting threadCount = ‘2’ and count = ‘2’ in userGroup. The result will look something like

Creating entities for crmusr1

Creating entities for crmusr2

User crmusr2 took 21704 ms

User crmusr1 took 21704 ms

 

dbpop Runtime is 33250 ms

Each user has taken 21.704 second to create 1000 user. But they have run in parallel, so we can assume that in 21.704 second, we can create 2000 accounts using 2 threads in parallel. There may be slight non-overlapping timing among the threads, but for all practical estimation purpose, we can ignore them. This result will calculate the account create throughput as 2000/21.704 = ~92 when 2 threads were creating account records simultaneously.

Sample Results

I ran DbPopulator to measure the SDK create throughput for several entities. The below table summarizes the result.

Name of Entity

Thread Count = 1

Thread Count = 2

Thread Count = 3

Thread Count = 4

Thread Count = 5

Thread Count = 8

Account

51

93

100

100

100

97

Contact

50

90

99

100

99

95

Campaign

60

100

103

102

102

100

Task

46

83

90

91

89

89

Email

41

77

95

96

93

89

Quote

36

70

100

100

100

100

QuoteDetail

10

18

25

30

37

45

Invoice

40

76

101

101

101

101

InvoiceDetail

9

16

23

30

36

45

For most of the entities, the create throughput saturates after 3 to 4 threads, whereas few other entities had throughput increased even up to 8 concurrent threads. These results are obtained in a typical test environment (described in below section). The numbers may vary depending on your system’s hardware and software configuration but it will provide you a nice way to measure the Create performance and predict approximate time for uploading data in your system.

Hardware Details

This experiment was done using a four box On Premise configuration with the following server details.

  • Domain Controller: HP dc5750 with AMD Athlon 64X2 4800+ 2.5 GHz processor and 4 GB RAM
  • Windows Server 2008 Enterprise Edition 64 bit
  • Application Server: HP DL 360 with Intel Xeon X5450 3 GHz Dual processor Quad Core and 8 GB RAM
  • Windows Server 2008 Enterprise Edition 64 bit
  • SQL Server: HP DL 360 with Intel Xeon X5450 3 GHz Dual processor Quad Core and 16 GB RAM
  • Windows Server 2003 Enterprise Edition 64 bit with SQL Server 2005 sp2 Enterprise Edition 64 bit
  • Client Machine: HP dc5750 with AMD Athlon 64X2 4200+ 2.2 GHz processor and 3 GB RAM
  • Windows XP Professional Edition sp3 32 bit

All machines were on a gigabit network switch with gigabit NIC’s.

The DbPopulator tool, released as part of CRM Performance Toolkit, provides a nice and easy way to measure SDK Create performance. It can also be used to predict multi threaded upload speed for any MSCRM client application (which uses MSCRM Web Services).

Cheers,

Koushik Bhattacharjee

Demonstrating Mobile Solutions for Microsoft Dynamics CRM

February 23, 2009 Leave a comment

The old school method of demonstrating mobile software, using a camera suspended over a device, is expensive and unwieldy. Fortunately it is no longer necessary. There are a few ways to project a mobile Microsoft Dynamics CRM application on to big screen – let me share one that works with our Mobile Express for Microsoft Dynamics CRM 4.0 Preview and a Virtual PC image of Microsoft Dynamics CRM 4.0 – no device required.

Configure the Virtual PC

I usually demonstrate Microsoft Dynamics CRM using a Virtual PC image, demonstrating on a fully network connected server is easier but they don’t always travel well. I think many of us have our VPCs setup with the loopback adapter so I’ll presume that your VPC is setup to use the loopback adapter for networking with its IP address set to 192.168.0.1. Instructions below presume that you’ve setup the Mobile Express server on the same VPC to a Web server at http://192.168.0.1:8888/ .

Windows Mobile Device with Microsoft Dynamics CRM server on a Virtual PC

Setup Visual Studio

In cases where no device is available for demonstrations, the Microsoft Device Emulator can be used stand alone. The device emulator is best for demonstrating Mobile Express for Microsoft Dynamics CRM on a Virtual PC or for other self contained demonstration environments.

Configure the Virtual PC

1. Install Active Sync 4.5 on your Virtual PC image. Active Sync can be downloaded from microsoft.com at:

http://www.microsoft.com/downloads/details.aspx?FamilyID=9e641c34-6f7f-404d-a04b-dc09f8141141&DisplayLang=en

2. Install the Windows Mobile SDK on to the Virtual PC image from

http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390B&displaylang=en ).

The Windows Mobile SDK requires Visual Studio 2008. The Windows Mobile SDK provides the Device Emulator, the Device Emulator Manager, a set of device types and device skins.

Connect to the emulated device

1. Navigate to \Program Files\Microsoft Device Emulator\1.0.

2. Start the program dvcemumanager .

3. Locate the device image that you would like to use. The Windows Mobile Professional VGA Emulator provides a large image for very high resolution displays. The standard Professional Emulator may be better for projected displays.

clip_image002

4. Click the Actions menu and select “Connect”. The device image will be displayed on screen and will be displayed with a green icon in the emulator manager.

5. In the Device Emulator Manager select the device and then the Actions menu. Click “Cradle”. This will simulate a physical connect from the device to the PC and allow the image to share the host PC’s network connection.

clip_image004

6. Once the device is virtually cradled Active Sync will launch. The first time a given emulator launches you will need to walk through a process of configuring sync for the virtual device.
Setup sync with which ever options you prefer. Enabling sync of tasks, appointments, contacts and e-mail will enable you to demonstrate a broad range of mobile CRM scenarios.

7. Within the emulator, click the Start button and launch Pocket Internet Explorer.

8. Within Internet Explorer enter the URL for the Mobile Express Web server. For a default Mobile Express installation this will be http://192.168.0.1:8888/MobileApplication/ .
Mobile Express for Microsoft Dynamics CRM will be launched.

soti I can’t go without mentioning a commercial screen projector and remote control application that allows you to connect and control a physical device from a PC. Pocket Controller Pro is a stable application with a huge set of device skins and PC based remote control capabilities – allowing you to use your mouse and keyboard on your PC to click menus and input data on the device.

SOTI’s Pocket Controller Pro can be purchased directly from SOTI.net for $35.95 USD:

http://www.soti.net/default.asp?Cmd=Products&SubCmd=PCPro

The use of dedicated projector application will provide you with the best looking demo environment and with remote control will provide the most precise of control over the device.

If folks want more information on how to setup this sort of environment – give a shout and I’ll post the step by step.

Cheers,

Barry Givens

Drowning in Outlook Reminders? This might help.

February 23, 2009 Leave a comment

Today’s guest star is CRM MVP Mike Snyder of Sonoma Partners. He is also the co-author of the books, Working with Microsoft Dynamics CRM 4.0 and Programming Microsoft Dynamics CRM 4.0.

One of the GREAT new features in Microsoft Dynamics CRM 4.0 is the ability to get pop-up reminders in Microsoft Outlook for activities created in CRM. Our company Sonoma Partners uses Microsoft CRM on a day-to-day basis for our own sales, marketing and service and we have a lot of workflow automation setup on our customer records to automatically create follow-ups activities such as tasks and phone calls. By default, Microsoft CRM will create reminders for every record it syncs into Outlook that has a due date. Consequently, a large number of customer records and a large number of automated activities means a large number of pop-up reminders!

Personally, I have found that sometimes these reminders were a bit too much for me and I found myself wishing I had less pop-ups. This is especially true if you don’t include the customer’s name in the activity subject because otherwise you will see a reminder dialog that looks like this (not terribly useful because all the records look identical).

ms1

Fortunately, I picked up a neat little registry setting trick from former CRM Product Manager Michael Lu. By adding the registry setting OutlookSyncDisableTaskReminders to your client computer (not the server) at HKEY_CURRENT_USER/Software/Microsoft/MSCRMClient and setting its value to 1, the Outlook client will not create reminders on activities it syncs into Outlook.

           ms2

This solution won’t work for everyone, but I find that it works pretty well for me.

WARNING: Using Registry Editor incorrectly can cause serious, system-wide problems that may require you to re-install Windows to correct them. Only administrators will have the necessary permissions to perform this modification. Microsoft cannot guarantee that any problems resulting from the use of Registry Editor can be solved. Use the Registry Editor at your own risk.

Cheers,

Mike Snyder

Windows Live ID, a primer

February 23, 2009 13 comments

WLID

Windows Live ID is the authentication tool that is part of the Windows Live Service. With it you get free email, blog page, photo galleries, document storage, and more. Social networking tools such as Groups are also available. Groups allow you to invite people to participate in discussions, document sharing, events and calendars, and more.

Microsoft Dynamics CRM Online uses the Windows Live ID ( WLID ) to authentication who the user is.  You can also integrate the Windows Services with your Microsoft Dynamics CRM application.

Integration with the Windows Live Service can enhance your CRM experience. Using the document storage service, Sky Drive, can allow you to share documents with other users and people not in your CRM system such as customers, business partners, and colleagues.

I’ve created a video that will introduce you to Windows Live ID and it’s services. The video also shows how you can use Windows Live Groups and Document Storage with Microsoft Dynamics CRM.

Windows Live ID Overview

How to integrate your Windows Service Storage – SkyDrive with CRM Online

Also, you’ll want to watch the video by fellow technology specialist Kevin Williamson on how to add users to Microsoft Dynamics CRM Online.

Cheers,

Jon White