17 de octubre de 2014

Project Server–Obtener la etapa actual de un proyecto.

El tip de hoy es muy simple:

En Project Server 2013 si queremos recuperar (mediante T-SQL) el nombre de la etapa del flujo de trabajo en que se encuentra un proyecto, podemos declarar y usar la siguiente función que atacará la base de datos de Project Server (ProjectWebApp).

-- ============================================= 

-- Description:   Función que devuelve el stage actual de un proyecto

-- =============================================

CREATE FUNCTION dbo.fn_GetStageName

(

      @ProjectUID VARCHAR(50)

)

RETURNS VARCHAR(50)

AS

BEGIN

      DECLARE @ResultVar VARCHAR(50)

     

      SELECT

            @ResultVar = STAGE_NAME

      FROM

            ProjectWebApp.pub.MSP_WORKFLOW_STATUS_VIEW

      WHERE

            PROJ_UID = @ProjectUID

            AND STAGE_STATUS = 1   

           

      RETURN @ResultVar

END

Esto es todo!!!

8 de octubre de 2014

Error al agregar Web Part – Tipo no registrado como seguro

 

Al intentar agregar un Web Part a una página de SharePoint me da el siguiente error:

A Web Part or Web Form Control on this Page cannot be displayed or imported. The type could not be found or it is not registered as safe.”

 

Causa:

Después de investigar un poco, vimos que el problema estaba en que los tipos no estaban “sincronizados”.

Al desarrollar el Web Part con Visual Studio, se modificó el nombre de la clase, pero NO fue modificado en todos los archivos, y aunque no da error al compilar o desplegar; sí que da problemas al intentar agregar el Web Part en una página.

 

Solución:

Para solucionarlo debemos revisar los siguientes archivos de nuestro proyecto y cerciorarnos de que en todos usemos el mismo nombre correspondiente al tipo de la clase:

  • MiWebPart.webpart
  • MiWebPart.ascx
  • MiWebPart.ascx.cs
  • SharePointProjectItem.spdata (Este archivo normalmente está oculto en el proyecto, debemos marcar la opción de mostrar todos los archivos)

Ejemplo:

Si en nuestro archivo (MiWebPart.ascx.cs) usamos como nombre de clase (MiWebPartHolaMundo)

 

public partial class MiWebPartHolaMundo: WebPart

 

Entonces debemos revisar el resto de archivos para verificar que el tipo que usamos es (MiWebPartHolaMundo).