Don't miss out Virtual Happy Hour this Friday (April 26).
Try our conversational search powered by Generative AI!
AI OnAI Off
Don't miss out Virtual Happy Hour this Friday (April 26).
Can you not just provide a value for this? Where you create a new relation:
if (relation == null)
{
relation = relationDto.NodeEntryRelation.NewNodeEntryRelationRow();
relation.CatalogId = catalogId;
relation.CatalogNodeId = nodeId;
relation.CatalogEntryId = entryId;
}
IsPrimary was released in Commerce 11.2 - https://world.episerver.com/documentation/Release-Notes/?versionFilter=11.2.0&packageFilter=EPiServer.Commerce&typeFilter=All&packageGroup=Commerce
Thanks,
Paul
Hi Paul,
have not been working with ECF.
Took me some time to figure it out.
https://marisks.net/2017/09/19/new-relation-apis-in-commerce-11/
I think you are correct. I will post an update as soon as i run the job again.
Unforunatly, do not have any small xml from client only a full export. Will take some time to import.
Thank you for taking the time to answer.
I am doing a migration job. I have an xml with data and i am importing it to Catalog.
On some items i get following error:
Any idea to why?
2019-07-04T04:54:58,Error,ktms03mstrqx112prep,ab7fea,636978128988831035,0,8452,203,"KTM.Integrations.PIM.EPi.ScheduledJobs.PimXmlAzureImportJobMaster : Column 'IsPrimary' does not allow nulls.
System.Data.NoNullAllowedException: Column 'IsPrimary' does not allow nulls.
at System.Data.DataColumn.CheckNullable(DataRow row)
at System.Data.DataTable.RaiseRowChanging(DataRowChangeEventArgs args, DataRow eRow, DataRowAction eAction, Boolean fireEvent)
at System.Data.DataTable.SetNewRecordWorker(DataRow row, Int32 proposedRecord, DataRowAction action, Boolean isInMerge, Boolean suppressEnsurePropertyChanged, Int32 position, Boolean fireEvent, Exception& deferredException)
at System.Data.DataTable.InsertRow(DataRow row, Int64 proposedID, Int32 pos, Boolean fireEvent)
at KTM.Integrations.PIM.EPi.Data.Parsers.CommerceParserBase.CreateUpdateRelation(Int32 catalogId, Int32 nodeId, Int32 entryId, Int32 sortOrder)
at KTM.Integrations.PIM.EPi.Data.Parsers.StructureParser.ParseProduct(String code, String parent, CatalogType type, TextElementCollectionDescriptor texts)
at KTM.Integrations.PIM.EPi.Data.Parsers.StructureParser.Parse()
at KTM.Integrations.PIM.EPi.Data.Parsers.DataParser.TryRun(Action action, Action`1 errorAction)",80000149-0002-fe00-b63f-84710c7967bb
****** CODE *****
protected CatalogRelationDto.NodeEntryRelationRow CreateUpdateRelation(int catalogId, int nodeId, int entryId, int sortOrder)
{
var relationDto = GetRelationDto(catalogId, nodeId, entryId);
CatalogRelationDto.NodeEntryRelationRow relation = null;
foreach (var entryRelation in relationDto.NodeEntryRelation.ToList<CatalogRelationDto.NodeEntryRelationRow>())
{
if (entryRelation.CatalogEntryId.Equals(entryId) &&
entryRelation.CatalogNodeId.Equals(nodeId))
{
relation = entryRelation;
continue;
}
relationDto.NodeEntryRelation.RemoveNodeEntryRelationRow(entryRelation);
}
if (relation == null)
{
relation = relationDto.NodeEntryRelation.NewNodeEntryRelationRow();
relation.CatalogId = catalogId;
relation.CatalogNodeId = nodeId;
relation.CatalogEntryId = entryId;
}
relation.SortOrder = sortOrder;
if (relation.RowState.Equals(DataRowState.Detached))
{
relationDto.NodeEntryRelation.AddNodeEntryRelationRow(relation);
}
else
{
relation.AcceptChanges();
}
if (relationDto.HasChanges())
{
_catalogSystem.SaveCatalogRelationDto(relationDto);
}
return relation;
}