Codeunit "Sharepoint Storage UTCAP"
Propose un ensemble de fonctionnalités pour accéder aux lecteurs et aux fichiers de SharePoint via Microsoft Graph. Ce module requiert 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 :
- Sites.ReadWrite.All, ou Sites.Selected (bien moins privilégiée) en n'autorisant que les sites nécessaires. Les listes renvoyées sont complètes (pagination suivie) ; les appels limités par Graph (HTTP 429/503) sont réessayés.
Examples
Lister les sites
``` AL
var
SharepointStorage: Codeunit "Sharepoint Storage UTCAP";
Sites: JsonArray;
SiteTok, NameTok: JsonToken;
SiteNames: TextBuilder;
begin
SharepointStorage.Initialize('client_id', ClientSecret, 'mydomain.fr');
SharepointStorage.GetSites(Sites);
foreach SiteTok in Sites do begin
SiteTok.AsObject().Get('name', NameTok);
SiteNames.AppendLine(NameTok.AsValue().AsText());
end;
Message(SiteNames.ToText());
end;
```
Properties
| Name | Value |
|---|---|
| Access | Public |
Methods
Initialize
Obsolete
This element will become obsolete from version V27.202610. Pass the client secret as SecretText.
Initialise cette instance de stockage SharePoint.
[NonDebuggable]
[Obsolete(Pass the client secret as SecretText.,V27.202610)]
procedure Initialize(NewClientID: Text; NewClientSecret: Text; NewTenantId: Text)
Parameters
| Name | Type | Description |
|---|---|---|
| NewClientID | Text |
Identifiant de l'inscription d'application. |
| NewClientSecret | Text |
Secret de l'inscription d'application. |
| NewTenantId | Text |
Identifiant ou domaine du tenant. |
Initialize
Initialise cette instance de stockage SharePoint.
procedure Initialize(NewClientID: Text; NewClientSecret: SecretText; NewTenantId: Text)
Parameters
| Name | Type | Description |
|---|---|---|
| NewClientID | Text |
Identifiant de l'inscription d'application. |
| NewClientSecret | SecretText |
Secret de l'inscription d'application. |
| NewTenantId | Text |
Identifiant ou domaine du tenant. |
GetSites
Obtient la liste des sites du tenant.
[TryFunction]
procedure GetSites(var Sites: JsonArray): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| Sites | JsonArray |
Objets site Graph (id, name, displayName, webUrl...). |
Returns
| Type | Description |
|---|---|
| Boolean |
GetSites
Renvoie la liste des sous-sites du site spécifié.
[TryFunction]
procedure GetSites(ParentSiteId: Text; var Sites: JsonArray): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| ParentSiteId | Text |
Identifiant Graph du site parent. Vide : tous les sites du tenant. |
| Sites | JsonArray |
Objets site Graph. |
Returns
| Type | Description |
|---|---|
| Boolean |
GetDrives
Renvoie la liste des lecteurs de l'utilisateur courant.
[TryFunction]
procedure GetDrives(var Drives: JsonArray): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| Drives | JsonArray |
Objets drive Graph. |
Returns
| Type | Description |
|---|---|
| Boolean |
Remarks
Ce point de terminaison dépend d'un contexte utilisateur : avec une authentification d'application
(identifiants client), utiliser
GetSiteDrives
Renvoie la liste des lecteurs (bibliothèques de documents) d'un site.
[TryFunction]
procedure GetSiteDrives(SiteId: Text; var Drives: JsonArray): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| SiteId | Text |
Identifiant Graph du site. |
| Drives | JsonArray |
Objets drive Graph. |
Returns
| Type | Description |
|---|---|
| Boolean |
GetGroupDrives
Renvoie la liste des lecteurs d'un groupe Microsoft 365.
[TryFunction]
procedure GetGroupDrives(GroupId: Text; var Drives: JsonArray): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| GroupId | Text |
Identifiant du groupe. |
| Drives | JsonArray |
Objets drive Graph. |
Returns
| Type | Description |
|---|---|
| Boolean |
GetDriveChildItemsFromItemId
Renvoie la liste des enfants (fichiers et dossiers) d'un élément du lecteur.
[TryFunction]
procedure GetDriveChildItemsFromItemId(DriveId: Text; ItemId: Text; var Children: JsonArray): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| DriveId | Text |
Identifiant du lecteur. |
| ItemId | Text |
Identifiant du dossier. |
| Children | JsonArray |
Objets driveItem Graph. |
Returns
| Type | Description |
|---|---|
| Boolean |
GetDriveChildItemsFromPath
Renvoie la liste des enfants (fichiers et dossiers) d'un dossier désigné par son chemin.
[TryFunction]
procedure GetDriveChildItemsFromPath(DriveId: Text; Path: Text; var Children: JsonArray): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| DriveId | Text |
Identifiant du lecteur. |
| Path | Text |
Chemin du dossier depuis la racine du lecteur (ex. « /Projets/2026 »). Vide : racine. |
| Children | JsonArray |
Objets driveItem Graph. |
Returns
| Type | Description |
|---|---|
| Boolean |
GetDriveItemFromPath
Renvoie un élément du lecteur désigné par son chemin.
[TryFunction]
procedure GetDriveItemFromPath(DriveId: Text; Path: Text; var Item: JsonObject): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| DriveId | Text |
Identifiant du lecteur. |
| Path | Text |
Chemin de l'élément depuis la racine du lecteur (ex. « /Projets/2026/Devis.pdf »). Vide : racine. |
| Item | JsonObject |
Objet driveItem Graph. |
Returns
| Type | Description |
|---|---|
| Boolean |
GetDriveItem
Renvoie un élément du lecteur.
[TryFunction]
procedure GetDriveItem(DriveId: Text; ItemId: Text; var Item: JsonObject): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| DriveId | Text |
Identifiant du lecteur. |
| ItemId | Text |
Identifiant de l'élément. |
| Item | JsonObject |
Objet driveItem Graph. |
Returns
| Type | Description |
|---|---|
| Boolean |
GetDriveRootItem
Renvoie l'élément racine d'un lecteur.
[TryFunction]
procedure GetDriveRootItem(DriveId: Text; var Item: JsonObject): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| DriveId | Text |
Identifiant du lecteur. |
| Item | JsonObject |
Objet driveItem Graph. |
Returns
| Type | Description |
|---|---|
| Boolean |
CreateDriveFolderFromParentId
Crée un dossier dans le dossier parent spécifié. Si le nom est déjà pris, le dossier est renommé par Graph.
[TryFunction]
procedure CreateDriveFolderFromParentId(DriveId: Text; ParentItemId: Text; FolderName: Text; var ResponsePayload: JsonObject): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| DriveId | Text |
Identifiant du lecteur. |
| ParentItemId | Text |
Identifiant du dossier parent. |
| FolderName | Text |
Nom du dossier. |
| ResponsePayload | JsonObject |
Objet driveItem du dossier créé. |
Returns
| Type | Description |
|---|---|
| Boolean |
CreateDriveFolderFromParentId
Crée un dossier dans le dossier parent spécifié. Si le nom est déjà pris, le dossier est renommé par Graph.
[TryFunction]
procedure CreateDriveFolderFromParentId(DriveId: Text; ParentItemId: Text; FolderName: Text): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| DriveId | Text |
Identifiant du lecteur. |
| ParentItemId | Text |
Identifiant du dossier parent. |
| FolderName | Text |
Nom du dossier. |
Returns
| Type | Description |
|---|---|
| Boolean |
DeleteDriveItem
Supprime un élément du lecteur (fichier ou dossier).
[TryFunction]
procedure DeleteDriveItem(DriveId: Text; ItemId: Text): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| DriveId | Text |
Identifiant du lecteur. |
| ItemId | Text |
Identifiant de l'élément. |
Returns
| Type | Description |
|---|---|
| Boolean |
UploadDriveFile
Envoie un fichier dans le dossier spécifié. Échoue si un fichier du même nom existe déjà.
[TryFunction]
procedure UploadDriveFile(DriveId: Text; ParentItemId: Text; Filename: Text; DocumentStream: InStream; var ResponsePayload: JsonObject): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| DriveId | Text |
Identifiant du lecteur. |
| ParentItemId | Text |
Identifiant du dossier de destination. |
| Filename | Text |
Nom du fichier. |
| DocumentStream | InStream |
Contenu du fichier. |
| ResponsePayload | JsonObject |
Objet driveItem du fichier créé. |
Returns
| Type | Description |
|---|---|
| Boolean |
UploadDriveFile
Envoie un fichier dans le dossier spécifié. Échoue si un fichier du même nom existe déjà.
[TryFunction]
procedure UploadDriveFile(DriveId: Text; ParentItemId: Text; Filename: Text; DocumentStream: InStream): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| DriveId | Text |
Identifiant du lecteur. |
| ParentItemId | Text |
Identifiant du dossier de destination. |
| Filename | Text |
Nom du fichier. |
| DocumentStream | InStream |
Contenu du fichier. |
Returns
| Type | Description |
|---|---|
| Boolean |
GetDriveFile
Récupère le contenu et le nom d'un fichier partagé.
[TryFunction]
procedure GetDriveFile(SharingUrl: Text; var Filename: Text; var DocumentStream: InStream): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| SharingUrl | Text |
URL de partage du fichier (ex. webUrl), ou identifiant de partage déjà encodé (« u!... » / « s!... »). |
| Filename | Text |
Nom du fichier. |
| DocumentStream | InStream |
Contenu du fichier. |
Returns
| Type | Description |
|---|---|
| Boolean |
BrowseForFolder
Ouvre une boîte de dialogue pour parcourir et sélectionner un dossier dans un lecteur. Valider sans sélectionner de sous-dossier (ou sur la ligne « .. ») sélectionne le dossier affiché.
procedure BrowseForFolder(DriveId: Text; StartItemId: Text; NewFolderAllowed: Boolean; var SelectedItemId: Text): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| DriveId | Text |
Identifiant du lecteur. |
| StartItemId | Text |
Identifiant du dossier affiché à l'ouverture. Vide : racine du lecteur. |
| NewFolderAllowed | Boolean |
true pour autoriser la création de dossiers depuis la boîte de dialogue. |
| SelectedItemId | Text |
Identifiant du dossier sélectionné. |
Returns
| Type | Description |
|---|---|
| Boolean |
true si l'utilisateur a validé une sélection. |