Updating Existing Groove Version 3.1 Applications
This document describes changes in the Microsoft Office Groove 2007 Software Development Kit (SDK) that may require changes in existing Groove Web Services applications.
Groove Registry Key Changes
Microsoft Office Groove 2007 and Microsoft Office Groove Data Bridge 2007 store the registry keys in a different location than the previous versions of Groove. Microsoft Office Groove 2007 stores the registry keys in the following locations:
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Groove
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Groove\WebServices
Microsoft Office Groove Data Bridge 2007 stores the registry keys in the following locations:
HKEY_LOCAL_MACHINE\Software\Microsoft\Office Server\12.0\Groove
HKEY_LOCAL_MACHINE\Software\Microsoft\Office Server\12.0\Groove\WebServices
In previous versions of Groove, these keys were under Groove Networks, Inc. All Web Services applications that call Groove services must be modified to look for the registry keys in the new location.
The WebServicesNonce key is no longer created by Microsoft Office Groove or Microsoft Office Groove Data Bridge 2007. This key was equivalent to LocalRequestKey and was provided for compatibility with older versions of Groove. If you have an existing application that uses Groove Web Services Version 1.0, you must modify it so that it reads the value of the LocalRequestKey registry key and uses its value to set the GrooveNonce element of the GrooveHeader Version 1.0.
New Forms Tools Require the GrooveForms2 Service
Forms Tools created by Groove 2007 require the new GrooveForms2 service and cannot be accessed by the GrooveForms service. Applications developed for Groove 3.1 use the GrooveForms service to access Forms Tools and will not be able to access the new versions of the Forms tool without being modified.
Differences Between GrooveForms2 and GrooveForms Services
The GrooveForms2 and GrooveForms services are independent and have different namespaces. Although the WSDL and XSD files that define the services are very similar, they have the following significant differences:
In GrooveForms2 operations, the Forms2RecordDataSet can have multiple record schemas defined in the schema element. Each record in the Data element is defined by one of the record schemas. In GrooveForms operations, the FormsRecordDataSet has only a single record schema defined in the schema element and all records in the Data element use that schema. In GrooveForms2ReadRecords and QueryRecords operations, the returned Forms2RecordDataSet includes the schemas for all records included in the Data element. Note that the tool can contain additional schemas. If there are no records included in the Data element in the GrooveForms2 Data element, there will be no schemas defined in the Schema element.
In GrooveForms2, the FileAttachment type that is defined in the Schema element has a single element, FullName, that replaces two elements, Name and DisplayName, in the GrooveForms FileAttachment type. When creating or updating records, the FullName element is used to set the both Name and DisplayName. The operations remove the file extension from the FullName and use the resulting value to set the DisplayName.
In GrooveForms2, the ReplaceDesign operation will replace the design of only one Forms tool per operation; consequently, the operation SOAP request has a different format.
In GrooveForms2, the complex type Form contains the following additional fields: FormsRecordDataSet_ID, MaintainRecordVersionHistory, Type, IsResponse, and IsDeleted.
In GrooveForms2, the ReadFields operation is equivalent to the GrooveFormsReadFields2 operation. There is no ReadFields2 operation in GrooveForms2.
The GrooveForms2EventData subtypes have new names to avoid conflict with the GrooveForms names. DesignName and DesignVersion elements have been added to each EventData subtype.
In the GrooveForms2QueryRecords operation, the FieldSchemaScopingFlag and FieldSchemaScopingElement input parameters are not present. In the GrooveForms service, these parameters allow you to limit the fields in the record to the ones present in the form or view instead of all fields that are defined in the tool. These parameters are not necessary in the GrooveForms2 service because a record contains only the fields defined in its form. The FileAttachmentsFormat input parameter, which was reserved for future use in GrooveFormsQueryRecords, has been removed from GrooveForms2QueryRecords.
The ReadInfoPathTemplate operation is new in GrooveForms2.
Note that the GrooveForms service only has a single record schema element, which is always named FormsRecordData. All records within the Data are consequently named FormsRecordData. If you have existing code that accesses the GrooveFormsRecordDataSet, you must ensure that it does not assume that there is only one record schema defined.
In Groove 3.1, the GrooveForms service generated multiple update events when Forms tool records were updated, including separate events for updates of different fields of the same record. In Groove 2007, both the GrooveForms and GrooveForms2 services generate a single event for any single record update transaction. The event contains the value of the records at the completion of the transaction.
Note that the difference between Forms2RecordDataSet and FormsRecordDataSet structures is not reflected as a comparable difference in the WSDL. The WSDL only defines the top level on the Forms2RecordDataSet and FormsRecordDataSet structure—it defines the Schema and Data elements with a type of xs:anyType. Consequently, this difference will not show up as a difference in the generated proxy code, but it can require changes in the application program logic that operate on these structures.
New Instances of Discussion Use GrooveForms2 Service
When you add a new Discussion tool to a workspace created by Groove 2007, you are actually adding a designed Groove Forms Tool V5.0. Consequently, you access this tool with the GrooveForms2 service, not with the deprecated GrooveDiscussion service.
GrooveFilesDIME Service Removed
The GrooveFilesDIME service has been removed from Groove. Existing applications developed with previous versions of Groove that call this service will not work with Groove 2007. You must update the application to use the GrooveFilesBase64 service instead.
GrooveDiscussion Service Is Deprecated
The GrooveDiscussion service is deprecated in Groove 2007. Although the implementation continues to function to support existing applications, the SDK no longer contains the documentation and WSDL definition files for GrooveDiscussion.
GrooveLocal SendInvitationToChat has No Effect
In Groove 2007 the GrooveLocal SendInvitationToChat operation has no effect. If you call SendInvitationToChat, Groove simply returns the SOAP response message.
Change in Process for GrooveEvents .NET Proxy Code
The process for generating proxy code for the GrooveEvents service has been updated. In the Microsoft Office Groove 2007 SDK, Visual C# 2005 and Visual Basic 2005 proxy code are provided as files that can be included in your Visual Studio 2005 project. In previous versions, the procedure involved editing the generated proxy code for GrooveEvents.