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.
No hay comentarios:
Publicar un comentario