6

I have a schema as follows:

enter image description here

As you can see it has some embedded fields which are optional (Select List, for example). Some fields inside those embedded fields are mandatory.

The component you are looking at, saves successfully via the CME. Now when I try to content port the component, Content Porter complains as follows:

ERROR [2015-10-13 16:19:02,717] DTAPTools:124: Error - 10/13/2015:4:19:01 PM - Tridion.ContentManager.InvalidXmlException: XML validation error. Reason: The element 'selectList' in namespace 'http://www.sdl.com/web/schemas/core' has invalid child element 'options' in namespace 'http://www.sdl.com/web/schemas/core'. List of possible elements expected: 'key' in namespace 'http://www.sdl.com/web/schemas/core'.

Obviously, my first thought was to synchronize the component and so I did:

Base.CoreServiceBase sh = new Base.CoreServiceBase();
try
{
    var options = new Core.SynchronizeOptions
    {
        SynchronizeFlags = Core.SynchronizeFlags.All        
    };
    sh.OpenSession();
    sh.Session.SynchronizeWithSchemaAndUpdate(schemaId, options);

}
catch (Exception ex)
{
    Console.Write(ex.Message);
}
finally
{
    sh.CloseSession();
}

That code, gives me the same error as Content Porter. It seems like a bug to me since, if I fill in the mandatory fields within the optional embedded field, then the sync process runs just fine. Then If I removed them again (keep in mind that the CME lets me save the component as expected) and run the syn process again, it fails with the same error once again.

Have you encounter anything similar? Am I missing a hotfix?

Thanks,

5
  • what version are you on exactly? please note the current and supported version is 2013 SP1 HR1, and if you encounter a possible defect in that, you probabaly want to contact Customer Support. Oct 14, 2015 at 7:53
  • We are in 2013 SP1, without HR1... Oct 14, 2015 at 9:58
  • I'd start with installing HR1, quite a lot of fixes in there you absolutely want Oct 14, 2015 at 10:03
  • I know... but it can take weeks, if not months... Oct 14, 2015 at 18:36
  • Look through the hotfix list in it and see if there is one listed with your issue, and know if you planned the HR1 install when it was released you would have already had it... Oct 14, 2015 at 19:06

2 Answers 2

3

Have a look at the SynchronizeFlags enum. You're using synchronizeFlags.All and that does more than you need to get valid content. For example: putting default values in optional fields.

That is exactly what the TM hotfix is about: avoid the use of SynchronizeFlags.All, but only use the flags that will fix validation issues.

1
  • You are right, if I specify "Default" values for all optional fields, then it works. I changed the Flags to "Basic". And it worked, thanks, Oct 15, 2015 at 13:05
8

In SDL Tridion 2013 (SP1), the same error persists when you try to send the same structured content via the Translation Plugin.

To fix (in Translation Manager) we used the hotfix TT87682 part of the TM package here.

We successfully content port our content, with this same scenario - our versions are: from SDL Tridion SP1 HR1 to SDL Tridion SP1 using Content Porter 2013 SP1. << so it does let us import without HR1 on the target.

The general advice is obviously to move to HR1 as soon as possible - there are other issues with embeddable schemas that have been fixed with HR1, including (form the hotfix list):

  • TT88300: Custom URL embeddable schema multivalue field does not work properly on second value onwards in the second level embedded shema
  • TT87359: Reordering embedded Schema content causes RTF fields to become empty
  • CME_2013.1.0.87359: Moving embedded Schema fields that contains multiple fields, causes moved RTF fields to become empty in all browsers.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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