Interpréter les statuts des feuilles de temps dans Project Server 2013

Bonjour,

Vous vous en rappelez certainement, j’ai publié il y a quelques semaines un script SQL permettant de lire le contenu des tables de transactions dans Project Server 2013 permettant de lire le contenu des tables de transactions dans Project Server 2013.

Au-delà de simplement lire le contenu, ce script a pour vocation de remplacer les incompréhensibles chiffres correspondants à un état, par leur signification, ce qui rend la lecture bien plus aisée.

Ce que je vous propose aujourd’hui est un script similaire, mais pour les feuilles de temps. Ce script permet de lire le statut des feuilles de temps et des lignes d’une feuille de temps, par utilisateur et par projet.

La liste renvoyée par ce script peut être très facilement exportée dans Excel et ainsi être analysée facilement.

SELECT

       MTS.TS_CACHED_RES_NAME AS 'RESOURCE',

       MTS.TS_NAME AS 'TIMESHEET',

       CONVERT(NVARCHAR, CAST(WTP.WPRD_START_DATE AS DATE)) + ' - ' + CONVERT(NVARCHAR, CAST(WTP.WPRD_FINISH_DATE AS DATE)) AS 'PERIOD',

       -- If you want to get the Start Date and the Finish date of the Timesheet Period, disable the previous lile and active the 2 following lines:

       --CONVERT(NVARCHAR, CAST(WTP.WPRD_START_DATE AS DATE)) AS 'START',

       --CONVERT(NVARCHAR, CAST(WTP.WPRD_FINISH_DATE AS DATE)) AS 'FINISH',

    TS_STATUS =

      CASE MTS.TS_STATUS_ENUM

            WHEN '0' THEN '0 - In progress'

            WHEN '1' THEN '1 - Submitted'

            WHEN '2' THEN '2 - Acceptable'

            WHEN '3' THEN '3 – Approved'

            WHEN '4' THEN '4 – Rejected'

            WHEN '5' THEN '5 – Pending submission'

--used when one or more timesheet lines are pending approval after a timesheet is submitted and project manager coordination is required.

            ELSE CAST (MTS.TS_STATUS_ENUM AS VARCHAR) + ' - unknown'

      END,

       MTL.TS_LINE_CACHED_PROJ_NAME AS 'PROJECT NAME',

       MTL.TS_LINE_CACHED_ASSIGN_NAME AS 'TASK NAME',

    TS_LINE_STATUS =

      CASE MTL.TS_LINE_STATUS

            WHEN '0' THEN '0 - Line approval is pending'

            WHEN '1' THEN '1 - Approved'

            WHEN '2' THEN '2 - Rejected'

            WHEN '3' THEN '3 – Not applicable'

            WHEN '4' THEN '4 – Timesheet approval is pending'

            ELSE CAST (MTL.TS_LINE_STATUS AS VARCHAR) + ' - unknown'

      END

FROM PUB.MSP_TIMESHEETS MTS

INNER JOIN PUB.MSP_TIMESHEET_LINES MTL ON MTS.TS_UID=MTL.TS_UID

INNER JOIN PUB.MSP_WEB_TIME_PERIODS WTP ON MTS.WPRD_UID=WTP.WPRD_UID

ORDER BY MTS.TS_CACHED_RES_NAME

 

L’adaptation de ce script pour les versions précédentes (2007 et 2010) est assez aisée puisque les tables sont les mêmes. Pensez juste à préciser le nom de la base Published.

Bonne journée,

Marc Biarnès