WinRb / Viewpoint

A Ruby client access library for Microsoft Exchange Web Services (EWS)
Apache License 2.0
248 stars 171 forks source link

update_item => validation error : 'SetItemField' has invalid child element 'FieldURI' #77

Open tbuyle opened 11 years ago

tbuyle commented 11 years ago

Trying to update an calendar item, i faced the following error :

Viewpoint::EWS::Connection : Internal SOAP error. Message: The request failed schema validation: The element 'SetItemField' in namespace 'http://schemas.microsoft.com/exchange/services/2006/types' has invalid child element 'FieldURI' in namespace 'http://schemas.microsoft.com/exchange/services/2006/messages'. List of possible elements expected: 'Path' in namespace 'http://schemas.microsoft.com/exchange/services/2006/types'., Code: a:ErrorSchemaValidation

Looking at the generated XML, I noticed that there seemed to be an error: FiledURI was sent with 'm:FieldURI' instead of 't:FieldURI'

I tried changing set_item_field! to call dispatch_field_uri with 'dispatch_field_uri(uri, NS_EWS_TYPES) ( exchange_data_services.rb, line 861) and it does fix the error.

Now, I am not sure if correcting set_item_field is the correct way to do it or if dispatch_field_uri to default to NS_EWS_TYPES instead of NS_EWS_MESSAGES

RmMsr commented 11 years ago

Hi @tbuyle ,

I am not sure, but there has been a fix for the FieldURI element in commit d6a71a3eb59098bdeb8b90d789e5b6e3d37e5c0b. Maybe it helps you. It is part of the master branch. In terms of CalendarItem creation, you could have a look into #112 where I tried to implement an esay to use CalendarFolder#create method.