Error in event item:saved when migrating old WFFM items by Razl
Last time when I was upgrading another website from version 6.5 to 8.1, I have faced the problem with WFFM forms. I was transferring all content from old database to new one, using Razl. Almost everything went OK, but WFFM Form items.
The error I got, was rather misterious:
18684 11:12:39 ERROR One or more exceptions occurred while processing the subscribers to the 'item:saved' event. Exception[1]: System.FormatException Message[1]: Unrecognized Guid format. Source[1]: 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.b__20(XElement e) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at Sitecore.Analytics.Data.TrackingField.ValidateLinks(LinksValidationResult result) at Sitecore.Links.ItemLinks.AddLinks(Field field, List`1 links, ItemLinkState linkState) at Sitecore.Links.ItemLinks.GetLinks(ItemLinkState linkState, Boolean allVersions, Boolean includeStandardValuesLinks) at Sitecore.Links.SqlLinkDatabase.UpdateItemVersionReferences(Item item) at Sitecore.Links.ItemEventHandler.OnItemSaved(Object sender, EventArgs args) at Sitecore.Events.Event.EventSubscribers.RaiseEvent(String eventName, Object[] parameters, EventResult result) 18684 11:12:39 ERROR Razl service error Exception: System.AggregateException Message: One or more exceptions occurred while processing the subscribers to the 'item:saved' event. Source: Sitecore.Kernel at Sitecore.Events.Event.EventSubscribers.RaiseEvent(String eventName, Object[] parameters, EventResult result) at Sitecore.Events.Event.RaiseEvent(String eventName, Object[] parameters) at Sitecore.Events.Event.RaiseItemSaved(Object sender, ItemSavedEventArgs args) at System.EventHandler`1.Invoke(Object sender, TEventArgs e) at Sitecore.Data.Engines.EngineCommand`2.RaiseEvent[TArgs](EventHandler`1 handlers, Func`2 argsCreator) at Sitecore.Data.Engines.EngineCommand`2.Execute() at Sitecore.Data.Engines.DataEngine.SaveItem(Item item) at Sitecore.Data.Managers.ItemProvider.SaveItem(Item item) at Sitecore.Data.Managers.PipelineBasedItemProvider.ExecuteAndReturnResult[TArgs,TResult](String pipelineName, String pipelineDomain, Func`1 pipelineArgsCreator, Func`1 fallbackResult) at Sitecore.Data.Managers.PipelineBasedItemProvider.SaveItem(Item item) at Sitecore.Data.Items.ItemEditing.AcceptChanges(Boolean updateStatistics, Boolean silent) at Sitecore.Data.Items.EditContext.Dispose() at HedgehogDevelopment.Razl.Service.RazlService.SetItemDetails(Guid accessGuid, String database, Guid itemId, ItemDetails itemDetails)
It was really confusing for me. Later, I realized that it was caused by value of field Tracking in Personalization section. In my old database the value was:
<tracking> <event name="Field Changed" /> <event name="Field Completed" /> <event name="Field Not Completed" /> <event name="Field Out of Boundary" /> <event name="Invalid Field Syntax" /> </tracking>
In new version those events need an id parameter, not only name.
I decided to prepare that items by hand and put them in Sitecore package. I really wanted to make it all automated, but on the other hand, that solution wasn't really bad.
So I prepared that field in a way like this (Tracking field in 8.1 is in Advanced section):
<tracking> <event id="{AA3AE715-E87D-4B4D-80C7-4290546F770F}" name="Field changed" /> <event id="{F0113A93-570A-4F69-8C7C-BA08037D1E34}" name="Field Completed" /> <event id="{7E86B2F5-ACEC-4C60-8922-4EB5AE5D9874}" name="Field Not Completed" /> <event id="{F3D7B20C-675C-4707-84CC-5E5B4481B0EE}" name="Field Out of Boundary" /> <event id="{844BBD40-91F6-42CE-8823-5EA4D089ECA2}" name="Invalid Field Syntax" /> </tracking>
And it works :)
0 comments:
Post a Comment