Ultimamente mi è capitato di dover aggiornare il valore di un term set all'interno della Managed Metadata Service Application di SharePoint e di riscontrare qualche problema nel meccanismo di aggiornamento.
Può capitare infatti che, dopo aver aggiornare il valore di un term set dalla Central Administration di SharePoint, questo non venga immediatamente aggiornato nei siti e nelle liste in cui il termine viene utilizzato.
Perchè succede?
Semplicemente perchè questo aggiornamento viene gestito da un timer job. Precisamente il job "Taxonomy Update Scheduler" che, di default, è configurato per girare ogni ora.
Quindi dovete sapere che se vi serve aggiornare il valore di un term set, dovete aspettare al massimo un'ora per vederlo aggiornato anche nei siti della vostra intranet, oppure dovete far partire a mano quel timer job all'interno della Central Administration.
Che cosa fa il timer job?
Si occupa di aggiornare e tenere sincronizzata una lista nascosta, all'interno di tutte le site collection della tua farm SharePoint, che contiene l'elenco completo di tutti i termini inserito all'interno della Managed Metadata Service Application.
Questa lista si trova al seguente indirizzo:
http://[root site url]/Lists/TaxonomyHiddenList/AllItems.aspx
Il motivo principale per cui è stata creata è dato dal fatto che risulta molto più veloce recuperare informazioni sui termini della Managed Metadata Service App dalla site collection corrente, piuttosto che dalla service application stessa.
Che fare nel caso in cui il termine non si aggiorna nonostante il timer job sia girato correttamente?
Eh si, vi assicuro che può capitare e non ho idea del perchè. Si vede che il timer job si incarta da qualche parte.
Nel caso vi succeda, basta aprire Powershell ed eseguire queste tre istruzioni:
$site = Get-SPSite http://siteurl [Microsoft.SharePoint.Taxonomy.TaxonomySession]::SyncHiddenList($site) $site.dispose()
Tutti i termini verranno automaticamente senza dover aspettare oltre.