Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Pour récupérer des données sur les catalogues de votre client, vous devez déterminer quels environnements ont des catalogues installés. Ensuite, vous pouvez récupérer des données de cet environnement sur le catalogue en interrogeant les tables ou l’API conçues pour fournir ces informations.
La plupart des clients n’installent qu’un seul catalogue, mais il est possible d’installer un catalogue sur plusieurs environnements du client.
Rechercher des environnements avec des catalogues dans votre client
Utilisez la commande pac admin list pour afficher les environnements avec des catalogues dans votre client.
Note
Cette commande nécessite un profil d’authentification Administrateur.
Lorsque vous utilisez cette commande, vous devez utiliser le paramètre suivant --application avec la valeur 83a35943-cb41-4266-b7d2-81d60f383695. Cette valeur correspond à l’ID de l’application associée au catalogue.
PS C:\Users\you> pac admin list --application 83a35943-cb41-4266-b7d2-81d60f383695
Connected as you@yourorg.onmicrosoft.com
Listing all environments from your tenant...
Active Environment Environment ID Environment Url Type Organization ID
* Your Org b16bdb7a-e023-4158-a839-4f8831ed2432 https://yourorg.crm.dynamics.com/ Production e20be4c1-02ce-4e81-93c6-6e95ff053943
Tables de catalogue
Lorsque vous installez l’application du gestionnaire de catalogue Power Platform dans un environnement de votre client, les tables répertoriées dans la Référence de table/d’entité Catalogue dans Power Platform sont ajoutées à cet environnement uniquement.
Certaines des tables les plus importantes que vous pouvez utiliser se trouvent dans le tableau suivant :
| Table | Description |
|---|---|
| Demande d’approbation (mspcat_certificationrequest) | Contient les enregistrements d’approbation utilisés pour traiter les envois nouveaux ou mis à jour dans le système de catalogue. |
| Éditeur de catalogue (mspcat_publisher) | Entité de l’éditeur pour la détention des données de l’éditeur TPS. |
| Article de catalogue (mspcat_applications) | Entrée qui apparaît dans le catalogue |
| Package (mspcat_packages) | Actifs de déploiement d’un article du catalogue. |
| Historique des installations (mspcat_InstallHistory) | Contient l’enregistrement des installations et leur statut |
| Activité d’installation (mspcat_InstallActivity) | ID d’activité Historique d’installation |
Afficher les informations du catalogue
Il y a deux messages Dataverse que vous pouvez utiliser pour obtenir des informations sur le catalogue.
-
mspcat_GetPowerCatalogInformationCe message se veut rapide et fournit les droits d’accès minimaux et les données descriptives pour le catalogue. -
mspcat_GetPowerCatalogDetailsUtilisez le contenu de ce message pour remplir le document de soumission et définir les étiquettes pour ce qu’un élément de catalogue et un éditeur doivent être appelés pour ce catalogue.
mspcat_GetPowerCatalogInformation
Le mspcat_GetPowerCatalogInformation message a un seul permissionsonly paramètre booléen et renvoie les informations suivantes définies par le mspcat_GetPowerCatalogInformationResponse type complexe :
| Nonm | Type | Description |
|---|---|---|
SolutionVersion |
chaine | Version de la solution de catalogue installée |
CatalogDescription |
chaine | Décrit l’objectif de ce catalogue |
CanRead |
bool | L’utilisateur peut-il lire les éléments du catalogue ? |
CatalogName |
chaine | Nom du catalogue installé sur cet environnement |
ImageLink |
chaine | Si cette valeur est définie, il s’agit de l’image du catalogue |
CanSubmit |
bool | L’utilisateur peut-il envoyer des articles dans le catalogue ? |
Si le paramètre booléen permissionsonly est défini sur true, les valeurs CatalogDescription, CatalogName et ImageLink ne sont pas renvoyées. Les valeurs SolutionVersion, CanRead et CanSubmit sont toujours renvoyées.
La méthode statique suivante GetPowerCatalogInformationExample récupère les données à l’aide des classes mspcat_GetPowerCatalogInformationRequest et mspcat_GetPowerCatalogInformationResponse générées pour le message mspcat_GetPowerCatalogInformation par la commande pac modelbuilder build.
/// <summary>
/// Returns data about the catalog for an environment
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance.</param>
/// <param name="permissionsonly">Whether to only return information about permissions.</param>
static void GetPowerCatalogInformationExample(IOrganizationService service, bool permissionsonly = false)
{
var request = new mspcat_GetPowerCatalogInformationRequest();
if (permissionsonly) {
request.permissionsonly = true;
}
var response = (mspcat_GetPowerCatalogInformationResponse)service.Execute(request);
Console.WriteLine($"SolutionVersion: {response.SolutionVersion}");
Console.WriteLine($"CatalogDescription: {response.CatalogDescription}");
Console.WriteLine($"CanRead: {response.CanRead}");
Console.WriteLine($"CatalogName: {response.CatalogName}");
Console.WriteLine($"ImageLink: {response.ImageLink}");
Console.WriteLine($"CanSubmit: {response.CanSubmit}");
}
Sortie
Avec permissionsonly égal à false.
SolutionVersion: 1.1.24.500
CatalogDescription: Catalog in Power Platform applications created by your company.
CanRead: True
CatalogName: Default Catalog Name
ImageLink:
CanSubmit: True
Générer des classes à liaison anticipée pour le SDK pour .NET
Utiliser le SDK pour .NET Dataverse
mspcat_GetPowerCatalogDetails
Utilisez les informations renvoyées par mspcat_GetPowerCatalogDetails pour remplir le document de soumission et définir les étiquettes pour ce pour quoi un élément de catalogue et un éditeur devraient être appelés pour ce catalogue.
Cette fonction renvoie un objet avec une propriété de chaîne unique CatalogDetails qui contient une chaîne encodée. Lorsqu’elle est décodée, la chaîne contient des données JSON avec les propriétés suivantes :
| Nonm | Type | Description |
|---|---|---|
catalogId |
chaine | L’ID unique du catalogue |
isSuccess |
chaine | Réservé exclusivement à un usage interne. |
sourceOptions |
Tableau d’options | Les options de la sélection globale mspcat_certificationrequest_requestsource. |
categoryOptions |
Tableau d’options | Les options de la sélection globale mspcat_catalogbusinesscategory. |
publisherLocalizedDisplayName |
chaine | Nom localisé de l’éditeur du catalogue. |
catalogItemLocalizedDisplayName |
chaine | Nom localisé utilisé pour faire référence aux éléments du catalogue. |
La méthode statique suivante GetPowerCatalogDetailsExample récupère les données à l’aide des classes mspcat_GetPowerCatalogDetailsRequest et mspcat_GetPowerCatalogDetailsResponse générées pour le message mspcat_GetPowerCatalogDetails par la commande pac modelbuilder build.
/// <summary>
/// Outputs details of the catalog in Power Platform.
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance.</param>
static void GetPowerCatalogDetailsExample(IOrganizationService service) {
var request = new mspcat_GetPowerCatalogDetailsRequest();
var response = (mspcat_GetPowerCatalogDetailsResponse)service.Execute(request);
JsonDocument catalogDetails = JsonDocument.Parse(response.CatalogDetails);
string catalogId = catalogDetails.RootElement.GetProperty("catalogId").GetString();
bool isSuccess = catalogDetails.RootElement.GetProperty("isSuccess").GetBoolean();
JsonElement sourceOptions = catalogDetails.RootElement.GetProperty("sourceOptions");
JsonElement categoryOptions = catalogDetails.RootElement.GetProperty("categoryOptions");
string publisherLocalizedDisplayName = catalogDetails.RootElement.GetProperty("publisherLocalizedDisplayName").GetString();
string catalogItemLocalizedDisplayName = catalogDetails.RootElement.GetProperty("catalogItemLocalizedDisplayName").GetString();
Console.WriteLine($"catalogId: {catalogId}");
Console.WriteLine($"isSuccess: {isSuccess}");
Console.WriteLine("sourceOptions:");
foreach (JsonElement element in sourceOptions.EnumerateArray())
{
int id = element.GetProperty("id").GetInt32();
string label = element.GetProperty("userLocalziedLabel").GetString();
Console.WriteLine($" {id} {label}");
}
Console.WriteLine("categoryOptions:");
foreach (JsonElement element in categoryOptions.EnumerateArray())
{
int id = element.GetProperty("id").GetInt32();
string label = element.GetProperty("userLocalziedLabel").GetString();
Console.WriteLine($" {id} {label}");
}
Console.WriteLine($"publisherLocalizedDisplayName: {publisherLocalizedDisplayName}");
Console.WriteLine($"catalogItemLocalizedDisplayName: {catalogItemLocalizedDisplayName}");
}
Sortie
La méthode statique GetPowerCatalogDetailsExample écrit quelque chose comme ceci dans la console :
catalogId: 883278f5-07af-45eb-a0bc-3fea67caa544
isSuccess: True
sourceOptions:
526430000 Other
526430001 Power Automate Maker Portal
526430002 Power Platform Maker Portal
526430003 Power Virtual Agents Maker Portal
526430004 Power Platform Admin API
526430005 PAC CLI
526430006 PAC Build Task
526430007 Pipelines in Power Platform
categoryOptions:
526430000 Customer Service
526430001 Project Management
526430002 Calendar Management & Scheduling
526430003 Email Management
526430004 Files & Documentation
526430005 Notification & Reminders
526430006 Analytics
526430007 Collaboration
526430008 Commerce
526430009 Finance
526430010 Compliance & Legal
526430011 Sales
526430012 IT Tools
526430013 Marketing
526430014 Operations & Supply Chain
526430015 Internet of Things
526430016 AI Machine Learning
526430017 Geolocation
526430018 Human Resources
publisherLocalizedDisplayName: Catalog Publisher
catalogItemLocalizedDisplayName: Catalog Item
Générer des classes à liaison anticipée pour le SDK pour .NET
Utiliser le SDK pour .NET Dataverse
Afficher les éléments du catalogue
Vous pouvez découvrir les articles du catalogue à l’aide de PAC CLI ou en interrogeant la table Élément du catalogue (mspcat_applications).
Utilisation de PAC CLI
Utilisez la commande pac catalog list pour afficher les éléments du catalogue.
pac catalog list
Connected to... TestCatalog
Connected as user@domain
Listing all published catalog items from the current Dataverse Organization...
Catalog Item Name Publisher Name Catalog Item Id Revision Id Version Status
Contoso Conference Custom Connector Catalog Conferences Team ContosoConferencesCustomConnector 4e882dd6-74f3-ed11-8849-000d3a0a286b 1.0.0.1 Published
Contoso Themed Components ContosoPublisher ContosoThemedComponents efbc469d-f1b2-ed11-83fd-000d3a0a2d9d 1.0.0.1 Published
Vous pouvez également utiliser ces paramètres pour filtrer les enregistrements renvoyés :
| paramètre | alias | description |
|---|---|---|
--catalog-item-id |
-cid |
ID de l’élément de catalogue à rechercher. Lorsque l’ID d’élément de catalogue est utilisé, toute valeur de paramètre --catalog-item-name est ignorée. |
--catalog-item-name |
-n |
Nom de l’élément Catalog à rechercher. |
--include-active |
-ia |
Inclure les éléments actifs. |
Utilisez le paramètre --json pour renvoyer des données JSON.
Utilisez le paramètre --environment (-env) pour interroger un catalogue dans un autre environnement.
Interroger les tables Dataverse
Les informations sur les éléments du catalogue se trouvent dans la table Élément de catalogue (mspcat_applications), ce qui vous permet d’en récupérer les données comme vous le feriez pour n’importe quelle table Dataverse.
La méthode statique RetrieveCatalogItems suivante récupère et imprime une table de données à partir des tables Élément du catalogue (mspcat_applications) et Package (mspcat_packages) concernant les éléments du catalogue. Cette fonction dépend du package ConsoleTables NuGet pour afficher la table dans une application console.
/// <summary>
/// Retrieves information about catalog items and writes it to the console
/// </summary>
/// <param name="service">The authenticated IOrganizationService instance.</param>
static void RetrieveCatalogItems(IOrganizationService service)
{
QueryExpression query = new("mspcat_applications")
{
ColumnSet = new ColumnSet(
"mspcat_tpsid",
"mspcat_deploytype",
"mspcat_applicationtype",
"mspcat_businesscategory",
"mspcat_description",
"mspcat_applicationsid",
"mspcat_publisherid",
"mspcat_name",
"statuscode"),
Criteria = new FilterExpression(LogicalOperator.And)
{
Conditions = {
{
new ConditionExpression(
attributeName: "statecode",
conditionOperator: ConditionOperator.Equal,
value: 0)
}
}
}
};
LinkEntity linkToPackages = query.AddLink(
linkToEntityName: "mspcat_packages",
linkFromAttributeName: "mspcat_packageasset",
linkToAttributeName: "mspcat_packagesid",
joinOperator: JoinOperator.Inner);
linkToPackages.Columns = new ColumnSet(
"statecode",
"mspcat_uniquename",
"mspcat_version",
"statuscode");
linkToPackages.EntityAlias = "pkg";
EntityCollection catalogs = service.RetrieveMultiple(query);
var table = new ConsoleTables.ConsoleTable(
"Catalog Item Name",
"Publisher Name",
"Catalog Item ID",
"Revision ID",
"Version",
"Status");
foreach (Entity catalog in catalogs.Entities)
{
string catalogItemName = catalog.GetAttributeValue<string>("mspcat_name");
string publisherName = catalog.FormattedValues["mspcat_publisherid"];
string catalogItemId = catalog.GetAttributeValue<string>("mspcat_tpsid");
Guid revisionId = catalog.GetAttributeValue<Guid>("mspcat_applicationsid");
string version = (string)catalog.GetAttributeValue<AliasedValue>("pkg.mspcat_version").Value;
string status = catalog.FormattedValues["statuscode"];
string[] rowData = {
catalogItemName,
publisherName,
catalogItemId,
revisionId.ToString(),
version,
status
};
table.Rows.Add(rowData);
}
table.Write();
}
La sortie de cet exemple pourrait ressembler à ceci :
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
| Catalog Item Name | Publisher Name | Catalog Item ID | Revision ID | Version | Status |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
| Contoso Conference Custom Connector| Catalog Conferences Team| ContosoConferencesCustomConnector | 4e882dd6-74f3-ed11-8849-000d3a0a286b | 1.0.0.1 | Published |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
| Contoso Themed Components | ContosoPublisher | ContosoThemedComponents | efbc469d-f1b2-ed11-83fd-000d3a0a2d9d | 1.0.0.1 | Published |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Utiliser le SDK pour .NET Dataverse
Interroger les données à l’aide de QueryExpression