0

J'utilise un EWSJavaAPI pour créer une tâche dans Exchange Server mais je n'obtiens aucune référence à la tâche d'extraction en utilisant la même API. ci-dessous est mon code d'une tâche:Comment lire une tâche à l'aide de EWSJavaAPI?

Task t=new Task(service); 
    t.setSubject("Task to test in JAVA"); 
    t.setBody(MessageBody.getMessageBodyFromText("Test body from JAVA")); 
    t.setStartDate(startTime); 
    t.setDueDate(endTime); 
    t.save(); 

et j'ai essayé ci-dessous le code pour chercher tâche, mais cela ne fonctionne pas:

//Create the extended property definition. 
    ExtendedPropertyDefinition taskCompleteProp = new 
    ExtendedPropertyDefinition(DefaultExtendedPropertySet.Task, 0x0000811C, 
    MapiPropertyType.Boolean); 
    //Create the search filter. 
    SearchFilter.IsEqualTo filter = new 
    SearchFilter.IsEqualTo(taskCompleteProp, false);      
    //Get the tasks. 
    FindItemsResults<Item> tasks = 
    service.findItems(WellKnownFolderName.Tasks, filter, new ItemView(50)); 

    for(Item task:tasks){ 
     System.out.println(task.getSubject()); 
     System.out.println(task.getBody());// getting error at this line 
     System.out.println(task.getReminderMinutesBeforeStart()); 
     System.out.println(task.getReminderDueBy()); 
     System.out.println("======================="); 

    } 

erreur à task.getBody(); microsoft.exchange.webservices.data.ServiceObjectPropertyException: Vous devez charger ou affecter cette propriété avant de pouvoir lire sa valeur. à microsoft.exchange.webservices.data.PropertyBag.getPropertyValueOrException (Source inconnue) à microsoft.exchange.webservices.data.PropertyBag.getObjectFromPropertyDefinition (Source inconnue) à microsoft.exchange.webservices.data.Item.getBody (Source inconnue) à MSExchangeEmailService.readTask (MSExchangeEmailService.java:146) à MSExchangeEmailService.main (MSExchangeEmailService.java:224)

S'il vous plaît aider, cette approche est bonne pour aller chercher tâche ??

+0

pour (tâche d'objet: tâches) { \t \t task.load(); // ajouté cette ligne \t \t System.out.println (task.getSubject()); \t \t System.out.println (task.getBody()); \t \t \t} Après l'ajout de task.load() je peux obtenir le corps mais maintenant je veux obtenir la tâche startdate et duedate .Comment obtenir ceci –

+0

Est-ce que vous placez 'startdate' et' duedate' à une valeur plus tôt dans votre code? E.G 'task.StartDate = DateTime.Now;'. si oui, alors vous pouvez simplement faire 'System.out.println (task.StartDate);' – MadDev

+0

Non, je ne crée aucune tâche en lisant simplement la tâche de lecture –

Répondre

0

Vous devez d'abord charger la tâche.

Ajoutez task.load() avant votre boucle for.

+0

task.load() je l'ai fait comme écrit dans le code, mais pas en mesure de obtenir date de début et date d'échéance. –

+0

OK, veuillez marquer ceci comme la réponse car elle répond à votre question initiale. Je vois que vous avez créé une nouvelle question pour votre nouveau numéro, ce qui devrait être séparé de cette question. – MadDev