Quantcast
Channel: Microsoft Dynamics CRM Team Blog
Viewing all 592 articles
Browse latest View live

Recover your deleted CRM data and recreate them using CRM API

$
0
0

Have you ever lost some your business records in Microsoft Dynamics CRM by accidently deleting them? Are you wondering how to recover them re-create them in CRM, without having to go through much of the tedious manual efforts.

Prior to Microsoft Dynamics CRM 2011, we used the “soft-delete” method, where when someone deleted a record, the record will not be actually deleted from the database immediately. Instead the record would be internally marked with IsDeleted = true, and there will be a CRM Deletion Service which will run an Asynchronous System Job once a day, which would actually pick up the records marked with IsDeleted = true and actually delete them from the database. So you could have used workarounds to recover the recently deleted data if it had not yet been deleted by the Deletion Service.

With CRM 2011, there are no more soft deletes in CRM, the record is actually deleted from the database right away. So, this becomes important than ever before. But CRM has the very powerful “Auditing” capability. Provided, you had Auditing turned on for those records, you can look at the Audit logs and find out all the changes that happened on your record including the deletion.

In this blog, I am going to walk you through a simple way with which you can use Audit logs to recover your lost data and recreate them in CRM. Of course, there will be minimal manual effort involved, but since we are using the CRM API for most of the recovery/re-creation work, this will definitely save you a lot of time, especially if you have a heavy volume of records you want to recover.

How do I find the Audit record I need to recover

In the web application, go to Settings->Auditing->Audit Summary View.

You can use the various filters and find the atleast one audit record for the entity you want to recover. Right click the audit record, and say copy a link. This copies the url to Audit Record including the Id. Paste the contents into clipboard, and you can find out the Id of Audit record.

How do I use the sdk to re-create the entity from the Audit record:

Once you have the Audit record’s Id, you can use the following code that uses the CRM API

// _service is the OrganizationService. // Please refer to the samplecodes in crm 2011 SDK on how to create this _service. // Guid of the Audit Record // E1CFF208-277B-E011-BB2B-001F29E1FC88 is the Id of the Audit Record in this example Guid auditId = new Guid("E1CFF208-277B-E011-BB2B-001F29E1FC88"); RetrieveAuditDetailsRequest request =new RetrieveAuditDetailsRequest(); request.AuditId = auditId; RetrieveAuditDetailsResponse response = (RetrieveAuditDetailsResponse) _service.Execute(request); AuditDetail auditDetail= response.AuditDetail; Audit audit = (Audit) auditDetail.AuditRecord; EntityReference entityAudited = audit.ObjectId; Guid entityId = entityAudited.Id; string entityLogicalName = entityAudited.LogicalName; // Retrieve the audit records for entity. RetrieveRecordChangeHistoryRequest changeRequest = new RetrieveRecordChangeHistoryRequest(); changeRequest.Target = new EntityReference(entityLogicalName, entityId); RetrieveRecordChangeHistoryResponse changeResponse = (RetrieveRecordChangeHistoryResponse)_service.Execute(changeRequest); AuditDetailCollection details = changeResponse.AuditDetailCollection; for (int count = 0; count < details.Count; count++) { if(typeof(AttributeAuditDetail).Name == details[count].GetType().Name) { AttributeAuditDetail detail = details[count] as AttributeAuditDetail; // This is a safety check to verify // if the audit record is for the delete operation if(detail.NewValue == null && detail.OldValue != null) { Entity entity = detail.OldValue; _service.Create(entity); // The audit records are recorded in the order // from latest to older. So, it's ok to break since you've recreated // from the latest snapshot of the entity, just before deletion break; } } }

Instead, if you’re able to find exact audit record for the delete operation you want to recover, you can simply use the following code to recreate the record, instead of the code described above:

// AACFF208-277B-E011-BB2B-001F29E1FC88 is the Id of the Deletion Audit Record Guid auditId = new Guid("AACFF208-277B-E011-BB2B-001F29E1FC88"); RetrieveAuditDetailsRequest request =new RetrieveAuditDetailsRequest(); request.AuditId = auditId; RetrieveAuditDetailsResponse response = (RetrieveAuditDetailsResponse) _service.Execute(request); _service.Create(response.AuditDetail.OldValue);

You can use the sdk calls to retrieve the id of the audit record itself without going through the web UI, but to keep this simple, in this example, I’ve used the web UI method to filter out the Audit records to find the one I need to recover. Also if you have a huge volume of data, this becomes handy and you can just find the AuditIds and add to a list and loop through them.

Hope this helps and makes your recovery of data a smooth experience!

Uma Anbazhagan




Microsoft Dynamics CRM 2011 Online - Go Live Checklist

$
0
0

We’ve designed the Go Live Checklist to improve your overall experience with Microsoft Dynamics CRM Online, even before your business begins using the solution.

This document is a compilation of common configuration settings and tasks to help keep your CRM Online organization optimized so you can focus on what’s most important. This document also includes important online resources your entire business can leverage over and over again.

Who is this document for?

The Go Live Checklist is tailor made for every Microsoft Dynamics CRM Online Admin and user. It was created by the Microsoft Dynamics CRM Technical Support Team in hopes that it would improve your experience with our product.

Cheers,

Rich Choi



International Highlight: Dealing With Two Surnames

$
0
0

Today’s guest blogger is CRM MVP Leon Tribe. You can follow him on his blog, Leon’s CRM Musings.

Quieres este articulo en Castellano? Aqui lo es:
http://www.elblogdedynamicscrm.com/post/2011/05/10/Trabajando-con-dos-apellidos.aspx

While uncommon in English-speaking countries, people from Spanish-speaking countries often have two surnames; one from each parent. As my wife is Peruvian in heritage, we have followed this tradition and therefore the surname of my children is ‘Tribe Aviles’. Both children will hand ‘Tribe’ down to their children.

On casual occasions the father’s surname is used but for more formal situations, both are used. For example, in an e-mail my son would sign ‘Orlando Tribe’ but on his passport it reads ‘Orlando Tribe Aviles’.

One obvious consequence of this is the usual security question of ‘mother’s maiden name’ is useless in Spanish-speaking countries as it is in their full name. A more subtle consequence comes from trying to store this in Dynamics CRM.

What We Have To Work With

This is the default appearance of the Contact form in Microsoft Dynamics CRM.

image

We have a ‘First Name’ field, a ‘Middle Name’ field and a ‘Last Name’ field. We have no additional ‘Mother’s Maiden Name’ field.

Method 1: Using The Last Name For Both Names

In this case, as shown in the above screenshot, I have populated the Last Name field with both names. The Contact’s name populates correctly at the top of the form and if we set the full name convention to be ‘Last Name, First Name’, it will appear as “Tribe Aviles, Orlando” which makes sense. The problem with this approach is if I need to send an informal e-mail or message to Orlando, I cannot address him as ‘Orlando Tribe’ but must use the formal version.

Method 2: Using The Middle Name Field To Store The First Surname

image

After a bit of internet research, it appears this is common practice in the USA but causes a number of problems. The first one is the full name will not populate correctly and needs to be adjusted (Settings-Administration-System Settings). However, in a database where there are people with ‘true’ middle names it becomes confusing which are surnames and which are middle names. This will become impractical if we need to send out informal letters where we would need to use <First Name> <Middle Name> for people with a Spanish name and <First Name> <Last Name> for those with an English Name. We have similar problems if we need to send out a formal letter.

Method 3: Adding a New Field For The Mother’s Last Name

image

This one is not a bad compromise. We can send out formal and informal communication without too much difficulty. The only downside is the Full Name shows the informal format, not the formal one. also, you will need to add the Mother’s Last Name field to the searchable fields for Contact.

Method 4: Adding Fields For The Two Surnames And Combining Into The Last Name

Given I am in Australia and not South America or Spain I thought I would ask someone who is affected by this every day, fellow CRM MVP Jimmy Larrauri. He has a solution which works well for him; he adds two additional fields to CRM for the two surnames and then uses JScript to combine these into the Last Name field.

image

This provides all the advantages of the first method with the benefit of being able to use either of the two surnames, as desired. If JScript seems like too much hard work, you could also relax the Last Name from being compulsory and then use a workflow to populate the Last Name field, after saving the Contact record.

Conclusions

If you are working with Spanish speaking customers you may need to accommodate their needs when storing names, such as the capture of two last names. As with all design considerations, there are a number of different ways to achieve a similar outcome. The key is in understanding what information is to be stored and how it is going to be used. When this is understood, the best method can be chosen to meet the needs of the customer.

Cheers,

Leon Tribe

Troubleshooting CRM-Azure AppFabric Integration

$
0
0

imageMicrosoft Dynamics CRM 2011 has this cool new feature which enables the integration with the Windows Azure platform AppFabric Service Bus. This is a new generation approach that enables you to integrate your CRM implementation with your other Line of Business (LOB) applications in an exciting new ways, without having to deal with the problems in other traditional approaches like polling, opening up firewalls on your secure network, etc.

To learn more about this feature, please refer to the “Azure Extensions for Microsoft Dynamics CRM” in the CRM 2011 SDK. Also please check out my other blog article that helps you get started with this feature in no time.

The purpose of this blog is to save you time by listing solutions for common errors you may run into while working with this feature.

Wondering where run-time error details will be listed in CRM when there is a failure? Here you go!clip_image002

Since the “Service Bus” plug-ins executeasynchronously, there will be a system job created every time a service bus plug-in is triggered.

When there is an error inside your CRM deployment/organization, the related system job will be set to a “Failed” state. In case of an external failure (an error outside of CRM), the system job will be set to a “Waiting” state, and the system job will be retried with exponential back-off. The details of the error (if any) will be available in the message and details section of the system job, when the job is in waiting (for re-run) state or failed state.

Following is the list of common issues you may face and their solutions:

1. Service integration issuer information not found:

System job State: Failed

What does this mean? This indicates that the AppFabricIssuer information (public certificate) is not present in the MSCRM_CONFIG database of Microsoft Dynamics CRM.

How to fix this: Execute the powershell command “set-crmcertificate” to set the AppFabricIssuer information in the config db. Refer to the SDK topic, Configure CRM for Integration with Windows Azure , for the syntax of this command.

2. Service integration issuer certificate not found:

System job State: Failed

What does this mean? This indicates that the AppFabricIssuer private certificate (corresponding to the public certificate specified in “AppFabricIssuerInfo”) could not be found in the certificate store.

Either there is no match or there is more than one match found in the certificate store (while performing a search by the StoreFindType specified for the AppFabricIssuer certificate) of the machine where Microsoft CRM Asynchronous Service role is installed. Microsoft CRM by default uses FindBySubjectDistinguishedName as the StoreFinType for AppFabricIssuer.

How to fix this: Install the AppFabricIssuer private certificate into the certificate store on Async server.

3. KeySet does not exist:

System job State: Waiting

Inner Fault in system job details: System.Security.Cryptography.CryptographicException:Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #570DF9F0

What does this mean? This indicates that the account under which Async service is running does not have permission to access the certificate.

Note: To view the current permissions on the certificate, right click the certificate from the certificate store, and choose All Tasks-> Manage Private Keys. For more information on the certificate store, refer to the MSDN topic How to: View Certificates with the MMC Snap-in.

How to fix this: Grant “Read” permission for the account under which Asynchronous service is running to access the cert.

4. 400 Bad Request [OR] 401 Unauthorized [OR] An output claim token cannot be issued because the issuer and claims in the request do not map to any output claims for this scope:

System job State: Waiting

What does this mean? This means CRM does not have access to post to the Azure Service bus endpoint.

How to fix this: Set up issuer, scope, rules, and token policy in Azure ACS using the acm.exe utility so that CRM can post to the service bus. Or, you can use the “Configure ACS” button in the Plug-in Registration tool to do this for you. For more information, refer to the SDK topic Register an Azure-aware Plug-in with Plug-in Registration Tool.

5. There was no endpoint listening at https://<solutionname>.servicebus.windows.net/<path> that could accept the message:

System job State: Waiting

What does this mean? This means there is no listener listening at the specified endpoint in Azure.

When the system job trigerred by your servicebus plugin is executed, Dynamics CRM is sending the message to the registered service endpoint in Azure AppFabric– so a listener web service is expected to be running to process that message synchronously.

So, this error means that your listening service is not running and listening at the specified endpoint in Azure AppFabric. This error is applicable for queue/oneway/twoway/REST bindings. (But only for Queue binding, the endpoint may still exist just for a few minutes even after the listener has stopped listening, after which it will not exist, until you start listening again).

How to fix this: Start your listener at the same endpoint where CRM is trying to post, and make sure it is listening successfully.

6. Mismatched config:

System job State: Waiting

Inner Fault in system job details (sample): The message with Action

'http://schemas.microsoft.com/xrm/2011/Contracts/ITwoWayServiceEndpointPlugin/Execute' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver.  Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).

What does this mean? You have a mismatched configuration. For example, your service listening in Azure AppFabric implements One-way service contract but is registered as a two-way/Queue/Rest contract in the ServiceEndpoint record in CRM.

How to fix this: Update the contract in your ServiceEndpoint record in CRM to match the contract your listener service in AppFabric is implementing or vice versa.

Cheers,

Uma Anbazhagan



Integrating Mapping with Microsoft Dynamics CRM 2011

$
0
0

imageToday latitude and longitude can be important in your daily use of Microsoft Dynamics CRM 2011 if you take the time to understand the impact and what it means for your CRM data but before we get to the CRM aspect it’s time for a quick update on GPS and also read on to the end to learn of a free way for you to experience the power of CRM + Bing Maps with a solution from InfoGrow Corporation.

Latitude and Longitude are two simple numbers that specify your position anywhere on earth however while knowing the latitude and longitude of your location is useful, how can you get this data in a new location? That takes us to the GPS or Global Positioning System which as most readers know is a series of satellites operated by the US Department of Defense. This in combination with a GPS receiver is what makes our daily lives and commute so much easier and helps us avoid getting lost while driving in unknown locations or be able to find the nearest coffee shop.

In fact while in the past you had to buy a dedicated navigation device, today most smartphones now have an integrated GPS receiver which can calculate and make available your latitude / longitude coordinates which can then be used by applications. While currently operated by the US Department of Defense you may not be aware that similar global positioning systems are under consideration / development by Europe (Galileo), Russia (Glonass) and China (Compass) and in fact the first smartphone that can receive data from the Russian system (Glonass) is already in the market.

Ultimately what you get from these orbital satellite systems is the ability to accurately determine your location on planet earth in 3d space and therefore also work out how to get somewhere else. Okay but enough with the history lesson what’s this got to do with Dynamics CRM and how can latitude and longitude help me?

Let’s talk about some examples of how using latitude/longitude with CRM data can be useful

Getting to another location – the scenario we all use

In this scenario you already have entered your latitude/longitude for your office address into Dynamics CRM 2011. If not you may have used a service like Bing Maps to geocode your address into a set of latitude/longitude coordinates and stored them in Microsoft Dynamics CRM 2011. (Geocoding refers to using a system or service to turn a street address into latitude/longitude coordinates)

As you can also do this with a destination address you can then using software to calculate a route between your office and the customer.

How many customers are in a particular area?

Let’s say you are travelling to location X and want to also visit customers in a radius of say 10 miles of that location. If you have geocoded all of your customer addresses you can easily work out all of the customers nearby and visit then.

Display all of your customers on a map

Couldn’t be simpler, display a map of the USA for example and plot a point for every one of your customers. You might be surprised that you have not targeted companies in a particular area for example. Sure you could look at the data directly but displaying on a map makes it so much more visible.

If you also display the areas your employees cover you might find that you need to hire a new employee to cover an area which is growing rapidly. Seeing this plotted on a map is far simpler than trying to work it out from lines of data.

Geofencing

Let’s say you operate group of field service engineers and want to tie each engineer to a particular region you define on a map. Using real time tracking your headquarters can be alerted if a vehicle strays out of this defined boundary based on its determined latitude/longitude coordinates (more on this scenario on a follow up blog).

Who is the nearest sales guy?

Perhaps you can use your CRM system to track your sales people in real time as they travel about the country. With a simple service on their phones they could be transmitting their position every 15 minutes or so. With that data you could respond when a new lead comes in and have the nearest sales guy reach out and perhaps visit in the same day. Perhaps an even better example might be when an irate CEO calls your support desk because of a product problem you could have the nearest sales guy drop in to smooth things out while your technical support guys work the problem.

Marketing

In a real world example I deployed CRM to an organization that did a huge amount of direct mail each month at significant expense. Using geocoding and mapping I was able to display not only a map showing all the addresses they targeted but also overlay demographic data such as income per capita showing they were targeting area where they had little chance of closing business and also missing areas which could be potentially lucrative. This was definitely one of those moments I wish I had a camera to record the reaction when the head of marketing saw his data presented in this way.

In the above example I show how simple latitude/longitude coordinates can be useful but when you combine with additional data sources such as income levels, zip code regions and more. The story gets even better for CRM.

Every day users of Microsoft Dynamics CRM 2011 use the system to track and analyze relationships in the data to make better business decisions. By taking advantage of just two simple numbers (latitude and longitude) and a map, a whole new world of analytics and possibilities can be opened up.

To experience and get a taste for the power of CMR when combined with mapping consider taking advantage of this offer from InfoGrow Corporation.

Free Mapping Tool Now Links CRM and Bing Maps

Mapping is changing the game in CRM. It is the latest source of innovation adding value to the already value-stuffed Dynamics CRM 2011. InfoGrow Corporation has developed CRM2Maps, a mapping tool designed specifically for Microsoft Dynamics CRM 2011. This free mapping tool gives users the ability to map leads, accounts, and contacts inside CRM for making better sales and marketing decisions. CRM2Maps is a powerful, visual, and easy-to-use tool, providing users the convenience of mapping inside CRM for increased sales rep productivity and greater user acceptance of CRM.

clip_image002

With just one click, users can convert a CRM record into a map with street, image, or a bird’s-eye view and save time in planning their trips. Users can also retrieve detailed driving directions to the displayed location from any address.

The launch of CRM2Maps is just the first by InfoGrow in a series of mapping tools for Dynamics 2011.  Dynamics CRM 2011 users can expect to see additional tools for call planning, territory management, service planning and target marketing. 

The application can be downloaded for free at www.CRM2Maps.com.

About: InfoGrow Corporation has been developing desktop and cloud applications with Microsoft mapping and Dynamics CRM since the inception of both products. With 21 years of experience, InfoGrow has an extensive client base in financial services, hospitality, distribution and health care. Their tag line captures the focus of their enterprise services – Accelerating Growth Through Better Sales & Marketing Decisions.   

Thanks for reading

John O'Donnell

Using Option Set Options with the REST Endpoint – JScript

$
0
0

imageI recently published a new technical article for Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online: Using Option Set Options with the REST Endpoint – JScript.

This article is about using option set attribute metadata to:

  • Display text for integer values returned for option sets
  • Display valid options for user interface controls to allow editing records

These tasks are presented in the context of a sample JScript library that can be used to generate a simple user interface with an HTML Web resource. This is the UI for a page displaying Contact entity records:

clip_image002

This sample is only intended to illustrate the strategy described in the article. It is intentionally as simple as I could make it while still covering the core tasks to create, retrieve, update and delete records containing option set attributes. Along the way I also used attribute metadata to manage:

  • Setting default values for new records
  • Enforcing required fields
  • Preserving the integrity of auditing data by only updating attributes that are changed

If you need to create a user interface to edit Microsoft CRM record I hope this article helps you identify the attribute metadata you can use.

Cheers,

Jim Daly



Leverage Microsoft Excel to edit records

$
0
0

Have you ever wanted to edit multiple Microsoft Dynamics CRM records from within Microsoft Excel, without having to open each record’s individual form? With this new Dynamics CRM 2011 feature, it is possible to update Dynamics CRM records using Microsoft Excel (2003, 2007, or 2010). All you have to do is export data from any grid, save it to disk, edit it in Microsoft Excel, and re-import the file using the Import Data Wizard (the file will get auto-mapped). Within minutes your records will be updated by a system job running in the background. You can also add new rows in the downloaded Excel sheet and we’ll go ahead and create those records for you.

Updates are carried out on the fields that were changed. In case a record was updated in Dynamics CRM between the time data was exported and re-imported, we skip over your changes to that record so that invalid updates aren’t carried out.

Let’s have a brief walkthrough before diving into more detail.

1. Export the data from whichever grid you want.

image

2. Tick the “Make this data available for re-importing by including required column headings” checkbox.

image

3. Open the downloaded file in Microsoft Excel. Edit the records as appropriate, and add new records if required. Save the file to disk.

image

4. Upload this file into the “Import Data Wizard”.

image

5. On clicking next, CRM will auto-map the file and save you the hassle of having to map source file columns to CRM fields.

image

6. Submit the import job and wait for it to complete.

image

7. And, you’re done!

image

8. If you look at the successes column in the imports grid, only two records were processed. Since the other records were not edited, they are not picked up by the import job.

image

What all can be done?

  • Modify the value of any updatable field of a record (e.g. Account Name)
  • Create new records by adding rows to the exported Excel sheet
  • Assign the record to another user or team by changing the value in the Owner column
  • Change the Status/Status Reason of a record (e.g. mark an Account Inactive)

What isn’t allowed?

  • Delete records in Dynamics CRM by deleting the corresponding row in Excel.
  • Modify values for fields that are “Not Valid For Update” (e.g. Created On field of Account record type)
  • When creating new records, add data into fields that are “Not Valid for Create”(e.g. Modified On field of Account record type)
  • Modify values in related entity columns (e.g. the “E-Mail (Primary Contact)” column in the “My Active Accounts” view)

How are specific field types handled?

Option Sets

To assist you when entering values in a field of type option set, all option set values for that field are exported with the data. You can see the list of values in a dropdown associated with these cells. Whenever a value is changed in such a cell, it gets validated against the list of possible values.

Status / Status Reason

If status/status reason values are updated, a SetStateStatus SDK request is made for that record. However, this call might fail if there is some business logic associated with change of status for that record type. (E.g. Opportunity record type has special logic and requires WinOpportunity / LoseOpportunity SDK requests to change status)

Owner

We search for a User or Team having the same Display Name as specified by you in the sheet, and assign the record to that user.

Money

Money fields get exported in a special way to make the sheet re-importable. The currency symbol is removed from the value and instead exported as a separate column (the “Currency” column). To change the currency of that record, you can change the value in this “Currency” column.

Single/Multiple Lines of Text

Any changes done to cells of type Text (as defined in Dynamics CRM) are validated for minimum and maximum text length. You can see this information in the tooltip associated with each cell.

Numbers and Dates

Numbers and Dates are shown in Excel with the number/date formatting that is defined in your Operating System. It does not matter if you are using a different format in Dynamics CRM.

All changes are checked for the range of numbers/dates allowed in that field.

Things to remember

  • If a row is not changed in Excel, then we do not call update on that row – you need not worry about workflows getting triggered unnecessarily!
  • Full Names (Contact, User, and Lead) should be entered in your organization’s Full Name Convention Code for lookups on Contact, User, and Lead to work correctly.
  • Fields of type Party List are not supported by data import – do not update such field types using the Data Import Wizard.
  • If the grid contains multiple columns that have the same display name, then you will not be able to export data in a re-importable format.
  • If a record type contains multiple fields with the exact same display name and your exported sheet contains one of these fields, then you will not be able to re-import this file.
  • Record updates will not happen in case data is changed in a field on which you do not have the correct permissions. (in accordance with your Field Security Profile)
  • If you are using Excel 2010 and haven’t installed Service Pack 1 yet, it is highly recommended to save the exported file to disk and unprotect it instead of directly opening it from Internet Explorer.

As always, we’d love to hear your feedback!

Cheers!

Hitesh Madan

Controlling User Synchronization Settings

$
0
0

Today’s guest blogger is MVP Joel Lindstrom, a Solutions Consultant at Customer Effective.

imageOne of the items frequently requested, especially in large deployments of Microsoft Dynamics CRM, has been the ability to control Outlook client synchronization. CRM for Outlook provides a fantastic bi-directional synchronization between CRM and Outlook for Contacts, appointments, tasks, and other activities, but in some organizations, business requirements dictate that some or all of the synchronization be disabled, or that the settings not be user modifiable.

With CRM version 4.0, there were SQL database updates that could be used to prevent some types of synchronization, but they were unsupported and could often be overridden by a user updating his CRM for Outlook settings.

Also, contact synchronization options in CRM 4 are based on the user’s local data rules. By default, when users are created, their local data rules default to contacts owned by current user. While this worked well in some situations, in many cases, this either resulted in the user’s Outlook contacts being filled with too many contacts (if they own many contacts), or the contacts that they want to have not being synchronized to their outlook contacts. While this could be fixed by updating the user’s local data rules, it was often a surprise for users who just installed the client without first making modifications to their settings.

With Microsoft Dynamics CRM 2011, Microsoft has introduced a supported method for setting synchronization setting and controlling them from a global perspective.

clip_image001First thing you will notice is that in CRM 2011 for Outlook, there are no more checkboxes to enable/disable synchronization for tasks, contacts, or appointments. Now everything is controlled through the local data rules, which are now called Outlook Filters.

Now for CRM 2011 for Outlook, you will not only see Outlook Filters for contacts, you will also see one for each activity type. These still default to the records that you own or are to which you are a party (such as appointments you are attending). However, you can now change the filter rules to change what activities synchronize to your calendar.

Imagine a sales manager who wanted to see all appointments involving someone on his team—he could update his outlook filter and include records where the owner of the appointment was on his team.

Also, if someone wanted fewer appointments or tasks to synchronize than everything owned by her, or wanted to turn off task synchronization,you can modify her filter rule for tasks, or disable it altogether.

clip_image002

Controlling Synchronization Filters

So what do you do if you want to control Outlook Filters for all of your users—say you want them to get a different set of filters than the default “my” filters, or you want to disable synchronization for contacts?

CRM 2011 introduces a new feature called filter templates. Outlook filters are stored in the SavedQuery table of the MSCRM database. Filter templates allow you to set one SavedQuery record as the default per entity, then when new users are added to the system, their data rules will reflect the default filter rules.

See this link from the CRM 2011 SDK regarding filter templates: http://msdn.microsoft.com/en-us/library/gg328205.aspx

So you could create one user, set their Outlook filters to the desired default, then set the SavedQuery.IsDefault attribute to 1 on the SavedQuery records for that user. Then subsequent users will default to these rules.

This gives system administrators much greater control over users default Outlook Filters, but what about preventing users from modifying their data rules later?

clip_image003The security roles in 2011 have been enhanced with a new privilege setting called “Manage User Synchronization Settings” located on the bottom of the Core Records of the security role definition.

If you disable this setting, users will not be able to modify their outlook filters, ensuring that your default settings go unchanged.

Keep in mind that you may not want to do this, especially if you want users to be able to control what record synch/don’t synch; however, if your business requirements dictate limiting synchronization setting modification, this is a welcome addition.

Cheers,

Joel Lindstrom




Update Rollup 2 for Microsoft Dynamics CRM 2011

$
0
0

The Microsoft Dynamics CRM Sustained Engineering (SE) team released Microsoft Dynamics CRM 2011 Update Rollup 2 on Thursday, June 2, 2011.

The links below will take you to the necessary information about Update Rollup 2. If a link does not work, please refer to the Release Channel Schedule below to make sure it is past the release date listed.

Release Channel Schedule

  • CRM Online Datacenter: June 2, 2011
  • Microsoft Download Center: June 2, 2011
  • Microsoft Update: June, 28, 2011

General details about Update Rollup 2

  • Client packages installed manually by downloading the packages and running install will require administrative privileges. If the client packages are installed via the Windows Update (Microsoft Update) system, they will not require administrative privileges.
  • For help with installation please see the Installation Information section in KB2466086.

How to get support for Update Rollup 2

For support, please contact Microsoft Product Support. For a complete list of Microsoft Product Support Services telephone numbers and information about support costs, visit the following Microsoft web site: http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS.

Note: In special cases, charges ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

Cheers,

Matt Brown



Whitepaper: Microsoft Dynamics CRM Reference Architecture

$
0
0

I wanted to share that I just published a brand new white paper entitled “Microsoft Dynamics CRM Reference Architecture” that I just finished authoring. It is available on the Microsoft Downloads site at the following URL:

http://download.microsoft.com/download/E/E/7/EE72BCF3-66E9-41E3-BEB2-8CC0A90A326A/Dynamics CRM Reference Architecture Version 1.0.pdf

This document is intended for enterprise architects within customer and partner organizations who are evaluating Microsoft Dynamics CRM from an architecture standpoint. It highlights architectural details on key components of Dynamics CRM, as it applies in an on-premises deployment model as well as in a cloud environment.

Cheers,

Sumit Virmani



Announcing Microsoft Dynamics CRM SDK Update V5.0.4

$
0
0

imageMicrosoft Dynamics CRM SDK Version 5.0.4 is now live on MSDN downloads and MSDN library. This update includes the following:

The next SDK update is scheduled for the end of July. Help us set priorities for future updates:  Send Feedback

Amy Langlois



Get quick answers to some of your frequently asked questions

$
0
0

When you’ve been reading Microsoft Dynamics CRM product documentation—the Help, articles, the SDK—you might have noticed there’s a feature at the bottom of each for sending us feedback or questions.

The e-mails you send are sent directly to the writers and editors who develop content to support Microsoft Dynamics CRM. We can’t provide technical support, but we can answer a ton of questions you throw at us.  Because we’ve been doing this for a while, we know the most commonly asked questions. Lo and behold, these are now compiled in “Frequently asked questions from Microsoft Dynamics CRM customers” (Online version; On-Premise version). I know, we’re geniuses.

Let me know what you think.

clip_image002

Cheers,

Carola Klass



MVP Approved: Top Dynamics CRM Community Resources

$
0
0

Today’s guest blogger is MVP Julie Yack. Julie is one of the founding partners of Colorado Technology Consultants, Inc. and currently serves as the company’s Chief Operations Officer.

This list is a revised version of the bit I did with Anne Stanton at Convergence DayONE General Session. It is far from complete, but hopefully thorough.

The most important resource is YOU. Sure, on the surface that sounds cheesy, but hear me out. All of the great resources won’t do you a bit of good unless you do something. As giving as the community is, and they are great, you have to accept the help and go make CRM (or xRM) with it.

User groups are one of my personal favorite resources. Imagine this…the best in your profession giving of themselves to teach you how to do what they do? The best ones for CRM… xRMVirtual (developer nerds using CRM for other things) and CRMUG (some free things some paid memberships, more user/mgt side of things).

Microsoft team members. Not sure there’s a link here for you, but the product team at Microsoft are a really great bunch. They genuinely want your feedback to make a better product. They want to help you succeed in what you do with the resources they’ve given us. You need something? Let me know, I’m happy to make an intro for you to anyone on the team.

Official blogs. The high-level team one is here. The posts come from MVPs, Microsofties, industry experts, etc. You’ll get links about updates to the product, the newest documentation/SDK, events, etc. From here there will be links to the author’s own site so you can then add them to your own resource list.

TechNet CRM Wiki. A group of product team folks, MVPs and other experts manage this and aggregate info for you. Look here for a collection of best practices, resources, etc. The plan is to keep things here in perpetuity as a forever resource for you/us.

Social. Twitter, LinkedIn, Facebook, YouTube. All great places to learn stuff and meet people to learn more stuff from. On Twitter you can search on key terms (with and without a hash#), you can then find the people posting those things, and follow them. LinkedIn groups send you updates on discussions related to those group topics. Facebook is an area of debate of its professional value, I find value there, you may not. Whatever works for me works for me, whatever works for you works for you. There is an official Dynamics CRM YouTube Channel too.

Channel 9. This is a well-known resource in the overall .NET developer community, but notsomuch with CRM developers. Channel 9 has great videos in digestible lengths on many topics that would help a CRM developer. Go look at the site, search on CRM and tadah! Loads of results.

Microsoft forums. So, you have a huge problem overcoming this whatchamacallit and can’t see to locate the answer anywhere. Go to the forums and interact directly with the experts. Product team folks and CRM MVPs hang out there answering (and asking) questions. I go there often when I hit a roadblock on something.

Dynamics CRM MVPs. So we get this honor based in part on area of technical prowess, but more so for our commitment to giving back to our professional community. There are many many specialties, but current count of CRM MVPs is 49. We come from all over the globe and are really truly here to help.

Cheers,

Julie Yack

Why is Salesforce.com So Worried about Microsoft?

$
0
0

Salesforce.com spends a lot of time bashing Microsoft. Their CEO, Marc Benioff, can’t stop talking about us, whether in customer events or on their financial analyst calls. Their sales force tries desperately to spread FUD (fear, uncertainty, and doubt) about Microsoft, giving slick “hit pieces” to prospects with a slanted perspective and dubious claims. All of this raises the question: why is Salesforce.com so worried about Microsoft?

Well, it’s simple. It’s because Microsoft Dynamics CRM is one of the fastest-growing CRM products in the industry. It’s because we took just six years to get our first 1 million users, while it took Salesforce.com more than nine years to get there. It’s because we have unique advantages over Salesforce.com, like allowing our customers to run Microsoft Dynamics CRM in the public cloud (in our data centers), in our partners’ data centers, or in our customers’ data centers – all from a single, multi-tenant codebase that allows you to embrace the cloud on your terms. It’s because we just launched our Microsoft Dynamics CRM Online service in 40 markets around the world, and in 41 languages. It’s because leading research firms like Gartner and Forrester have rated us as a leader in CRM suites, in sales automation, and in customer service and support. And it’s because we do all this while working with a wide range of products you already know and use today, including Microsoft Office, Outlook, and SharePoint.

Salesforce.com is expensive, with long-term contracts to lock you in and lots of extra charges as well. At Microsoft, we think about this business differently. We give you flexible contract terms, a broad technology solution for the public and private cloud, and a great experience for your end users … all at a much more affordable price.

So as you look for a CRM solution for the long term that aligns with your business strategy and your budget – don’t get forced, get what fits. At Microsoft, we’re investing for the future – your future.

Brad Wilson

Developer Training Course for Microsoft Dynamics CRM 2011

$
0
0

There’s a CRM training course out now and you can read about it here: Developer Training Course for Microsoft Dynamics CRM 2011! The training course helps .NET developers learn various development features of Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online and build applications on top of these platforms. The article contains the training course download information and a brief description of the presentations, videos, and hands-on labs that are included.

The article highlights the following areas that are covered in the course: 

  • Introduction to the Dynamics CRM 2011 Training Course
  • Solutions in Dynamics CRM 2011
  • User Experience Extensibility
  • Visualizations and Dashboards
  • WCF Web Services
  • LINQ and oData
  • Plug-ins
  • Processes
  • Client Programming
  • Silverlight
  • SharePoint and CRM
  • Azure
  • Upgrading from CRM 4.0 to CRM 2011
  • Dynamics Marketplace

We hope the training course will help you ramp up with building new applications for Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online. 

As always, we’d like to hear from you!

Additional Resources

Cheers,

Inna Agranov




Using the Plug-in Registration Tool for Microsoft Dynamics CRM 2011

$
0
0

If you need info about registering plug-ins in for CRM 2011, read my latest article on  Using the Plug-in Registration Tool for Microsoft Dynamics CRM 2011. This article is written for developers interested in registering custom plug-ins or custom workflow activities with Microsoft Dynamics CRM, or system administrators who need to manage registered plug-ins.

This article complements the documentation in the Microsoft Dynamics CRM SDK by providing detailed information on how to use the Plug-in Registration tool to register custom code with Microsoft Dynamics CRM 2011 and Microsoft Dynamics CRM Online. Additionally, it contains links to relevant information in the SDK.

Peter Hecke



Microsoft Dynamics CRM Online Demonstration Kit

$
0
0

The Microsoft Dynamics CRM Product Management team is happy to announce the availability of the Microsoft Dynamics CRM Online Demonstration Kit.  This Kit was optimized to facilitate a stand-alone Microsoft Dynamics CRM Online environment.

Scenarios
Included in this Kit is more comprehensive data, Dashboards, Workflows and Dialogs illustrating core CRM capabilities in expanded scenarios.  Read on below to find detailed instructions on how to download and setup these assets.

What’s covered in this kit:

  • Extensive Sample Data
  • 13 Dashboards
  • 17 Workflows
  • 2 Dialogs
  • 1 Web Resource (phone number auto-formatting jscript)
  • 1 Option Set (Timeframe drop-down list to use across entities)
  • 2 E-mail Templates

CRM Online Scenarios

Cheers,

Eric Boocock, Senior Technical Product Manager

Required Files

  1. CRM Solution (managed, unmanaged)
  2. Sample Data

* For more details on managed vs. unmanaged solutions click here.
* Download the Sample Data and unzip the folder before starting the setup process.

Note: This data is based on US Dollar currency. If your currency is not US Dollar you must add the USD currency before proceeding.

image

Setup Process

Note: If you encounter any errors during the data import process address them before continuing to import additional entities as future dependencies may be compromised.

  1. Import the basic CRM Administrative data (Users, Sites, Queues, Subjects, Products, etc.) accepting all the Import Wizard default settings.
    • Workplace > Imports, click image in the Ribbon
      • Import 1-Admin, once successful proceed,
      • Import 2-Admin, once successful proceed,
      • Import 3-Admin, once successful proceed,
  2. Import the CRM Solution
    • Settings > Solutions, click image in the toolbar
      • Select Solution Package: Browse to the Solution CRM2011Scenarios_1_0_0_0, click Next,
      • Solution Information: click Next,
      • Import Options: Do NOT check the box to activate processes, click Next,
        (The data is properly formatted and if you activate the processes workflows will alter the data.) 
      • Importing Solution: click Publish All Customizations, click Close.
  3. Enable All Users
    • Settings > Administration > Users, change view to Disabled Users, Multi-select all Users and click image in the ribbon.
    • Confirm Users Activation: click OK
  4. Activate the following Sales Processes
    image
    • Settings > Processes, multi-select the processes and click image in the toolbar.
  5. Import Sales, Marketing & Service data (repeating step # 1 above)
    • Import 4-Marketing, once successful proceed,
    • Import 5-Sales, once successful proceed,
    • Import 6-Sales, once successful proceed,
    • Import 7-Service, once successful proceed,
  6. Import custom Data Map for Activities
    • Settings > Data Management > Data Maps, click image in the toolbar
    • Browse and select Activities_customized_PhoneCall (in Sample Data folder), click OK
  7. Import final data set – Activities (repeating step # 1 above except selecting the imported custom data map from previous step)
    • Upload Data File: Browse to and select Import 8-Activities, click Next
    • Review File Upload Summary: click Next
    • Select Data Map: Select the Customized Data Map Activities_customized_PhoneCall, click Next
      image
    • Accept remaining Import Wizard defaults to complete the import.
  8. Recalculate Goals
    • Sales > Goals, select Central Region Revenue and click image in the Ribbon. This will recalculate all the Goals.
  9. Activate all Processes
    • Settings > Processes, multi-select all workflows and click image in the toolbar
  10. Change Product Default Price Lists to Retail
    • Settings > Product Catalog > Products
      • Open Kit of Product A & B, Set Default Price List = Retail, click Save & Close
      • Open Product A (SKU JJ202), Set Default Price List = Retail, click Save & Close
      • Open Product B (SKU AX305), Set Default Price List = Retail, click Save & Close
  11. OPTIONAL: There are 10 Users included within the Sample Data. To login as one of these Users you must assign them a valid Windows Live ID and accept the invitation
    • Settings > Administration > Users, open User record
      • Click image in the Ribbon
      • Enter the new Windows Live ID, click Submit
      • Send new Invitation


Power User Tip: End Series for Recurring Appointments

$
0
0

Microsoft Dynamics CRM 2011 introduces the capability to create recurring appointment in CRM and its bi-directional synchronization support with Outlook. In this blog I am going to discuss about one of the enhanced capabilities introduced by CRM which leverages user to preserve past instances in the user preferred state.

Before going into more discussion we should first understand basic difference between recurring appointment in Outlook and in CRM. In Outlook calendar instances of recurring appointment are Virtual based on recurrence rule whereas in CRM it follows expansion based mechanism where actual appointment records are created in database. (For more info – refer to this blog)

Now let’s begin with End Series functionality which is introduced in CRM. In order to better understand End series functionality we need to first understand one of the similar capabilities which Outlook has that is Remove Recurrence.

clip_image002

Figure 1: Outlook Recurrence Dialog

There is a key difference in End Series and Remove recurrence functionality. Let’s first understand what Outlook Remove Recurrence actually does. For a recurring appointment if user does Remove Recurrence it replaces recurring appointment into a normal appointment on the last occurring past instance. If Series is completely in the future then it preserves the first instance. It simply removes other instances and all information associated with them. User neither has option to preserve instances and its associated data nor can he/she select date on which he/she wants to Series the Series. It simply preserves one instance.

End Series functionality in CRM for recurring appointment

In CRM we overcome both of these limitations by introducing enhanced capability called “End Series”.

clip_image004

Figure 2: Recurring appointment form with End series button highlighted in ribbon

As you can see above End Series in CRM provides capability to select the date on which user wants to create the Series and also in which state he/she wants to keep past instances. This is what actually happens when End Series is clicked:

  1. Deletes all the “open” and “scheduled” future instances of the specified Series from the date specified in Date field. However, if the state of the future instances is changed to “completed” or “canceled”, they will not be deleted.
  2. Sets the status of the past instances to the specified value selected via checkbox. However, the past instances are not deleted.
  3. Terminates the Series to the last occurring past instance date with respect to the date specified in the in Date field and sets the state of the Series to “canceled”.

This allows us to preserve the instances of a recurring appointment Series even if you have decided to end it prematurely. This is useful if you have attached notes or attachments to past instances of a recurring appointment Series that contain important information about the customer or business.

This capability is leveraged in SDK by DeleteOpenInstancesRequest. Please refer Microsoft Dynamics CM SDK documentation for more details on this API. Let’s walk through an example to understand this functionality in more detail.

A Scenario-driven Example

Nancy (Salesperson Persona) wants to meet a customer on daily basis to collect requirements for next 6 days. She creates a recurring Series with recurrence information as shown in figure below. She creates this on 6th May 2011.

clip_image006

This is how instances will look like on your work calendar. As you can see there are 6 records created starting 6 May 2011. They are referred as A1-A6 in the diagram below. All are associated with corresponding master record R1.

clip_image008

Nancy meets with the customer on daily basis and take notes on the meetings. She attaches notes and other documents to each appointment record. After meeting on the 9th of May 2011, she doesn’t need any more meetings with customer as she has all the required information.

To end her Series, Nancy opens the recurring appointment and clicks on End Series. She selects End Series date as “Today” i.e. 9 May 2011 and she wants to mark all instances as completed. The diagram below shows how Series will look like in calendar. As you can see, all the appointments after 9 May have been deleted. All instances before and on 9 May have been updated with status as completed. The Recurring appointment Series has been marked as canceled.

clip_image010

Hope this adds clarity to the End Series functionality in CRM.

Cheers,

Niraj Yadav

Issues When Updating Records Using the REST Endpoint for Web Resources and Silverlight

$
0
0

When you update records using Silverlight and the REST Endpoint for Web resources, unless you have worked around this issue you are updating every field even if the data hasn’t changed. This can lead to the following problems:

  • Potential for data loss
  • Auditing data does not correctly reflect actual changes
  • Event driven features such as Workflows (Processes) and Plug-ins execute when they are not needed

This post will describe the issue and provide a technique to avoid the problems.

Issue Description

The Microsoft Dynamics CRM SDK documents the following in the topic: Perform Basic Data Operations in Microsoft Dynamics CRM Using the REST Endpoint.

clip_image002

This behavior is a result of the way that a Silverlight application project generates proxies to work with an OData service. By default all properties defined for an entity are sent in an update request when you use the DataServiceContext.BeginSaveChanges Method. If you are working with an entity instance that was retrieved from a query it will contain all the current values and saving changes will update all the properties of the entity instance with those values even if they have not changed. If you instantiate a new entity instance and only update a few properties the update will overwrite other properties using the default null value for properties you haven’t set.

Technique to Avoid this Problem

To address this problem you need to provide some capability in your Silverlight application to track which properties have changed and only submit those properties when you save changes. Michael created the following solution that extends the Data Service Context to include change tracking for entity properties. I’ve found that it is relatively easy to apply this to an existing Silverlight application. Use the following steps to add and edit a new class file to your project:

Apply Data Service Context Extensions to A Silverlight Application Project:

1. Add a reference to System.Xml.Linq to your Silverlight application project if it doesn’t already exist

2. Create a new class file for your Silverlight application project. You might call it DataServiceContextExtensions.cs.

3. Paste the following code into the new file:

using System;
using System.Linq;
using System.Data.Services.Client;
using System.Reflection;
using System.Collections.Generic;
using System.ComponentModel;
using System.Collections.ObjectModel;
using System.Xml.Linq;
namespace [[The Namespace of your Data Service Context]]
{
 partial class [[The name of your DataServiceContext Class]]
 {
  #region Methods
  partial void OnContextCreated()
  {
   this.ReadingEntity += this.OnReadingEntity;
   this.WritingEntity += this.OnWritingEntity;
  }
  #endregion
  #region Event Handlers
  private void OnReadingEntity(object sender, ReadingWritingEntityEventArgs e)
  {
   ODataEntity entity = e.Entity as ODataEntity;
   if (null == entity)
   {
    return;
   }
   entity.ClearChangedProperties();
  }
  private void OnWritingEntity(object sender, ReadingWritingEntityEventArgs e)
  {
   ODataEntity entity = e.Entity as ODataEntity;
   if (null == entity)
   {
    return;
   }
   entity.RemoveUnchangedProperties(e.Data);
  }
  #endregion
 }
 public abstract class ODataEntity
 {
  private readonly Collection<string> ChangedProperties = new Collection<string>();
  public ODataEntity()
  {
   EventInfo info = this.GetType().GetEvent("PropertyChanged");
   if (null != info)
   {

PropertyChangedEventHandler method = new PropertyChangedEventHandler

(this.OnEntityPropertyChanged);

    //Ensure that the method is not attached and reattach it
    info.RemoveEventHandler(this, method);
    info.AddEventHandler(this, method);
   }
  }
  #region Methods
  public void ClearChangedProperties()
  {
   this.ChangedProperties.Clear();
  }
  internal void RemoveUnchangedProperties(XElement element)
  {
   const string AtomNamespace = "http://www.w3.org/2005/Atom";
   const string DataServicesNamespace = "http://schemas.microsoft.com/ado/2007/08/dataservices";
   const string DataServicesMetadataNamespace = DataServicesNamespace + "/metadata";
   if (null == element)
   {
    throw new ArgumentNullException("element");
   }
   List<XElement> properties = (from c in element.Elements(XName.Get("content", AtomNamespace)
               ).Elements(XName.Get("properties", DataServicesMetadataNamespace)).Elements()
                                select c).ToList();
   foreach (XElement property in properties)
   {
    if (!this.ChangedProperties.Contains(property.Name.LocalName))
    {
     property.Remove();
    }
   }
  }

private void OnEntityPropertyChanged(object sender,

System.ComponentModel.PropertyChangedEventArgs e)

  {
   if (!this.ChangedProperties.Contains(e.PropertyName))
   {
    this.ChangedProperties.Add(e.PropertyName);
   }
  }
  #endregion
 }
}

4. In the file you created replace the following placeholders with the correct references for your project:

image

5. Update the Reference.cs file

a. In Visual Studio 2010, click the icon with the tooltip Show All Files at the top of the Solution Explorer window.

b. In Solution Explorer, expand the service reference you created and the Reference.datasvcmap file to view the Reference.cs file.

c. Use Find/Replace to change:

: global::System.ComponentModel.INotifyPropertyChanged

to

: ODataEntity, global::System.ComponentModel.INotifyPropertyChanged

Note: There should be one instance for each entity.

6. Recompile your project, update your Silverlight Web resource with the new .xap file and test it.

SDK Update

In next release of the SDK (version 5.05) the SDK topic Use the REST Endpoint with Silverlight Web Resources will contain steps include this method. Each of the Silverlight samples that update records will also be updated to include these extensions.

Cheers,

Jim Daly, Michael Scott



Creating Custom Charts ~ Phone Call Duration

$
0
0

Microsoft Dynamics CRM 2011 has got exciting new features that help you create custom charts in a few clicks while you are accessing your records. You then see the custom chart as you view your records.

clip_image002

The out of the box entity “phone call” allows us to create a custom chart. The default setting is to show a call duration in minutes. Let’s have look at the how can we create the chart by duration specifying by number of hours.

1. Go to customization è Customize the system

2. Go to Forms

3. Open main form

4. Add fields

clip_image003

5. Now we have a custom field called “new_durationinhours” and I have kept the display name as “Duration(In Hours)”.

6. Add that field on your form

clip_image004

7. You will notice we already have Duration field OOTB, where the schema name is “actualdurationinminutes”

clip_image005

8. Click on the field; select “Change Properties” in the ribbon. Select Event Tab

9. You will the below screen

clip_image006

10. In the form libraries, Click “Add”. You will see a lookup on web resources

clip_image007

11. In the bottom, Click “New”

12. Add the required information, as below

clip_image009

13. Save the record.

14. Add your Jscript code in the Text Editor

15. I have provided the source code below:

clip_image011

16. Save and publish the record

17. You will automatically be taken to Lookup Screen back, with the name entered for the library

clip_image012

18. Click Ok. You’re library is added to the form.

19. Now in the Event handlers, Click “Add”.

clip_image013

20. Once you click add, you will need to mention the function that you’re going to call.

clip_image014

21. Click OK

22. Save and publish the changes on the form.

23. Now go to Phone call form in customizations (Step 1 - 3)

24. Repeat the steps from (7 – 9)

25. You will see the script library

26. Go to Activities, select Phone call

27. You will Phone call activities listed

28. Create a chart and use that custom field as below in the screen shot.

clip_image016

With this simple walkthrough I hope I have not only shown you how easy it is to create a customized chart. I hope it will give you ideas for other kinds of customization that will make your implementation of Microsoft Dynamics CRM more powerful and useful.

Cheers,

Apurv Ghai



Viewing all 592 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>