Welcome visitor nr 1000!

A short look on the statistics shows us that some seconds ago somebody from Austria has been the 1000th visitor on the blog. Since I do get a lot of feedback on my posts and the amount of visitors is raising day by day, I'll continue this way of providing interesting MS CRM information to the community.

Stay tuned for more information!



Cme @ VS 2005 Product Launch Event

The 7th of November. This day there is the product launch of VS 2005, MSSQL 2005 and BizTalk 2006. A new era of product development will start this day. The Dutch developers can still sign in for this event.

I'll be around there as well. Drop me a line if you want to drink a beer (heineken ofcourse!) or just for a chat.

See you there!



SDK CRM v3.0 (Preliminary) public!

Via Arne Janning I received this link.
You can download the priliminary SDK for MSCRM v3.0 here. There's a lot of interesting information in here.

One of the most interesting images available is:

(dont pay too much attention to the CRM 2005 sign :) )

The orange area's are locations where you can insert own customizations. Here's a detailed list of features which are in line with the integration points as shown in this image:

Add Entity

You can add new entities to the system:
• Define the schema for the new entity.
• Automatically creates the user interface, for example, forms or views, to show the new entities in the application.
• Define relationships to other system or custom entities.
• Define delete behavior for linked entity instances.
• Custom entities are secure according to the security model.
• Option to take new entities offline.
• You can export and import custom entities to another system.
• Special privileges are needed for entity customization to ensure system integrity.


Entity Rename

You can change the name of system entities to better suit your business:
• Any customizable entity can be renamed.


Activity Customization

Activities can be customized to better suit your business:
• Activities are customized entities. You can change the schema, forms & views as needed.
• Each activity type, such as Task or Fax, can be customized independently of the others.
• Create custom activity views that can aggregate the different activity types. For example, you can create a view that show all open activities assigned to a user regardless of activity type.


Client Side SDK

The client side SDK exposes an expanded forms architecture for application customization:
• Support for read-only fields. Protect fields from user update by setting them to read-only.
• Support for IFrames. Embed other Web pages as links within Microsoft CRM forms. Includes programmatic access to the other data attributes on the parent form.
• Enhanced control over form layout. You can specify the field height on forms and there is greater flexibility in tab and section sizing.
• Improved form editor is larger, resizable, preserves formatting, and uses correct escaping.
• Form debugging: Form editor has previews for onLoad and onChange events, and simulates the onSave event.


Features in the Client Side SDK

Form Events
• OnLoad – Executes custom code when the form has loaded.
• OnSave – Executes custom code when the user saves an entity.
Field Events
• OnChange – Executes custom code when the data in a form field has changed and focus is lost.
Form Object Model
• Attributes – FormType, ObjectId, and ObjectTypeCode.
• Methods – IsOutlookClient, Save, and SaveAndClose.
• Able to address a specific field on the form, set, and read its value.
• Referencing field: crmForm.all.{field schema name}.
• Common field properties and methods - DataValue, Disabled, ForceSubmit, and SetFocus.
IFrame on Forms
• Ability to embed other Web pages as links within Microsoft CRM forms HTML Iframe object.
• Tab and Section configurable.
• Ability to set width and scrolling.
• Cross-frame scripting can be restricted.


UI customization features in Web client

Customize the Web client application by adding custom menus and buttons to the ISV.config file:
• XSD compliant schema.
• Application level toolbar.
• Actions for custom entities.
• Support for JavaScript.
• Support for Marketing Automation and Service Management.
• Top-level navigation bar.


UI customization features in Outlook client

Customize the Outlook client by adding custom menus and buttons to the OutlookClient.xml file:
• XSD compliant schema.
• Application-level toolbar.
• Actions for custom entities.
• Support for JavaScript.
• Support for Marketing Automation and Service Management.
• Top level navigation bar.


Import/Export Features

• Improved UI in the Web application.
Export/Import - ISV Setup
• Import is the supported way to modify forms, views, queries, and mappings for your custom add-in.
• Configured customizations are saved to the XML file by export.
• XML file is transportable between systems.
• Import/Export schema is published in the SDK.
• Support for system and custom entities.
• Support for renamed entities.
• Support for client side SDK features.
• Support for custom relationships.
• Support for saved queries (but not user queries).
• Granularity to choose which entities to import, export, or publish.
• Support for templates.
• Support for the ISV.config file for import and export.
• Support for entity mappings.
• Validation of XML prior to the import.
• Import, export, and APIs are exposed in the SDK.


Workflow features

• Workflow rules can call out to .NET assemblies.
• Includes date support for updates and if conditions.
• Triggering of workflow rules from activity events.
• Enhanced date support on wait conditions.
• Partial slug support.
• Unified slug support, similar to application.
• XML configuration file.


Callout enhancements

• Pre-callouts and post-callouts to .NET assemblies.
• Supports backward compatibility with COM based v1.2 design.
• Supports Create, Update, Delete, SetState, Assign, and Merge.
• Supports synchronous post-call outs.
• XML configuration file.

Now tell me, does this open a world of possibilities for the developer?!!



Wordverification when commenting

Hi All,

Today I've turned on word verfication for posting comments. What this does is to prevent automated systems from adding comments to this blog, since it takes a human being to read the word and pass this step.

Quite often I am encountering comment spam. A lot of this is done automatically by software which can't pass the word verification, so thats why I set this option.

Please do not let this stop you from commenting the posts :)



Override save method

!unsupported alert!

Unsupported, but this works :)

I do sometimes get the question how it is possible to override the save method. You could dig into the javascript files or htc files, but following this solution is a lot better.

You can modify the aspx file, which you want to change the behaviour of the save button. Insert this script into the file and you will get an alert before saving the file:


<script language="javascript">
//make the form aware of our new save method
function window.onload(){
crmForm.onsave = overriddenSave;
crmForm._bUseCustomSaveEvent = true;
}

//implementation of the new save method
function overriddenSave(){
//do your thing here
alert('Your modifications will be saved now');

//save the form.
crmForm.SubmitCrmForm(1, true, false, false, false);
}
</script>


Hope this helps!



Include Javascript files in CRM

This must be familiar to most of you: you're making quite some modifications to the onchange event of a picklist. To keep this readable, you do use tabs and breaks, but after saving this, all tabs and enters are gone. Therefore I like to put most code into .js files and include these files in the page. This would break the contract tough. Another possibility is the httpmodules, but they require quite some effort.

Now I was searching for some information regarding Javascript and I found some interesting codes. One of these could be used to solve the problem as described above! What about loading javascript files WITH javascript? It is possible by using this script:


var script = document.createElement('script');
script.type = 'text/javascript'; script.src = 'code.js';
document.getElementsByTagName('head')[0].appendChild(script);

When putting this code into the onchange event, this stays readable, does not cost much effort and you wont break the support contract!

Edit:
The script above could give troubles when a function call is made to the javascript file when it is not yet fully loaded. Thanks to Alex for providing this script:

function OnChange()
{
var script = document.createElement('script');
script.language = 'javascript';
script.src = 'MyFunctions.js';
document.getElementsByTagName('head')[0].appendChild(script);
var f = function()
{
if (event.srcElement.readyState == "loaded")
SomeFunction(); // some function from MyFunctions.js
}
script.attachEvent("onreadystatechange", f);
}
// function OnChange()


Update:
Just a bit better readable script:

var script = document.createElement('script');
script.language = 'javascript';
script.src = '/Custom/JavaScript/opportunityOnloadOnsave.js';
script.onreadystatechange = OnScriptReadyState;
document.getElementsByTagName('head')[0].appendChild(script);

function OnScriptReadyState()
{
if (event.srcElement.readyState == "complete")
{
//perform onload scripts
CustomOnLoad(); // some function from your custom js file
}
}



Introducing Microsoft CRM 3.0

Even though the public beta is not yet available, more and more information is being spread to the partners. Partners who can access https://partner.microsoft.com/ are able to view this information:

Microsoft CRM 3.0 Press Release
Microsoft announces the next version of its customer relationship management solution, Microsoft CRM 3.0. Microsoft CRM 3.0 will provide a complete suite of powerful marketing, sales, and service capabilities, all with a familiar and consistent user experience based on Microsoft Office and Microsoft Outlook.

Microsoft CRM 3.0 Fact Sheet
Learn about top features and functionality that will be coming in Microsoft CRM 3.0.

Microsoft CRM 3.0 Flash Demo
Download the Microsoft CRM 3.0 Flash demo and demo script to preview Microsoft CRM 3.0 in action.

Microsoft CRM 3.0 Upgrade Video
Watch this video to see how easy the upgrade from Microsoft CRM 1.2 will be. In fact, it's “kid stuff.”

Worldwide Partner Conference 2005 Presentation
This PowerPoint presentation summarizes the key messaging, timelines, and features of Microsoft CRM 3.0.

Update: Now including correct links :o)