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

  • SOAP Toolkit 3.0

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

  1. 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
    
  2. 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.

  3. 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:

  1. par_WSDLFile: This is the only required parameter.

  2. par_ServiceName: Omitted in the sample, defaults to the “PdsBiz” service specified in the WSDL file.

  3. par_Port: Omitted in the sample, defaults to the “PdsBizSubmitSoapPort” specified in the WSDL file.

  4. 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:

  1. URL of the Project Server

  2. Project user name

  3. 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.

  4. Input document name

  5. 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