jueves, 4 de septiembre de 2014
Inventario de WorkFlows en Sharepoint 2010
jueves, 12 de diciembre de 2013
Suplantar Usuarios en Sharepoint 2013 y verificar la pertenencia a Grupos
jueves, 23 de mayo de 2013
Comandos Powershell para Instalar Soluciones y Caracteristicas
Dejo aquí la lista de comandos powershell para instalar/actualizar soluciones y características, a modo de chuleta para no tener que buscarlo.
Add SolutionAdd-SPSolution c:\solutions\myproject.wsp
Install-SPSolution –Identity myproject.wsp –WebApplication http://myprojectsite -GACDeployment
Nota: Se pueden usar los parametros
- –CASPolicies: Si no quieres desplegar a la GAC
- –AllWebApplications: Si quieres desplegar la solucion a todas las aplicaciones web
- –Force: para forzar el despliegue de la solucion
Update-SPSolution –Identity myproject.wsp –LiteralPath c:\solutions\myproject.wsp –GACDeployment
Uninstall-SPSolution –Identity myproject.wsp –WebApplication http://myprojectsite
Remove-SPSolution –Identity myproject.wsp
Enable-SPFeature –Identity MyFeature –url http://myprojectsite
Disable-SPFeature –Identity MyFeature –url http://myprojectsite
martes, 14 de mayo de 2013
Depuración remota avanzada con Visual Studio y Sharepoint
En ocasiones es "imposible" reproducir un entorno completamente real en una maquina local destinada para desarrollo, seguramente a muchos de nosotros nos pasa que al desplegar una solución probada hasta la saciedad, comienza a dar errores en el entorno destino, los cuales no somos capaces de reproducir.
Una solución es guardar trazas, en Ficheros de Log, EventViewer, etc.. Resulta muy buena práctica el uso de trazas, pero no es tan rápido como adjuntarnos a un proceso y depurar cualquier error que se produzca, sea cual sea ,activando la captura de todo tipo de excepciones lanzadas (ver imágenes).
2) Compilar en Modo Debug y desplegar en el servidor.
3) En la carpeta de compilación localizamos el fichero .PDB que genera Visual Studio en la carpeta /debug del proyecto, los usaremos más adelante.
4) Abrir el firewall de Windows para todas las conexiones entrantes al PROGRAMA Remote Debugger (msvmom.exe) tanto para TCP como para UDP
http://msdn.microsoft.com/es-es/library/vstudio/bb385831(v=vs.100).aspx
http://www.microsoft.com/en-us/download/details.aspx?id=475
2) Abrir el firewall de Windows para todas las conexiones entrantes al PROGRAMA Remote Debugger (msvmom.exe) tanto para TCP como para UDP a veces sale este mensaje.

http://msdn.microsoft.com/es-es/library/vstudio/bb385831(v=vs.100).aspx
3) Desplegar el proyecto compilado en modo Debug en visual Studio.
4) Si nuestro proyecto despliega a la carpeta /BIN de IIS todo es mas fácil solo hay que copiar el fichero .PDB del punto 3 en la misma carpeta que la DLL que hemos generado en el cliente.

La GAC vista como carpetas:

Nota: tiene que coincidir la version y la arquitectura de procesador del cliente y servidor Cliente_x86==Servidor_x86 Cliente_x64==Servidor_x64
estan ubicados en la ruta C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger\ en la carpeta x64 o x86
6) Dar permisos al usuario del cliente que quiere depurar, en la opción de permisos (esto no se guarda hay que hacerlo siempre que se reinicie el remote debugger) hay que darle a Aceptar cuando nos pregunta si queremos realmente depurar.


7) En el Remote debugger Abrimos las Opciones y copiamos el nombre del servidor (lo necesitaremos), es del tipo "mi_dominio\mi_usuario@nombre_servidor" también podemos Activar la opción de "Sin autenticación (solo nativo)" marcando "permitir que cualquier usuario depure", esto a veces es mas sencillo (e inseguro).

8) Abrir IIS , y el apartado de WorkerProcesses para obtener el numero de PID del proceso a depurar, lo necesitaremos en el ultimo paso.


Si creáis una Aplicación web Extendida de Sharepoint, en otro puerto con otro AplicationPool, no paráis todo el entorno, esto es muy útil para un equipo de desarrollo que anda depurando continuamente.
lunes, 13 de mayo de 2013
Errores 403 Forbidden en SharePoint
miércoles, 8 de mayo de 2013
Sharepoint List Generator Web Part (ListGenWP)
Solo hay que insertar el webpart en una pagina de sharepoint, por ejemplo en un directorio destinado a la administración del sitio
Es sencillo editar el XML ya sea introduciéndolo por el editor visual, generarlo o copiándolo de otro sitio
Lo he publicado en codeplex http://listgenwp.codeplex.com/
para que quien lo desee colabore en las funcionalidades que he planificado y bueno que así os ahorre trabajo en la pesada tarea de crear las listas.
De momento solo crea , me gustaría convertirlo en un editor de listas para hacerlo mas cómodo.
Sharepoint List Generator Web Part (ListGenWP)Generador de Listas Sharepoint, con un interfaz mas comodo y un fichero XML de Soporte que puede ser editado cargado Masivamente.
Facilita la creación de Listas con Lookups de forma Rápida.
Utiliza los nombres de Listas en lugar de los GUID por lo que funciona Siempre.
Utiliza un fichero XML que se puede generar y editar manualmente.
Permite Lookups enlazados entre listas.
NO utiliza GUID, utiliza el NOMBRE DE LISTA, para evitar problemas de portabilidad
Instrucciones
*1º Insertar las listas a crear
*2º Activar el Check "Crear" y Guardar
*3º Pulsar el Boton de Crear Listas
(bug:cuando se creen las listas hay que entrar en los campos lookup uno a uno y pulsar guardar para que funcione correctamente.)
Nota:Puede editar el XML de definición de listas ListasDef.xml de forma manual, reemplazarlo, salvarlo incluso automatizarlo.
Tipos de campo Permitidos
text : Campo de tipo texto, hay que especificar el tamaño
number : Campo de tipo Numero
currency: Campo de tipo moneda
lookup: Campo de tipo Lookup, hay que especificar la lista de origen y el campo de texto a mostrar (Hay un bug solventable)
date: Campo de tipo Fecha
datetime: Campo de tipo Fecha y Hora
calculated: Campo calculado Por ejemplo: CODIGO & ") " & DESCRIPCION , para por ejemplo rellenar Combobox
boolean: Campo tipo Si/No
percent: Numero en Porcentaje (%)
Autor: Roberto Marcos Asensio http://www.robertomarcos.com
Blog de Soporte: http://sharepointworks.blogspot.com
wpListSincMapper - Sincronizador de listas sharepoint por ODBC
Finalmente he conseguido una versión estable y completamente funcional del sincronizador de listas sharepoint que había prometido.
Lo he hecho con vs.net 2008 , también he configurado un instalador grafico para realizar el deploy mas cómodo.
Este es el sitio del proyecto: http://wplistsincmapper.codeplex.com/
También he creado un manual de instrucciones paso a paso muy cortito pero con capturas de pantalla para hacerlo mas fácil. Esta en ingles
Quería agradecer la ayuda aportada por Guillermo Martin (Goyo) sin el que una buena parte del proyecto se habría demorado mucho y gracias tambien por sus correcciones de mi ingles.
A modo de experimento he creado una cuenta paypal para donaciones por si alguien quiere aportar algo, y así poder irme de tapas con Goyo y mi hermano o tal vez de cena. Bueno no deja de ser un experimento :)
Dejo unas capturas de pantalla para abrir el apetito.

wpListSincMapper Web Part (v 1.0) - ODBC Sharepoint List Synchronizer
I have also created a short step by step instruction manual but with screenshots to make it easier.
I wanted to thank the support provided by Guillermo Martin (Goyo), without which a good part of the project would have been delayed and thanks too for correcting my English.
Codeplex Project: http://wplistsincmapper.codeplex.com/
This project is hosted in CodePlex with the source code included if you want to take a look.

I hope this will be of much use. Best Regards, RobertoMarcos.com
Análisis y estadísticas de uso de Sharepoint con Piwik
$ python /path/to/piwik/misc/log-analytics/import_logs.py --url=http://analytics.example.com fichero_de_log.log
miércoles, 12 de septiembre de 2012
Error Access Denied al modificar el web.config programaticamente o al intentar hacer acciones Administrativas
lunes, 10 de septiembre de 2012
Obtener el Strong Name del ensamblado desde Visual Studio
Este truco de Powershell facilita la extracción de Nombre del ensamblado (StrongName) desde Visual Studio.
Funciona en Sharepoint 2010 y Sharepoint 2007
- En Visual Studio, ir hasta Tools –> External Tools.
- Hacemos Click en "Add" para agregar una herramienta nueva, y rellenar los siguiente valores:
- Title: S&trong Name
- Command: Powershell.exe
- Arguments: -command "[System.Reflection.AssemblyName]::GetAssemblyName(\"$(TargetPath)\").FullName"
- Marcar "Use Output Window"
- Desmarcar cualquier otra opción
3. Ya esta, ahora en el proyecto , vamos hasta Tools –> Strong Name, y en la ventana de Salida obtendremos el Nombre de ensamblado
Ejemplo:ProyectoEjemplo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=64a818baff89cafc
lunes, 25 de junio de 2012
Background Folder Copy for Sharepoint 2010
He decidido subir a codeplex este proyecto que hice hace muchísimo tiempo, creo que aun puede ser de utilidad a mucha gente, lastima no haberlo hecho antes.
http://foldercopysp2010.codeplex.com
Se trata de un pequeño proyecto de un servicio windows que revisa constantemente una carpeta en busca de ficheros nuevos o modificados, para subirlos a una librería documental en Sharepoint 2010.
Es algo parecido a una sincronización ... pero unidireccional (del Pc a Sharepoint 2010)
He usado el Client Runtime de Sharepoint 2010 para una correcta implementación.
Copia de Forma automática los ficheros depositados en una carpeta windows a una Librería de documentos en Sharepoint 2010.
Se han combinado un servicio windows FileSystemWatcher (se incluye instalador) con las rutinas necesarias para copiar ficheros (binarios) a una Libreria de documentos en sharepoint 2010.
Lo que conseguimos es subir y actualizar ficheros de una manera mas comoda.
Los usos que yo le he dado:
- Subida de ficheros escaneados de forma automática.
- Interface con un Ftp al usar la misma carpeta.
En la carpeta donde se instala la dll (con el proyecto de instalación) hay un fichero app.config
martes, 19 de junio de 2012
Actualizar el InfoPath de edición de ListItems en Sharepoint 2010
jueves, 1 de marzo de 2012
Publicar de forma externa Infopath 2010 Forms Services con un Proxy Inverso (TMG)
Problema:
Publicar en internet correctamente los Form Services de Infopath 2010 a través de https y el TMG usando la funcionalidad de proxy inverso.
Análisis:
Tras analizar las peticiones que hace un ordenador externo a la red, hemos podido observar que el Explorador hace llamadas a la URL interna a pesar que hemos dado de alta la URL externa como Ruta alternativa de Sharepoint.
Solución:
Tirando del hilo hemos encontrado documentación precisa de cómo hay que hacerlo correctamente ya que el producto tiene algunas salvedades como que Infopath hace envió (postback) SIEMPRE a la dirección interna principal (http://direccioninterna.miservidor.com) de forma que no existe manera de que infopath atienda por 2 urls, por lo que la única vía es usar la funcionalidad de "link translation" del TMG.
Reeplazos de URL que hay que añadir en la parte de link translation (sin las comillas):
"direccioninterna.miservidor.com" >> "direccionexterna.midominioexterno.com"
"http:" >> "https:"
Nota: No incluir el http en las urls, y el reemplado http tiene los dos puntos ":" de forma intencionada para que no ocurra reemplazos tipo https>>httpss que serian erróneos .
No olvidarse de incluir la ruta de acceso alternativa configurada como "Internet" en la administración central.
La documentación paso a paso de cómo hacer esta configuración en el TMG la tenemos en este link http://technet.microsoft.com/en-us/library/cc984424.aspx
lunes, 20 de febrero de 2012
Ocultar el mensaje en PeopleSearchResultWebpart : No hay resultados disponibles...
Si no se especifica ninguna consulta el People Search Core Result Webpart muestra el mensaje...
En Inglés
Pensé que podría ocultarlo cambiando el literal de $NoPeopleResults por XSLT pero por desgracia no se trata de este literal, es el literal de error por no especificar consulta y no podemos cambiarlo facilmente.
"Solución":
Crear un editor de contenido en la pagina, entrar en el editor html y pegar este Script.
<script type="text/javascript">
$(document).ready(function() { $('div[id^="SRW_Error"]').hide(); })
</script>
Nota: Requiere tener una referencia al fichero javascript de Jquery
martes, 31 de enero de 2012
Extraer información de Perfiles de usuario de Sharepoint 2010
http://msdn.microsoft.com/en-us/library/microsoft.office.server.userprofiles.propertyconstants_members.aspx
viernes, 18 de noviembre de 2011
Error Soap al Editar Paginas con Sharepoint Designer 2010
viernes, 11 de noviembre de 2011
Modificar el limite de registros (Throttle) en BCS
Encontrar el Error mensaje de error con el Correlation Id sin meterse en el barro de los logs de Sharepoint 2010
jueves, 9 de junio de 2011
El webpart ListingSummary no migra correctamente a Sharepoint 2010 (SOLUCION)
Problema:
Al realizar una migración a sharepoint 2010, si en algun sitio se ha usado el webpart de ListingSummary, este aparece como ErrorWebPart.
Causas:
Parece que a los chicos de microsoft se les ha pasado efectuar una operacion de transformación para migrar correctamente este webpart
WorkAround:
Podemos ver la documentación de microsoft acerca del ListingSummary en esta página
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.portal.webcontrols.listingsummary_members(v=office.12).aspx
Este webpart nos permite usar ficheros externos XSLT para mostrar los datos con formato. Es posible que haya que reconfigurarlo pero es muy sencillo.
Si investigamos un poco, nos damos cuenta que no es posible que hayan BORRADO sin más este webpart, ya que en 2010 no aparece.... al menos donde estaba.
Lo que ha ocurrido es que lo han movido de namespace , le han cambiado el nombre y le han hecho unas mejoras (tiene mas parametros)
Podemos ver la documentación del ContentByQueryWebPart en esta página
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.publishing.webcontrols.contentbyquerywebpart_members.aspx

Solucion 1:
-Elimiar el ErrorWebpart
- Añadir el ContentByQueryWebPart y configurarlo a mano (hay que copiar la configuración antes de migrar)
Nota: Al configurarlo algunas propiedades nuevas son obligatorias.
Solucion2:

-Exportar el webpart como fichero ".webpart" (se hace desde la edicion de la pagina)
-Migrar a 2010
-Modificar a mano el fichero ".webpart"
Sustituir:
type name="Microsoft.SharePoint.Portal.WebControls.ListingSummary, Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
Por esto:
type name="Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart, Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
-Verificar que las nuevas propiedades obligatorias tienen valor.
-Importar a 2010 el fichero ".Webpart"
Cuidado:
Al realizar una migración InPlace, aparece el ErrorWebpart y pierdes la configuración que tenia, apuntadla para tenerla a mano.
Saludos Espero que os sirva de ayuda.
Roberto Marcos.










