Table of Contents

Codeunit "Outlook Calendar UTCAP"

ID 70344820
Namespace: CapVision.Core.Graph

Gère les événements des calendriers Outlook (Exchange Online) via Microsoft Graph : création, mise à jour, annulation, suppression, lecture et invitation de participants.

Remarks

Prérequis : une inscription d'application dans le tenant Entra ID visé, avec consentement administrateur, pour laquelle l'autorisation d'API d'application suivante est accordée :

  • Calendars.ReadWrite Cette autorisation donne accès à toutes les boîtes aux lettres du tenant : restreindre l'application aux seules boîtes nécessaires avec une stratégie d'accès (RBAC for Applications dans Exchange Online, ou New-ApplicationAccessPolicy).

Comportement :

  • Un événement est créé dans le calendrier par défaut de la boîte aux lettres indiquée, qui en est l'organisateur. Les participants reçoivent l'invitation, puis les mises à jour et annulations, automatiquement.
  • Les méthodes de mise à jour, lecture et suppression renvoient false si l'événement n'existe plus côté Outlook (supprimé par l'utilisateur) : l'appelant peut alors le recréer ou oublier son identifiant. Les autres échecs lèvent une erreur ; les appels limités par Graph (HTTP 429/503) sont réessayés automatiquement.

Examples

Planifier une intervention et inviter le client

``` AL
    var
        OutlookCalendar: Codeunit "Outlook Calendar UTCAP";
        OutlookEvent: Codeunit "Outlook Event UTCAP";
    begin
        OutlookCalendar.Initialize(Setup."Client Id", Setup.GetClientSecret(), Setup."Tenant Id");

        OutlookEvent.SetSubject('Intervention ' + JobTask."Job No.");
        OutlookEvent.SetBody('<p>Détail de l''intervention</p>', true);
        OutlookEvent.SetPeriod(StartingDateTime, EndingDateTime);
        OutlookEvent.SetLocation(Customer.City);
        OutlookEvent.SetShowAs(Enum::"Outlook Event Show As UTCAP"::Busy);
        OutlookEvent.AddAttendee(Customer."E-Mail", Customer.Name, Enum::"Outlook Attendee Type UTCAP"::Required);
        OutlookEvent.SetTransactionId(Format(Activity.SystemId));
        OutlookCalendar.CreateEvent(Resource."E-Mail", OutlookEvent);

        Activity."Outlook Event Id" := OutlookEvent.GetId();
        Activity.Modify(true);
    end;
```
Déplacer l'intervention, en la recréant si elle a été supprimée dans Outlook

``` AL
        OutlookEvent.SetId(Activity."Outlook Event Id");
        OutlookEvent.SetPeriod(NewStartingDateTime, NewEndingDateTime);
        if not OutlookCalendar.UpdateEvent(Resource."E-Mail", OutlookEvent) then
            ... // recréer l'événement complet avec CreateEvent
```

Properties

Name Value
Access Public

Methods

Initialize

Initialise le calendrier avec les identifiants de l'inscription d'application.

procedure Initialize(ClientId: Text; ClientSecret: SecretText; TenantId: Text)

Parameters

Name Type Description
ClientId Text

Identifiant de l'inscription d'application.

ClientSecret SecretText

Secret de l'inscription d'application.

TenantId Text

Identifiant ou domaine du tenant.

CreateEvent

Crée l'événement dans le calendrier de la boîte aux lettres, et envoie les invitations aux participants. En retour, l'événement est rechargé tel que créé : son identifiant est disponible via GetId.

procedure CreateEvent(Mailbox: Text; var OutlookEvent: Codeunit "Outlook Event UTCAP")

Parameters

Name Type Description
Mailbox Text

Adresse e-mail (UPN) de la boîte aux lettres organisatrice.

OutlookEvent Codeunit CapVision.Core.Graph."Outlook Event UTCAP"

Événement à créer.

UpdateEvent

Met à jour l'événement désigné par son identifiant (SetId ou lecture préalable), en n'envoyant que les propriétés modifiées. Les participants sont notifiés des changements. En retour, l'événement est rechargé tel que mis à jour.

procedure UpdateEvent(Mailbox: Text; var OutlookEvent: Codeunit "Outlook Event UTCAP"): Boolean

Parameters

Name Type Description
Mailbox Text

Adresse e-mail (UPN) de la boîte aux lettres organisatrice.

OutlookEvent Codeunit CapVision.Core.Graph."Outlook Event UTCAP"

Événement à mettre à jour.

Returns

Type Description
Boolean

false si l'événement n'existe plus côté Outlook.

DeleteEvent

Supprime l'événement du calendrier.

procedure DeleteEvent(Mailbox: Text; EventId: Text): Boolean

Parameters

Name Type Description
Mailbox Text

Adresse e-mail (UPN) de la boîte aux lettres.

EventId Text

Identifiant de l'événement.

Returns

Type Description
Boolean

false si l'événement n'existait déjà plus (l'état visé est tout de même atteint).

CancelEvent

Annule une réunion et envoie aux participants un message d'annulation. Réservé à l'organisateur ; pour un simple rendez-vous sans participant, utiliser .

procedure CancelEvent(Mailbox: Text; EventId: Text; Comment: Text): Boolean

Parameters

Name Type Description
Mailbox Text

Adresse e-mail (UPN) de la boîte aux lettres organisatrice.

EventId Text

Identifiant de l'événement.

Comment Text

Message joint à l'annulation.

Returns

Type Description
Boolean

false si l'événement n'existait déjà plus.

GetEvent

Lit un événement.

procedure GetEvent(Mailbox: Text; EventId: Text; var OutlookEvent: Codeunit "Outlook Event UTCAP"): Boolean

Parameters

Name Type Description
Mailbox Text

Adresse e-mail (UPN) de la boîte aux lettres.

EventId Text

Identifiant de l'événement.

OutlookEvent Codeunit CapVision.Core.Graph."Outlook Event UTCAP"

Événement lu.

Returns

Type Description
Boolean

false si l'événement n'existe pas.

GetEvents

Renvoie les événements du calendrier qui chevauchent une période, occurrences des événements récurrents comprises, triés par date de début. Charger chaque élément avec "Outlook Event UTCAP".LoadFromJson pour le lire.

procedure GetEvents(Mailbox: Text; FromDateTime: DateTime; ToDateTime: DateTime; var Events: JsonArray)

Parameters

Name Type Description
Mailbox Text

Adresse e-mail (UPN) de la boîte aux lettres.

FromDateTime DateTime

Début de la période.

ToDateTime DateTime

Fin de la période.

Events JsonArray

Objets event Graph.

AddAttendee

Invite un participant obligatoire à un événement existant, sans écraser les autres participants.

procedure AddAttendee(Mailbox: Text; EventId: Text; Email: Text): Boolean

Parameters

Name Type Description
Mailbox Text

Adresse e-mail (UPN) de la boîte aux lettres organisatrice.

EventId Text

Identifiant de l'événement.

Email Text

Adresse e-mail du participant.

Returns

Type Description
Boolean

false si l'événement n'existe plus. Un participant déjà invité n'est pas une erreur.

AddAttendee

Invite un participant à un événement existant, sans écraser les autres participants.

procedure AddAttendee(Mailbox: Text; EventId: Text; Email: Text; DisplayName: Text; AttendeeType: Enum "Outlook Attendee Type UTCAP"): Boolean

Parameters

Name Type Description
Mailbox Text

Adresse e-mail (UPN) de la boîte aux lettres organisatrice.

EventId Text

Identifiant de l'événement.

Email Text

Adresse e-mail du participant (ou de la boîte aux lettres d'une ressource).

DisplayName Text

Nom affiché. Vide : résolu par Outlook.

AttendeeType Enum CapVision.Core.Graph."Outlook Attendee Type UTCAP"

Type de participant.

Returns

Type Description
Boolean

false si l'événement n'existe plus. Un participant déjà invité n'est pas une erreur.

RemoveAttendee

Retire un participant d'un événement existant, sans modifier les autres participants. Il reçoit une annulation.

procedure RemoveAttendee(Mailbox: Text; EventId: Text; Email: Text): Boolean

Parameters

Name Type Description
Mailbox Text

Adresse e-mail (UPN) de la boîte aux lettres organisatrice.

EventId Text

Identifiant de l'événement.

Email Text

Adresse e-mail du participant.

Returns

Type Description
Boolean

false si l'événement n'existe plus. Un participant absent n'est pas une erreur.

See also