Lire le statut des transactions dans la base Published

Lire le statut des transactions dans la base Published

  • Comments 1
  • Likes

Bonjour,

Les échanges entre les différents modules de Project Server se fait par l’intermédiaire de transactions. La table MSP_ASSIGNMENT_TRANSACTIONS est l’une d’entre elles.

Si vous constatez des erreurs de mise à jour d’affectation, l’étude du contenu de cette table peut éventuellement vous aider à en comprendre les raisons. Malheureusement, il n’est pas facile de comprendre les données qui s’y trouvent et surtout, d’interpréter les différentes valeurs de champs qu’elle contient.

Ce script peut vous aider à mieux comprendre son contenu :

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 - Not Submitted'

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

            WHEN '2' THEN '2 - Approved or Rejected'

            WHEN '3' THEN '3 – Project updated'

            WHEN '4' THEN '4 – 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'

            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 - Approved'

            WHEN '2' THEN '2 - 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 MSP_ASSIGNMENT_TRANSACTIONS MAT

INNER JOIN MSP_RESOURCES MR

ON MAT.ASSN_TRANS_SUBMITTER_RES_UID = MR.RES_UID

INNER JOIN MSP_PROJECTS MP

ON MAT.PROJ_UID=MP.PROJ_UID

LEFT JOIN MSP_TASKS MT

ON MAT.TASK_UID=MT.TASK_UID

Attention, ce script ne donne qu’un état de la table à un instant précis. Les résultats qu’il retourne ne peuvent pas être utilisé pour évaluer la santé d’un serveur, surtout si de nombreuses erreurs apparaissent. Les transactions ne sont pas systématiquement supprimées et certaines transactions apparaissant en erreur peuvent très bien avoir été exécutées ultérieurement sans problème.

N’hésitez pas à commenter cet article pour l’améliorer si vous avez des informations complémentaires.

Marc Biarnès

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Bonjour,

    Pour avoir l'information de la tâche, j'utilise plutôt la table MSP_ASSIGNMENTS car avec MSP_TASK retourne parfois NULL.

    Donc, avec la modification, la partie du FROM doit être comme:

    FROM MSP_ASSIGNMENT_TRANSACTIONS MAT INNER JOIN

    MSP_RESOURCES MR ON

    MAT.ASSN_TRANS_SUBMITTER_RES_UID = MR.RES_UID INNER JOIN

    MSP_RESOURCES MA ON

    MAT.ASSN_TRANS_APPROVER_RES_UID = MA.RES_UID INNER JOIN

    MSP_PROJECTS MP ON

    MAT.PROJ_UID=MP.PROJ_UID INNER JOIN

    MSP_ASSIGNMENTS MS ON

    MAT.ASSN_UID=MS.ASSN_UID

    Et le SELECT:

    MAT.ASSN_TRANS_UID, MAT.ASSN_TRANS_SUBMIT_DATE, MAT.ASSN_TRANS_UPDATE_DATE, MR.RES_NAME AS 'SUBMITTER', MA.RES_NAME AS 'APPROVER', MP.PROJ_NAME AS 'PROJECT', MS.TASK_NAME AS 'TASK NAME'