Content Organizer – Moviendo documentos entre repositorios

Cuando nos encontramos en un proyecto de Gestión documental es común tener escenarios en el que necesitemos mover documentos o conjuntos de documentos entre repositorios documentales. Generalmente el uso de Workflows con SharePoint Designer donde disponemos de acciones para mover documentos entre bibliotecas en un mismo sitio son la solución más utilizada. Sin embargo en escenarios en los cuales tenemos que mover documentos entre repositorios, no necesariamente bibliotecas, sino carpetas o subcarpetas e inclusive entre sitios o site collections es algo que no se logra tan fácilmente.

Esta necesidad inclusive en versiones anterior no era posible lograrla con la funcionalidad fuera de caja, sin embargo con SharePoint 2010 disponemos de la característica de Organizador de contenido, esta característica nos permite especificar reglas a nivel del site collection donde especificamos hacía donde se deben mover nuestros documentos que tengan un tipo de contenido específico y cumpla con ciertas condiciones que indiquemos.

A continuación, los pasos a ejecutar:

1. Debemos primero activiar la característica a nivel de site collection “Organizador de contenido“.

2. A continuación dirigirnos a la opción de Reglas del organizador de contenido.

3. Aquí debemos crear nuestra regla.

Vemos una configuración básica, seleccionamos el tipo de contenido al que queremos que aplique y las condiciones si es que lo deseamos.

 

 

Finalmente especificamos hacia que repositorio se debemos mover nuestro documento.

 4. Después debemos dirigirnos a la sección Configuración del organizador de contenido.

 5. En esta página en la parte final ubicar la sección Puntos de envío y aquí se mostrará la URL de servicio web, esta URL es única por site collection y es la que nos permitirá mover documentos entre site collections o en el mismo site collection. Si queremos mover un documento hacia otro site collection debemos obtener la URL de servicio web del site collection destino.

6. El siguiente paso es configurar nuestro workflow desde SharePoint Designer. Aquí utilizar la acción de Enviar a ubicación (Send To Location).

La primer opción es la acción: Yo elegí copiar, pero puedo elegir mover, después tengo que especificar la URL del servicio web y finalmente un comentario.

 7. Ahora ejecuto el workflow de manera manual.

 

Verificamos el estado del workflow que este en Finalizado

 

Y podremos ver que el documento se movió hacia la biblioteca que indicamos en la regla incialmente. 

Configuración de ámbitos de búsqueda con FAST Search – Parte 1

En este primer artículo explicaré los pasos necesarios para configurar scopes desde FAST Search. La configuración de scopes no es posible realizarla mediante la interfaz web y será necesario hacer uso de PowerShell para estas configuraciones.

El primer ejemplo que utilizaremos es el de crear un scope en base a un origen de contenido.

En mi caso cree un origen de contenido de nombre Intranet y realice un Full crawl.

 A continuación ejecutar el siguiente comando para crear el ámbito de búsqueda: New-SPEnterpriseSearchQueryScope -SearchApplication “FAST Query SSA” -Name “Intranet” -Description “Ámbito de búsqueda de la Intranet” -DisplayInAdminUI 1

Ahora, sobre el ámbito creado aplicamos los filtros, en este caso agregar lo siguiente para filtrar por origen de contenido:

$scope = Get-SPEnterpriseSearchQueryScope -SearchApplication “FAST Query SSA” -Identity “Intranet”

$scope.Filter = “contentsource:Intranet”

$scope.Update()

 Si queremos agregar mas de un filtro podemos hacerlo de esta manera:

$scope.Filter = ‘and(metadato1:valor1,metadato2:valor2)’

Ingresar al FAST Query SSA y verificar en la sección Scopes que nuestro ámbito fue creado satisfactoriamente.

 A pesar de haber agregado reglas en la interfaz no se mostrarán y tampoco se mostrará los elementos dentro de ese ámbito a pesar de que realmente existan en FAST, esto debido a que la interfaz de SharePoint solo nos muestra información de SharePoint pero no nos muestra detalle del FAST.

 Finalmente en la configuración de nuestra colección de sitios ubicar la sección Ámbitos de búsqueda.

 Nos mostrará la lista de ámbitos disponibles y podemos seleccionar donde mostrarlos (En la búsqueda avanzada o en el drop down de búsqueda). Dar clic en Grupos de presentación.

 Editar Cuadro desplegable de búsqueda.

 Marcar nuestro ámbito y seleccionar el orden en que deseamos que se muestre.

Y listo, probar nuestro nuevo ámbito.

Configuración de ámbitos de búsqueda con FAST Search – Parte 2

En este artículo explicaré los pasos necesarios para configurar FAST Search for SharePoint para crear scopes en base a atributos de mis documentos.

El primer paso necesario es hacer un full crawl para que obtengamos todos los metadatos nuevos que hayan sido creados sobre nuestro portal.

Después del full crawl debemos dirigirnos a nuestro servidor de FAST y ejecutar el comando: Get-FASTSearchMetadataCrawledProperty | Out-File C:MisArchivosCrawledProperties.txt para poder exportar la lista total de metadatos y analizarla.

 Después en el archivo exportado debemos buscar los metadatos que deseamos utilizar para nuestros scopes.

A continuación debemos ejecutar el script que adjunto en la siguiente imagen, en donde crearemos una nueva propiedad administrada y la asociaremos a nuestra propiedad rastreada previamente identificada.

Si es que existen mas de una propiedad rastreada con el mismo nombre, que se quiera asociar a una misma propiedad administrada, o por otro lado, se quieran asociar mas de una propiedad rastreada a una propiedad administrada, ejecutar le siguiente script:

Para ver el detalle del mapeo de metadatos debemos ejecutar el comando Get-FASTSearchMetadataCrawledPropertyMapping, como TIP si queremos buscar un comando que no conocemos podemos utilizar el comando Get-Help y una palabra relacionada, adicionalmente podemos con Format-Table definir que información deseamos visualizar en la pantalla.

 Para obtener todos los metadatos mapeados debemos ejecutar el siguiente comando: Get-FASTSearchMetadataFullTextIndexMapping | Out-File C:MisArchivosMappings.txt

 Revisar a continuación en nuestro archivo exportado, que se creo correctamente nuestra propiedad administrada y esta mapeada.

 Listo, ya tenemos los metadatos para utilizarlos en nuestros resultado de búsqueda. Debemos hacer nuevamente un Full Crawl.

Después del Full Crawl ya podemos utilizar los metadatos en el buscador. Por ejemplo podríamos consultar los archivos que cumplan con la condición: mimetadato:mivalor. Digitar tal cual en la casilla de búsqueda.

Lo que sigue a continuación es crear los scopes. Para esto desde el servidor de SharePoint en la consola de administración ejecutar el siguiente script:

 Agregar el ámbito creado en el drop down desde nuestro buscador y probar.

 En la url se podrá ver el ámbito seleccionado.

Configuración del panel de refinamiento en los resultados de búsqueda

Dentro de las nuevas características de búsqueda incorporadas con SharePoint 2010 una que resulta muy interesante y realmente útil es el panel de refinamiento que se muestra en los resultados de búsqueda.

El panel de refinamiento nos permite filtrar los resultados y agiliza el proceso de ubicación de un documento. Por defecto permite filtrar por metadatos básicos como tipo de documento, autor, sitio, y adicionalmente muestra filtros por campos del tipo metadato administrado, sin embargo, si queremos añadir campos que no sean metadatos administrados, por ejemplo un choice column, tendremos que realizar pasos adicionales.

 A continuación les mostraré como lograr esto:

1. Como pueden observar en la siguiente imágen, tengo una biblioteca donde he añadido un campo del tipo choice column, este campo es “Importancia” y los valores disponibles son: Alta, Media y Baja.

2. Primero debemos ejecutar un Full crawl para que este nuevo metadato se muestre en la lista de disponibles en las configuraciones de búsqueda.

3. A continuación debemos ingresar a la sección de propiedades administradas y agregar una nueva propiedad.

4. En mi caso registre como nombre: “Importancia” y como descripción: “Importancia del documento”, el tipo de dato es Texto.

5. En la asignación de propiedades busco mi metadato: ows_Importancia y lo agrego.

 

 6. Ejecuto un rastreo completo nuevamente y podré ver la propiedad como rastreada.

 7. La configuración final consiste en editar las propiedades de nuestro webpart de Panel de refinamiento que lo veremos en la página de resultados de búsqueda. Debemos ubicar la sección de Definición de categoría de filtro. No se olviden de quitar el Check de Usar configuración de predeterminada.

 8. Sobre la sección antes mencionada agregar lo siguiente:

9. Finalmente podremos ver los resultados ejecutando una consulta en el buscador. 

Como referenciar hojas de estilo en SharePoint 2010

Cuando deseamos personalizar la apariencia de nuestro portal en SharePoint 2010 podemos hacer uso de las hojas de estilo (CSS), HTML, XSLT, Javascript o jquery entre otras tecnologías que nos lo permite.

El uso de hojas de estilo es fundamental para la personalización de la apariencia de nuestras páginas.

Para referenciar nuestra hoja de estilos primero debemos copiarla en una ubicación de nuestro portal, la que yo utilizo es Style Library/mycss.css

Ahora solo tengo que referenciarla desde mi master page, este puede ser uno personalizado o el por default, lo recomendable es que sea un master personalizado (Una copia del v4.master).

entre las etiquetas <head></head> debajo de <SharePoint:SPHelpPageComponent Visible=”false” runat=”server” /> debemos agregar la siguiente línea:

<SharePoint:CssRegistration name=”<% $SPURL:~sitecollection/Style Library/mycss.css %>” After=”corev4.css” runat=”server”/>”

Paginación en DataFormWebParts

Una de las formas de personalizar nuestra interfaz de SharePoint es trabajando con los DataFormWebParts. Con unos conocimientos intermedios de HTML, CSS y XSLT tenemos la posibilidad de lograr muchas cosas en cuanto a diseño.

Dentro de la personalización de nuestros WebParts una de las necesidades que habremos tenido es la de modificar la apariencia de la paginación por defecto proporcionada por SharePoint.

El resultado de la personalización que trabajaremos es la siguiente:

Al inicio se mostrará un enlace para ver el Siguiente elemento.

 

Aparecerán los enlaces de Inicio y Anterior.

Al dar clic en Siguiente hasta llegar al último elemento desaparecerá el enlace Siguiente.

Si damos clic en Inicio volveremos al primer elemento, si damos clic en Anterior retrocederemos de uno en uno.

Para lograr esta personalización de la navegación debemos seguir estos pasos:

1. Buscar la sección donde se especifican los números $FirstRow y $LastRow que son empleados en la paginación y comentarlos.

 2. Ahora, cuando empecé a probar la paginación de mi DataFormWebPart noté que la flecha de anterior no funcionaba, este es un bug que puede ser resulto con el fix que se proporciona en este link: http://geekswithblogs.net/haniamr/archive/2011/05/31/paging-problem-in-data-form-webpart-sp2010.aspx

Así como lo dice el artículo, debemos buscar un <td> con clase ms-paging y pegar lo siguiente ANTES DE la etiqueta <td nowrap=”nowrap” class=”ms-paging” align=”right”>:

<xsl:variable name=”dvt_PrevPageData“>

<xsl:choose>

<xsl:when test=”($FirstRow – $RowLimit – 1) &gt; -1″>

<xsl:value-of select=”$FirstRow – $RowLimit – 1″ />

</xsl:when>

<xsl:otherwise>0</xsl:otherwise>

</xsl:choose>

</xsl:variable>

3. Luego buscar history.back() y cambiar esa linea por lo siguiente:

<xsl:attribute name=”href“>javascript:<xsl:value-ofselect=”ddwrt:GenFireServerEvent(concat(‘dvt_firstrow={‘,$PrevRow,’};dvt_startposition={Paged=TRUE&amp;p_ID=’,$dvt_PrevPageData,’}’))”/>;</xsl:attribute>

 4. Ahora dar formato a las secciones de Inicio, Anterior y Siguiente, mediante el siguiente <div>: <div style=”font-size:medium;font-family:Arial;font-weight:bold;float:left;width:33.3%;text-align:center”>

Creando Page Layouts desde SharePoint designer 2010 – Parte 1

Muchas veces cuando trabajamos en nuestros portales requerimos personalizar  la estructura del contenido que publicamos. Esto lo podemos lograr mediante SharePoint designer, sin embargo tener que realizar este trabajo repetidas veces resulta ineficiente.

Sin embargo las personalizaciones de páginas pueden ser reutilizadas mediante el concepto de Page Layout.

A continuación se explican los pasos para habilitar esta funcionalidad:

Primero debemos habilitar en nuestro site collection la característica de Infraestructura de Publicación de SharePoint Server.

Adicionalmente debemos habilitar la característica de sitio Publicación de SharePoint Server.

 

 Para verificar que se habilitaron de manera correcta estas características, podemos verificar en las configuraciones del sitio que se muestre en la categoría Galerías “Páginas maestras y diseños de página”.

 Para comenzar con la creación de nuestro page layout, debemos crear un content type del tipo Tipos de contenido de publicación y seleccionar como Tipo de contenido primario a Página. Podemos posteriormente agregar los campos que deseemos.

Ingresar desde SharePoint designer a nuestro portal y en la sección Page Layouts dar clic en New Page Layout en el ribbon. Se abrira una ventana donde debemos seleccionar el grupo Tipos de contenido personalizados y nuestro content type recientemente creado. Adicionalmente debemos especificar el nombre de la página y la url.

Posteriormente editar el Page Layout, aparecerá el siguiente mensaje:

En nuestro Page Layout entre las etiquetas <asp:Content ContentPlaceholderID=”PlaceHolderMain” runat=”server”> y </asp:Content>, denemos ingresar la estructura HTML de DIVs que deseemos.

Yo utilice la que se muestra en la imagen:

 

 A continuación dentro de la estructura de DIVs debemos agregar los WebPart Zones y colocarles su nombre respectivo.

Finalmente debemos Proteger (Check in) a nuestro Page Layout.

Seleccionar Publish a major version y dar clic en OK.

En la Galería de páginas principales en nuestro site collection aprobar el Page Layout.

Seleccionar Aprobado y clic en Aceptar.

 Ahora, debemos ubicar la biblioteca Páginas existente por defecto en el site collection.

 

Podemos observar los content types existentes, al final se muestra nuestro content type recientemente agregado.

Ordenamos para que nuestro content type se muestre primero.

 En la biblioteca al podemos seleccionar nuestra plantilla.

Le ponemos el nombre a nuestra página, por defecto se encuentra seleccionada nuestra plantilla.

Podemos observar que al editar la página se muestra la estructura que definimos.

Creando Page Layouts desde SharePoint designer 2010 – Parte 2 (Agregando Ratings y Comments)

En el primer post vimos como podemos aprovechar el uso de los Page layouts en nuestros portales. en este post les mostraré algunas opciones adicionales que podemos incorporar a nuestros page layouts para obtener mayores ventajas.

Las características de Enterprise Social Networking ofrecidas en SharePoint tales como los Ratings y Comentarios pueden resultar muy útiles cuando creamos páginas tales como artículos o noticias.

Para este post me base en un artículo muy bueno que lo pueden encontrar en el siguiente link: http://weblogs.asp.net/bsimser/archive/2011/09/18/adding-ratings-and-comments-to-sharepoint-publishing-pages.aspx

Ahora a aplicar lo visto!

En la siguiente imagen podemos ver como se ha agregado un WebPart de Ratings en nuestra página basada en un page layout.

Para lograr el resultado de la imagen, previamente debemos habilitar la característica de ratings a la biblioteca de páginas.

Luego en el page layout debemos agregar primero la siguiente referencia:

<%@ Register TagPrefix=SharePointPortalControls Namespace=Microsoft.SharePoint.Portal.WebControls 

Assembly=Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c %>

Finalmente en un DIV que debemos crear (DIV Footer) agregar lo siguiente:

<SharePointPortalControls:AverageRatingFieldControl ID=PageRatingControl 

FieldName=AverageRating runat=server/>

Ahora, si queremos agregar el WebPart de comentarios tal como se muestra en la imagen:

Tenemos que agregar lo siguiente:

Comment on this article:<br/>  <SharePointPortalControls:SocialCommentControl ID=CommentControl runat=server/>

Mostrando ventanas PopUp al acceder a la página principal del Portal

Es muy común en páginas web encontrar las ventanas pop up, aquellas que aparecen cuando accedemos a un URL. Los pop up son utilizados para llamar la atención de los usuarios, y generalmente son empleados para mostrar promociones o anuncios importantes.

Agregar estos popups a nuestro portal de SharePoint 2010 es muy sencillo, tal como lo agregamos a cualquier página web.

Primero debemos editar nuestra página y agregar el siguiente script entre <asp:Content ContentPlaceHolderId=”PlaceHolderAdditionalPageHead” runat=”server”> y </asp:Content> en la parte final:

window.open(“MiPagina.aspx”,”Mi Titulo”,”menubar=no,width=350px,height=240px,toolbar=no”);

El resultado finalmente será el siguiente:

Publicando InfoPath Web Forms con código

Aquellos que han trabajado con InfoPath en modo cliente o desde el navegador (InfoPath Forms Services) se habrán dado cuenta de los grandes beneficios que nos brinda esta herramienta para construir formularios electrónico de manera sencilla y rápida.

Lógicamente InfoPath tiene sus limitaciones y hay casos en los cuales no es recomendable utilizarlo, por ejemplo para reemplazar a un sistema transaccional. Generalmente InfoPath es recomendable emplearlo para automatizar procesos de negocio que requieran de un input básico de información. Sin embargo InfoPath es bastante flexible y a través de VSTA nos permite realizar muchas cosas.

No es recomendable llenar de código a nuestro InfoPath, pero en ciertos casos el uso de porciones de código mesuradas nos puede permitir lograr implementar requerimientos de negocio interesantes.

En este post les explicaré  como publicar un formulario en la web con código:

Para publicar un formulario con código debemos usar el metodo de publicación aprobado por el administrador, para eso ir a: File -> Publish -> SharePoint Server

Ingresar la URL de nuestro portal en donde deseamos publicar ell InfoPath.

Seleccionar Enable this form to be filled out by using a browser y Administrator-approved form template (advanced).

Deberemos especificar una ubicación física donde guardaremos nuestra plantilla.

A continuación seleccionar los campos que deseemos publicar.

 

Finalmente presionar Publish.

En la administración central ir a General Application Settings y en la categoría InfoPath Forms Services clic en Upload form template.

Finalmente cargar nuestro plantilla. 

Si la plantilla no tiene problemas nos aparecerá el siguiente mensaje, dar clic en OK.

 Seleccionar la plantilla y clic en Activate to a Site Collection.

 Podemos verificar que el Feature se activó en el site collection donde lo publicamos.

 Finalmente en nuestra biblioteca de formularios debemos agregar nuestra plantilla como un nuevo content type.

 y listo! podemos ahora utilizar nuestra plantilla de InfoPath.