Inherits Cloud

Loving Microsoft Cloud, specially Office 365

Mes: febrero 2012

Office 365: Error al desactivar una solución Sandbox que es una Site template

Si habéis guardado algún sitio de Office 365 como plantilla, y desplegáis la solución en otro site o colección de sitios, es posible que os encontréis un error al intentar desactivar la solución.

Seguramente os ocurrirá si habéis estado creando y eliminando sitios basados en esa plantilla.

Para poder desactivar la solución sin que os falle, primero, obviamente, tendremos que asegurarnos de que no hay ningún site existente basado en esa plantilla.

Además, y esto ya no es tan evidente, es que te asegures que no tienes nada relacionado con esa plantilla, en la papelera de reciclaje:

image

Y lo último, y nada evidente, es que compruebes esto mismo, en la “otra” papelera de reciclaje (sí, es la misma papelera, pero tiene 2 vistas diferentes, y desde el link anterior, sólo vemos una de ellas):

image

Y dentro de esta, revisa las 2 vistas disponibles:

image

Que por cierto, las 2 vistas tienen el mismo nombre, pero creo que es por una mala traducción del Inglés, ya que en inglés se llaman:

  • End user recicle bin items
  • Deleted from end user recicle bin items

Después de eliminar todo lo relacionado con esa plantilla (sitios eliminados que estaban basados en esa plantilla), ya deberías poder desactivar la solución sin problemas.

Nada más, agradecer a mi compañero Juan Moreno, que se dio unos cuantos cabezazos hasta encontrar esa “papelera escondida” Sonrisa

Saludos!!

SharePoint 2010: Liberada nueva versión de la SharePoint Software Factory

Hace un tiempo os hablé de la SharePoint Software Factory. Pues bien, hace unos días que se ha liberado una nueva versión, la 3.2

Os copio la lista de novedades, y os pongo algún pantallazo de mis favoritas Sonrisa

  • Menu "List And Doc": Linq to SharePoint (imports the schema of several lists to LINQ classes)
  • Menu "BCS": Simple BCS Model
  • Menu "BCS": Import BCS Model from Database
  • Menu "BCS": Model BCS Model with classes
  • Menu "BCS": Quick Deploy BCS Model (undeploys/deploys BCS model via powershell)
  • Menu "Security": Minimal CAS, Medium CAS, recipes for single CAS Policy Items etc.
  • Menu "ASP.NET": WCF Webservice
  • code snippets added, partly from http://spcodesnippets.codeplex.com Thx to Ayman El-Hattab (http://aymanelhattab.com)
  • Added custom FxCopDictionary to allow project specific exclusions for abbreviations, keyword, acronyns etc. Dictionary will be automatically used in Realase build configuration.

Fijaros que maravilla para generar un data context de LINQ to SharePoint:

image

Tras el asistente, nos genera, por un lado, un fichero XML de configuración del SPMetal, por si queremos repetir la generación, y por otro lado, 2 ficheros con una clase parcial para el contexto.


image image

También podemos añadir servicios de WCF, donde la plantilla ya prepara el package para su despliegue en el servidor de SharePoint:

image

image

Otra novedad es que se han añadido numerosos code-snippets. Aquí tenemos las categorías:

image

Destacar también que dispone de un asistente para migrar a esta última versión, proyectos realizados en la versión anterior.

Un saludo!!

SharePoint 2010: Búsqueda sin resultados, cuando sí los hay y el usuario puede verlos

Cuando se realiza una búsqueda en SharePoint, se aplica un filtrado de los resultados, según el usuario que lanza la query. Es decir, si un usuario no tiene permisos sobre una lista concreta, obviamente, los resultados que hagan referencia a esa lista, no le aparecerán al usuario.

Ahora bien, hoy me he encontrado con un caso que no cumplía esta premisa, y que puede ser bastante frecuente durante la fase de desarrollo del proyecto. Resulta que estaba lanzando una búsqueda con un usuario que era Colaborador del site, por lo que tiene permisos para ver y editar todas las listas, y sin embargo, en las búsquedas, no me devolvía ningún resultado. Sin embargo, me iba a una lista cualquiera, y podía ver y editar un item que cumplía con la query de búsqueda.

De hecho, si hacía la misma búsqueda con otro usuario colaborador, sí me salían resultados válidos. ¿¿??

Pues bien, aquí van los motivos:

  • No tenía programado ningún crawling, ni completo ni incremental. Al ser un entorno de desarrollo, lo que hago es forzar el crawl según necesito.
  • El usuario que no devolvía resultados de la búsqueda, lo había añadido al sitio, después de haber hecho el último crawl.
  • Al forzar un nuevo crawling, y probar de nuevo con el usuario que no devolvía nada, ahora, sí me devolvía los resultados de búsqueda esperados.

La conclusión es que el índice de búsquedas que monta SharePoint, copia mucha información del contenido, incluyendo, los permisos de los usuarios.

Para comprobarlo, he repetido el proceso:

  • He quitado del site a otro usuario que era colaborador
  • He forzado un nuevo crawling
  • He vuelto a añadir al usuario como colaborador
  • He realizado una búsqueda con dicho usuario, y efectivamente, no he obtenido ningún resultado de búsqueda.
  • He forzado un segundo crawling
  • Al volver a buscar con el mismo usuario, ya aparecían los resultados de la búsqueda esperados.

Moraleja:

Lleva esto en mente, y programa el crawling incremental y completo, según las necesidades de que dichos resultados estén “actualizados”. Ten en cuenta que a parte de esos permisos, también copia gran parte del contenido, por lo que es muy sencillo que elementos que hayan sido eliminados, o actualizado algún metadato, sigan apareciendo en los resultados de búsquedas con una versión incorrecta.

Saludos!!

SharePoint 2010: Explicación del código de un Site template de SharePoint

Cuando creamos un nuevo sitio de SharePoint, debemos elegir una plantilla de sitio, en la que queremos basar nuestro nuevo sitio. Si lo hacemos desde la interfaz web, lo tenemos muy fácil, y tan sólo tenemos que elegirla, tal y como vemos en la imagen:

image image

Si queremos hacerlo desde power-shell, podemos usar el comando New-SPSite donde con el parámetro Template, le daremos la plantilla a utilizar. Ese parámetro, nos pide un código de plantilla. Podemos ver los códigos instalados, con otro comando de power shell:


Que nos dará un listado como el siguiente (repetido para cada idioma instalado):


Es el Name de ese listado, el que debemos utilizar para el parámetro Template. Ejm:


Pero ¿qué significan esos códigos?

Pues bien, los Site Definition de SharePoint, se componen, entre otras cosas, de 2 ficheros .XML:

  • webTemp.xml: Existe uno por cada lenguaje instalado, y contiene las entradas de las plantillas de sitio, que luego se listan en las primeras imágenes del post.
  • ONET.xml: Contiene las configuraciones de cada plantilla, como pueden ser las listas, módulos, features a nivel site y web, etc.

Si abrimos el fichero webTemp.xml, que se almacena en 14TemplateLocaleXML veremos varias entradas de este tipo:


Pues bien, si volvéis a fijaros en los códigos de las Template, veréis que se forman como:


¿Y cómo se relaciona con el fichero ONET.xml (que es el que contiene la chicha de la definición del Site)?

Pues bien, lo primero es que dentro del directorio 14TempateSiteTemplates, tendremos una carpeta con el nombre del atributo Name del nodo Template. Es en esa carpeta, dentro de la subcarpeta XML, donde encontraremos el ONET.xml. Si vemos ese fichero, veremos que hay una parte de Configurations, donde coinciden los IDs de cada nodo Configuration del webTeml.xml


Saludos!!

Office 365: Branding en SharePoint Online con URLs relativas a mi colección de sitios

Si queremos añadir una referencia a una hoja de estilos CSS desde la Master Page de nuestro sitio de SharePoint Online, podemos hacerla relativa a la colección de sitios de la siguiente forma:


Podemos usar los siguientes comodines en la ruta:

  • $SPUrl:~SiteCollection : Para partir de la raíz de la colección de sitios
  • $SPUrl:~Site : Para partir de la raíz del sitio actual
  • ~language : Se sutituirá por el código del idioma (en-us, es-es …)

Para recursos compartidos por toda la colección de sitios, se recomienda usar la Style Library, creando un directorio específico para el idioma, y dentro, otro específico de “mi branding”

Idem para el site, pero utilizando la biblioteca de SiteAssets.

¿Y si dentro de mi CSS necesito referenciar URLs para backgrounds, etc?

Pues en ese caso, asumiremos que el path que debemos poner, es relativo a la ubicación de la CSS. Es decir, si tenemos la CSS en la Style Library, y dentro de esta tenemos una carpeta “images”, pues el estilo lo definiremos como:


Saludos!!

SharePoint 2010: Cómo eliminar propiedades rastreadas y administradas del buscador

En este post vamos a ver cómo podemos eliminar propiedades rastreadas del buscador de SharePoint, lo que os puede ser muy útil si estás trasteando con crear propiedades rastreadas y administradas desde código.

Si estamos haciendo una aplicación de búsquedas, seguramente conoceremos lo que son las propiedades rastreadas (Crawled properties), y las propiedades administradas (Managed properties). Si no es el caso, en futuros posts hablaremos de estas propiedades y su importancia en las búsquedas.

El caso es que borrar una propiedad administrada, es muy sencillo, y se puede hacer desde la propia administración central:

image

Sin embargo, eliminar una propiedad rastreada, ya no lo es tanto, y no tenemos posibilidad de hacerlo, ni desde la administración central, ni desde el modelo de objetos (no he mirado muy a fondo desde power-shell, pero tampoco he encontrado nada a primera vista).

Ahora bien, tenemos una alternativa para poder eliminar estas propiedades. El precio a pagar, es que podemos eliminar otras propiedades rastreadas que no estén mapeadas a propiedades administradas /yo no le he visto mucha utilidad a una propiedad rastreada, que no está mapeada a ninguna propiedad administrada).

La forma de eliminarlas sería:

Primero, eliminar la propiedad administrada a la que está mapeada la propiedad rastreada. Partimos de que tenemos una propiedad rastreada llamada: ows_content que está mapeada con la propiedad administrada: QuestionContent

image

Una vez eliminada, editamos la propiedad rastreada, y nos aseguramos de desmarcar “Include values for this property in the search index”

image

Tras esto, habremos conseguido que la propiedad rastreada, sea “susceptible” de ser eliminada. Para eliminarla totalmente, tendremos que ir a la pantalla de configuración de la categoría a la que pertenece la propiedad rastreada.

image

Seleccionamos “Edit category” (sobre el desplegable que nos aparecerá al pasar por encima) de la categoría a la que pertenece la propiedad rastreada (podemos ver la categoría en la anterior pantalla de edición de propiedad rastreada):

image

Marcamos la opción “Delete all unmapped crawled properties”

image

Pinchamos sobre OK, y listo!!

Recordad que esto eliminará todas las propiedades rastreadas que no estén marcadas como “incluir en índice”, y no tengan ninguna propiedad mapeada. Yo de momento no he encontrado ningún daño colateral de hacerlo así.

Saludos!!

Office 365: Documento corrupto, cuando me descargo algún documento Office del sitio de grupo o Exchange online

Cuando empiezas a trabajar con Office 365, seguramente te encontrarás con un problema a la hora de intentar abrir un documento Office, que te has descargado desde el Exchange Online, o el sitio de grupo. El error tiene esta pinta:

image

La solución es muy sencilla, basta con editar las propiedades del fichero descargado, y pinchar sobre “Desbloquear”:

image

Saludos!

SharePoint: 15 !! Technical preview SDK disponible

Tal y como nos avanzaba Juan Carlos en este post. Siguen llegando novedades alrededor de Office 15. En este caso se trata del SDK. No, no nos hagamos ilusiones. En realidad es una parte pequeña de ese SDK. Tal y como lo describe Microsoft:

  • SharePoint 15 Technical Preview Managed Object Model SDK: This compiled help (.chm) file contains reference topics focusing only on types and members that are called by other Microsoft applications. This reference does not document the full SharePoint 15 managed object model. That documentation will accompany a later release of SharePoint 15.

Lo podéis descargar en este enlace:

http://www.microsoft.com/download/en/details.aspx?id=28768

Le he echado un ojo a los NameSpaces. Os paso pantallazo:

image

Me ha llamado mucho la atención el namespace:

Microsoft.SharePoint.IdentityModel.OAuth2

Como sabréis, OAuth es un protocolo estándar de autenticación que utilizan sistemas como Facebook, Yammer, Google API, y un largo etcétera.

¿Podremos logarnos en SharePoint con nuestra cuenta de Facebook? …

Saludos!

© 2024 Inherits Cloud

Tema por Anders NorenArriba ↑