Configuring the Service for EDM
Microsoft Office Project Server 2003 includes a Connector Service as part of the Service for Enterprise Data Maintenance (EDM). There are two ways to call the Connector Service:
Using a file drop.
Using a SOAP client. The section also includes information on using HTTP Post to connect with the Service for EDM.
You can configure the Service for EDM to use a file drop or a SOAP client for multiple sites that are hosted by Project Server. For more information, see Using the PDS with Multiple Project Server Sites.
Setup
The Service for EDM requires the following supporting services:
Project Data Service (PDS), installed with Project Server
Internet Information Services (IIS), installed with Microsoft Windows 2000 Server with Service Pack 3 (SP3) or later
ActiveX Data Objects (ADO) core components, installed with Project Server and Microsoft SQL Server™ 2000, with SP3 or later
OLE DB support, installed with Project Server and SQL Server
The Service for EDM can be deployed on a separate server. It relies primarily on the PDS component of Project Server.
The Service for EDM uses SOAP and HTTP Post to communicate with the PDS, which resides in the Project Server IIS Virtual Directory.
The PDS connection information is simply the URL to Project Server and the user logon information.
Note After Project Server is installed, you should restart IIS (or restart the server that is running IIS for Project Server), to initialize IIS with SOAP for the Service for EDM. If you do not restart IIS, the Service for EDM can deny access to a user who tries to log on using Windows Authentication.
Using a File Drop
Configure the Service for EDM to use the Connector Service to listen to a file drop directory. The Connector Service will then process all valid XML files that are dropped in the specified directory.
Note For the file drop function to work, files must be in the format specified in the Service for EDM functions. The Service for EDM does not try to transform arbitrary files into a usable format.
To configure the Connector Service for a file drop
In the registry, specify one or more locations for the Connector Service to monitor. For each location, use the Registry Editor (regedit.exe) to add a key as follows:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\MS Project \Services\Configuration\Connector\[Monitor Location]
The [Monitor Location] key can have any name and is used descriptively for reporting in tracing. There can be multiple [Monitor Location] subkeys, for example:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\MS Project \Services\Configuration\Connector\ProjectServerSolution1 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\MS Project \Services\Configuration\Connector\ProjectServerSolution2
For each [Monitor Location] subkey in the registry, add the Drop Directory, Failed Directory, and Project Server URL string value properties; if desired, add the Success Directory, Verbosity, Priority, and Timeout properties (Table 1). Double-click each property to enter a value in the Edit String dialog box of the Registry Editor.
Table 1. String values (REG_SZ) for Connector Service keys
Property Description Required Drop Directory Directory that the Connector Service listens to for new XML documents. Note Make sure Drop Directory points to a unique directory. If any other Project Server configuration points to the same directory, the behavior is unpredictable.
Yes Failed Directory Directory for failed documents to be moved to. Yes Success Directory Directory for successful documents to be moved to. No Verbosity The verbosity level of the response (1, 2, or 3 in order of low to high verbosity). See the description in the following SOAP section. No Project Server URL The Project Server URL to use for SOAP calls (for example, http://myserver/projectserver). Yes Timeout The timeout value in milliseconds for a SOAP call. The default Project Server installation sets Timeout to 150000 (2½ minutes). No The Connector Service uses Verbosity for the file drop service. The Connector Service in turn communicates with the PDS by SOAP. The Project Server URL and Timeout properties are used for SOAP calls between the Connector Service and the PDS.
Restart IIS to initialize it for the new Service for EDM sites.
Note The default Project Server installation includes one Connector location that is already established. The ProjectServer1 key specifies the following drop directory, which includes the subdirectories FAIL and SUCCESS:
[Program Files]\Microsoft Office Project Server 2003\BIN\Connector
Using a SOAP Client
When you develop client applications to communicate with the PDS by SOAP, you initialize the SOAP client with the PDS Web Service Description Language file (pds.wsdl). This process is described in the topic Using SOAP to call PDS Methods. In a similar way, you can develop applications to communicate by SOAP with the Service for EDM. The Connector Service has a different Web service interface than the PDS Web service, so the Connector Service is initialized with a different WSDL file: pdsbiz.wsdl.
The following Microsoft Visual Basic 6 sample requires a reference to the SOAP Type Library 3.0. It shows how the SoapClient30 object sends SOAP requests to the Connector Service on Project Server.
The MSSoapInit method initializes the SoapClient30 object using the WSDL file pdsbiz.wsdl. MSSoapInit has four parameters of type String:
par_WSDLFile: This is the only required parameter.
par_ServiceName: Omitted in the sample, defaults to the “PdsBiz” service specified in the WSDL file.
par_Port: Omitted in the sample, defaults to the “PdsBizSubmitSoapPort” specified in the WSDL file.
par_WSMLFile: Omitted in the sample, this is used only when the request contains complex XML types.
Dim oSOAPClient As SoapClient30
Dim sPDSRequest As String
Dim sPDSReturnXML As String
Dim sProjectServerURL As String
Dim 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)
The **Submit****method is defined in the WSDL file for the Connector Service. Submit has the following parameters:
URL of the Project Server
Project user name
Project user password
Note If both the user name and password values are an empty string ("" in Visual Basic or JScript, or NULL in C), the Service for EDM uses Windows NT Integrated Authentication instead of Project Authentication.
Input document name
Verbosity level of the response. Valid values are:
1: Success + errors + erroneous PDS calls
2: Success + errors + all PDS calls
3: Success + errors + all PDS calls + operation details (for example, Outline Code merging)
The Submit method returns the response from the Service for EDM.
For more information on developing and managing SOAP client and server applications, see the SOAP 3.0 Toolkit. In addition, for information on how the proxycfg.exe utility configures the registry of an HTTP or HTTPS server for communication on a local network or across the Internet, see the article Using the WinHTTP Proxy Configuration Utility on MSDN, the Microsoft Developer Network.
Note If the Service for EDM application is installed on an external computer (that is, outside of the server that hosts IIS for Project Server), the application must log a user on Project Server with Project Server authentication in order to use SOAP calls. To use Windows authentication with SOAP, the application must reside on the server that hosts IIS for Project Server.
For an external application to communicate with the Service for EDM and use Windows authentication, the application must use HTTP Post, as described in the following section. This is because the Service for EDM itself communicates with the PDS by SOAP, and SOAP does not maintain Windows authentication over two “hops.”
An application that makes calls only to the PDS can use either SOAP or HTTP Post from outside Project Server, for either Project Server authentication or Windows authentication.
Using HTTP Post
If a Service for EDM client application is installed on an external computer (outside the server that hosts IIS for Project Server), and logs a user on Project Server using Windows authentication, the application must use HTTP Post.
The following Visual Basic 6.0 sample shows how to send a request and receive a reply by HTTP Post. Assume that logon to Project Server is completed, and a hypothetical function GetRequest() returns a valid XML request string.
The Visual Basic project must include a reference to Microsoft XML, v3.0 or above (msxml3.dll, msxml4.dll, or msxml5.dll) for the type reference XMLHTTP.
Dim oXMLHttp As XMLHTTP
Dim sPDSRequest As String
Dim sPDSReturnXML As String
Dim sProjectServerURL as String
sProjectServerURL = "http://myserver/projectserver"
Set oXMLHttp = New XMLHTTP
oXMLHttp.open "POST", sProjectServerURL & "/logon/ADMRequest.asp", False
sPDSRequest = GetRequest()
oXMLHttp.send sPDSRequest
sPDSReturnXML = oXMLHttp.responseXML.xml
Error Messages
If there are errors in processing the request, the Service for EDM returns an 8000 level STATUS code:
PdsbizInternalError = 8000
LoginURLInvalid = 8001
PdsCallFailed = 8002
UIDNotFound = 8003
DocumentProcessingError = 8004
DocumentMergeError = 8005
PWAAccessDenied = 8007
DocumentParseError = 8008
DocumentTransformError = 8009
InvalidResourceCode = 8010
InvalidResourceCodeValue = 8011
ProjectValidationFailed = 8012
ReplaceResourcesFailed = 8013
DeleteResourcesFailed = 8014