Project 2003
Sviluppare
Soluzioni
EPM con
Project Server
(2/4)
Massimiliano Bosco – Aliware – Torino – [email protected]
Agenda
• Parte 1: programmazione in ambito EPM
–
–
–
–
–
Alcune richieste tipiche
Soluzioni stand-alone, client-server, EPM
Architettura di Project Server 2003
Project Data Service (PDS)
Esempio 1.1: utilizzo del PDS
• Parte 2: architetture di connessione
– Regole generali per i connettori
– Esempio 2.1: importare le risorse con file XML
• Parte 3: uso dei cubi OLAP e loro estensioni
– Acquisizione dati da Sharepoint
– Esempio 3.1: gestione rischi e problemi
• Parte 4: estendere il PDS con codice gestito (.NET)
– Schema generale di un’estensione PDS
– Esempio 4.1: estensione PDS in C#
Strumenti
• MS Project SDK 2003
go.microsoft.com/fwlink/?linkid=21722
Regole generali per i connettori
•Modello da SDK:
ERP Connector
Solution Starter
•Interfacce standard
(Enterprise Data
Maintenance)
•SOAP
•File Drop
•Vantaggi
•EDM effettua le
chiamate a PDS
•Mapping dei dati
nel business
layer
•Personalizzazione
•PDS Extensions
EDM
• 3 tipi di servizio
– Sincronizzazione dei dati delle risorse
– Sincronizzazione dei membri del team
– Sincronizzazione delle liste di custom field
EDM (2)
• Scenario 1: accesso alle risorse
– Occorre sincronizzare le risorse di Project Server
2003 con l’archivio di un sistema Human Resource
(HR) con frequenza giornaliera.
– Ogni notte l’HR scarica un file XML in una cartella ben
individuata. Il file XML può contenere metadati, quali
la lista dei custom field associati alla risorsa
– Il servizio EDM preleva il file, applica alcune regole di
livello business all’XML ed effettua le chiamate PDS
per aggiornare il pool di risorse enterprise (es. con
ResourcesUpdate e ResourcesDeactivate)
EDM (3)
• Scenario 2: project team
– Un sistema PSA (Professional Services Automation)
gestisce un archivio di risorse in base a competenze,
disponibilità, etc.
– Occorre sincronizzare i dati dei team del PSA tutte le
volte che il Resource Manager li modifica
– Ad ogni commit il PSA effettua una chiamata SOAP a
EDM inviandogli la lista aggiornata dei team
– Dopo la convalida della richiesta XML, EDM effettua
le chiamate a PDS per aggiungere o eliminare
membri dal team di progetto
EDM (4)
• Scenario 3: enterprise custom fields
– Un portale di gestione della conoscenza, delle
competenze e di e-learning gestisce un elenco delle
competenze per ciascun utente. Ogni competenza è
identificata da un codice univoco.
– I servizi di back end del portale scaricano in un file
XML la lista delle competenze coi relativi codici
– EDM raccoglie col metodo file drop il file, lo convalida
e importa i nuovi codici, permettendo di associare alle
risorse le loro competenze
Uso di file drop
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\MS
Project \Services\Configuration\Connector\[Monitor Location]
• La chiave [Monitor Location] è descrittiva e viene usata ai fini del
tracciamento (Es: projectsolution1, etc.)
• Possono esserci diverse [Monitor Location]
Metodi
• Resource Data Methods
– ResourcesUpdate : inserisce o modifica una risorsa
– ResourcesDeactivate : disattiva una risorsa senza
eliminarla dal DB
• Project Team Methods
– ProjectTeam : modifica la composizione del team
• Enterprise Field Update
– EnterpriseFieldUpdate : sincronizza il valore dei
campi personalizzati con applicazioni esterne
Esempio
<Request>
<ResourcesUpdate>
<Resources>
<Resource>
<Name>EDM Tester</Name>
</Resource>
</Resources>
</ResourcesUpdate>
</Request>
Risposta
<Reply>
<AllSucceeded></AllSucceeded>
<Conversations>
<Conversation>
<Request></Request>
<Reply></Reply>
<Summary>
<STATUS></STATUS>
<HRESULT></HRESULT>
</Summary>
</Conversation>
<Conversation>
<Request></Request>
<Reply></Reply>
<Request></Request>
<Reply></Reply>
-- can be multiple PDS requests and replies -<Summary>
<STATUS></STATUS>
<HRESULT></HRESULT>
</Summary>
</Conversation>
</Conversations>
</Reply>
Uso di un client SOAP
Dim
Dim
Dim
Dim
Dim
oSOAPClient As SoapClient30
sPDSRequest As String
sPDSReturnXML As String
sProjectServerURL As String
verbosity As Integer
sProjectServerURL = "http://servername/projectserver"
verbosity = 3
Set oSOAPClient = New SoapClient30
oSOAPClient.MSSoapInit sProjectServerURL & "/PDSBiz.wsdl"
sPDSRequest = "<Request><PDSInfo/></Request>“
sPDSReturnXML = oSOAPClient.submit(sProjectServerURL, _
"User Account", "Account Password", _
sPDSRequest, verbosity)
Uso di HTTP Post
Dim
Dim
Dim
Dim
oXMLHttp As XMLHTTP
sPDSRequest As String
sPDSReturnXML As String
sProjectServerURL as String
sProjectServerURL = "http://myserver/projectserver"
Set oXMLHttp = New XMLHTTP
oXMLHttp.open "POST", sProjectServerURL & _
"/logon/ADMRequest.asp", False
sPDSRequest = GetRequest()
‘ sintetizza la
‘ la richiesta XML
oXMLHttp.send sPDSRequest
sPDSReturnXML = oXMLHttp.responseXML.xml
Riferimenti
• download.microsoft.com
– MS Project Server 2003 Software Development Kit (SDK)
• Siebel solution starter
• mySAP connector
– MS Project 2003 Resource Kit
• Configurazione EDM
http://www.msdn.microsoft.com/library/default.asp?url=/library/enus/pjsdk/html/pdsConfiguringServiceForEDM.asp
• Web services
MOC 2524: Sviluppo di Web Services usando Visual Studio.NET
MOC 2500: Programmazione XML
MOC 2349: Programmazione col framework .NET in C#
MOC 2415: Programmazione col framework .NET in VB.NET
Scarica

Project 2003 Sviluppare Soluzioni EPM con Project