2013-01-23 15 views
9

In un esercizio di refactoring su cui stiamo lavorando, dobbiamo modificare i modelli di pagina per determinati siti web. La maggior parte pagina ottenere localizzata e hanno i loro modelli di pagina a cura della codice qui sotto, ma per pochi otteniamo il seguente errore:Errore di aggiornamento del servizio principale di Tridion

XML validation error. Reason: The element 'Metadata' in namespace 'uuid:940d95aa-fcce-481c-8de5-c61d06c74f46' has invalid child element 'description' in namespace 'uuid:940d95aa-fcce-481c-8de5-c61d06c74f46'. 

List of possible elements expected: 'TitleSEO, KeywordsSEO, DescriptionSEO, omniture' in namespace 'uuid:940d95aa-fcce-481c-8de5-c61d06c74f46'. 

Non ci sono descrizioni di campo nel nostro schema di metadati e TitleSEO, KeywordsSEO, DescriptionSEO, Omniture sono tutti campi facoltativi che non vengono modificati dal codice.

try 
{ 
    pData = client.Read(page.Attribute("ID").Value, null) as PageData; 
    //Localize Page 
    if (!(bool)pData.BluePrintInfo.IsLocalized) 
    { 
     client.Localize(pData.Id, new ReadOptions()); 
     if (dTemplateIDs.ContainsKey(pData.PageTemplate.IdRef.ToString())) 
     { 
      pData.IsPageTemplateInherited = false; 
      pData.PageTemplate.IdRef = dTemplateIDs[pData.PageTemplate.IdRef]; 
      client.Update(pData, new ReadOptions()); 
     } 
    } 
} 
catch (Exception ex) 
{ 
    Console.WriteLine("Error Inner " + ex.Message); 
} 
+4

Totalmente off-topic, ma congratulazioni per aver postato la millesima domanda Tridion su Stackoverflow! –

+0

Bella domanda, potremmo interessarti ad aderire alla [specifica specifica di Area 51 Tridion] (http://area51.stackexchange.com/proposals/38335/tridion?referrer=gPujQMxthNCNn9xqeeO2NA2). Iscriviti con lo stesso account SO se hai un momento. –

+0

Grazie al suggerimento di David sono riuscito a rimuovere la descrizione dai metadati. Un nuovo errore si manifesta ora. "Nome, Nome file deve essere univoco per gli elementi di tipo: Pagina all'interno del relativo gruppo di strutture e relativo contesto Blueprint. Origine o fonti di conflitto tcm: 121: 3456-64". Ho controllato sia la pagina corrente che è stata elaborata sia la pagina menzionata nell'errore e entrambi hanno nomi univoci e nomi di file. Qualche idea su cosa potrebbe causare il problema? – user1949001

risposta

14

Suona come ad un certo punto, in passato c'era un campo nello schema di metadati pagina chiamata "description" (che ho il sospetto fu poi cambiato in quello che ora è "DescriptionSEO"). Queste poche pagine che causano l'errore probabilmente non sono state aggiornate dopo la modifica, e quindi hanno il vecchio campo di metadati nel loro XML, quindi il problema della validazione quando si cambia il modello di pagina.

Se sono solo poche pagine, basta aprire le pagine, aggiungere qualche descrizione o altrimenti modificare qualcosa, salvarle e quindi provare nuovamente il codice.

Se sono più di pochi, probabilmente sarà necessario rilevare e rimuovere i dati esistenti a livello di programmazione.

+0

David, grazie al tuo suggerimento sono stato in grado di rimuovere la descrizione dai metadati. Un nuovo errore si manifesta ora. "Nome, Nome file deve essere univoco per gli elementi di tipo: Pagina all'interno del relativo gruppo di strutture e relativo contesto Blueprint. Origine o fonti di conflitto tcm: 121: 3456-64". Ho controllato sia la pagina corrente che è stata elaborata sia la pagina menzionata nell'errore e entrambi hanno nomi univoci e nomi di file. Qualche idea su cosa potrebbe causare il problema? – user1949001

4

Non sono sicuro di quale versione di SDL Tridion si sta utilizzando, ma in alcune versioni precedenti di SDL Tridion 2011, se i metadati erano stati precedentemente aggiunti a qualsiasi oggetto, non è stato cancellato cambiando lo schema dei metadati per essere vuoto su l'oggetto. Come tale, ho scoperto che dovevi impostare il valore Metadata su NULL con il codice prima di salvare l'oggetto. Questo potrebbe risolvere il tuo problema.

Problemi correlati