Archivo de la categoría: Visual Studio 2012

Error en el paso de implementación ‘Desinstalar aplicación para SharePoint’: No se puede conectar con el sitio de SharePoint.

sharepoint2013 Antes de nada, indicar que este error: “Error en el paso de implementación ‘Desinstalar aplicación para SharePoint’: No se puede conectar con el sitio de SharePoint” o en inglés “Error occurred in deployment step ‘Uninstall app for SharePoint’: Cannot contact site at the specified URL” se produce cuando hemos desarrollado una solución y queremos implementarla en SharePoint 2013/Office 365 desde el Visual Studio 2012/2013 (en mi caso es una solución de una App para SharePoint 2013 auto-hospedada, que un compañero me ha pasado) .

El motivo de este error, puede producirse por varios motivos (básicamente es porque no tienes permisos en el sitio y base de datos), pero muchas veces se nos pasa por alto verificar una cosa tan simple, como que la propiedad “URL del sitio”, que debe de tener la url de nuestra colección de sitio, creada con la plantilla de “Sitio del desarrollador”.

Para verificar esto, en Visual Studio debemos abrir la ventana de propiedades del proyecto que utilizamos para empaquetar la solucion de SharePoint (normalemente puedes acceder a ella pulsando la tecla: F4) y ver si la propiedad “URL del sitio” esta correctamente rellena:

SiteUrlEmpty

En caso que no sea así, introducir un valor correcto y volver a implementar la solución…

 

Como lanzar un Workflow programaticamente en SharePoint

Tras un periodo de inactividad, vuelvo con un nuevo post… Esta vez se trata, de la necesidad de lanzar un nuevo Workflow a nivel de listas o biblioteca en todos los ítems, previamente creados. Si el Workflow se configura para que se lance a la creación o modificación del ítem, puede que haya muchos ítems, que por antigüedad, no se modifiquen y no se lance el Workflow asociado.

Para realizar esto desde el API de SharePoint, la forma mas sencilla es la siguiente:

static private void LanzarWorkflow()
{
  //definición de variables necesarias para la ejecución
  string SP_URL = "http://mi_sharepoint";
  string LIST_NAME = "Pages";
  //este es el GUID del BaseID del Workflow que queremos ejecutar
  Guid wfBaseId = new Guid("b81abdd8-faf4-4bed-86ca-a49d9cc9913e");
  //se ejecuta con privilegios elevados
  SPSecurity.RunWithElevatedPrivileges(delegate
  {
	try
	{
	  using (SPSite site = new SPSite(SP_URL))
	  {
		using (SPWeb web = site.OpenWeb())
		{
		  SPList list = web.Lists[LIST_NAME];
		  SPListItemCollection items = list.Items;
		  for (int i = 0; i < items.Count; i++)
		  {
			web.AllowUnsafeUpdates = true;  
			//selecciona el item actual
			SPListItem item = items[i];
			Console.WriteLine(string.Format("[Item] Lanzando workflow para el item Id: {0} ", item.ID));
			//obtiene el objeto plantilla de WF asociado a la lista que queremos
			SPWorkflowAssociation associationTemplate = list.WorkflowAssociations.GetAssociationByBaseID(wfBaseId);
			//lanzar el WF a nivel del item
			web.Site.WorkflowManager.StartWorkflow(item, associationTemplate, associationTemplate.AssociationData);
			web.AllowUnsafeUpdates = false; //bloquea cambios por codigo
		  }
		}
	  }
	}
	catch (Exception ex) { Console.WriteLine(string.Format("***ERROR*** {0}", ex.ToString())); }
  });
}

Los únicos parámetros que necesita esta función son:

  • SP_URL: Url del sitio de SharePoint donde se encuentra la lista que tiene asociada el Workflow que deseamos lanzar
  • LIST_NAME: Nombre de la lista o biblioteca que tiene el Workflow
  • wfBaseId: por ultimo el Base ID del Workflow (este GUID lo puedes ver, por ejemplo, desde SharePoint Designer, editando el archivo XML de configuración del propio Workflow)

 

Libro gratuito: Time-Saving VS11 and ASP.NET 4.5 Features You Shouldn’t Miss

Gracias a la gente de Telerik, podemos disfrutar más que de un libro, yo lo clasificaría como artículo muy completo sobre a las mejores características que ahorran tiempo en Visual Studio 2012 y ASP.NET 4.5.

Tiene un total de 20 paginas y está escrito por los mejores ingenieros en Telerik, donde se explican varias características especiales de Visual Studio 2012, como:

  • JavaScript Intellisense
  • CSS Intellisense
  • ASP.NET y Web API (Información general y las operaciones CRUD)
  • Strongly Typed Data Binding
  • Page Inspector (nueva herramienta de depuración)

Para poder descargarte este articulo en formato PDF, puedes hacerlo desde aquí.