SharePoint 2010: Cuidado con los IDs de campos y al referenciarlos en tipos de contenido!

No soy un gran fan de utilizar la aproximación declarativa a la hora de definir “artefactos” típicos de SharePoint como pueden ser columnas o tipos de contenido de SharePoint 2010, pero como se suele decir hay que saber de todo y a veces esta aproximación puede resultar ventajosa frente a trabajar exclusivamente en el mundo de los objetos. El caso es que la aproximación declarativa implica que tienes que tener cierto cuidado cuando defines los atributos que conforman un cierto artefacto, y de ahí el título de este post, ya que por ejemplo no es lo mismo especificar el ID de una columna de sitio de SharePoint 2010 de la forma ID=“ 59491385-A088-4CEA-AEC9-B6BE51276C0F” que hacerlo como ID=“{59491385-A088-4CEA-AEC9-B6BE51276C0F}”…la sutil diferencia viene dada por las llaves de inicio y cierre del ID ya que si no las indicamos provocamos que a la hora de usar esas columnas en la definición de un tipo de contenido éste no se dé por enterado y no las incorpore, amén de problemas en re-despliegue de los artefactos y otras situaciones curios…moraleja: define y referencia los atributos como los espera SharePoint:

  • Definición de una columna de sitio:
   1: <?xml version="1.0" encoding="utf-8"?>

   2: <Elements xmlns="http://schemas.microsoft.com/sharepoint/">

   3:     <Field ID="{59491385-A088-4CEA-AEC9-B6BE51276C0F}"

   4:            Name="SubmittedBy"

   5:            DisplayName="$Resources:SubmittedBy"

   6:            Type="User" List="UserInfo" ShowField="NameWithPicture"

   7:            UserSelectionScope="0" UserSelectionMode="0"

   8:            Required="TRUE" Group="Custom Columns"></Field>

   9: </Elements>

  • Referencia a la columna de sitio en la definición de un tipo de contenido:
   1: <?xml version="1.0" encoding="utf-8"?>

   2: <Elements xmlns="http://schemas.microsoft.com/sharepoint/">

   3:   <!-- Parent ContentType: Item (0x01) -->

   4:   <ContentType ID="0x0100c660015c779343cd8a24648d752b6778"

   5:                Name="$Resources:WeeklyStatusReportCT"

   6:                Group="Custom Content Types"

   7:                Description="$Resources:WeeklyStatusReportCTDesc"

   8:                Inherits="TRUE"

   9:                Version="0">

  10:     <FieldRefs>

  11:         <FieldRef ID="{FA564E0F-0C70-4AB9-B863-0177E6DDD247}" Name="Title" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>

  12:         <FieldRef ID="{59491385-A088-4CEA-AEC9-B6BE51276C0F}" Name="SubmittedBy" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>

  13:     </FieldRefs>

  14:   </ContentType>

  15: </Elements>

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *