Share via


PROJECT SERVER 2013. INTERPRETACION DE LAS TRANSACCIONES.

Buenas,

Después de leer este magnífico post de nuestro colega y mentor Marc Biarnès, hemos decidido traducirlo a castellano, por parecernos de utilidad para la comunidad de Project hispano-parlante.

El post original se puede encontrar aquí (en francés):

https://blogs.technet.com/b/frenchpjblog/archive/2014/11/13/3641082.aspx 

Marc nos comparte un script en el cual había trabajado para la versión 2007, pero actualizada para la versión 2013. Resulta muy útil si nos encontramos con problemas al introducir trabajo en tareas o partes de horas, con lo cual no será extraño aceptar hayamos tenido problemas con las transacciones implicadas (no hayan llegado correctamente, sigan en un estado “pendiente”, etc…)

Con el script podemos localizar el tipo, estado, error, etc, de cualquiera de las transacciones, en la base de datos de Project Server 2013:

SELECT

 

      MAT.ASSN_TRANS_UID,

      MAT.ASSN_TRANS_SUBMIT_DATE,

      MAT.ASSN_TRANS_UPDATE_DATE,

      MR.RES_NAME AS 'SUBMITTER',

      MP.PROJ_NAME AS 'PROJECT',

      MT.TASK_NAME AS 'TASK',

 

      STATUS =

      CASE ASSN_TRANS_STATE_ENUM

            WHEN '0' THEN '0 - Saved'

            WHEN '1' THEN '1 - Submitted Pending Approval'

            WHEN '2' THEN '2 - In Process'

            WHEN '3' THEN '3 – Apply Successfully'

            WHEN '4' THEN '4 – Apply Failed'

            ELSE CAST (ASSN_TRANS_STATE_ENUM as VARCHAR) + ' - Unknown'

      END,

 

      TYPE =

      CASE MAT.ASSN_TRANS_TYPE_ENUM

            WHEN '0' THEN '0 - Task Assignment Update'

            WHEN '1' THEN '1 - Declined Task Assignment'

            WHEN '2' THEN '2 - Create Task Request'

            WHEN '3' THEN '3 - Delegate Task Assignment Request'

            WHEN '4' THEN '4 - Create Task Assignment Request (assign existing task)'

            WHEN '5' THEN '5 - Team Delegation Request'

            WHEN '6' THEN '6 - Delete Task Request'

            WHEN '7' THEN '7 - Delete Task Assignment Request'

            ELSE CAST (ASSN_TRANS_TYPE_ENUM as VARCHAR) + ' - Unknown'

      END,

 

      ACTION =

      CASE MAT.ASSN_TRANS_ACTION_ENUM

            WHEN '0' THEN '0 - Pending'

            WHEN '1' THEN '1 - Update Approved'

            WHEN '2' THEN '2 - Update Rejected'

            ELSE CAST (ASSN_TRANS_ACTION_ENUM as VARCHAR) + ' - Unknown'

      END,

 

      ERROR =

      CASE MAT.ASSN_TRANS_ERROR_ENUM

            WHEN '0' THEN '0 - Applied'

            WHEN '1' THEN '1 - Undefined'

            WHEN '2' THEN '2 - Conflict'

            WHEN '3' THEN '3 - ProjectDeleted'

            WHEN '4' THEN '4 - InvalidUpdate; InvalidDelegation'

            WHEN '5' THEN '5 - InternalError'

            WHEN '7' THEN '7 - Count'

            ELSE CAST (ASSN_TRANS_ERROR_ENUM as VARCHAR) + ' - Unknown'

      END

 

FROM PUB.MSP_ASSIGNMENT_TRANSACTIONS MAT

INNER JOIN PUB.MSP_RESOURCES MR

ON MAT.ASSN_TRANS_SUBMITTER_RES_UID = MR.RES_UID

INNER JOIN PUB.MSP_PROJECTS MP

ON MAT.PROJ_UID=MP.PROJ_UID

LEFT JOIN PUB.MSP_TASKS MT

ON MAT.TASK_UID=MT.TASK_UID

Queríamos agradecer, y felicitar a Marc, por este estupendo post. Esperamos os resulte tan interesante como a nosotros.

 

Un saludo

 

Jorge Puig