Domanda

Sono su una soluzione in cui creo un termine con alcuni sottermi nel termine. Dopo di ciò creo un sitecolumn e un listcolumn. Quando si imposta un valore per i listColumns con

 taxField.SetFieldValue(item, term, language);
.

taxonomy fiedato ottengo un'argumentException.

Microsoft.SharePoint.SPFieldValidationException: The given guid does not exist in the term store
.

Il termine è riempito correttamente e ha lo stesso GUID dell'elemento nel termstore (lo controllò con PowerShell).

Cosa posso fare per riempire il tassonomyfield appena creato o aggirare l'Extenction.

[Aggiorna] Funziona con

taxField.SetFieldValue(item, term, language);
.

E la soluzione Stefan Bauer sotto questo post. Il problema è altrove (se volete sapere leggi i commenti sotto Stefan Bauers Post)

[Aggiorna # 2] Il problema era la tassonomia lista nascosta nel sito. Non è stato aggiornato da quando ho cancellato un campo nei sitiColumns. Stefan Bauer ha indicato il suo blogpost dove la soluzione è per la prima volta: aggiorna la tua sharepoint e il secondo: prova taxononyssion.synchiddenlist (SPSite). BlogPost: http://www.n8d.at/ Blog / SharePoint-2010 / Anatomy-Of-Gestione-Metadata-Campi /

È stato utile?

Soluzione

Per impostare un campo tassonomia dovresti usare taxonomyfieldValue o taxononononierValuecolloaction

È necessario prima trovare il termine nel tuo Termine Store:

            TaxonomyField taxonomyField = item.Fields[field] as TaxonomyField;
            TaxonomyFieldValue taxValues = new TaxonomyFieldValue(taxonomyField);
            TaxonomySession session = new TaxonomySession(site);
            TermStore termStore = session.TermStores[taxonomyField.SspId];
            TermSet termSet = termStore.GetTermSet(taxonomyField.TermSetId);
            TermCollection terms = termSet.GetTerms(termLabel);
.

Se è stato recuperato il termine dallo archivio termine è possibile impostare il valore come segue

        TaxonomyFieldValue taxonomyValue = new TaxonomyFieldValue(taxonomyField);
        taxonomyValue.TermGuid = term.Id.ToString();
        taxonomyValue.Label = term.Name;
.

Altri suggerimenti

Per l'errore ... non è stato recuperato con tutti i campi tassonomici

Quali sono gli altri che possono trovare utili è che il campo del negozio del term sta iniziando nella posizione sbagliata all'interno del fine negozio.Quindi il codice non riesce a trovare i valori del memorizzazione dei termini in quanto è solo itera sotto la posizione di avvio del campo di memorizzazione del termine.

Il problema è stato la tassonomia lista nascosta nel sito.Non è stato aggiornato da quando ho cancellato un campo nei sitiColumns.Stefan Bauer ha indicato il suo blogpost dove la soluzione è per la prima volta: aggiorna la tua sharepoint e il secondo: prova taxononyssion.synchiddenlist (SPSite).BlogPost: http://www.n8d.at/Blog / SharePoint-2010 / Anatomy-Of-Gestione-Metadata-Campi /

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top