I am sending the following XML query to EWS using the Office.context.mailbox.makeEwsRequestAsync method. It works as long as Traversal is set to "Shallow". I get a "The request is invalid" error when I set Traversal to "Deep".
How do I recursively search subfolders if I can't do deep searches?
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<t:RequestServerVersion Version="Exchange2013_SP1" />
</soap:Header>
<soap:Body>
<m:FindItem Traversal="Shallow">
<m:ItemShape>
<t:BaseShape>AllProperties</t:BaseShape>
</m:ItemShape>
<m:IndexedPageItemView MaxEntriesReturned="10" Offset="0" BasePoint="Beginning" />
<m:Restriction>
<t:Contains ContainmentMode="FullString" ContainmentComparison="IgnoreCase">
<t:FieldURI FieldURI="item:Categories" />
<t:Constant Value="MyCategory" />
</t:Contains>
</m:Restriction>
<m:ParentFolderIds>
<t:DistinguishedFolderId Id="inbox" />
<t:DistinguishedFolderId Id="sentitems" />
</m:ParentFolderIds>
</m:FindItem>
</soap:Body>
</soap:Envelope>
The FindItem EWS call does not support Traversal="Deep". See FindItem.
This is because the call will search for items in the folders specified in ParentFolderIds. In order to do a recursive search, you will need to get the list of folders to include in the search by using the FindFolder EWS Operation which supports Traversal="Deep" on non public folders. See FindFolder for additional documentation.
Related
I am struggling with mail sending flow in mule, Getting below error:
Failed to route event via endpoint: DefaultOutboundEndpoint{endpointUri=smtps://dummy.DevGroup:<password>#smtp.gmail.com, connector=SmtpsConnector
I have below configuration in my xml file (Updated with namespace declarations in the Mule XML):
<mule
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:twilio="http://www.mulesoft.org/schema/mule/twilio"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:spring="http://www.springframework.org/schema/beans"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:stdio="http://www.mulesoft.org/schema/mule/stdio"
xmlns:vm="http://www.mulesoft.org/schema/mule/vm"
xmlns:file="http://www.mulesoft.org/schema/mule/file"
xmlns:cxf="http://www.mulesoft.org/schema/mule/cxf"
xmlns:jms="http://www.mulesoft.org/schema/mule/jms"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:smtp="http://www.mulesoft.org/schema/mule/smtp"
xmlns:smtps="http://www.mulesoft.org/schema/mule/smtps"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/stdio http://www.mulesoft.org/schema/mule/stdio/current/mule-stdio.xsd
http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/current/mule-vm.xsd
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd
http://www.mulesoft.org/schema/mule/cxf http://www.mulesoft.org/schema/mule/cxf/current/mule-cxf.xsd
http://www.mulesoft.org/schema/mule/jms http://www.mulesoft.org/schema/mule/jms/current/mule-jms.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
http://www.mulesoft.org/schema/mule/smtp http://www.mulesoft.org/schema/mule/smtp/3.3/mule-smtp.xsd
http://www.mulesoft.org/schema/mule/smtps http://www.mulesoft.org/schema/mule/smtps/current/mule-smtps.xsd
http://www.mulesoft.org/schema/mule/twilio http://www.mulesoft.org/schema/mule/twilio/1.0/mule-twilio.xsd">
<service name="tool.muleservice.emailServiceintegration">
<inbound>
<inbound-endpoint ref="tool.endpoint.emailNotification"/>
</inbound>
<outbound>
<pass-through-router>
<outbound-endpoint ref="tool.smtp.endpoint.emailNotification"/>
</pass-through-router>
</outbound>
</service>
<smtps:endpoint name="tool.smtp.endpoint.emailNotification"
user="#[message.inboundProperties['userName']]"
password="#[message.inboundProperties['password']]"
host="smtp.gmail.com"
port="465"
from="dummy.DevGroup%40gmail.com"
transformer-refs="customEmailTransformer"
connector-ref="myTSLSMTPConnnector">
</smtps:endpoint>
<smtps:connector name="myTSLSMTPConnnector">
<smtps:tls-client path="../cacerts" storePassword="changeit" />
<smtps:tls-trust-store path="../cacerts" storePassword="changeit" />
</smtps:connector>
I updated the xml file as below content, to use smtp-gmail-connector given here
<service name="tool.muleservice.emailServiceintegration">
<inbound>
<inbound-endpoint
ref="tool.endpoint.emailNotification" />
</inbound>
<outbound>
<pass-through-router>
<!-- <outbound-endpoint ref="tool.smtp.endpoint.emailNotification"/> -->
<smtp:outbound-endpoint connector-ref="smtpGmailConnector"
subject="test msg"
address="smtps://#[message.inboundProperties['userName']]:#[message.inboundProperties['password']]#smtp.gmail.com"
responseTimeout="10000" doc:name="Send notification email" />
</pass-through-router>
</outbound>
</service>
<smtp:gmail-connector name="smtpGmailConnector"
contentType="text/html" fromAddress="iip.claims.test#gmail.com"
replyToAddresses="iip.claims.test#gmail.com" >
<smtp:header key="foo" value="bar" />
<smtp:header key="baz" value="boz" />
</smtp:gmail-connector>
But after this I am getting below error:
Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath*:/myApp-component-config/component-config.xml]
Offending resource: mule-bootstrap-config.xml; nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath*:/myApp-integration-config/tool-mule-bootstrap-config.xml]
Offending resource: URL [vfs:/D:/Software/JBoss/jboss-eap-7.2/standalone/deployments/myApp.war/WEB-INF/lib/tool-intrg.jar/myApp-component-config/component-config.xml]; nested exception is org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath*:/myApp-integration-config/tool-intrg-flows.xml]
Offending resource: URL [vfs:/D:/Software/JBoss/jboss-eap-7.2/standalone/deployments/myApp.war/WEB-INF/lib/tool-intrg.jar/myApp-integration-config/tool-mule-bootstrap-config.xml]; nested exception is org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 91 in XML document from URL [vfs:/D:/Software/JBoss/jboss-eap-7.2/standalone/deployments/myApp.war/WEB-INF/lib/tool-intrg.jar/myApp-integration-config/tool-intrg-flows.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 91; columnNumber: 67; The prefix "doc" for attribute "doc:name" associated with an element type "smtp:outbound-endpoint" is not bound.
at deployment.myApp.war//org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:70)
at deployment.myApp.war//org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at deployment.myApp.war//org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76)
at deployment.myApp.war//org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:235)
Any help will be appreciated.
There are many details missing however on rereading the issue I suspect you are not following the deprecated syntax <service> correctly by trying to use a current example. Since that syntax has been deprecated for 6+ years, I would advice to move to the more current <flow> definitions.
In case you are unable or unwilling to migrate, you need to define an endpoint outside the service and reference it you could try the following steps:
Ensure that the namespaces at the beginning of the file are correct. The error mentions that doc: is not recognized. Maybe the namespaces are outdated.
Ensure that the dependencies in the pom reference your Mule 3.9.x release and not an older version that may not define doc.
Try moving <smtp:outbound-endpoint> to a separate endpoint definition and reference it from the <pass-through-router> as in your original implementation.
Example:
<service name="tool.muleservice.emailServiceintegration">
<inbound>
<inbound-endpoint ref="tool.endpoint.emailNotification"/>
</inbound>
<outbound>
<pass-through-router>
<outbound-endpoint ref="tool.smtp.endpoint.gmailNotification"/>
</pass-through-router>
</outbound>
</service>
<smtps:endpoint name="tool.smtp.endpoint.gmailNotification"
connector-ref="smtpGmailConnector"
subject="test msg"
address="smtps://#[message.inboundProperties['userName']]:#[message.inboundProperties['password']]#smtp.gmail.com"
responseTimeout="10000" doc:name="Send notification email" >
</smtps:endpoint>
<smtp:gmail-connector name="smtpGmailConnector"
contentType="text/html" fromAddress="iip.claims.test#gmail.com"
replyToAddresses="iip.claims.test#gmail.com" >
<smtp:header key="foo" value="bar" />
<smtp:header key="baz" value="boz" />
</smtp:gmail-connector>
Finally if everything else fails you could try removing the doc:name attribute and see what happens.
I am sending the following XML query to EWS using the Office.context.mailbox.makeEwsRequestAsync method.
The query string value needs to either match the subject or the from field; and the emails must belong the "MY_CATEGORY" category. I am unable to enforce the last requirement. What am I doing wrong?
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<t:RequestServerVersion Version="Exchange2013_SP1" />
</soap:Header>
<soap:Body>
<m:FindItem Traversal="Shallow">
<m:ItemShape>
<t:BaseShape>AllProperties</t:BaseShape>
</m:ItemShape>
<m:IndexedPageItemView MaxEntriesReturned="10" Offset="0" BasePoint="Beginning" />
<m:Restriction>
<t:Or>
<t:Contains ContainmentMode="Substring" ContainmentComparison="IgnoreCase">
<t:FieldURI FieldURI="item:Subject" />
<t:Constant Value="query string" />
</t:Contains>
<t:Contains ContainmentMode="Substring" ContainmentComparison="IgnoreCase">
<t:FieldURI FieldURI="message:From" />
<t:Constant Value="query string" />
</t:Contains>
</t:Or>
<t:And>
<t:Contains ContainmentMode="FullString" ContainmentComparison="IgnoreCase">
<t:FieldURI FieldURI="item:Categories" />
<t:Constant Value="MY_CATEGORY" />
</t:Contains>
</t:And>
</m:Restriction>
<m:ParentFolderIds>
<t:DistinguishedFolderId Id="inbox" />
<t:DistinguishedFolderId Id="sentitems" />
</m:ParentFolderIds>
</m:FindItem>
</soap:Body>
</soap:Envelope>
Categories are Multivalued strings so the searchfilters your using won't work on these types of values. You can AQS on Exchange 2010 and above to search the Categories as well as the other fields your search on. eg
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<t:RequestServerVersion Version="Exchange2013_SP1" />
</soap:Header>
<soap:Body>
<m:FindItem Traversal="Shallow">
<m:ItemShape>
<t:BaseShape>IdOnly</t:BaseShape>
<t:AdditionalProperties>
<t:FieldURI FieldURI="item:Subject" />
<t:FieldURI FieldURI="item:DisplayTo" />
<t:FieldURI FieldURI="item:DisplayCc" />
<t:FieldURI FieldURI="item:DateTimeReceived" />
<t:FieldURI FieldURI="item:HasAttachments" />
<t:FieldURI FieldURI="item:ItemClass" />
</t:AdditionalProperties>
</m:ItemShape>
<m:IndexedPageItemView MaxEntriesReturned="250" Offset="0" BasePoint="Beginning" />
<m:SortOrder>
<t:FieldOrder Order="Ascending">
<t:FieldURI FieldURI="contacts:DisplayName" />
</t:FieldOrder>
</m:SortOrder>
<m:ParentFolderIds>
<t:FolderId Id="AQ..." />
</m:ParentFolderIds>
<m:QueryString>System.Category:Green AND (From:'Glen Scales' OR Subject:test) </m:QueryString>
</m:FindItem>
</soap:Body>
</soap:Envelope>
I am looking for an EWS operation to edit a Distribution list. Here edit means, adding\deleting a existing contact into\from an existing group or changing Display Name of Group.
I have tried option like mentioned in following link:- https://social.msdn.microsoft.com/Forums/office/en-US/db110c4e-a0f2-40de-9276-3e30458b254f/ews-maximum-number-of-members-in-a-contact-group?forum=exchangesvrdevelopment
Also used properties like AppendToItemField, SetItemField and DeleteItemField?But error comes as "The method or operation is not implemented"
Finally i got the answer for Editing Groups. here is SOAP call which worked for me:-
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Header>
<RequestServerVersion Version="Exchange2013" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<UpdateItem ConflictResolution="AutoResolve" MessageDisposition="SaveOnly" SendMeetingInvitationsOrCancellations="SendToNone" xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<ItemChanges>
<t:ItemChange>
<t:ItemId Id="AAMkADZmMjJlMDk...." ChangeKey="EgAAAB..." />
<t:Updates>
<t:AppendToItemField>
<t:FieldURI FieldURI="distributionlist:Members" />
<t:DistributionList>
<t:Members>
<t:Member>
<t:Mailbox>
<t:ItemId Id="AAMkADZmMjJ..." ChangeKey="EQAAABYA..." />
</t:Mailbox>
</t:Member>
<t:Member>
<t:Mailbox>
<t:EmailAddress>user#contonso.com</t:EmailAddress>
</t:Mailbox>
</t:Member>
</t:Members>
</t:DistributionList>
</t:AppendToItemField>
</t:Updates>
</t:ItemChange>
</ItemChanges>
</UpdateItem>
</soap:Body>
</soap:Envelope>
I used Appointment.Bind() & pass in ApointmentId. If it exists it return all the details about the appointment, if not it doesn't throw any exception but gives some appointment object.
I want to how to figure out if appointment exists or not?
If the ID represents an item that's not there, you should get a ServiceResponseException with the message The specified object was not found in the store. The SOAP response looks like this:
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:ServerVersionInfo MajorVersion="15" MinorVersion="1" MajorBuildNumber="207" MinorBuildNumber="19" Version="V2_47" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<m:GetItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<m:ResponseMessages>
<m:GetItemResponseMessage ResponseClass="Error">
<m:MessageText>The specified object was not found in the store.</m:MessageText>
<m:ResponseCode>ErrorItemNotFound</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
<m:Items />
</m:GetItemResponseMessage>
</m:ResponseMessages>
</m:GetItemResponse>
</s:Body>
</s:Envelope>
I have the strange situation:
I created recurring calendar event by Exchange web service using the request like this:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types">
<soapenv:Header>
<typ:RequestServerVersion Version="Exchange2007_SP1"/>
<typ:ExchangeImpersonation>
<typ:ConnectingSID>
<typ:PrimarySmtpAddress>someuser#clab.local</typ:PrimarySmtpAddress>
</typ:ConnectingSID>
</typ:ExchangeImpersonation>
</soapenv:Header>
<soapenv:Body>
<mes:CreateItem MessageDisposition="SaveOnly" SendMeetingInvitations="SendToAllAndSaveCopy">
<mes:Items>
<typ:CalendarItem>
<typ:Subject>QC42135 test 3</typ:Subject>
<typ:Body BodyType="HTML"/>
<typ:Importance>Normal</typ:Importance>
<typ:ReminderIsSet>false</typ:ReminderIsSet>
<typ:Start>2014-07-25T04:00:00-05:00</typ:Start>
<typ:End>2014-07-25T05:00:00-05:00</typ:End>
<typ:Location/>
<typ:IsResponseRequested>false</typ:IsResponseRequested>
<typ:RequiredAttendees>
<typ:Attendee>
<typ:Mailbox>
<typ:EmailAddress>user1#clab.local</typ:EmailAddress>
</typ:Mailbox>
</typ:Attendee>
</typ:RequiredAttendees>
<typ:Recurrence>
<typ:WeeklyRecurrence>
<typ:Interval>2</typ:Interval>
<typ:DaysOfWeek>Wednesday Thursday Friday Saturday Sunday</typ:DaysOfWeek>
</typ:WeeklyRecurrence>
<typ:EndDateRecurrence>
<typ:StartDate>2014-07-20</typ:StartDate>
<typ:EndDate>2014-07-30</typ:EndDate>
</typ:EndDateRecurrence>
</typ:Recurrence>
<typ:MeetingTimeZone TimeZoneName="FLE Standard Time"/>
</typ:CalendarItem>
</mes:Items>
</mes:CreateItem>
</soapenv:Body>
</soapenv:Envelope>
Series of occurences were successfully created:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<t:ServerVersionInfo MajorVersion="8" MinorVersion="3" MajorBuildNumber="348" MinorBuildNumber="2" Version="Exchange2007_SP1" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"/>
</soap:Header>
<soap:Body>
<m:CreateItemResponse xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
<m:ResponseMessages>
<m:CreateItemResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:Items>
<t:CalendarItem>
<t:ItemId Id="AAMkADVmYWI5YjhjLTdiN2MtNDJjNi04ZWIzLTUzNjVjZjk1MWY5OQBGAAAAAACuKk855hnzQ7gDOBltDFd1BwAa27cU8ukoS5yPRueWn38YAAobNHU+AAAa27cU8ukoS5yPRueWn38YAHDq5rCGAAA=" ChangeKey="DwAAABYAAAAa27cU8ukoS5yPRueWn38YAHDq52bj"/>
</t:CalendarItem>
</m:Items>
</m:CreateItemResponseMessage>
</m:ResponseMessages>
</m:CreateItemResponse>
</soap:Body>
</soap:Envelope>
But when I'm trying to get occurrences of the event
by index right after creation I'm able to get only first occurrence. For the others I receive ErrorCalendarOccurrenceIndexIsOutOfRecurrenceRange.
Here is GetItem request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:mes="http://schemas.microsoft.com/exchange/services/2006/messages">
<soapenv:Header><typ:RequestServerVersion Version="Exchange2007_SP1"/>
<typ:ExchangeImpersonation>
<typ:ConnectingSID>
<typ:PrimarySmtpAddress>someuser#clab.local</typ:PrimarySmtpAddress>
</typ:ConnectingSID>
</typ:ExchangeImpersonation>
</soapenv:Header>
<soapenv:Body>
<mes:GetItem>
<mes:ItemShape>
<typ:BaseShape>IdOnly</typ:BaseShape>
</mes:ItemShape>
<mes:ItemIds>
<typ:OccurrenceItemId RecurringMasterId="AAMkADVmYWI5YjhjLTdiN2MtNDJjNi04ZWIzLTUzNjVjZjk1MWY5OQBGAAAAAACuKk855hnzQ7gDOBltDFd1BwAa27cU8ukoS5yPRueWn38YAAobNHU+AAAa27cU8ukoS5yPRueWn38YAHDq5rCGAAA=" ChangeKey="DwAAABYAAAAa27cU8ukoS5yPRueWn38YAHDq52bj" InstanceIndex="1" />
<typ:OccurrenceItemId RecurringMasterId="AAMkADVmYWI5YjhjLTdiN2MtNDJjNi04ZWIzLTUzNjVjZjk1MWY5OQBGAAAAAACuKk855hnzQ7gDOBltDFd1BwAa27cU8ukoS5yPRueWn38YAAobNHU+AAAa27cU8ukoS5yPRueWn38YAHDq5rCGAAA=" ChangeKey="DwAAABYAAAAa27cU8ukoS5yPRueWn38YAHDq52bj" InstanceIndex="2" />
<typ:OccurrenceItemId RecurringMasterId="AAMkADVmYWI5YjhjLTdiN2MtNDJjNi04ZWIzLTUzNjVjZjk1MWY5OQBGAAAAAACuKk855hnzQ7gDOBltDFd1BwAa27cU8ukoS5yPRueWn38YAAobNHU+AAAa27cU8ukoS5yPRueWn38YAHDq5rCGAAA=" ChangeKey="DwAAABYAAAAa27cU8ukoS5yPRueWn38YAHDq52bj" InstanceIndex="3" />
<typ:OccurrenceItemId RecurringMasterId="AAMkADVmYWI5YjhjLTdiN2MtNDJjNi04ZWIzLTUzNjVjZjk1MWY5OQBGAAAAAACuKk855hnzQ7gDOBltDFd1BwAa27cU8ukoS5yPRueWn38YAAobNHU+AAAa27cU8ukoS5yPRueWn38YAHDq5rCGAAA=" ChangeKey="DwAAABYAAAAa27cU8ukoS5yPRueWn38YAHDq52bj" InstanceIndex="4" />
<typ:OccurrenceItemId RecurringMasterId="AAMkADVmYWI5YjhjLTdiN2MtNDJjNi04ZWIzLTUzNjVjZjk1MWY5OQBGAAAAAACuKk855hnzQ7gDOBltDFd1BwAa27cU8ukoS5yPRueWn38YAAobNHU+AAAa27cU8ukoS5yPRueWn38YAHDq5rCGAAA=" ChangeKey="DwAAABYAAAAa27cU8ukoS5yPRueWn38YAHDq52bj" InstanceIndex="5" />
</mes:ItemIds>
</mes:GetItem>
</soapenv:Body>
</soapenv:Envelope>
And response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<t:ServerVersionInfo MajorVersion="8" MinorVersion="3" MajorBuildNumber="348" MinorBuildNumber="2" Version="Exchange2007_SP1" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"/>
</soap:Header>
<soap:Body>
<m:GetItemResponse xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
<m:ResponseMessages>
<m:GetItemResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:Items>
<t:CalendarItem>
<t:ItemId Id="AAMkADVmYWI5YjhjLTdiN2MtNDJjNi04ZWIzLTUzNjVjZjk1MWY5OQFRAAiI0XGjJ/YgAEYAAAAAripPOeYZ80O4AzgZbQxXdQcAGtu3FPLpKEucj0bnlp9/GAAKGzR1PgAAGtu3FPLpKEucj0bnlp9/GABw6uawhgAAEA==" ChangeKey="DwAAABYAAAAa27cU8ukoS5yPRueWn38YAHDq52bj"/>
</t:CalendarItem>
</m:Items>
</m:GetItemResponseMessage>
<m:GetItemResponseMessage ResponseClass="Error">
<m:MessageText>Occurrence index is out of recurrence range.</m:MessageText>
<m:ResponseCode>ErrorCalendarOccurrenceIndexIsOutOfRecurrenceRange</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
<m:Items/>
</m:GetItemResponseMessage>
<m:GetItemResponseMessage ResponseClass="Error">
<m:MessageText>Occurrence index is out of recurrence range.</m:MessageText>
<m:ResponseCode>ErrorCalendarOccurrenceIndexIsOutOfRecurrenceRange</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
<m:Items/>
</m:GetItemResponseMessage>
<m:GetItemResponseMessage ResponseClass="Error">
<m:MessageText>Occurrence index is out of recurrence range.</m:MessageText>
<m:ResponseCode>ErrorCalendarOccurrenceIndexIsOutOfRecurrenceRange</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
<m:Items/>
</m:GetItemResponseMessage>
<m:GetItemResponseMessage ResponseClass="Error">
<m:MessageText>Occurrence index is out of recurrence range.</m:MessageText>
<m:ResponseCode>ErrorCalendarOccurrenceIndexIsOutOfRecurrenceRange</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
<m:Items/>
</m:GetItemResponseMessage>
</m:ResponseMessages>
</m:GetItemResponse>
</soap:Body>
</soap:Envelope>
I found the description of recurring event on Microsoft site http://msdn.microsoft.com/en-us/library/office/dd633684%28v=exchg.80%29.aspx
and according the documentation when a recurring series is created, each occurrence item has as index that represents its position in the series.
The index starts at one and advances by one for each item in the series. But it seems to be incorrect.
In my case obviously occurrences are indexed in different way.
Can anyone explain how Exchange indexes occurrences? How can I get certain occurrence in the series?