Sunday, April 3, 2011

Sharepoint variations guide. Part 1 – overview

In this series of posts I would like to summarize available configuration options for Sharepoint variations and show how they are used in content production. In this first part I will make an overview of Sharepoint functionality, available configuration options and add my comments with details of these options. This material is necessary in order to go with part 2, where I will focus on actual usage of OTB variations for propagating of the content.

As you probably now variations are designed for multilingual sites support in Sharepoint (I recommend you also to check Gary’s Lapointe presentation: Variations and the MUI in SharePoint 2010 and his post Fun with Variations). Here we are talking about variations in Sharepoint 2010 which have several improvements comparing with 2007 version. The most significant improvement is that variations are now propagated via timer jobs (not in w3wp process). There are several different timer jobs related with variations, and in part 2 I will describe each of them – in which case each job is used, how they work with different variations configurations, etc.

Basic idea of variations is simple enough: there is source site (variations source) where content producers publish content (its basic version). There is one variations source site per site collection. There can be also several variations labels (target sites) where changes will be propagated when content producers create new publishing page (or update content on existing publishing page) or create new sub site under variations source site (this sub site will be created under variation targets as well). After that content producers responsible for local content should review propagated content and make translation if necessary. There is one known pain point with it – when source page is published, source page content will be overridden completely (i.e. not only changed part), so people who responsible for managing translated content should revert it and translate changed places manually.

Important thing which you should clearly understand when working with variations is that they do not deal with UI. Sharepoint 2010 has different functionality for supporting multilingual user interface (MUI) (this is out of scope of this article - see Gary’s Lapointe presentation), while variations deal with multilingual content. Variations source site and variations target sites are combined in one entity called variations hierarchy.

It is important to understand also that Variations are part of Publishing infrastructure feature. It means that they work only with publishing pages and publishing sites (plus they affect images located in PublishingImages document library – but not always. Only if you select “Copy resources” in Site settings > Variations > Resources – see below). All another lists and document libraries (both OTB and custom) are not propagated with OTB variations. If you need it you will need to develop custom solution (based on event receivers for example).

As variations exist on site collection level, all configuration is made on site collection’s root site (Site Actions > Site settings). There are 3 variation related settings available:

  • Variations – contains all variation related settings. We will pay special attention on “Automatic Creation” option below. All other options are more or less self descriptive:
Variation setting name Description
Variation Home Type the starting location where variations of this site will be created. Variations of this site will include the site and all subsites.
You can specify root site of site collection to be variation home – in this case you need to specify “/” in this field. The value in this field will be used when you will create variation hierarchy in Site settings > Variation labels (see below).
Automatic Creation Choose whether you want to automatically create corresponding variations when a site is created or a new page is published, or not to create variations automatically.
See part 2 for more details.
Recreate Deleted Target Page Choose whether a new target page should be recreated when the source page is republished if the previous target page has been deleted.
Update Target Page Web Parts Choose whether Web Part changes from source page should be updated to existing target pages. Note that Web Parts personalization will be lost when update is made.
Notification Select the checkbox to have e-mail sent to the contact person of the welcome page of the target site when a new subsite or page is created, or the contact person of a page when a target page is updated with revisions from the source variation.
Resources Choose whether to have new page variations use the same resources as the original page or to use copies of these resources created in the location of the new page.
  • Variations labels – here you create variation hierarchy (source and target sites). Important to know that you can choose site template only for variation source site. This option is disabled for target sites (variation labels) – they will be created using the same site template as source site.
    When you create new variation label you need to specify the following settings:
Variation label setting name Description
Label name and Description Label name is relative URL for the newly created variation site. Full URL is combined from “Variation Home” (see above) and Label name
Display name Technically it will be a title of a newly created site. As official description says: “Most often display names are localized versions or user friendly versions of the label”
Language Specifies language of newly created variation site. This option determines UI language of a site. Amount of available languages depends on how many language packs you installed into the system. Several variations labels may have the same language
Locale Locale specifies format of dates, currency, etc. for newly created variation label site
Hierarchy Creation Specifies what content should be propagated on newly created variation label from source:
- Publishing Sites and All Pages
- Publishing Sites Only
- Root Site Only
Source Variation Specifies whether newly created variation label site will be variation source. It can not be changed once variation hierarchy is created.

When variations hierarchy is defined, you should click “Create Hierarchies” button (in Site settings > Variation labels). After that “Variations Create Hierarchies Job Definition” (see below) will create sites hierarchy.

  • Variation logs – contains log records written by variation-related timer jobs (see below)

Here is table with variation related timer jobs. Descriptions of timer jobs available in Central Administration are not always clear enough – in part 2 I will describe where and how each of job is used:

Job title Description

Variations Create Hierarchies Job Definition 

Creates a complete variations hierarchy by spawning all sites and pages from the source site hierarchy for all Variation labels.
Variations Create Page Job Definition Creates peer pages in variant sites.

Variations Create Site Job Definition

Creates variant sites when the Variations Automatic Creation setting is disabled.
Variations Propagate Page Job Definition Updates peer pages in variant sites.
Variations Propagate Site Job Definition Creates variant sites when the Variations Automatic Creation setting is enabled.

All these jobs are web application specific, so if you have several web applications on your server, these jobs will be created for each of them. Very useful thing with jobs in Sharepoint 2010 is that you can force them from UI (Central Administration > Monitoring > Job Definitions > select job and click Run Now button). It really helps when you make testing of some variation functionality.

The overview of Sharepoint functionality for variations would be complete if I won’t mention Relationships list – hidden list in the root site of site collection where Sharepoint stores relations between variation pages and sites. This list often becomes another pain point for people who work with variations as often relations get corrupted. This theme is out of the scope of my article, for details I send you to mentioned Gary Lapointe blog post.

This is what I would like to show in overview of variations functionality in Sharepoint. In the 2nd part I will show how it is used in content production.

Update 2011-05-01: the 2nd part of the article is published here: Sharepoint variations guide. Part 2– propagation use cases.

5 comments:

  1. Hi Alex. I'm just looking to variations for the first time, so this article was vry useful for me. I've been try it out, but can't seem to get passed the "Create Hierachies" step. I've created 6 variations, the first being my source, and then submitted the timer job using that "Create Heirarchies" link. I found that timer job and use "Run Now". While no errors are reported or that job, it's run time is 00:00:00, and going back to my Variations labels page, the "Hierarchy Is Created" column is No for all 6 variations. Just wondered if you might have any hints of where I could look to resove this.

    ReplyDelete
  2. QMKevin hi,
    the first thing I would recommend you to check when working with variations is to check variations log (Site settings > Variations log). Sharepoint adds a record to this log when page or site is propagated. Also check logs in 14/Logs folder (for testing increase log level to Verbose).
    I also encountered with such situation on one of environment (variations hierarchy was not created 1st time). After playing a bit, they were created but there were no any significant changes in configuration (so for me this process is not very stable). I would recommend to delete some variation labels and start with 3 sites for beginning instead of 6. Try to restart timer service between your tries. Also ensure that you selected those job which corresponds to your web application (there can be several same jobs if you have several web applications).

    ReplyDelete
  3. Sorry I didn't respond before - I got very sidetracked with all the other SharePoint features and techniques I have to learn. I ended up wiping out the site collection I was initially using and found that when I tried variations on a new site collection everything worked as expected. I would love to have identified the exact cause of the initial error, but all those bits and bytes are long gone now. Thanks for responding though, it was greatly appreciated.

    ReplyDelete
  4. Hi Alex. i got stuck at below level. My doubt is if the root site has three subsite , I am going to apply the variation to that root site. whether can we get the those subsite under the variation site?

    ReplyDelete
  5. Ramadurai U, hierarchy should be little bit different. Your source site also should be sub site, e.g. http://example.com/en and it may have own sub sites. Variation labels will be created on the same level: http://example.com/de, http://example.com/fr and so on.

    ReplyDelete