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