SetfieldValue per un tassonomiafield
-
09-12-2019 - |
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 /
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 /