Skip to content

A/B testing of components return "Data source invalid." #442

@izabelawlodarska

Description

@izabelawlodarska

I am using Sitecore 9.3 with Glass Mapper 5.8.177 and component A/B testing does not work for me.

I set up a simple component that works perfectly fine until I create component A/B testing variants. After that, I am getting the "Data source is invalid." error for both variants. I saw this was an issue previously and there were some PR that was merged saying that this was fixed in the version I am using but it still does not seem to be working for me.

The problematic method is:

var datasource = MvcContext.GetDataSourceItem<T>();

which returns null.

After debugging it seems that the item is resolved correctly until the Glass.Mapper.Sc.Pipelines.ObjectConstruction.ItemVersionCountByRevisionTask, void Execute(ObjectConstructionArgs args) method is reached.

The condition below fails because the Revision field does not exist in the Item Fields

if (scContext != null 
    && options != null 
    && options.VersionCount 
    && scContext.Item != null 
    && scContext.Item.Fields[FieldIDs.Revision].GetValue(allowStandardValue: false).IsNullOrEmpty())
	{
		args.Result = null;
	}

The debugger shows that the scContext.Item.Fields do not contain the Revision field so it returns null. The only field which is visible in my item while debugging is "__Originator"-{F6D8A61C-2F84-4401-BD24-52D2068172BC}. There are also no custom fields mapped as well.

I tried setting A/B testing also for different components - the same issue for all of them. All of the components inherit from StandardTemplate and Revision field is present on the items when I check that from Sitecore. Also, all of the components are being displayed and are working fine as long as no A/B testing is used.

When I check MvcContext.DataSourceItem value after MvcContext.GetDataSourceItem(); it seems that the items were set correctly in the DataSourceItem, they are just unable to be mapped to a model.

Any ideas on what is happening here and how to resolve these issues would be more than welcome.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions