none
Modifier la récurrence d'une tâche via EWS Managed API RRS feed

  • Question

  • Bonjour à tous,

     Je viens vers vous car je suis en plein développement d'une interface Outlook-Gestionnaire des tâches pour une solution CRM et je rencontre un soucis assez spécifique alors que je touche presque au but.

    En effet, j'arrive à gérer la création/modification/suppression des rendez-vous/meetings/tâches sauf dans un cas bien spécifique : lorsqu'il s'agit de modifier la périodicité d'une tâche existante.

    Voici mon code :

    Je créée d'abord une récurrence bien spécifique (choisie par l'utilisateur ) : 

                            //Création du modèle de régèneration
                            MonthlyRegeneratingPatternType regenerationPattern = new MonthlyRegeneratingPatternType();
                            regenerationPattern.Interval = 1;
                       
                            //Paramètrage des modèles
                            NoEndRecurrenceRangeType reccurenceRange = new NoEndRecurrenceRangeType();
                            TaskRecurrenceType recurrence = new TaskRecurrenceType();
                            recurrence.Item = regenerationPattern;
                            recurrence.Item1 = reccurenceRange;
                            //appel de ma fonction pour modifier la tâche
                            ModifyTaskRecursion(itemId, changeKey, recurrence);

    Voici maintenant le corps de ma fonction : 

     

    public void ModifyTaskRecursion(string itemId, string changeKey, TaskRecurrenceType reccurrence) { // Création de l'id de la tâche a modifier ItemIdType iit = new ItemIdType(); iit.Id = itemId; iit.ChangeKey = changeKey; // Création d'une tâche pour recevoir les modifications TaskType modifyTask = new TaskType();

    //Assignation à cette tâche du modèle de récurrence créé auparavant

    modifyTask.Recurrence = reccurrence;

    //Création de la requête de mise à jour et envoi SetItemFieldType setItemField = new SetItemFieldType(); setItemField.Item = new PathToUnindexedFieldType(); (setItemField.Item as PathToUnindexedFieldType).FieldURI = UnindexedFieldURIType.taskRecurrence; setItemField.Item1 = modifyTask; UpdateItemType updateItemRequest = new UpdateItemType(); updateItemRequest.ItemChanges = new ItemChangeType[1]; ItemChangeType itemChange = new ItemChangeType(); itemChange.Item = iit; itemChange.Updates = new ItemChangeDescriptionType[2]; itemChange.Updates[0] = setItemField; updateItemRequest.ItemChanges[0] = itemChange; updateItemRequest.ConflictResolution = ConflictResolutionType.AlwaysOverwrite; UpdateItemResponseType updateItemResponse = serviceBinding.UpdateItem(updateItemRequest); ItemInfoResponseMessageType responseMessage = updateItemResponse.ResponseMessages.Items[0] as ItemInfoResponseMessageType; Console.WriteLine(updateItemResponse.ResponseMessages.Items[0].ResponseClass + " + " + updateItemResponse.ResponseMessages.Items[0].ResponseCode); Console.WriteLine("================================================="); }

    Mon problème est le suivant : lorsque j'essaie de modifier grâce à cette fonction la périodicité (réccurrence) de ma tâche, j'obtiens une erreur que je ne peux exploiter et je ne trouve pas de solution nulle part.

    L'erreur est de type : ErrorInternalServerError ce qui ne m'avance pas plus.

    En vous remerciant d'avance.

    Cordialement;

    Quentin.

    mardi 17 juillet 2012 13:31

Réponses

  • Bonjour,

    A priori c'est une erreur http 500 côté serveur. Il devrait y avoir plus de détails dans le journal Windows ou le log IIS du serveur... Un groupe de développement Exchange pourrait peut-être permettre de toucher des développeurs ayant utilisés ces services web...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    mardi 17 juillet 2012 15:26
    Modérateur