Tables Catalogue et CatalogAssignment
Utilisez les tables Catalog et CatalogAssignment pour créer une structure pour exposer les actions utilisées dans votre solution en tant qu’événements commerciaux. Les événements commerciaux Microsoft Dataverse permettent à de nombreux scénarios de créer des intégrations avec d′autres applications via Dataverse. Plus d’information : Événements d’entreprise Microsoft Dataverse
Votre catalogue décrit les événements pertinents pour votre solution afin que les gens puissent les utiliser. Si vous ne cataloguez pas les événements pertinents pour votre solution, ils peuvent ne pas être disponibles pour les utilisateurs de votre solution.
Utilisez la table Catalog
pour créer une hiérarchie à deux niveaux. Cela crée un groupe Catalogue et Catégorie où le catalogue de deuxième niveau représente la catégorie.
Le catalogue de premier niveau doit représenter votre solution. Utilisez plusieurs catalogues de deuxième niveau liés à votre catalogue de premier niveau pour regrouper différentes catégories de fonctionnalités au sein de votre solution.
Pour chaque catalogue de second niveau qui représente les catégories au sein de la solution, utilisez la table CatalogAssignment
pour spécifier les actions Tables, API personnalisée ou Processus personnalisé que vous souhaitez rendre disponibles en tant qu’événements.
Important
Les utilisateurs avec le rôle de sécurité Créateur d’environnement peut afficher les données du catalogue dans le connecteur Power Automate Dataverse du déclencheur Lorsqu’une action est exécutée. Les autres rôles de sécurité doivent avoir un privilège de niveau d’accès approprié Lire à ces ces tables : API personnalisée, Traiter, Message SDK.
Pour plus d’informations :
Exemple : Gestion des clients Contoso
Pour introduire l’idée d’un catalogue, commençons par un exemple.
La solution de gestion des clients Contoso contient de nombreux composants. Les seuls composants d’intérêt ici sont :
- Tables
- API personnalisée
- Action du processus personnalisée (workflow)
Tables
La gestion des clients Contoso est une solution qui comprend les tableaux suivants :
SchemaName | Nom d’affichage | Description |
---|---|---|
Account |
Compte | Une table système Dataverse |
Contact |
Contact | Une table système Dataverse |
contoso_Membership |
Affiliation | Une table personnalisée appartenant à l′organisation |
API personnalisée
Ils ont également créé un nombre d’actions API personnalisées appelées par leur système de point de vente, leur site web et les systèmes ERP afin d’avertir Dataverse des événements qui ne proviennent pas de Dataverse:
UniqueName | Nom complet |
---|---|
contoso_CustomerEnteredStore |
Magasin visité |
contoso_CustomerVisitWebSite |
Aller sur le site web |
contoso_CustomerPurchasedProduct |
Produit acheté |
contoso_CustomerReturnedProduct |
Produit retourné |
Structure de catalogue
Le catalogue de solutions de gestion des clients Contoso ressemble à ceci :
Catalogue | Description |
---|---|
Gestion des clients Contoso | Catalogue racine |
Tables | Catégorie de catalogue de 2e niveau |
Compte | CatalogAssignment : Entité |
Contact | CatalogAssignment : Entité |
Affiliation | CatalogAssignment : Entité |
Événements client | Catégorie de catalogue de 2e niveau |
Magasin visité | CatalogAssignment : CustomAPI |
Aller sur le site web | CatalogAssignment : CustomAPI |
Produit acheté | CatalogAssignment : CustomAPI |
Retour produit | CatalogAssignment : CustomAPI |
Événements disponibles
Si vous créez CatalogAssignment
sur une table, certains opérations liées au système pour cette table sont disponibles sous forme d’événements.
Avec ce catalogue, les événements suivants seront disponibles :
Tableau | Événement | Pourquoi disponible |
---|---|---|
Compte | Créer Mise à jour Suppr |
Opération données standard |
Compte | GrantAccess ModifyAccess RevokeAccess |
L′entité appartenant à l′utilisateur peut être partagée. |
Contact | Créer Mise à jour Suppr |
Opération données standard |
Contact | GrantAccess ModifyAccess RevokeAccess |
L′entité appartenant à l′utilisateur peut être partagée. |
Affiliation | Créer Mise à jour Suppr |
Opération données standard |
N/A | contoso_CustomerEnteredStore |
Attribution du catalogue explicite |
N/A | contoso_CustomerVisitWebSite |
Attribution du catalogue explicite |
N/A | contoso_CustomerPurchasedProduct |
Attribution du catalogue explicite |
N/A | contoso_CustomerReturnedProduct |
Attribution du catalogue explicite |
La plupart des tables prennent en charge les événements Créer, Mettre à jour et Effacer. Voici quelques exceptions. Les tables appartenant à l′utilisateur exposent des événements pour les modifications apportées au partage : GrantAccess, ModifyAccess et RevokeAccess
Notes
Toutes les API personnalisées ou actions du processus personnalisées liées à la table sont également incluses.
Les actions du processus personnalisées désactivées s’affichent mais l’événement ne se produit jamais tant qu’elles ne sont pas activées et utilisées.
Créer un catalogue dans Power Apps
Vous pouvez créer les enregistrements Catalogue et Attribution du catalogue dans Power Apps (https://make.powerapps.com).
Vous devez toujours créer un catalogue dans le cadre d’une solution. Utilisez les instructions suivantes pour créer des enregistrements de catalogue :
Connectez-vous à Power Apps,
Dans le volet de navigation de gauche, sélectionnez Solutions.
Créez ou sélectionnez une solution que vous souhaitez utiliser, puis cliquez sur Nouveau.
Sélectionnez Catalogue dans le menu et une nouvelle fenêtre s’ouvre.
Entrez les champs suivants :
Champ Description Catalogue parent Ne définissez pas de catalogue parent pour le catalogue racine de la solution. Sinon, définissez le catalogue racine de la solution. Nom unique Le nom unique doit avoir un préfixe de personnalisation et ne comporter aucun espace. Ce préfixe doit être identique au préfixe de personnalisation pour l’éditeur de solutions. **Nom ** Entrez un nom pour le catalogue. En général, identique à la valeur Nom unique, mais sans le préfixe de personnalisation et avec des espaces. Nom d’affichage En général, identique à la valeur Nom. Description Entrez une description significative du catalogue. Enregistrer et fermer le formulaire.
Créer une attribution du catalogue dans Power Apps
En utilisant la même solution qui contient le catalogue dans Power Apps
Cliquez sur Nouveau.
Sélectionnez Attribution du catalogue dans le menu et une nouvelle fenêtre s’ouvre.
Entrez le Nom. Cette valeur doit commencer par un préfixe de personnalisation et ne comporter aucun espace. Vous devez utiliser le même préfixe de personnalisation que celui défini pour l’éditeur de solutions.
Définissez l′Objet d’attribution du catalogue. Cette recherche permet de définir 3 types d′enregistrements différents :
- API personnalisées
- Entités
- Processus
Vous devriez pouvoir découvrir le type que vous recherchez en tapant le nom.
Sélectionner un catalogue
Notes
Le catalogue sélectionné doit être un catalogue de second niveau représentant une catégorie.
Enregistrer et fermer le formulaire
Bloquer la personnalisation des éléments du catalogue dans votre solution gérée
Sauf si vous souhaitez autoriser les personnes qui installent votre solution gérée à personnaliser le catalogue et les attributions du catalogue, vous devez définir la propriété IsCustomizable
sur false
car la valeur par défaut permet de les personnaliser.
Pour définir cette propriété dans l′interface utilisateur Power Apps :
Sélectionnez chaque catalogue ou attribution du catalogue dans votre solution
Dans le menu, cliquez sur les points de suspension (...) et sélectionnez Propriétés gérées.
Dans la fenêtre qui s′ouvre, désélectionnez Autoriser les personnalisations.
Cliquez sur Terminé
Diagramme des tables
Le diagramme suivant montre les relations entre les tables Catalog et CatalogAssignment
La relation auto-référentielle utilisant ParentCatalogId
est ce qui permet de créer la hiérarchie à deux niveaux entre un seul catalogue de solutions et plusieurs catalogues qui représentent des catégories utilisant les enregistrements de catalogue.
Colonnes de table Catalog
Toutes les colonnes disponibles et relations sont disponibles dans Référence table/entité Catalog.
La table suivante inclut les colonnes/attributs sélectionnés d’une table/Entité Catalog que vous pouvez définir.
Nom d’affichageSchemaName LogicalName |
Type | Description |
---|---|---|
CatalogueCatalogId catalogid |
Uniqueidentifier | Identificateur unique des instances de catalogue. |
DescriptionDescription description |
String | Description localisée pour les instances de catalogue. Requis |
Nom d’affichageDisplayName displayname |
String | Nom d’affichage localisé pour les instances de catalogue. Requis |
Est personnalisableIsCustomizable iscustomizable |
ManagedProperty | Contrôle si la table Catalog peut être personnalisée ou supprimée. La valeur par défaut est true. Plus d′informations : Bloquer la personnalisation des éléments du catalogue dans votre solution gérée Requis |
NomName name |
String | Nom principal du catalogue. Requis |
Catalogue parentParentCatalogId parentcatalogid |
Rechercher | Identificateur unique du catalogue parent. Modification impossible après l’enregistrement |
Nom uniqueUniqueName uniquename |
String | Nom unique du catalogue. Requis Doit commencer par un préfixe de personnalisation. |
Notes
Lorsque vous associez une table Catalog Assignment à une table Catalog, vous n’êtes pas en mesure de supprimer le catalogue tant que vous ne supprimez pas l’affectation de catalogue.
Colonnes de la table CatalogAssignment
Toutes les colonnes disponibles et relations sont disponibles dans Référence table/entité CatalogAssignment.
La table suivante inclut les colonnes/attributs sélectionnés d’une table/Entité CatalogAssignment que vous pouvez définir.
Nom d’affichageSchemaName LogicalName |
Type | Description |
---|---|---|
Attribution du catalogueCatalogAssignmentId catalogassignmentid |
Uniqueidentifier | Identificateur unique des instances d’attribution du catalogue. |
catalogueCatalogId catalogid |
Rechercher | Identificateur unique du catalogue associé à l’attribution du catalogue. Requis |
Est personnalisableIsCustomizable iscustomizable |
ManagedProperty | Contrôle si la table CatalogAssignment peut être personnalisée ou supprimée. La valeur par défaut est true. Plus d′informations : Bloquer la personnalisation des éléments du catalogue dans votre solution gérée Requis |
NomName name |
String | Nom principal de l’attribution du catalogue. |
Objet d’attribution du catalogueObject object |
Rechercher | Identificateur unique de l’objet associé à l’attribution du catalogue. Requis Modification impossible après l’enregistrement Cette recherche polymorphique peut être liée aux tables suivantes : customapi Entité workflow Lorsque vous utilisez l’API web pour associer cette relation polymorphique, vous devez utiliser les noms de propriété de navigation à valeur unique pour chaque relation. Ces noms sont : CustomAPIId EntityId WorkflowId Lors de l’association à une table, une API personnalisée ou une action du processus personnalisée, vous devrez obtenir la valeur respectiveid. Voir Obtenir l’ID des éléments CatalogAssignment pour plus d’informations. |
Obtenir l’ID des éléments CatalogAssignment
Vous devrez obtenir l’ID des entités, des API personnalisées et des actions du processus personnalisées lorsque vous les associez à un CatalogAssignment.
Obtenir l’ID d’une table
La table Entity contient une ligne par table. Vous pouvez obtenir l’ID d’une table spécifique, telle que la table Account, à l’aide de l’une de ces requêtes à l’aide de l’API web :
GET [Organization URI]/api/data/v9.2/EntityDefinitions(LogicalName='account')?$select=MetadataId
GET [Organization URI]/api/data/v9.2/entities?$select=entityid&$filter=name eq 'Account'
Obtenir l’ID d’une API personnalisée
Cela se fait le plus facilement à l’aide de l’API web. L’exemple suivant renvoie le customapiid
d’une API personnalisée avec le uniquename
de your_CustomAPIName
.
GET [Organization URI]/api/data/v9.2/customapis?$select=customapiid&$filter=uniquename eq 'your_CustomAPIName'
Obtenir l’ID d’une action du processus personnalisée
Cela se fait le plus facilement à l’aide de l’API web. L’exemple suivant renvoie le workflowid
d’une action du processus personnalisée avec le uniquename
de ExampleCustomProcessAction
.
GET [Organization URI]/api/data/v9.2/workflows?$select=workflowid,uniquename&$filter=category eq 3 and type eq 1 and endswith(uniquename,'ExampleCustomProcessAction')
Notes
Le uniquename
du workflow n’inclut pas le préfixe de personnalisation qui est ajouté au nom de l’action du processus personnalisée dans l’API web. Si l’action personnalisée que vous appelez depuis l’API web est nommée new_ExampleCustomProcessAction
, le nom unique du workflow est ExampleCustomProcessAction
.
Assurez-vous d’accéder à la ligne où Taper est 1
. Il s’agit de la définition de workflow.
Les workflows d’action du processus personnalisée ont la valeur Catégorie définie sur 3
.
Récupérer les attributions du catalogue existantes
Utilisez la requête OData suivante pour récupérer des informations sur les attributions du catalogue, le type d′attribution, le catalogue associé et le catalogue parent.
GET [Organization URI]/api/data/v9.2/catalogassignments?$select=name
&$expand=CatalogId($select=uniquename;$expand=ParentCatalogId($select=uniquename)),
EntityId($select=entityid),
CustomAPIId($select=uniquename),
WorkflowId($select=uniquename)
&$filter=name ne null
Créer des tables Catalog et CatalogAssignment avec du code
Vous pouvez créer des enregistrements de table Catalog et Catalog Assignment avec l’API web ou le SDK pour .NET.
Utilisation de l’API Web
Notes
Actuellement, il est impossible de créer des enregistrements de table Catalog et Catalog Assignment avec « deep-insert ».
Vous pouvez créer une hiérarchie des enregistrements de catalogue avec « deep-insert », mais vous devez créer les attributions du catalogue individuellement.
La série suivante d’opérations d’API web crée une hiérarchie de catalogue et une table CatalogAssignment dans une solution avec le nom unique :ContosoCustomerManagement
. Notez l’utilisation de l’en-tête de la demande MSCRM.SolutionUniqueName
pour définir l’association à la solution lors de la création de l’enregistrement.
Voir les sections Créer un enregistrement avec l’API web : Création de base et Associer des lignes de table à la création pour en savoir plus.
Créer le catalogue racine
Demande :
POST [Organization URI]/api/data/v9.2/catalogs HTTP/1.1
MSCRM.SolutionUniqueName: ContosoCustomerManagement
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
{
"name": "Contoso Customer Management",
"uniquename": "contoso_CustomerManagement",
"displayname": "Contoso Customer Management",
"description": "The root catalog for the Contoso Customer Management solution",
"iscustomizable": {
"Value": false
}
}
Réponse :
HTTP/1.1 204 No Content
OData-EntityId: [Organization URI]/api/data/v9.2/catalogs(00000000-0000-0000-0000-000000000001)
Créer le sous-catalogue des événements de table
Demande :
POST [Organization URI]/api/data/v9.2/catalogs HTTP/1.1
MSCRM.SolutionUniqueName: ContosoCustomerManagement
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
{
"name": "Contoso Customer Management Table Events",
"uniquename": "contoso_TableEvents",
"displayname": "Tables",
"description": "Groups Table events for the Contoso Customer Management Solution",
"iscustomizable": {
"Value": false
},
"ParentCatalogId@odata.bind": "catalogs(00000000-0000-0000-0000-000000000001)"
}
Réponse :
HTTP/1.1 204 No Content
OData-EntityId: [Organization URI]/api/data/v9.2/catalogassignments(00000000-0000-0000-0000-000000000002)
Créer l’attribution de catalogue de comptes sur les tables catalog
Voir Obtenir l’ID d’une table pour plus d’informations sur l’ID d’une table.
Demande :
POST [Organization URI]/api/data/v9.2/catalogassignments HTTP/1.1
MSCRM.SolutionUniqueName: ContosoCustomerManagement
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0
Accept: application/json
{
"name": "Account",
"EntityId@odata.bind": "entities(70816501-edb9-4740-a16c-6a5efbc05d84)",
"iscustomizable": {
"Value": false
},
"CatalogId@odata.bind": "catalogs(00000000-0000-0000-0000-000000000002)"
}
Réponse :
HTTP/1.1 204 No Content
OData-EntityId: [Organization URI]/api/data/v9.2/catalogassignments(00000000-0000-0000-0000-000000000003)
Utilisation du Kit de développement logiciel (SDK) pour .NET
Le code suivant montre la création d’une hiérarchie de catalogue et une attribution de catalogue dans une solution avec le nom unique :ContosoCustomerManagement
.
Notes
Utilisez le paramètre facultatif SolutionUniqueName
avec la classe CreateRequest pour créer les enregistrements dans le contexte de cette solution.
Plus d’informations : Transmettre des paramètres facultatifs avec une requête
string conn = $@"
Url = {url};
AuthType = OAuth;
UserName = {userName};
Password = {password};
AppId = 51f81489-12ee-4a9e-aaae-a2591f45987d;
RedirectUri = app://58145B91-0C36-4500-8554-080854F2AC97;
LoginPrompt=Auto;
RequireNewInstance = True";
var service = new CrmServiceClient(conn);
// var service = new ServiceClient(conn);
var solutionUniqueName = " ContosoCustomerManagement ";
//Create the root catalog
Catalog rootCatalog = new Catalog
{
Name = "Contoso Customer Management",
UniqueName = "contoso_CustomerManagement",
DisplayName = "Contoso Customer Management",
Description = "The root catalog for the Contoso Customer Management solution",
IsCustomizable = new BooleanManagedProperty(false)
};
CreateRequest rootCatalogReq = new CreateRequest {
Target = rootCatalog
};
rootCatalogReq["SolutionUniqueName"] = solutionUniqueName;
Guid rootCatalogId = ((CreateResponse)service.Execute(rootCatalogReq)).id;
//Create the Table Events Sub-catalog
Catalog tableEvents = new Catalog
{
Name = "Contoso Customer Management Table Events",
UniqueName = "contoso_TableEvents",
DisplayName = "Tables",
Description = "Groups Table events for the Contoso Customer Management Solution",
IsCustomizable = new BooleanManagedProperty(false),
ParentCatalogId = new EntityReference("catalog", rootCatalogId)
};
CreateRequest tableEventsReq = new CreateRequest
{
Target = tableEvents
};
tableEventsReq["SolutionUniqueName"] = solutionUniqueName;
Guid tableEventsId = ((CreateResponse)service.Execute(tableEventsReq)).id;
//Create the Account Catalog Assignment on the Tables catalog
CatalogAssignment accountAssignment = new CatalogAssignment
{
Name = "Account",
IsCustomizable = new BooleanManagedProperty(false),
Object = new EntityReference("entity",new Guid("70816501-edb9-4740-a16c-6a5efbc05d84")),
CatalogId = new EntityReference("catalog", tableEventsId)
};
CreateRequest accountAssignmentReq = new CreateRequest
{
Target = accountAssignment
};
accountAssignmentReq["SolutionUniqueName"] = solutionUniqueName;
Guid accountAssignmentId = ((CreateResponse)service.Execute(accountAssignmentReq)).id;
Créer des tables Catalog et Catalog Assignment en modifiant les fichiers de solution
Dans un fichier de solution, vous pouvez modifier les fichiers pour créer des tables Catalog et Catalog Assignment.
Utilisez l’outil SolutionPackager pour extraire une solution dans des fichiers pouvant être gérés dans le contrôle de la source. Vous pouvez ensuite modifier les fichiers. Vous pouvez ensuite utiliser SolutionPackager pour regrouper les fichiers extraits dans une solution. En savoir plus : Contrôle de code source avec les fichiers de solution
Conseil
Créez des catalogues et des attributions du catalogue dans une solution, puis exportez et extrayez la solution pour voir quelques exemples.
Veillez à bien utiliser la dernière version du pack Microsoft.CrmSdk.CoreToolsNuGet
Créer une table Catalog avec des fichiers de solution
Au sein d’une solution, tous les catalogues se trouvent dans un dossier catalogs
. Vous pouvez créer, modifier ou supprimer des catalogues en modifiant les dossiers et les fichiers de ce dossier et en important la solution une fois qu′elle a été compressée à l′aide du packager de solution.
Chaque catalogue est inclus dans un dossier correspondant à la valeur uniquename
du catalogue, par exemple, contoso_CustomerManagement
.
Un fichier catalog.xml
, contenant la définition du catalogue, se trouve dans le dossier.
Par exemple :
<catalog uniquename="contoso_CustomerManagement">
<description default="The root catalog for the Contoso Customer Management solution">
<label description="The root catalog for the Contoso Customer Management solution" languagecode="1033" />
</description>
<displayname default="Contoso Customer Management">
<label description="Contoso Customer Management" languagecode="1033" />
</displayname>
<iscustomizable>0</iscustomizable>
<name>Contoso Customer Management</name>
</catalog>
L′attribut uniquename
de l′élément catalog
doit correspondre au nom du dossier contenant le fichier.
L′élément catalog
inclut ces éléments :
Élément | Description |
---|---|
description |
A un attribut default avec la valeur de la description par défaut.Contient un ou plusieurs éléments label avec des attributs pour description et languagecode si plusieurs langues sont définies. |
displayname |
A un attribut default avec la valeur du nom d′affichage par défaut.Contient un ou plusieurs éléments label avec des attributs pour description et languagecode si plusieurs langues sont définies. |
iscustomizable |
Si le catalogue est personnalisable. 0 = false , 1 = true . |
name |
Nom du catalogue. |
Si le catalogue représente une catégorie, la relation avec le catalogue parent est incluse à l′aide d′un élément parentcatalogid
qui contient un élément uniquename
contenant le nom unique du catalogue parent.
Par exemple :
<catalog uniquename="contoso_TableEvents">
<description default="Groups Table events for the Contoso Customer Management Solution">
<label description="Groups Table events for the Contoso Customer Management Solution" languagecode="1033" />
</description>
<displayname default="Tables">
<label description="Tables" languagecode="1033" />
</displayname>
<iscustomizable>0</iscustomizable>
<name>Contoso Customer Management Table Events</name>
<parentcatalogid>
<uniquename>contoso_CustomerManagement</uniquename>
</parentcatalogid>
</catalog>
Créer une table CatalogAssignment avec des fichiers de solution
Dans une solution, dans le dossier Assets
se trouve un fichier catalogassignments.xml
. Toutes les attributions de catalogue sont incluses dans le fichier. Vous pouvez créer ou modifier des attributions du catalogue en modifiant ce fichier et en important la solution une fois qu′elle a été compressée à l′aide du packager de solution.
Par exemple :
<catalogassignments>
<catalogassignment object.logicalname="account" catalogid.uniquename="contoso_TableEvents" objectidtype="entity">
<iscustomizable>0</iscustomizable>
<name>Account</name>
</catalogassignment>
<catalogassignment catalogid.uniquename="contoso_CustomerEvents" object.uniquename="contoso_CustomerEnteredStore" objectidtype="customapi">
<iscustomizable>0</iscustomizable>
<name>Customer Entered Store</name>
</catalogassignment>
</catalogassignments>
Chaque élément catalogassignment
a ces attributs :
Attribut | Description |
---|---|
catalogid.uniquename |
Nom unique du sous-catalogue associé à l’attribution du catalogue. |
objecttypeid |
Type d’objet. Les valeurs valides sont : entity customapi workflow |
En fonction de la valeur objectypeid
, chaque élément catalogassignment
doit avoir l′un de ces attributs correspondants :
Attribut | Description |
---|---|
object.uniquename |
Nom unique de l′API personnalisée. |
object.logicalname |
Nom logique de l’entité. |
object.workflowid |
Valeur d′ID unique de l′action de processus personnalisé. |
L′élément catalogassignment
inclut ces éléments :
Élément | Description |
---|---|
iscustomizable |
Si l′attribution du catalogue est personnalisable. 0 = false , 1 = true . |
name |
Nom de l’attribution du catalogue |
Voir aussi
Événements métiers Microsoft Dataverse
Créer un enregistrement d’entité à l’aide de l’API Web
Récupérer un enregistrement d’entité à l’aide de l’API Web
Créer des entités à l’aide du SDK pour .NET
Récupérer un enregistrement d’entité à l’aide du SDK pour .NET
Notes
Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)
Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).