Sunday, March 8, 2015

Why NOT to Upgrade to Sitecore 8.0 Update-1

Recently we tried to upgrade from sitecore 7.0 to Sitecore 8.0 Update-1. With this upgrade we started to face lot of issues (most of them are showstoppers) that we could not go live with.

Note : Sitecore 8.0 Update-2 has fixed most of those issues and look more stable

So, here are my reasons to NOT to go for Sitecore 8.0 Update-1

1. Item Layout Details not editable

When try to edit the layout details (Presentation -> Details), the content editor get stuck. Also, following error was thrown at the logs.



More frustrating was Hedgehog TDS synchronization failed to sync layout details, which caused lot of trouble for our developers.
The only was we were able to do layout changes was using Sitecore Rocks VS plugin.

Solution: Not reproducible in Update-2

2. Cannot add additional fields to WFFM Create User save action User Profile

C
annot add additional fields to "User Profile" to "Create User" save action in WFFM
When click "Add Field" button, it won't add new fields (or not responding)

Solution: Fixed in Update-2 WFFM module

3. Path Analyzer Loading Error

When we try to run Path Analyzer tool, it returns following error in a pop-up.

Error: "There was an error loading data, please try again. PathExplorer.PathMapDataLoaded() - PathMap is null."

Solution:
Important! Please note that sometimes this table is cleared by Sitecore during the rebuild of the reporting database through the sitecore/admin/RebuildReportingDB.aspx page (this behavior was registered as a bug and has been fixed in Sitecore CMS 8.0 Update-2), so you should fill this table with the data from the clean reporting database after performing the rebuild of reporting database mentioned in step 1. Quote : Sitecore Support 

As for sitecore support, one of the reason for this error is Segments table and TreeDefinition tables are empty. The reason for this table get empty is when running the RebuildReportingDb.aspx tool, it clears this table also.
Thanks for Sitecore support to finding the issue and this has been fixed in update-2

4. EXM error while changing common domain field value


Solution: Workaround provided by Sitecore (Ref:431963)

5. Cannot open EXM from Applications menu in Sitecore Desktop

When try to open EXM (Email Campaign Manager) from Sitecore Desktop Applications link, it returns an error.

Sitecore Desktop -> Start -> All Applications -> E-mail Campaign -> E-mail Campaign Manager

Solution: Workaround provided by Sitecore (Ref:432783)


So, if you are planing to go for Sitecore 8, then my recommendation is to go for Sitecore 8.0 Update-2

Wednesday, March 4, 2015

WFFM 8.0 rev. 150224 update package installation Issue

Recently, I tried to upgrade sitecore 8.0 update-1 to Sitecore 8.0 update-2 with WFFM module update from WFFM 8.0 rev 141217 to WFFM 8.0 rev 150224

while in the wffm upgrade progress, at the final step, upgrade process breaks with following error.


Server Error in '/' Application.
--------------------------------------------------------------------------------
 Could not resolve type name: Sitecore.WFFM.Services.Pipelines.Initialize.RegisterHttpControllerActivator, Sitecore.WFFM.Services (method: Sitecore.Configuration.Factory.CreateType(XmlNode configNode, String[] parameters, Boolean assert)).
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Exception: Could not resolve type name: Sitecore.WFFM.Services.Pipelines.Initialize.RegisterHttpControllerActivator, Sitecore.WFFM.Services (method: Sitecore.Configuration.Factory.CreateType(XmlNode configNode, String[] parameters, Boolean assert)).

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[Exception: Could not resolve type name: Sitecore.WFFM.Services.Pipelines.Initialize.RegisterHttpControllerActivator, Sitecore.WFFM.Services (method: Sitecore.Configuration.Factory.CreateType(XmlNode configNode, String[] parameters, Boolean assert)).]
   Sitecore.Diagnostics.Error.Raise(String error, String method) +129
   Sitecore.Configuration.Factory.CreateType(XmlNode configNode, String[] parameters, Boolean assert) +432
   Sitecore.Configuration.Factory.CreateFromTypeName(XmlNode configNode, String[] parameters, Boolean assert) +67
   Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +141
   Sitecore.Pipelines.CorePipelineFactory.GetObjectFromType(String type, XmlNode processorNode) +144
   Sitecore.Pipelines.CoreProcessor.GetMethod(Object[] parameters) +124
   Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) +351
   Sitecore.Nexus.Web.HttpModule.Application_Start() +175
   Sitecore.Nexus.Web.HttpModule.Init(HttpApplication app) +516
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +530
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +304
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +404
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +475

[HttpException (0x80004005): Could not resolve type name: Sitecore.WFFM.Services.Pipelines.Initialize.RegisterHttpControllerActivator, Sitecore.WFFM.Services (method: Sitecore.Configuration.Factory.CreateType(XmlNode configNode, String[] parameters, Boolean assert)).]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +12979668
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest  ...

So, I take a look into Sitecore.WFFM.Service.dll by decoding it and found that a config entry in the /App_Config/includes/sitecore.WFFM.services.config file was pointing to non-existing namespace.

Then, I checked the standalone installation of WFFM 8.0 rev. 150224 package /App_Config/Includes config files and copy those files into my instance.
Then, ran the WFFM module upgrade again.
Everthing worked fine.

After informing the finding, sitecore has reported this as a bug and they will provide a fix for this in future.

Hope this helps to someong !

Saturday, February 28, 2015

Capabilities of Sitecore - February Meetup - Sitecore User Group Sri Lanka - Event Report

Our February Meetup was held on Wednesday, 11th February 2015.
This time, our topic was "Capabilities of Sitecore".

This time, our presenter was Mr. Matthew Tilbury. He is one of the directors at Codehouse Ltd and has a long standing relationship with Sitecore. He is also an expert on how to use Sitecore to enhance the customer experience in web sites as well as marketing.

Matthew did a great demonstration using own Codehouse website.

Some of the topics that he did includes,


  • Quick look into using Content Editor & Page Editor
  • How to use Personalization to improve visitor experience
  • Engagement Plans, Goals, Engagement Values, etc
  • Quick look into ECM


Our schedule was as follows

6:00 PM - 7:15 PM  - Capabilities of Sitecore by Matthew Tilbury & Q&A Session
7:15 PM - 8:00 PM  - Networking



This event turns out to be a great one with most of the participants are requesting more event in the future meetups.

Sitecore development in Sri Lanka is growing rapidly with three companies schedule to start Sitecore development in coming months. As SUGSL, we are very happy to contribute to Sri Lanka Sitecore community.

Hope to see you all in our next Meetup!

Friday, February 20, 2015

Common Domain field value change error - Sitecore EXM 3.0 Bug


When try to change "Common Domain" field value on /sitecore/content/home/email campaign item, it returns following error


Sitecore Version : 8.0 rev.150121
Email Experience Manager 3.0.0 rev. 150126

I tried this on a fresh installtion (with fresh sitecore and EXM) and it returned the same error.

So, Ticket is created to sitecore support (431963) and it was reported as a bug. They provide the following workaround

1. Open the \Website\sitecore modules\Shell\EmailCampaign\UI\Dialogs\SelectDomain.xaml.xml file;
2. Add the EnableViewState="false" attribute to the <EmailCampaign.SelectDomain> node:
<EmailCampaign.SelectDomain x:inherits="Sitecore.Modules.EmailCampaign.UI.Dialogs.SelectDomainPage,Sitecore.EmailCampaign" EnableViewState="false">
3. Restart IIS.

and Workaround fixed the issue.

Hope this will help someone!

Wednesday, February 18, 2015

Publishing and Link DB Rebuild error after upgrading to Sitecore 8.0

Recently, we run an upgrade test for our environment to sitecore 8.0 update-1.
After the upgrade, when we try to publish items in /home node, it returns following error
(When try to rebuild the link database for master, we are getting an error.)

13384 13:48:46 ERROR Exception
Exception: System.Reflection.TargetInvocationException
Message: Exception has been thrown by the target of an invocation.
Source: mscorlib
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   at (Object , Object[] )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Jobs.Job.ThreadEntry(Object state)

Nested Exception

Exception: System.FormatException
Message: Unrecognized Guid format.
Source: mscorlib
   at System.Guid.GuidResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument, String failureArgumentName, Exception innerException)
   at System.Guid.TryParseGuid(String g, GuidStyles flags, GuidResult& result)
   at System.Guid..ctor(String g)
   at Sitecore.Analytics.Data.TrackingField.<>c__DisplayClass21.<get_Events>b__20(XElement e)
  ......



TEMP SOLUTION :
We try to find the items that return an error when published, and deleted them and recreated them. Then, everything start to work again including publishing and linkDB rebuild.

SOLUTION :
Sitecore support get back to us and gave the reason for these issue.
Following are a summary of there reason and solution.

In Sitecore 6.5 Update-4 there was a change exactly related to the format how Tracking field stores data. See ref. 358378 in Release Notes (http://sdn.sitecore.net/Products/Sitecore%20V5/Sitecore%20CMS%206/ReleaseNotes/ChangeLog/Release%20History%20SC65.aspx).

Please review "Tracking" field of these items - it contained incorrect definition of page events. You can simply clear tracking field content for these items and reassign page event if needed.

Execute something like following query on Master database

select * from SharedFields where FieldId = '{B0A67B2A-8B07-4E0B-8809-69F751709806}' and Value not like '%{________-____-____-____-____________}%' and Value like 'event'

Such query returned values to verify - where 'id' attribute was missed.

Friday, January 30, 2015

My footsteps on Sitecore 7.5 Upgrade Steps

Recently, I worked on a Sitecore 7.5 upgrade project. Since it was released very recently, the documentation was not that clear. So, I had to ask lot of help/questions from Sitecore support also.

Anyway, with the help of Sitecore Support, we were able to do the sitecore 7.5 upgrade successfully. Following are the final order of upgrade steps that I came up with.



  1. Upgrade Sitecore CMS to 7.2 Initial Release
  2. Run ECM Upgrade tool (Email Campaign Manager v.2.2 rev.141007 upgrade tool)
  3. Upgrade Sitecore CMS to 7.5
  4. Run Analytics Data Optimization Tool
  5. Upgrade ECM
  6. Run Analytics Data Conversion Tool (with ECM and WFFM command line options). You also need to ..
    • copy ECM conversion plugin files directly inside the <Analytics data conversion tool folder>
    • copy WFFM conversion plugin files directly inside the <Analytics data conversion tool folder>\Plugins
  7. ECM Post Installation Steps
  8. Upgrade remaining modules


Hope someone will find this useful. :-)

Monday, January 19, 2015

Enter special characters as input to WFFM form fields

One of my colleagues asked me about how can we allow to enter special characters (like &) into WFFM form fields. When you try to submit special characters (ex: &, >, <) with WFFM form, it returns following error message.



Reason for this warning message is, Access Security Validation that is added to every WFFM form by default.



More than a year back, I had a ticket created for the same issue with sitecore support and following is the solution/workaround they provided.

** refer "UPDATE 17/11/2015" at the bottom of the page for new kb article

Sitecore Solution :

Remove the Assess Security Risk verification action from the web form:
1.In the Content Editor, on the ribbon, on the View tab, select the Raw Values check box.
2.Select the item of the web form that you want to edit.
3.In the Submit section, in the Check Actions field, remove the <li> node containing the ID of the Assess Security Risk action - {2D5B5061-747A-4477-BD41-E746EAFEB231}


But, I thought of looking for a different solution to solve this issue. So, I had a quick look into the Sitecore.Forms.Custom.dll file and saw that it is a small adjustment that we need to do to achieve our requirement.



So, copy the Sitecore.Form.Submit.AssessSecurityRisk class from Sitecore.Forms.Custom.dll and insert it to our own class.
Then, change/remove the characters that needed to be included from the validation code
Then, duplicate the "/sitecore/system/Modules/Web Forms for Marketers/Settings/Actions/Form Verification/Assess Security Risk" item



 Change the "Assembly" and "Class" field value to map our newly created custom class

This allow us to only remove the necessary characters from the "Assess Security Risk" validation and keep all other default validations intact.

Update :
When you need to edit the "Form Verification" field value, you need to change the content editor to display "Raw values" for the fields, and then replace the id value (marked in green color text) with the ID of the newly created custom Form Verification item.

<?xml version="1.0" encoding="utf-16"?><li xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">  <g id="{10FE9225-5E6C-4896-9CD2-880D6D48C4CC}" displayName="Check Actions">    <li id="{2D5B5061-747A-4477-BD41-E746EAFEB231}" unicid="89F18F7C96F4469A9470057CE421A115">     <parameters></parameters>    </li>  </g></li>


UPDATE 17/11/2015 : 
Sitecore has come up with a solution which encodes these restricted characters when WFFM form is submitted.
https://kb.sitecore.net/articles/568572