4

I have an issue with adding of child items under just created parent item. I am using an approach from this post. However, I have an issue because I am using multilanguage pipeline steps (details below).

Env-nt:

Sitecore.NET 9.0.1 (rev. 171219)
Data Exchange Framework 2.0.1

Installed packages:

Data Exchange Framework SDK 2.0.1
Sitecore Provider for Data Exchange Framework 2.0.1(to store items in Sitecore)

My thoughts were following: if we already created a Parent, so we have Parent sitecore item in Target context. I want to use a Parent item as a parent for all its children. So, I set "Pipeline Context Target" for "Parent for Item Location" field in Resolve Item Step.

enter image description here

However, it seems I don't have correct parent item. Error message in the log: Item was not saved. (id: 00000000-0000-0000-0000-000000000000, language: en).

I used dotPeek to check the code of processor ResolveMultilanguageSitecoreItemDictionaryPipelineStep (highlighted on the image above). It seems that we don't use "Parent for Item Location" field at all.

enter image description here

If we check the default pipeline step ResolveSitecoreItemStepProcessor then it seems OK.

enter image description here

As a workaround I will try to create my own processor (as a copy of existing one with some changes), but it would be great to get any suggestions/feed back from some of you as well.

Best regards, Maxim

  • Is this question significantly different from this one? sitecore.stackexchange.com/questions/12310/… – Mark Cassidy Jun 25 '18 at 17:17
  • @MarkCassidy I guess the question should be something like "Resolve Multilanguage Sitecore Item Dictionary Pipeline Step does not take into account Parent for Item Location setting" – Vlad Shpak Jun 25 '18 at 21:12
2

we finally managed to solve this issue. Sitecore provided me with an official hotfix which I am using in Resolve Item/Update Item steps. If you can't ask Support for the help by some reason - then you can use hotfix provided by Vlad.

https://github.com/vladcheg/Sitecore.DataExchange.Providers.Sc.CustomHotfix

I used his solution with one small change:

my changes

I found that DEF is trying to find the plugin above in ResolveMultilanguagePipelineStep (if we have "Parent For Item Location" field set to "Pipeline Context Parent Temp Storage").

data from dotPeek

Hope it will be useful for some of you.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.