SaaS CMS has officially launched! Learn more now.

Import NodeEntryRelation through Service API Error

Vote:
 

Hi, we have an issue which occurs when our customers daily sync from PIM to EPi is running. Almost all of the products are imported just fine, but lately a specific product has coused the import to fail. It happens when ne NodeEntry-relation is about to be set, which i find very strange. Other entries with relation to the same node is working perfectly fine. The error we receive from The Service API:

{"TimestampUtc":"2018-11-28T22:34:15.5474666Z","MessageType":5,"Message":"This row has been removed from a table and does not have any data. BeginEdit() will allow creation of new data in this row.","StageName":"Exception","StageIndex":1,"StageCount":1,"StageProgress":1,"StageTotalProgress":1,"ExceptionMessage":"This row has been removed from a table and does not have any data. BeginEdit() will allow creation of new data in this row.","ExceptionStackTrace":" at System.Data.DataRow.GetDefaultRecord()\r\n at System.Data.DataRow.get_Item(DataColumn column)\r\n at Mediachase.Commerce.Catalog.Dto.CatalogRelationDto.NodeEntryRelationRow.get_IsPrimary()\r\n at Mediachase.Commerce.Catalog.ImportExport.Import.NodeEntryRelationsReader.Read(ImportCatalogNodeCache relationCache)\r\n at Mediachase.Commerce.Catalog.ImportExport.Import.RelationsReader.Read(ImportCatalogNodeCache relationCache)\r\n at Mediachase.Commerce.Catalog.ImportExport.Import.Importer.Import(Stream stream, String sourceDirectory, Boolean overwrite)\r\n at Mediachase.Commerce.Catalog.ImportExport.CatalogImportExport.Import(String directoryPath, Boolean overwrite)\r\n at EPiServer.ServiceApi.Commerce.Jobs.CatalogImportJob.ExecuteJob(Guid jobId)"}

The relation XML-node from Import XML which fail:

<NodeEntryRelation><EntryCode>9723223</EntryCode><NodeCode>moj99lzdhusy</NodeCode><SortOrder>0</SortOrder><IsPrimary>True</IsPrimary></NodeEntryRelation> 

This however, which is the Noderelation just above in the XML does work:

<NodeEntryRelation><EntryCode>9723197</EntryCode><NodeCode>moj99lzdhusy</NodeCode><SortOrder>0</SortOrder><IsPrimary>True</IsPrimary></NodeEntryRelation>

What happens to the relation that fails is that the Enty is placed on ROOT in the catalog with no relations. Any idea what could be cousing this behaviour? We are running EPiServer Commerce 12.5 and Service API 5.1

#199595
Dec 03, 2018 11:26
Vote:
 

If you use the catalog import feature in Commerce manager, is that different? Can you import your catalog to Quicksilver? 

#199596
Dec 03, 2018 11:45
Vote:
 

Hi and thanks for the fast reply. I tried to import with the feature in commerce manager which resulted in the same error. Then I did a clean Quicksilver-installation and tried to import the catalog. Here all entries and nodes was imported just fine util the relations was to be set. Then Quicksilver throwed the same exception:

12/3/2018 5:27:03 PM: This row has been removed from a table and does not have any data. BeginEdit() will allow creation of new data in this row. at System.Data.DataRow.GetDefaultRecord() at System.Data.DataRow.get_Item(DataColumn column) at Mediachase.Commerce.Catalog.Dto.CatalogRelationDto.NodeEntryRelationRow.get_IsPrimary() at Mediachase.Commerce.Catalog.ImportExport.Import.NodeEntryRelationsReader.Read(ImportCatalogNodeCache relationCache) at Mediachase.Commerce.Catalog.ImportExport.Import.RelationsReader.Read(ImportCatalogNodeCache relationCache) at Mediachase.Commerce.Catalog.ImportExport.Import.Importer.Import(Stream stream, String sourceDirectory, Boolean overwrite) at Mediachase.Commerce.Catalog.ImportExport.CatalogImportExport.Import(Stream stream, String directoryPath, Boolean overwrite) at Mediachase.Commerce.Catalog.ImportExport.CatalogImportExport.Import(String directoryPath, Boolean overwrite) at Mediachase.Commerce.Catalog.ImportExport.ImportJob.DoImport(String[] stages, Int32 stageIndex, String sourceDirectory) at Mediachase.Commerce.Catalog.ImportExport.ImportJob.Execute(Action`1 addMessage, CancellationToken cancellationToken) at Mediachase.Commerce.BackgroundTasks.BackgroundTaskState.Execute(CancellationToken cancellationToken)
12/3/2018 5:27:03 PM: Task failed with exception.
12/3/2018 5:27:03 PM: Imported node entry relations: 3900

You can fetch the catalog which generates this issue here if that could help:

https://www.dropbox.com/s/vwzzyyk02lbj6zz/Catalog.zip?dl=0

#199607
Dec 03, 2018 17:35
Vote:
 

Thanks for the catalog - I was about to ask about it. Will look into it when I have time 

#199608
Dec 03, 2018 19:32
Vote:
 

Thank you!

#199609
Dec 03, 2018 19:45
Vote:
 

Looked into it I can say with fairly certainty that this is a bug in our side. I will file a bug for it and we will look into it later (it's too late for me to work on a fix now and even if I do it will be in latest version so it's less useful for you). Thanks for letting us know about this case

#199611
Dec 03, 2018 20:40
Vote:
 

That's fine. Thank you. Could you post a bugtracker on this thread or let me know when this issue is fixed? I'll see if I can get a workaroud in the product environment for this time being.

#199641
Dec 04, 2018 11:16
Vote:
 

The bug is COM-8447, it will take sometimes to be visible.

The workaround as I see it is to make sure the relations of an entry are "close" together in the catalog import file, so they will be imported in one batch, instead of spreading over multiple batches 

#199650
Dec 04, 2018 12:24
Vote:
 

This issue is fixed in EpiServer Commerce version 12.5.1 and the packages may be available on next week.

#200127
Jan 03, 2019 3:42
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.