Archive for September, 2010

Update Rollup 13 for Microsoft Dynamics CRM 4.0

September 24, 2010

The Microsoft Dynamics CRM Sustained Engineering (SE) team released Microsoft Dynamics CRM 4.0 Update Rollup 13 on Thursday, September 23, 2010.

The links below will take you to the necessary information about Update Rollup 13.

General Details about Update Rollup 13

Update Rollup 13 is cumulative. However, the Update Rollup 13 CRM Client and Data Migration Client packages require Update Rollup 7 to be installed. For all other CRM components you do not need to install any previous Update Rollups prior to Update Rollup 13

The Update Rollup 13 download contains updates for the 40 supported Language Packs. Prior to installing the Update Rollup 13 Language pack, you must install the original Language pack.

If you have Language Packs installed, you should

  1. Download the Update Rollup 13 Language Pack
  2. Install the Update Rollup 13 Language Pack
  3. 3. De-provision the Language Pack
  4. Re-provision the Language Pack

Information about how to avoid reboots when installing the CRM Outlook Client can be found in the Update Rollup 4 blog posting.

The Update Rollup 13 Client can be deployed before the server is upgraded to Update Rollup 13.

Steps to make the Update Rollup 13 Client available via AutoUpdate can be found in the Update Rollup 4 blog posting. The Link and Patch IDs can be found in KB article 2267499.

Each update rollup could have fixes that require manual configuration. Please see the “Hotfixes and updates that you have to enable or configure manually” section in KB 2267499.

Internet Explorer 9 Beta

The Microsoft Internet Explorer team released a Beta version of Internet Explorer 9 (http://www.microsoft.com/ie). Check it out!

However, before you do. Please install Update Rollup 13! The CRM SE team has been doing verification tests with Internet Explorer 9 and has added changes to Update Rollup 13 to resolve some compatibility issues.

High impact issues resolved in Update Rollup 13:

  • Creating any row data (e.g. create account, contact, etc) throws a Jscript error.
  • Some radio button selections (e.g. Export to Excel -> Use this type of worksheet) do not allow selection of any of the non-default options.

Have we fixed all the issues? No. IE 9 is a Beta product and we are continuing our compatibility testing. The CRM SE Team plans to release additional IE 9 related fixes in the next several Update Rollups. The CRM SE team will work hard to ensure full compatibility by the time Internet Explorer releases to manufacturing.

Please see the Update Rollup 13 KB for more info on the changes made.

How to get support for Update Rollup 13

To get 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

Advertisements

How to determine which version of Microsoft SQL Server 2005 or 2008 you are running

September 23, 2010

To determine which version of Microsoft SQL Server 2005 or 2008 you are running, connect to SQL Server 2005 or 2008 by using SQL Server Management Studio, and execute the following T-SQL.

I have executed 3 T-SQL options:

select @@version
select SERVERPROPERTY (‘productversion’)
select SERVERPROPERTY (‘productlevel’)
select SERVERPROPERTY (‘edition’)

Declaration of Custom Workflow Input – Output Parameters

September 22, 2010

Input Parameter: Boolean

Example
 
public static DependencyProperty myBooleanProperty = DependencyProperty.Register(“myBoolean”, typeof(CrmBoolean), typeof(CreateCustomEntity));
[CrmInput(“My Boolean”)]
public CrmBoolean myBoolean
{
   get
   {
      return (CrmBoolean)base.GetValue(myBooleanProperty);
   }
   set
   {
      base.SetValue(myBooleanProperty, value);
   }
}
 
Input Parameter: DateTime
 
Example
 
public static DependencyProperty myDateTimeProperty = DependencyProperty.Register(“myDateTime”, typeof(CrmDateTime), typeof(CreateCustomEntity));
[CrmInput(“My DateTime”)]
public CrmDateTime myDateTime
{
   get
   {
      return (CrmDateTime)base.GetValue(myDateTimeProperty);
   }
   set
   {
      base.SetValue(myDateTimeProperty, value);
   }
}

Input Parameter: Decimal

Example
 
public static DependencyProperty myDecimalProperty = DependencyProperty.Register(“myDecimal”, typeof(CrmDecimal), typeof(CreateCustomEntity));
[CrmInput(“My Decimal”)]
public CrmDecimal myDecimal
{
   get
   {
      return (CrmDecimal)base.GetValue(myDecimalProperty);
   }
   set
   {
      base.SetValue(myDecimalProperty, value);
   }
}
 
Input Parameter: Float

Example
 
public static DependencyProperty myFloatProperty = DependencyProperty.Register(“myFloat”, typeof(CrmFloat), typeof(CreateCustomEntity));
[CrmInput(“My Float”)]
public CrmFloat myFloat
{
   get
   {
      return (CrmFloat)base.GetValue(myFloatProperty);
   }
   set
   {
      base.SetValue(myFloatProperty, value);
   }
}

Input Parameter: Lookup

Example
 
public static DependencyProperty myLookupProperty = DependencyProperty.Register(“myLookup”, typeof(Lookup), typeof(CreateCustomEntity));
[CrmInput(“My Lookup”)]
[CrmReferenceTarget(“account”)]
public Lookup myLookup
{
   get
   {
      return (Lookup)base.GetValue(myLookupProperty);
   }
   set
   {
      base.SetValue(myLookupProperty, value);
   }
}
 
Input Parameter: Money

Example
 
public static DependencyProperty myMoneyProperty = DependencyProperty.Register(“myMoney”, typeof(CrmMoney), typeof(CreateCustomEntity));
[CrmInput(“My Money”)]
public CrmMoney myMoney
{
   get
   {
      return (CrmMoney)base.GetValue(myMoneyProperty);
   }
   set
   {
      base.SetValue(myMoneyProperty, value);
   }
}
 
Input Parameter: Number

Example
 
public static DependencyProperty myNumberProperty = DependencyProperty.Register(“myNumber”, typeof(CrmNumber), typeof(CreateCustomEntity));
[CrmInput(“My Integer”)]
public CrmNumber myNumber
{
   get
   {
      return (CrmNumber)base.GetValue(myNumberProperty);
   }
   set
   {
      base.SetValue(myNumberProperty, value);
   }
}
 
Input Parameter: Picklist

Example
 
public static DependencyProperty myPicklistProperty = DependencyProperty.Register(“myPicklist”, typeof(Picklist), typeof(CreateCustomEntity));
[CrmInput(“My Picklist”)]
[CrmAttributeTarget(“account”, “industrycode”)]
public Picklist myPicklist
{
   get
   {
      return (Picklist)base.GetValue(myPicklistProperty);
   }
   set
   {
      base.SetValue(myPicklistProperty, value);
   }
}
 
Input Parameter: Status

Example
 
public static DependencyProperty myStatusProperty = DependencyProperty.Register(“myStatus”, typeof(Status), typeof(CreateCustomEntity));
[CrmInput(“My Status”)]
[CrmAttributeTarget(“account”, “statuscode”)]
public Status myStatus
{
   get
   {
      return (Status)base.GetValue(myStatusProperty);
   }
   set
   {
      base.SetValue(myStatusProperty, value);
   }
}

Input Parameter: String

Example
 
public static DependencyProperty myStringProperty = DependencyProperty.Register(“myString”, typeof(System.String), typeof(CreateCustomEntity));
[CrmInput(“My String”)]
public string myString
{
   get
   {
      return (string)base.GetValue(myStringProperty);
   }
   set
   {
      base.SetValue(myStringProperty, value);
   }
}
 
Output Parameter: Lookup
 
Example
 
public static DependencyProperty myOutLookupProperty = DependencyProperty.Register(“myOutLookup”, typeof(Lookup), typeof(CreateCustomEntity));
[CrmOutput(“My Output Lookup”)]
[CrmReferenceTarget(“new_customentity”)]
public Lookup myOutLookup
{
   get
   {
      return (Lookup)base.GetValue(myOutLookupProperty);
   }
   set
   {
      base.SetValue(myOutLookupProperty, value);
   }
}

Methods available on all types of fields in MS CRM

September 21, 2010

The following methods are available on all fields:

General field methods Description
{Field}.SetFocus() Sets the focus, changes tabs, and scrolls the window as necessary to show the specified field.Example

// Set focus to the field.
crmForm.all.SOME_FIELD_ID.SetFocus();
{Field}.FireOnChange() Programmatically raises the OnChange event for the specified field.Example

// Set focus to the field.
crmForm.all.SOME_FIELD_ID.FireOnChange();

Properties available on all types of fields in MS CRM

September 20, 2010

The following table shows the properties that are available on all fields.

General field properties Type Values
{Field}.DataValue Varies for each field type Get/set property.Valid for all field types. Note that setting the field value in a script does not raise the OnChange event. You can use the FireOnChange field method to perform this function.
{Field}.Disabled Boolean Get/set property.The field is displayed as read-only to the user. However it can be updated by a script. This field is submitted to the server when it is modified.

Example

var oField = crmForm.all.SOME_FIELD_ID;

// Toggle the disbled state of the field

oField.Disabled = !oField.Disabled;

{Field}.RequiredLevel   Get property.Determines the level of requirement for the field. Valid values are as follows:

0 = No constraint (normal)

1 = Business recommended

2 = Business required

Example

var CRM_REQUIRED_LEVEL_NORMAL = 0;

var CRM_REQUIRED_LEVEL_RECOMMENDED = 1;

var CRM_REQUIRED_LEVEL_REQUIRED = 2;

var oField = crmForm.all.SOME_FIELD_ID;

switch (oField.RequiredLevel)

{

   case CRM_REQUIRED_LEVEL_NORMAL:

      alert(“This field is not required or recommended”);

      break;

   case CRM_REQUIRED_LEVEL_RECOMMENDED:

      alert(“This field is business recommended”);

      break;

   case CRM_REQUIRED_LEVEL_REQUIRED:

      alert(“This field is required”);

      break;

}

{Field}.IsDirty Boolean Get property.True if the field’s value has changed.

Example

var oField = crmForm.all.SOME_FIELD_ID;

if (oField.IsDirty)

{

   alert(“The field’s value has changed.”);

}

else

{

   alert(“The field’s value has not changed.”);

}

{Field}.ForceSubmit Boolean Get/set property.Determines whether the value will be submitted to the server on save. All enabled fields will be submitted after they have been modified either through script or by user input.

Set this property to True for disabled or read-only fields and for fields that have not been modified if you want to submit them.

Creating a A-Z filter for a list

September 17, 2010

My customer wanted to have a library list, for adding books.

We had a title field for the book and some other meta data for each book.

He wanted to have a page where users could filter the list to view all books starting with A,B,C…Z

Something that will look like:
A,B,C,D,E,F,G,H,…Z

And a list grid below that will filter all books starting with the selected letter.

I found a rather easy solution for that that needed no code at all – only customization!

Basically what I did was:
1 – Add a calculated column that will hold only the first letter of the Title field.
(fomula for this: =LEFT(Title,1) )
2 – Then I added the list grid web part.
3 – To add filter support I added above a rich text web part and added the HTML for A,B,C…Z and made each letter a hyperlink to the same page with adding “?FilterBook=A”.
4 – Now, all i had to do is to add a query string filter web part (comes with SharePoint) and configure it to take the filter value from “FilterBook” query string and send it to filter the list grid web part below.

Done!

No code solution that took no more than 10 minutes!

Adding the quick launch to team site pages

September 16, 2010

Ever tried to add a new page in a WSS or SharePoint Team Site ?

Well, after you create a new page, using the “Create web part page” wizard:

you probably noticed the following issues:

1. You have to create a document library to store them (unless you save them in “Shared Documents” library, but we wouldn’t want to mix documents and site pages, would we?)

2. They look different from the team site’s home page – where did the quick launch go ?

The solution is quite simple, and there are 2 cases here:

1. If you have MOSS 2007 – All you have to do is to activate the “Office SharePoint Server Publishing” feature for your team site. Once you activate this feature, the team site will have some publising site features: a new “pages” library will be created, and all new created pages will be automatically stored in this library. In addition all pages will display the same “envelope” – including the missing quick launch on the left side of each page.

The only problem with this solution is that now every change you make requires publishing, and this is certainly NOT a natural part of team-site working flow.

2. If you only have WSS installed – in this case you don’t have the “Office SharePoint Server Publishing” feature installed. however, you can change the team site page templates, and have them display the quick launch. This is quite easy to implement, so here it goes:

  • Browse the “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\1033\STS\DOCTEMP\SMARTPGS” folder on the SharePoint server.
    This folder contains all templates that you see in the “New Web Part Page” wizard:
  • Every page inherits the same team site’s master page, and all of them override this master page’s placeholder tags. This is why the quick launch is not displayed in new pages created in a team site
  • Simply delete the “PlaceHolderLeftNavBar” content tag in the required templates and save the file/s

SharePoint Site Recycle Bin for SharePoint 2010

September 10, 2010

The SharePoint Site Recycle Bin is a SharePoint Foundation 2010 solution package that when deployed to a Microsoft SharePoint Foundation 2010 or Microsoft SharePoint Server 2010 server farm enables administrators to create a snapshot of subscriptions, site collections and Webs as they are deleted through the SharePoint user interface, the SharePoint Administration Tool, the SharePoint 2010 Management Shell, SharePoint 2010 Central Administration, or SharePoint Designer.

Download

Microsoft Dynamics CRM 2011 – Global Beta Released

September 9, 2010

Today, the Microsoft Dynamics CRM team has reached a key milestone as it releases the beta of Microsoft Dynamics CRM 2011, for both cloud-based and on-premises deployments. Available for download and testing in eight languages (English, French, German, Hebrew, Italian, Japanese, Spanish and Chinese) and 36 markets, this release marks the first global public beta for Microsoft Dynamics CRM Online. Additionally, beta for Microsoft Dynamics CRM 2011 on-premises is available in 40 markets in eight languages.

There is definitely high anticipation for this new release among partners and customers based on the very positive response received when the team first talked about the new product at WPC, and specifically highlighted how Microsoft Dynamics CRM 2011 will deliver the Power of Productivity through familiar, connected and intelligent experiences for users inside and outside an organization.

Here is what Garrett Klas, application development manager at CAPTRUST Financial Advisors, a Microsoft Dynamics CRM customer who had the opportunity to experience a pre-beta version of the new release had to say:

“We are enthusiastic about the guided process capabilities of CRM 2011 as a means of reducing the required user training and enhancing our data stewardship program given our highly regulated industry. We value the flexibility offered by the current version of Microsoft Dynamics CRM so can’t wait to try out the next generation product and witness the new features first hand.”

Additionally, the all new Microsoft Dynamics Marketplace online catalog (also announced at WPC) will be released as a beta later this month and will offer customers and partners a searchable and filterable catalog of more than 700 applications and professional services. This service will offer partners an easy way to market and distribute solutions to Microsoft Dynamics customers and customers a convenient way to find solutions that meet their business needs. 

To try out the Microsoft Dynamics CRM 2011 beta or sign up for the Microsoft Dynamics CRM Online beta visit www.crm2011beta.com.

The full press release issued today is located here: Microsoft Releases Global Beta of Next-Generation CRM Product.  Be sure to engage and follow the Microsoft Dynamics CRM community @MSDynamicsCRM and provide your feedback on the beta at the Microsoft CRM 2011 Beta forum.

Risk and Health Assessment Program for SharePoint Server (MOSSRAP) – Scoping Tool

September 8, 2010

The MOSSRAP Scoping Tool verifies connectivity requirements, permissions requirements, and other prerequisites for successful execution of the MOSSRAP toolset. This is done by remotely querying the servers in the SharePoint farm. This information is required before proceeding with the request process.

The tool does NOT make any changes to the environment. It simply uses standard operations such as WMI queries, SQL queries, port queries and so on.  It is completely read-only.
The tool is serial in nature and only attempts to perform a single check against a single server at a time.  This means there should be relatively minimal network or target system overhead while the tool is running.  This also means it may take it several minutes to complete depending upon the size of the farm.

The scoping tool must be run using an account that has:

  • Member of the local Administrators group on every SharePoint server in the farm
  • Member of the local Administrators group on every SQL server in the farm
  • Read permissions to every site in the farm (this can be granted via the web application policy in Central Administration)
  • Full permissions to the Central Administration site and the personalisation services for each Shared Services Provider (SSP) in the farm.
  • Member of the sysadmin role on every SQL instance used by the farm

Download