Cuando creamos un formulario con InfoPath podemos, no solo publicarlo en SharePoint para utilizarlo como plantilla de una biblioteca de documentos sino promocionar algunos campos para que su valor se copie en columnas de dicha biblioteca.
Tal y como se describe en este post , cuando se promocionan campos del formulario, en la galería de columnas de sitio en el que se ha publicado podemos ver que se han creado columnas que posteriormente se pueden utilizar en las bibliotecas que utilicen el formulario como plantilla.
Hace poco, tras publicar un formulario tuve la necesidad de modificar el tipo de una de estas columnas de una línea de texto (text) a varias líneas de texto (note). Tras hacerlo, la columna “desapareció” de la galería y de las bibliotecas que la utilizaban.
Lo que ocurrió realmente fue que aunque el cambio se había hecho correctamente, la propiedad “ReadOnlyField” de la columna era “true”.
Para comprobarlo/modificar este valor podemos utilizar un código similar a éste:
SPSite site = new SPSite(<url del sitio>);
SPWeb web = site.OpenWeb();
SPField field = web.Fields[<displayName de la columna>];
field.ReadOnlyField = false;