Micro publicaciones guía para Power Apps, Power Automate, SharePoint y ademas algunos temas de Azure Dev Ops, Desarrollo Web, SQL Server, Asp.net.
martes, 31 de mayo de 2016
Exportando una biblioteca de 850 GB en SharePoint 2010
martes, 17 de abril de 2012
Script para permitir a las bibliotecas abrir los archivos PDFS en SharePoint 2010
Esta opción esta bloqueada en SharePoint 2010 de forma predeterminada y a pesar que habilitemos a nivel de Aplicación Web el navegador de manejo de archivos a permisivo, esto solo funcionará para las bibliotecas del sitio primario de la colección de sitios, pero no para las bibliotecas de otros sub-sitios, ya que SharePoint 2010 tiene a nivel interno de cada biblioteca esta opción definida como estricta y no permisiva.
Al final hay que habilitar cada biblioteca en la colección de sitios la opción “browserfilehandling” como permisiva, para ello necesitamos ejecutar un script a nivel de línea de comando apoyados en powershell.
Un agradecimiento por su contribución a la comunidad de SharePoint a Kim Nguyen en: http://www.freakingsharepoint.com/2010/08/sp2010-forces-users-to-save-pdfs.html
Lo que hice, fue modificar un poco el script para que funcione para cualquier colección de sitios y para que valide que la lista siempre sea un documento library.
Para ejecutar el script sugiero creen un archivo ps1 como por ejemplo:
ChangePermissiveOptionInLibs.ps1
La sintaxis es la siguiente:
.\ChangePermissiveOptionInLibs.ps1 –siteurl http://yoursitecollectionAddress
Y el script es el siguiente:
# Inicio del Script
param (
[string]$siteUrl = "$(Read-Host 'Enter the Site Collection URL. [e.g. http://sp2010vm]')"
)
function main() {
# check to ensure Microsoft.SharePoint.PowerShell is loaded
$snapin = Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.Powershell'}
if ($snapin -eq $null)
{
Write-Host "Loading SharePoint Powershell Snapin"
Add-PSSnapin "Microsoft.SharePoint.Powershell"
}
$site = Get-SPSite($siteUrl)
write-host $siteurlforeach ($web in $site.AllWebs)
{
write-host "web:" $web.Title
foreach ($list in $web.Lists)
{
write-host "list:" $list.Title $list.BaseType
if ($list.BaseType -eq "DocumentLibrary")
{
write-host "browserfilehandling:" $list.browserfilehandling
if($list.browserfilehandling -eq "Strict")
{
$list.browserfilehandling = "Permissive";
$list.update();
write-host $site.url, $list.title, $list.browserfilehandling
}
}
}
}
$site.Dispose()
}
main
# Fin del Script
En este artículo vimos como habilitar la opción para permitir el manejo de archivos en el navegador que esta bloqueada de forma predeterminada en SharePoint 2010. Esto aunque representa un riesgo, es una funcionalidad habitual que los usuarios de SharePoint están acostumbrados a utilizar y que desean este disponible en el portal.
Enable4Fun!,
Juan Manuel Herrera Ocheita
miércoles, 11 de abril de 2012
Compartiendo Servicios entre distintas granjas de SharePoint 2010 (Un caso práctico)
SharePoint 2010 dispone de una arquitectura de servicios flexible y fácil de configurar, de tal forma que podemos compartir los servicios entre distintas granjas de servidores de SharePoint. El caso práctico que les voy a presentar es el siguiente:
1) Una Granja de SharePoint Server 2010 consta de 2 servidores donde este el portal de la organización.
2) Una Granja de Project Server 2010 separada que consta de un servidor.
3) Motivación: Se desea que el perfil de usuario del portal de la organización sea el mismo para el servidor de Proyectos.
Diagrama de Configuración de Servicios Compartidos
En el diagrama muestra dos granjas de servidores distintas una para un portal de colaboración y la otra para hospedar Project Server 2010. La granja para el portal de colaboración tiene publicado el servicio de Perfiles de Usuario y una realización de confianza hacia la granja que hospeda Project Server 2010 a través de compartir ambas granjas sus certificados. En la granja consumidor del servicio de perfiles de usuario solo hay una conexión o proxy hacia el servicio publicado de la granja emisor o que publica el servicio que en este caso es la granja del portal de colaboración.
Aspectos importantes a notar son:
- La administración de los perfiles de usuario son únicamente efectuados en la granja emisor, es decir los permisos y características sociales son administradas por la granja emisor y no por la granja consumidor.
- Los perfiles de usuario son compartidos por ambas granjas por lo que no importa que aplicación están accediendo la misma información.
El procedimiento para publicar y consumir un servicio es el siguiente:
- Cree los certificados de ambas granjas. Es necesario para el intercambio de certificados entre los servidores. El consumidor tendrá el certificado raíz de la publicación de la granja, pero la granja emisor tendrá el certificado raíz y el certificado STS (Security Token Service) del consumidor.
- Copia el certificado de la granja emisor para la granja consumidor y los certificados (raíz y sts) de la granja consumidor a la granja emisor.
- Importe los certificados de la granja consumidor en la granja emisor (primero el raíz y luego el sts).
- Importe el certificado raíz de la granja emisor en la granja consumidor
- Publique el Servicio deseado en la granja emisor.
- Consuma el Servicio publicado en la granja consumidor (para ello es necesario copiar de la granja emisor el URN).
Para realizar el procedimiento a detalle siga los siguientes enlaces:
http://technet.microsoft.com/en-us/library/ee704552.aspx
http://technet.microsoft.com/en-us/library/ee704545.aspx
http://www.aiim.org/community/blogs/expert/Connecting-to-the-User-Profile-Service-Proxy
Si en caso no le funciona, puede utilizar la interface Web desde el Central Administration pueda importar nuevamente los certificados.
Los certificados debería esperar generar 3 archivos como los mostrados abajo:
Para revisar la relación de confianza puede hacerlo en Seguridad, Administra la confianza.
Ventana de publicación del Servicio:
Ventana al momento de presionar el botón Conectar en la página de servicios de aplicación:
Luego de realizar la conexión exitosa le mostrará en el menú del usuario conectado las opciones sociales que se habilitan cuando el servicio esta disponible.
Para incluir en el Search de la granja consumidor la búsqueda de personas, le recomiendo cree una nueva fuente de contenido y escriba la url sps3://ServerEmisor, haga una indagación o crawl y vea si no sucedió ningún error.
En este artículo vimos como compartir los servicios entre granjas distintas, aunque es una tarea cuidosa y un poco tediosa, para nada complicada, los beneficios son palpables a primera vista, como la mejor utilización de los recursos disponibles y la unificación de la información, como la regla a mayor disponibilidad de servicios más crítico se vuelve la infraestructura e interconexiones, pero ese mi querido amigo es otro tema que hablaremos en el futuro sobre configuraciones de alta disponibilidad.
ShareService4Fun,
Juan Manuel Herrera Ocheita
jueves, 18 de agosto de 2011
Instalación de una solución wsp que no refleja cambios en SharePoint
Aunque esto puede deberse a diferentes razones la técnica para verificar si no hay algo malo en nuestra solución si es la misma.
Escenario: Una solución desarrollada con la herramienta WSPBuilder no mostraba ningún problema al momento de crearse y de instalarse o hacerle un deploy sobre el servidor. Pero la solución no reflejaba los cambios realizados.
Revisión: Fui a revisar el Central Administration en la sección de Operations y en la opción Solution Management encontré que la solución instalada tenía un error y que se debía a que al copiar unas imágenes desde el explorador de windows hacia el explorador de la solución de Visual Studio me había copiado también el archivo Thumbs.db que guarda el caché de las imágenes en miniatura para mostrarlas mas rápido obviamente me estaba bloqueando la actualización de la solución.
Solución:
Eliminar el archivo Thumbs.db de la solución de Visual Studio, volver a compilar el proyecto, generar el paquete WSP y reinstalarlo en el servidor destino.
Moraleja:
Cuando una solución en particular de elementos web no refleje cambios debemos de revisar en el Solution Management del Central Administration si esta no reporta ningún error.
Manolo Herrera
miércoles, 13 de mayo de 2009
WSPBuilder, Could not load file or assembly CabLib
Si esta corriendo sobre 32 bits, y te da este error es porque predeterminadamente el instalador coloca la versión de 64 bits en el directorio donde esta WSPBuilder.
Solución:
Copia el dll de 32 bits en el mismo directorio donde esta WSPBuilder.exe. Este se encuentre en C:\Program Files\WSPTools\WSPBuilderExtensions\Resources\x86 .
Y esto es todo debería darte como resultado algo parecido como esto:
========== Build: 11 succeeded, 0 failed, 1 up-to-date, 0 skipped WSPBuilder
Version: 0.9.8.1029
Created by Carsten Keutmann
GPL License 2007
Building the solution - please wait
Saving the Manifest.xml file
Creating the WSP file
Cleanup
Done!
Hasta la próxima,
Manolo Herrera
lunes, 13 de abril de 2009
Bitácora: Conflictos irreconciliables entre Microsoft Enterprise Library 4.1 y Visual Studio Extension Tools V 1.2 para SharePoint
Luego de instalar la Entlib 4.1 no pude mas hacer un deploy con las extensiones de Visual Studio 2008 para SharePoint o VSSe V1.2. Al parecer hay un conflicto irreconciliable hasta el momento no documentado.
Hice mi tarea y publique el problema en el sitio de codeplex, espero tener noticias en el futuro. Este es el enlace para los que quieran consultar:
http://entlib.codeplex.com/WorkItem/View.aspx?WorkItemId=22029
La descripción del error la momento de seleccionar la opción de deploy es la siguiente:
2009/04/02 22:12:37 Error
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.Module._GetTypesInternal(StackCrawlMark& stackMark)
at System.Reflection.Module.GetTypes()
at Microsoft.SharePoint.Tools.Reflection.ModuleWrapper.GetTypes()
at Microsoft.SharePoint.Tools.Reflection.TypeFinder.GetTypesAsType(IAssemblyWrapper assembly, ITypeWrapper targetType)
at Microsoft.SharePoint.Tools.Reflection.TypeFinder.Find(IAssemblyWrapper assembly, ITypeWrapper targetType)
at Microsoft.SharePoint.Tools.SharePointProxies.WSPViewFacade.FindClasses(IAssemblyWrapper assembly)
at Microsoft.SharePoint.Tools.SharePointProxies.WSPViewFacade.GetAssemblyFeatureElementDirectorClassMap(String projectAssemblyPath)
at VSeWSS.Server.Services.SPService.GetAssemblyFeatureElementDirectorClassMap(String projectAssemblyPath)
Hice de todo, probé desinstalar y volver a instalar las VSSe 1.2 , el SP1 de VS 2008 e incluso el CTP 1.3 de las VSSe y tampoco.
Solución
Por lo que busque otra herramienta, y al hacer una rápida evaluación de cada una de ellas me pareció que la que mejor herramienta disponible aún mejor que la VSSe era WSPBuilder y efectivamente ahora puedo no solo hacer el deploy sino que me permite crear la solución WSP y hacer el deploy automático o manual según yo lo desee. Tuve que reorganizar el código de los elementos Web ya que este organiza y crea de diferente forma las archivos xml pero finalmente pude hacer el deployment exitoso al portal, incluyendo la instalación en mi portátil de las EntLib 4.1 sin ningún conflicto aparente con VS 2008 y WSPBuilder.
Dolorosa experiencia que espero poder evitar a alguien.
Links de referencia que puede consultar:
Donde bajar WSPBuilder : http://www.codeplex.com/wspbuilder
Comentarios de comparación entre productos:
http://www.cmswatch.com/Trends/1473-Updated-Visual-Studio-Extensions-for-SharePoint
http://www.sharepointdevwiki.com/display/public/Solution+package+development+tool+comparisons
Hasta la próxima!,
Manolo Herrera
miércoles, 11 de marzo de 2009
Tip del día: Como hacer el deployment remoto de un worfkflow en SharePoint 2007
Basado en los pasos que realiza Visual Studio 2008 para hacer el deployment del WorkFlow hice una archivo de lotes (Batch file) para hacer el deployment de una sola vez.
Estas son las instrucciones que van dentro del archivo de extensión .bat:
>gacutil.exe /i [ubicación y nombre del dll]
>iisreset /noforce /restart
>xcopy workflow.xml "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\FEATURES\[Nombre del Workflow]\workflow.xml" /s /y
>xcopy feature.xml "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\FEATURES\[Nombre del Workflow]\feature.xml" /s /y
>cd "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\"
>stsadm.exe -o installfeature -name [Nombre del Workflow]
>stsadm.exe -o activatefeature -name [Nombre del Workflow]-url [url del portal]
En resumen los pasos son:
- Instalar en el GAC el DLL
- Reiniciar el IIS
- Copiar el archivo workflow.xml en el directorio de las features del servidor de sharepoint
- Copiar el archivo feature.xml en el directorio de las features del servidor de sharepoint
- Cambiarse al directorio 12hive de sharepoint
- Ejecutar la linea de comando con la herramienta administrativa de sharepoint stsadm para instalar el workflow como una feature
- Activar el workflow
- Luego deberá asociar el workflow a la lista o librería de documentos, para ello vaya a configuración del sitio, seleccione la lista, seleccione configuración de la lista y vaya a configuración del flujo de trabajo y deberá aparecerle dentro de los workflows disponibles.
Eso es todo amigos, Code4Fun!.
Manolo Herrera
jueves, 5 de marzo de 2009
Tip del día: Como cambiar la aplicación web de depuración del workflow en SharePoint desde las extensiones de Visual Studio 2008
Pueda que necesite cambiar la referencia de la aplicación Web donde apunto que haría el deployment del workflow en Visual Studio con las extensiones para SharePoint o Vsse 2.0.
Si es así es algo muy sencillo pero engañoso:
- Vaya al Solution Explorer (Ctrl+Alt+L)
- Clic derecho sobre las propiedades del proyecto de WF
- Seleccione SharePoint Debug Settings...
- Y en What local site do you want to use for debuggin?, coloque la nueva url.
- Para finalizar presione next, next, finish.
Eso es todo... espero les sirva!
Manolo Herrera