webservices services office microsoft exchange ews soap exchangewebservices

soap - microsoft - exchange web services office 365



¿Cómo ''configurar'' las propiedades de cita de calendario de solo lectura(relacionadas con las reuniones)? (1)

Estoy recreando eventos de reuniones de calendario en una herramienta de sincronización (usando CreateItem ), básicamente conservando algunas propiedades para reuniones y escribiéndolas de nuevo.

Sin embargo, hay algunas propiedades que son de solo lectura, y no veo ninguna forma de preservar su estado:

  • IsMeeting
  • IsCancelled
  • MeetingRequestWasSent
  • IsOnlineMeeting

Algunos de estos valores booleanos se almacenan en la propiedad AppointmentState , pero también es de solo lectura:

Name Bit Description None 0x0000 No flags have been set. This is only used for an appointment that does not include attendees. Meeting 0x0001 This appointment is a meeting. Received 0x0002 This appointment has been received. Canceled 0x0004 This appointment has been canceled.

¿Es IsMeeting que IsMeeting se establezca automáticamente si configuro otras propiedades de la reunión, como por ejemplo, OptionalAttendees o RequiredAttendees ? Eso ayudaría con uno de los cuatro, si supiera qué propiedades activan la configuración de IsMeeting .

(Sí, esto es una continuación de las propiedades de solicitud de reunión no configurables en las llamadas SOW de EWS ).


Debería poder usar las Propiedades extendidas de MAPI: el estado de la cita es

Named Prop Name: id: 0x8217=33303 = PidLidAppointmentStateFlags, dispidApptStateFlags Named Prop Guid: {00062002-0000-0000-C000-000000000046} = PSETID_Appointment

Así que SOAP debería ser algo así como

<t:ExtendedProperty> <t:ExtendedFieldURI DistinguishedPropertySetId="Appointment" PropertyId="33303" PropertyType="Integer" /> <t:Value>1</t:Value> </t:ExtendedProperty>

(Utilizo la API administrada para eso, y obtuve ese XML del registro de seguimiento, espero que sea algo que pueda usar)

[ Editado por el OP ] Esta es la llamada completa que hace el trabajo:

<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:MailboxCulture>en-US</typ:MailboxCulture> <typ:TimeZoneContext> <typ:TimeZoneDefinition Id="W. Europe Standard Time"/> </typ:TimeZoneContext> </soapenv:Header> <soapenv:Body> <mes:UpdateItem ConflictResolution="AutoResolve" SendMeetingInvitationsOrCancellations="SendOnlyToChanged"> <mes:ItemChanges> <typ:ItemChange> <typ:ItemId <t:ItemId Id="AAMkA[snip]xAAA=" ChangeKey="Dw[snip]Mar"/> <typ:Updates> <typ:SetItemField> <typ:ExtendedFieldURI DistinguishedPropertySetId="Appointment" PropertyId="33303" PropertyType="Integer"/> <typ:CalendarItem> <typ:ExtendedProperty> <typ:ExtendedFieldURI DistinguishedPropertySetId="Appointment" PropertyId="33303" PropertyType="Integer"/> <typ:Value>5</typ:Value> </typ:ExtendedProperty> </typ:CalendarItem> </typ:SetItemField> </typ:Updates> </typ:ItemChange> </mes:ItemChanges> </mes:UpdateItem> </soapenv:Body> </soapenv:Envelope>

Extrañamente, el resultado dice "éxito", pero informa un (un) conflicto. No tengo idea cuál:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header> <h:ServerVersionInfo MajorVersion="15" MinorVersion="1" MajorBuildNumber="225" MinorBuildNumber="19" Version="V2_48" xmlns:h="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> <m:UpdateItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"> <m:ResponseMessages> <m:UpdateItemResponseMessage ResponseClass="Success"> <m:ResponseCode>NoError</m:ResponseCode> <m:Items> <t:CalendarItem> <t:ItemId Id="AAMk[snip]xAAA=" ChangeKey="DwA[snip]aMat"/> </t:CalendarItem> </m:Items> <m:ConflictResults> <t:Count>1</t:Count> </m:ConflictResults> </m:UpdateItemResponseMessage> </m:ResponseMessages> </m:UpdateItemResponse> </s:Body> </s:Envelope>