View
217
Download
4
Category
Preview:
Citation preview
Massimiliano Bosco – Aliware – Torino – info@aliware.it
Project 2003
SviluppareSoluzioniEPM con
Project Server(2/4)
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 dropHKEY_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 SOAPDim oSOAPClient As SoapClient30Dim sPDSRequest As StringDim sPDSReturnXML As StringDim sProjectServerURL As StringDim verbosity As Integer
sProjectServerURL = "http://servername/projectserver"verbosity = 3
Set oSOAPClient = New SoapClient30oSOAPClient.MSSoapInit sProjectServerURL & "/PDSBiz.wsdl"
sPDSRequest = "<Request><PDSInfo/></Request>“
sPDSReturnXML = oSOAPClient.submit(sProjectServerURL, _"User Account", "Account Password", _sPDSRequest, verbosity)
Uso di HTTP PostDim oXMLHttp As XMLHTTPDim sPDSRequest As StringDim sPDSReturnXML As StringDim sProjectServerURL as String
sProjectServerURL = "http://myserver/projectserver"Set oXMLHttp = New XMLHTTPoXMLHttp.open "POST", sProjectServerURL & _
"/logon/ADMRequest.asp", FalsesPDSRequest = GetRequest()‘ sintetizza la
‘ la richiesta XMLoXMLHttp.send sPDSRequestsPDSReturnXML = 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 EDMhttp://www.msdn.microsoft.com/library/default.asp?url=/library/en-us/pjsdk/html/pdsConfiguringServiceForEDM.asp
• Web servicesMOC 2524: Sviluppo di Web Services usando Visual Studio.NETMOC 2500: Programmazione XMLMOC 2349: Programmazione col framework .NET in C#MOC 2415: Programmazione col framework .NET in VB.NET
Recommended