Dec22

Problemas con la Propiedad Administrada ModifiedBy

Tags: Bugs, MOSS/WSS

La propiedad administrada ModifiedBy no se indexa correctamente, en una instalación de Moss por defecto si accedemos a la propiedad administrada podemos ver que el número de elementos que se indexan con esta propiedad es 0.

clip_image002

Esto implica que no se pueden hacer búsquedas sobre esta propiedad y que si no tiene elementos indexados que se correspondan con ella, básicamente es inútil.

Pero como para casi todo en la vida hay una solución:

1. En la administración central ir a la propiedad administrada en cuestión y editar sus propiedades:

clip_image004

clip_image006

clip_image008

2. Para la propiedad administrada ModifiedBy podemos ver que tiene dos propiedades rastreadas asignadas:

Ows_Modified y ows_Modified_x0020_By

clip_image010

Pero a esas dos propiedades administradas hay que añadirle otras 2:

ows_Last_x0020_Modified(Text) y Office:8(Text)

Al añadir Offie:8 hay que tener especial cuidado ya que como se muestra en la siguiente imagen hay dos propiedades rastreadas que se llaman Office:8, la que hay que añadir en este caso es la primera al filtrar por Office, aunque he visto algún caso en que solo aparece una, supongo que debido a que la otra propiedad rastreada no estará informada.

clip_image012

Yo también marcaría el checkbox que permite usar esta propiedad en scopes, pero bueno eso ya no es imprescindible para nuestro propósito, entonces ahora ModifiedBy debería tener esta pinta:

clip_image014

3.Comprobar que la propiedad Office:8 que hemos añadido es la adecuada:

Como antes mencionaba hay dos propiedades rastreadas Office:8, para asegurarnos que la que hemos añadido al mapeo de la propiedad administrada ModifiedBy es la correcta, prodremos hacerlo en la pestaña de Propiedaes rastreadas, dentro de la carpeta Office.

clip_image016

clip_image018

Si la propiedad rastreada asociada a nuestra propiedad Administrada tiene como ID: 'F29F85E0-4FF9-1068-AB91-08002B27B3D9' es que es la correcta, para comprobarlo hay que entrar a las propiedades de la propiedad rastreada y verificar el ID.

clip_image020

clip_image022

4. Hacer un Rastreo complete(Full Crawl)

clip_image024

Y ahora los elementos que se encuentran después del rastreo con esta propiedad es mayor que 1000, o lo que es lo mismo que si hacemos una búsqueda por esta propiedad administrada nos va a devolver resultados.

clip_image026

Si al realizar el full crawl sigue sin contener elementos quizás sea necesario resetear el contenido indexado.

Publicado: 22-Dec-08 | 0 Comentarios | 454 Enlaces a este post

Dec16

El mundo según MOSS: Master Pages, layouts, Ghosted y Unghosted

Tags: MOSS/WSS

Recientemente en mi proyecto actual que ya está en fase de producción, nos hemos visto en la necesidad de realizar cambios sobre la página maestra y sobre los layouts.

En nuestro proyecto las páginas maestras y los layouts los desplegamos mediante una feature que entre otras muchas cosas carga en la librería de páginas maestras, nuestros layouts y páginas maestras personalizadas.

Ante la posibilidad de desplegar de nuevo nuestra feature en producción cuando todo está funcionando debidamente, Enrique Blanco me comentaba que modificando nuestra página maestra, que desplegamos mediante una feature, en la carpeta

12/features/nombrefeature/Mi.master

Y haciendo un “iisreset”, los cambios se verían reflejados en MOSS, yo no creía que esto fuese a funcionar, pero ya ves, una vez mas MOSS me quitó la razón.

Es decir yo mediante una feature desplego mi página maestra y una serie de layouts, que se almacenan en la librería de páginas maestras, y realizando una modificación directamente sobre los ficheros de la feature y reiniciando ISS, la librería de páginas maestras se actualiza a partir de los ficheros contenidos en la carpeta de la feature.

Yo siempre pensé que esto lo almacenaba en BBDD, que cuando tu mediante una feature generabas un nuevo elemento en, por ejemplo, la librería de páginas maestras, este nuevo elemento lo almacenaba en BBDD, pero bueno así se demuestra que al arrancar el ISS, MOSS tiene en cuenta los elementos de la librería de páginas maestras y genera una estructura en memoria teniendo en cuenta el origen de cada elemento que esté Ghosted y actualizándolos con respecto a su origen físico en vez de respecto a BBDD que serían los elementos UnGhosted.

Ya investigando un poco más fruto de mi cabezonería ante las cosas que no se comportan como yo creo, me he dado cuenta que la forma en que aprovisionamos archivos mediante una feature, la única que yo conozco, esta es la forma en que nuestra feature los despliega:

<Module Name="AddMasters" Url="_catalogs/MasterPage" RootWebOnly="TRUE">

<File Url=”[Mi.master]" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE" >

<Property Name="ContentType" Value="[tipoContendio ]" />

<Property Name="PublishingPreviewImage" Value="" />

<Property Name="MasterPageDescription" Value="[descripcion]" />

</File>

</Module>

Al especificar que el tipo de archivo es GhostableInLibrary, especificamos que este archivo existe físicamente, por lo tanto es lógico que los cambios realizados sobre el archivo físico se vean reflejados en la estructura de MOSS.

Evidentemente cuando cargamos elementos en la librería de páginas maestras, todos esos elementos deben ser GhostableInLibrary ya que los aprovisionamos mediante un fichero.

Es más si borramos la carpeta de la feature que contiene nuestra master, MOSS muestra un error y el fichero de log:

w3wp.exe (0x1310)    0x0D64 Windows SharePoint Services    General 72ks Medium Cannot get ghost document: Features\NombreFeature\NuevoLayout.aspx   

w3wp.exe (0x1310)     0x0D64 Windows SharePoint Services   General 8e2s Medium  Unknown SPRequest error occurred. More information: 0x80070002      

En el que indica que se ha producido un error al acceder al elemento “Ghosted”, en este caso mi layout, en la ruta de la carpeta que lo despliega.

Moraleja: hay que tener bien clarito que implica que algo esté Ghosted o Unghosted :

Y de propina otra hablando acerca del rendimiento de las páginas Ghosted y Unghosted de Mario Cortés:

(EDITADO)Y otro enlace mas:

Publicado: 16-Dec-08 | 2 Comentarios | 176 Enlaces a este post

Dec10

PowerShell & SharePoint I

Tags: MOSS/WSS, PowerShell

Recientemente he leído varios artículos acerca del potencial de la PowerShell en combinación con SharePoint y como en alguna ocasión he usado PowerShell, he empezado a investigar un poco acerca de su utilidad en entornos SharePoint.

Espero que este sea el primero de una serie de post dedicados a las posibilidades que ofrece PowerShell en combinación con MOSS.

Para los que no estén familiarizados con que es PowerShell, se podría resumir como un entorno de línea de comandos, con un lenguaje propio de script que permite implementar comandos (cmdlets) y en el que también permite cargar ensamblados .NET.

Una vez tenemos PowerShell instalado, lo ejecutamos, y se presenta una especie de MS-DOS .

1. Cargar la dll de Sharepoint

{System.Reflection.Assembly}::LoadWithPartialName(“Microsoft.Sharepoint”)

clip_image002[4]

2. Obtener un sitio de SharePoint

$siteurl = “http://localhost”

$site = new-object Microsoft.Sharepoint.SPSite($siteurl)

clip_image004[4]

Se puede acceder al contenido de la variable sitio simplemente ejecutando el siguiente comando:

$site

clip_image006[4]

Para obtener todos los miembros de sitio:

$site | get-member

clip_image008[4]

Y podemos mostrar los subsitios de nuestra web en formato de tabla mostrando distintas propiedades:

$site.AllWebs | format-table Url, ID, Name, AllUsers

clip_image010[4]

3. Obtener una lista de un sitio

Primero obtenemos el sitio donde se encuentra la lista y accedemos al objeto SPWeb

$siteUrl = “http://localhost:91”

$spSite = new-object Microsoft.Sharepoint.SPSite

$spWeb = $spSite.OpenWeb()

clip_image012[4]

A partir del objeto SPWeb accedemos a la lista:

$listName =”lista1”

$spList = $spWeb.Lists[$listName]

clip_image014[4]

4. Agregar una columna a una lista

A la lista que anteriormente habíamos obtenido en PowerShell, vamos a añadirle una nueva columna desde PowerShell:

clip_image016[4]

Mediante el comando

$spList.Fields.Add

Accedemos a los posibles valores del método para añadir nuevos campos:

clip_image018[4]

Y con este comando creamos una nueva columna:

$spList.Fields.Add(“Nueva Columna”, “Text”,0)

clip_image020[4]

clip_image022[4]

Algunos enlaces:

· Descargar Windows PowerShell 1.0

· SharePoint PowerShell for Beginners

· SharePoint PowerShell for Beginners - continued

Publicado: 10-Dec-08 | 0 Comentarios | 1460 Enlaces a este post

Dec01

Microsoft Office Groove 2007

Tags: Groove

Hace un par de meses tuve la oportunidad de asistir a un training de Groove en Microsoft, a raíz del cual obtuve la certificación de Groove 2007, la verdad es que un producto bastante desconocido y en algunos casos puede resultar ser una solución interesante. En este articulo se detalla cómo se usaron SharePoint y Groove en la coordinación de la ayuda a las víctimas del Huracán Katrina.

Está incluido en ediciones Enterprise y Ultímate de Microsoft Office, y así a primera vista puede parecer similar a una aplicación de mensajería instantánea, como el Messenger o algo así, pero además incorpora la posibilidad de compartir espacio y aplicaciones con otros usuarios de Groove.

A ver si soy capaz de explicarlo con algo más de detalle:

Microsoft Office Groove 2007

Microsoft Groove es un software de escritorio, que se comunica mediante P2P, diseñado para la colaboración y la comunicación de los miembros de pequeños grupos.

El paradigma central Groove es el conjunto de archivos que se comparten, además de algunas herramientas de colaboración, esto junto con los usuarios que poseen acceso a estos recursos se denomina “workspace”.

Un usuario de Groove crea un workspace e invita a otros usuarios a formar parte de él, a cada uno de estos usuarios, al responder afirmativamente al proceso de invitación, se le copia el workspace en su disco duro ,todos los datos cifrados. A partir de este momento todos los cambios que se realicen en el workspace se sincronizarán con los diferentes miembros cuando estos se encuentren conectados.

Entre las principales características de Microsoft Groove cabe destacar que permite sincronizar archivos con librerías de WSS 3.0 y MOSS, herramientas de colaboración (foro, calendario, Notepad compartido, chat), indicadores de presencia de los miembros, alertas, la posibilidad de alojar formularios InfoPath para recoger información de una manera estructurada…

Algunos enlaces interesantes:

· Demo de Groove

· Extending SharePoint with Groove Collaboration

· Microsoft Office Groove 2007 Overview

· Groove User Group

Publicado: 01-Dec-08 | 0 Comentarios | 223 Enlaces a este post