2016-01-07 25 views
17

Sto utilizzando lo Microsoft EWS Java API per creare e accettare appuntamenti per conto di alcuni utenti. Il modo in cui sto facendo questo è con l'invio della richiesta di riunione e quindi la creazione di osservatori Posta in arrivo sul casella di posta elettronica del destinatario e accettare l'ingresso MeetingRequest oggetto:EWS Java API: la richiesta di riunione non è aggiornata. Il calendario non può essere aggiornato

import microsoft.exchange.webservices.data.core.service.item.MeetingRequest; 

void accept(MeetingRequest request) { 
    assert(!request.getIsOutOfDate()); 
    request.accept(false); 
} 

Tuttavia, ottengo questo errore quando provo ad accettare la richiesta di riunione :

microsoft.exchange.webservices.data.core.exception.service.remote.ServiceResponseException: The meeting request is out of date. The calendar couldn't be updated. 
    at microsoft.exchange.webservices.data.core.response.ServiceResponse.internalThrowIfNecessary(ServiceResponse.java:278) 
    at microsoft.exchange.webservices.data.core.response.ServiceResponse.throwIfNecessary(ServiceResponse.java:267) 
    at microsoft.exchange.webservices.data.core.request.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:165) 
    at microsoft.exchange.webservices.data.core.ExchangeService.internalCreateResponseObject(ExchangeService.java:270) 
    at microsoft.exchange.webservices.data.core.service.response.ResponseObject.internalCreate(ResponseObject.java:120) 
    at microsoft.exchange.webservices.data.core.service.response.CalendarResponseMessageBase.calendarSave(CalendarResponseMessageBase.java:98) 
    at microsoft.exchange.webservices.data.core.service.item.MeetingRequest.internalAccept(MeetingRequest.java:218) 
    at microsoft.exchange.webservices.data.core.service.item.MeetingRequest.accept(MeetingRequest.java:184) 

Corrisponde a questo errore: ErrorMeetingRequestIsOutOfDate. Ho guardato allo MSDN for this error e non sono riuscito a trovare il motivo per cui questo errore potrebbe essermi verificato.

Cosa sto sbagliando?

+0

Non viene visualizzato l'errore per ogni utente? Hai provato a utilizzare la classe Appointment [direttamente] (https://msdn.microsoft.com/en-us/library/office/dd633648 (v = exchg.80) .aspx)? O, forse, tra il recupero dell'oggetto MeetingRequest e l'accettazione, l'oggetto sottostante è le modifiche sul server. Assicurati che non ci sia un tale ritardo ... Come test, invece di chiamare "accept", controlla la sua proprietà "LastModifiedTime". Quindi recupera nuovamente l'oggetto dal server e controlla di nuovo la sua proprietà "LastModifiedTime". Sono diversi? –

risposta

1

Parlare rigorosamente dal client Outlook della domanda qui è un elenco di (potenzialmente obsoleti) motivi potenzialmente utili per cui l'errore sarebbe stato generato.

https://support.microsoft.com/en-us/kb/899704

eventi di ripetizione, in cui l'evento iniziale è nel passato è uno scenario comune (più comune per la mia esperienza) quando l'intero processo è manuale (vale a dire un nuovo partecipante aggiunto dopo il primo evento ripetuto), anche se ce ne sono molti altri nell'elenco che possono essere applicati qui.

Modifica - Cito le ripetizioni qui come un potenziale viaggio per il codice. Does getIsOutOfDate() controlla l'evento corrente o l'inizio iniziale del pattern ...

L'MSKB è disseminato di questo problema, sia a livello di codice che di scenari, semplicemente dalla GUI del client di Outlook.

Modifica di nuovo - Vale a dire, non si sta facendo nulla errato a livello di codice, c'è una storia lunga e frustrante anche dal front-end. Potrebbe essere necessario intercettare più di ErrorCalendarMeetingRequestIsOutOfDate per evitarlo.

http://www.experts-exchange.com/questions/24578557/This-Request-is-Out-of-Date.html

(numero spiacente di collegamenti limitati dal mio profilo)

+0

Ciao, grazie per i link. Questi incontri NON sono eventi ricorrenti. – pathikrit

+0

L'antico collegamento a MSKB presentava diversi altri scenari, sia caratteristiche reali che altre stranezze riproducibili. Il punto di risoluzione dei problemi è che sta emettendo l'errore che è noto essere causato, in effetti o in errore da una di queste cose ... La mia prossima ipotesi sarebbe la delega (errata) dei problemi e la proprietà. È necessario intercettare più di ErrorCalendarMeetingRequestIsOutOfDate per identificarlo. –