Hi!
We are running Commerce 11.2.2 and are still using workflows. We just found out that exceptions are caught when we run the CartValidate workflow.
Our code:
public bool AddToCart(string code, decimal quantity, out string warningMessage)
{
var entry = CatalogContext.Current.GetCatalogEntry(code);
if (SiteContext.Current.Currency != _cartHelper.Cart.BillingCurrency)
{
SiteContext.Current.Currency = _cartHelper.Cart.BillingCurrency;
}
var lineItem = _cartHelper.AddEntry(entry, quantity, false);
// If this is not set explicitly,
// place price does not get updated by workflow
_cartHelper.Cart.ProviderId = "frontend";
ValidateCart(out warningMessage);
return _cartHelper.LineItems.Select(x => x.Code).Contains(code);
}
Running this code gives us this exception:
Mediachase.BusinessFoundation.Data.Meta.ObjectNotFoundException: Object Contact.PrimaryKeyId = 'c0105be4-02c0-4bb5-a257-0b9c76dfa12e' not found
at Mediachase.BusinessFoundation.Data.Meta.MetaObject.GetRowSource
at Mediachase.BusinessFoundation.Data.Meta.MetaObject.Load
at Mediachase.BusinessFoundation.Data.Meta.MetaObject..ctor
at Mediachase.BusinessFoundation.Data.Meta.MetaObject..ctor
at Mediachase.BusinessFoundation.Data.Meta.MetaObjectActivator.CreateInstance
at Mediachase.BusinessFoundation.Data.Meta.MetaObjectActivator.CreateInstance
at Mediachase.BusinessFoundation.Data.Meta.MetaObjectActivator.CreateInstance
at Mediachase.BusinessFoundation.Data.Business.EntityObjectDefaultRequestHandler.Load
at Mediachase.BusinessFoundation.Data.Business.EntityObjectDefaultRequestHandler.Execute
at Mediachase.BusinessFoundation.Data.Business.BaseRequestHandler.Mediachase.BusinessFoundation.Data.Business.IRequestHandler.Execute
at Mediachase.BusinessFoundation.Data.Business.BusinessManager.ExecutePipeline
at Mediachase.BusinessFoundation.Data.Business.BusinessManager.ExecutePipelineInTransaction
at Mediachase.BusinessFoundation.Data.Business.BusinessManager.Execute
at Mediachase.BusinessFoundation.Data.Business.BusinessManager.Load
at Mediachase.BusinessFoundation.Data.Meta.MetaObject.GetRowSource
at Mediachase.BusinessFoundation.Data.Meta.MetaObject.Load
at Mediachase.BusinessFoundation.Data.Meta.MetaObject..ctor
at Mediachase.BusinessFoundation.Data.Meta.MetaObject..ctor
at Mediachase.BusinessFoundation.Data.Meta.MetaObjectActivator.CreateInstance
at Mediachase.BusinessFoundation.Data.Meta.MetaObjectActivator.CreateInstance
at Mediachase.BusinessFoundation.Data.Meta.MetaObjectActivator.CreateInstance
at Mediachase.BusinessFoundation.Data.Business.EntityObjectDefaultRequestHandler.Load
at Mediachase.BusinessFoundation.Data.Business.EntityObjectDefaultRequestHandler.Execute
at Mediachase.BusinessFoundation.Data.Business.BaseRequestHandler.Mediachase.BusinessFoundation.Data.Business.IRequestHandler.Execute
at Mediachase.BusinessFoundation.Data.Business.BusinessManager.ExecutePipeline
at Mediachase.BusinessFoundation.Data.Business.BusinessManager.ExecutePipelineInTransaction
at Mediachase.BusinessFoundation.Data.Business.BusinessManager.Execute
at Mediachase.BusinessFoundation.Data.Business.BusinessManager.Load
Removing this line of code:
ValidateCart(out warningMessage);
Which runs the CartValidate workflow, and the exception goes away so I guess there is something in the workflow.
The web works just fine, but I'm nort sure if this affects the perfrormance in any way?
/Kristoffer