Project Server 2007 pozwala na generowanie raportów za pomocą narzędzi analitycznych dostępnych w produkcie. Jednakże z praktyki wynika, że narzędzia te nie spełniają swoimi możliwościami wymagań osób, dla których raportowanie jest istotnym elementem pracy. Brakuje w nich elastyczności i możliwości przekształceń, które są dostępne w innych narzędziach.
Project Server 2007 pozwala na generowanie raportów za pomocą narzędzi analitycznych dostępnych w produkcie. Jednakże z praktyki wynika, że narzędzia te nie spełniają swoimi możliwościami wymagań osób, dla których raportowanie jest istotnym elementem pracy. Brakuje w nich elastyczności i możliwości przekształceń, które są dostępne w innych narzędziach.
W tym przypadku można się pokusić o rozszerzenie całego systemu tak, aby móc wykorzystać aplikację, która spełnia te wymagania — Excel 2007. Dzięki użyciu Office Data Connections (ODC) unikniemy wielokrotnego kopiowania danych do arkusza i uzyskamy dynamiczny dostęp do aktualnych wartości.
Wymagane elementy do realizacji rozwiązania
Aby umożliwić użytkownikowi raportowanie danych generowanych w Project Server 2007, należy zdefiniować zakres danych, który zostanie zarealizowany jako widok na bazie SQL Server. W następnym kroku należy połączyć aplikację Excel 2007 ze źródłem danych poprzez Office Data Connection (ODC) i zamodelować raport.
Definicja zakresu danych
W pierwszym kroku należy okreslić, jakie dane są wymagane do raportu. W tym artykule przedstawione zostaną zdefiniowane w Project Server 2007 zasoby wraz z ich dodatkowymi właściwościami (Enterprise Custom Field Definition).
Przygotowanie widoku
Aby móc wizualizować zasoby w Project Server 2007, należy w zapytaniu użyć następujących tabel:
- MSP_CUSTOM_FIELD_VALUES — tabela zawierająca ręcznie wprowadzane wartości zdefiniowanych przez administratora serwera dodatkowych pól identyfikujących zasób, na przykład data zatrudnienia.
- MSP_CUSTOM_FIELD — tabela zawierająca zdefiniowane przez administratora serwera dodatkowe pola identyfikujące zasób.
- MSP_RESOURCES — tabela zawierająca główne informacje o zdefiniowanych zasobach, na przykład:
— E-mail,
— Inicjały,
— Status zasobu,
— Kierownik,
— Przynależność do grupy, uprawnienia.
- MS_LOOKUP_TABLE_VALUES — tabela zawierająca stałe wartości zdefiniowanych przez administratora serwera pól identyfikujących zasób, na przykład:
— Zespół, do którego zasób należy (testy, programiści, analiza, architektura),
— Stanowisko (programista, starszy programista, młodszy architekt).
CREATE VIEW [dbo].[RESOURCES] AS SELECT * FROM ( SELECT RES.RES_UID AS RES_ID ,RES.RES_NAME AS RES_NAME ,RES.WRES_EMAIL AS RES_EMAIL ,CF.MD_PROP_NAME AS PROP_NAME ,ISNULL(CAST(CFV.NUM_VALUE AS NVARCHAR) ,CAST(LTV.LT_VALUE_TEXT AS NVARCHAR)) AS D FROM MSP_RES_CUSTOM_FIELD_VALUES CFV INNER JOIN MSP_CUSTOM_FIELDS CF ON CFV.MD_PROP_UID=CF.MD_PROP_UID INNER JOIN MSP_RESOURCES RES ON RES.RES_UID=CFV.RES_UID LEFT OUTER JOIN MSP_LOOKUP_TABLE_VALUES LTV ON LTV.LT_STRUCT_UID=CFV.CODE_VALUE )AS ST PIVOT ( MIN(ST.D) FOR ST.PROP_NAME IN ([PROP_NAME1],[PROP_NAME2]) ) AS PIVOTTABLE
Tworzony powyżej widok modyfikujemy w sekcji PIVOT, gdzie kolumny PROP_NAMEx należy zamienić na konkretne wartości, czyli nazwy dodatkowych kolumn zdefiniowanych dla zasobów.
Następnie należy wykonać skrypt na stworzonej automatycznie bazie danych ProjectServer_Published, aby zarejestrować nowy widok.
Połączenie aplikacji Excel 2007 ze źródłem danych
Aby Excel mógł korzystać z zewnętrznych źródeł danych, należy użyć plików ODC — jest to metoda rekomendowana przez Microsoft. Pliki Office Data Connection są zbudowane na tagach XMLowych i HTMLowych, w których przetrzymywane są dane do połączenia. Istotną sprawą jest to, że pliki ODC mogą wymagać dostępu do źródła, które jest na innej maszynie, przez co być może będziemy musieli skontaktować się z administratorem serwera bazy danych, aby uzyskać dostęp, uprawnienia oraz konto do połączenia.
W następnej części zostaną przedstawione proces tworzenia plików ODC oraz uruchomienie automatycznego odświeżania danych przy uruchomieniu arkusza Excel.
Definicja połączenia ze źródłem danych
W pierwszym kroku wejdź na kartę Data i wybierz opcję From SQL Server.
W kolejnym etapie należy wprowadzić nazwę serwera i użytkownika oraz hasło.
Teraz pozostaje wybranie bazy danych „ProjectServer_Published” oraz wybranie wcześniej utworzonego widoku „_RESOURCES”.
W ostatnim kroku pozostaje tylko podać nazwę, opis oraz przyjazną nazwę dla pliku ODC.
Zapisz plik poprzez wciśnięcie przycisku Finish. Plik domyślnie zapisze się w lokalizacji: C:\Documents and Settings\USERNAME\My Documents\My Data Sources
Aby uzyskać najciekawszą formę modelowania danych, wybierz opcję PivotTable Report.
Na tym etapie arkusz jest przygotowany do tworzenia raportów, ponieważ ma zdefiniowane połączenie do źródła danych i zainicjowane połącznie do źródła danych poprzez PivotTable.
Pełna zawartość stworzonego pliku ODC
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns="http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=Content-Type content="text/x-ms-odc; charset=utf-8"> <meta name=ProgId content=ODC.Table> <meta name=SourceType content=OLEDB> <meta name=Catalog content="ProjectServer_Published"> <meta name=Schema content=dbo> <meta name=Table content="_RESOURCES"> <title>ProjectServer_Published _RESOURCES</title> <xml id=docprops><o:DocumentProperties xmlns:o="urn:schemas-microsoft-com:office:office" xmlns="http://www.w3.org/TR/REC-html40"> <o:Description>Connection file for Project Server 2007 resources</o:Description> <o:Name>ProjectServer_Published _RESOURCES</o:Name> </o:DocumentProperties> </xml><xml id=msodc><odc:OfficeDataConnection xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns="http://www.w3.org/TR/REC-html40"> <odc:Connection odc:Type="OLEDB"> <odc:ConnectionString>Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True; Data Source=PROJECTSERVER;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096; Workstation ID=MYLOCALMACHINE;Use Encryption for Data=False; Tag with column collation when possible=False;Initial Catalog=ProjectServer_Published</odc:ConnectionString> <odc:CommandType>Table</odc:CommandType> <odc:CommandText>"ProjectServer_Published"." dbo"."_RESOURCES"</odc:CommandText> </odc:Connection> </odc:OfficeDataConnection> </xml> <style> <!-- .ODCDataSource { behavior: url(dataconn.htc); } --> </style> </head> <body onload='init()' scroll=no leftmargin=0 topmargin=0 rightmargin=0 style='border: 0px'> <table style='border: solid 1px threedface; height: 100%; width: 100%' cellpadding=0 cellspacing=0 width='100%'> <tr> <td id=tdName style='font-family:arial; font-size:medium; padding: 3px; background-color: threedface'> </td> <td id=tdTableDropdown style='padding: 3px; background-color: threedface; vertical-align: top; padding-bottom: 3px'> </td> </tr> <tr> <td id=tdDesc colspan='2' style='border-bottom: 1px threedshadow solid; font-family: Arial; font-size: 1pt; padding: 2px; background-color: threedface'> </td> </tr> <tr> <td colspan='2' style='height: 100%; padding-bottom: 4px; border-top: 1px threedhighlight solid;'> <div id='pt' style='height: 100%' class='ODCDataSource'></div> </td> </tr> </table> <script language='javascript'> function init() { var sName, sDescription; var i, j; try { sName = unescape(location.href) i = sName.lastIndexOf(".") if (i>=0) { sName = sName.substring(1, i); } i = sName.lastIndexOf("/") if (i>=0) { sName = sName.substring(i+1, sName.length); } document.title = sName; document.getElementById("tdName").innerText = sName; sDescription = document.getElementById("docprops").innerHTML; i = sDescription.indexOf("escription>") if (i>=0) { j = sDescription.indexOf("escription>", i + 11); } if (i>=0 && j >= 0) { j = sDescription.lastIndexOf("</", j); if (j>=0) { sDescription = sDescription.substring(i+11, j); if (sDescription != "") { document.getElementById("tdDesc").style.fontSize="x-small"; document.getElementById("tdDesc").innerHTML = sDescription; } } } } catch(e) { } } </script> </body> </html>
Zdefiniowanie Zaufanej lokalizacji (Trused Location) do automatycznego odświeżania danych
Aby automatycznie odświeżać dane za każdym razem, kiedy arkusz zostanie otwarty, należy zdefiniować nową zaufaną lokalizację, która jest folderem, w którym trzymamy nowy plik ODC. Dzięki temu funkcjonalność Trust Center nie będzie odpytywać za każdym razem o to, czy plik jest bezpieczny i czy chcesz się połączyć ze źródłem danych.
Definicję zaufanej lokalizacji rozpocznij od wybrania przycisku Microsoft Office i wybrania opcji Excel Options.
Następnie wybierz opcję Trust Center i Trust Center settings.
W tym kroku dodaj nową lokalizację dla nowego pliku ODC, wciśnij OK i wybierz opcję Connections z karty Data.
Teraz wybierz opcję Properties i zaznacz pole Refresh data when opening the file
W ostatnim kroku kliknij OK i Close, aby zamknąć wszystkie okna konfiguracji pliku ODC.
Przygotowanie raportu
Ostatnim etapem jest przygotowanie raportu poprzez zdefiniowanie tego, jakie pola mają być wyświetlane w PivotTable, a jakie mają być wartością zawężającą wyniki. Poniżej zaprezentowany jest bardzo prosty raport prezentujący zasoby i ich przynależność do zespołu. Przy prawdziwych i dużych projektach dostępne dane dają mnóstwo możliwości przekształceń do formy, która będzie najbardziej komunikatywna i stanie się wartością dodaną dla projektu.
Podsumowanie
Project Server 2007 to narzędzie, które pozwala wizualizować wiele ważnych elementów zarządzania pracą i projektami. Do tych elementów należą zasoby i ich dostępność, czas spędzony na zadaniach, trendy oraz plany. Project Server wraz z Microsoft Office Sharepoint Server 2007 oferuje ciekawe rozwiązania do raportowania, jednakże dla potrzeb duzych przedsięwzięć mogą być one niewystarczające. Rola dobrze zwizualizowanych informacji dla projektu jest nieoceniona, dlatego warto rozszerzyć Project Server 2007 o dodatkowe rozwiązanie łączące ze sobą wymieniony system z programem Microsoft Excel 2007. Excel jest od wielu lat znany jako rozwiązanie, które ma wiele potężnych funkcjonalności graficznego wizualizowania danych. Wraz z Office Data Connection program Excel staje się otwarty na wszystkie możliwe źródła danych. Poprzez kilka prostych kroków można osiągnąć to, czego Office Project Server 2007 nie jest w stanie zaoferować w standardowej konfiguracji. Poprzez kilka prostych kroków można stworzyć spójny i sprawnie działający mechanizm wspierający zarządzanie projektami, wspomagający proces analityczny io decyzyjny w każdej organizacji.
Autor:
Michał Bojko
Pracuje w międzynarodowej firmie zajmującej się produkcją i wdrażaniem systemów Sharepoint.