sábado, 31 de mayo de 2008

Campos que no aparecen en custom layouts de SharePoint Designer

Estos días un compañero de Raona se encontró con un problema, estaba haciendo un custom layout con SharePoint Designer pero algunos de los campos no se dibujaban, sin seguir ninguna lógica aparente.

Después de darle un par de vueltas, nos dimos cuenta de que el problema está en los nombres que utiliza SharePoint Designer, ya que se limita a codificar el nombre del campo por completo (que debe corresponder con el InternalName del campo) pero el Internal Name tiene una longitud limitada a 32 caracteres que se puede ver desbordada por la sustitución de los espacios y caracteres extraños por la codificación del tipo _x0020_

Conclusión: con una pequeña aplicación de consola que te extraiga el InternalName del campo podrás solucionar esta situación, corrigiéndolo luego en SharePoint Designer:
SPSite site = new SPSite("http://miservidor");
SPWeb web = site.OpenWeb();
SPList list = web.Lists["nombreLista"];
SPField fld = list.Fields["campo"];
System.Console.WriteLine(InternalName: + "fld.InternalName");

Raona presenta el SharePoint Day en Barcelona