Como todos sabéis, desde Visual Studio podemos crear listas, tipos de contenido y columnas de sitios, que definan nuestra solución y que nos genere un paquete que permita hacer el despliegue en múltiples granjas. También, con este tipo de soluciones, tendremos un control de versiones, utilizando TFS o similar, de nuestro proyecto.
Entre los tipos de columnas que podemos crear, tenemos las columnas de taxonomía o metadatos administrados, que son aquellas que permiten a los usuarios clasificar la información usando la taxonomía empresarial y sus conjuntos de términos.
La mejor forma de crear la definición de estas columnas, de forma declarativa en Visual Studio, es usar el tipo TaxonomyFieldType o TaxonomyFieldTypeMulti, junto a un Event Receiver, cuando se activa la característica, que localiza el conjunto de términos en el servicio de metadatos administrados y lo asocia a la definición de la columna, resumiendo:
Definimos la columna de sitio
<Field
ID=«{00000000-0000-0000-0000-000000000000}«
Type=«TaxonomyFieldType«
Name=«Organismo«
DisplayName=«Organismo«
ShowField=«Term1033«
Required=«FALSE«
Group=«Columnas Gestión documental«></Field>
Asociamos el conjunto de términos a la columna cuando se activa la característica
SPSite site = properties.Feature.Parent as
SPSite;
Guid fieldId = new
Guid(«{A3AFED68-C20D-4157-81DF-0DCF422853F1}»);
if (site.RootWeb.Fields.Contains(fieldId))
{
TaxonomySession session = new
TaxonomySession(site);
if (session.TermStores.Count != 0)
{
var termStore = session.DefaultKeywordsTermStore;
var group = termStore.Groups.GetByName(«Gestion documental»);
var termSet = group.TermSets[«Organismos»];
TaxonomyField field = site.RootWeb.Fields[fieldId] as
TaxonomyField;
// Connect to MMS
field.SspId = termSet.TermStore.Id;
field.TermSetId = termSet.Id;
field.TargetTemplate = string.Empty;
field.AnchorId = Guid.Empty;
field.Update();
}
}
Para asociar el conjunto de términos, tenemos que acceder al almacenamiento de términos (TermStore), mediante una sesión de Taxonomía (TaxonomySession), obtener el grupo que le corresponda y el conjunto de términos que le vamos a asociar. Todo esto agregando la referencia al ensamblado Microsoft.SharePoint.Taxonomy.
Saludos a todos…