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.