Recuperar datos sobre el catálogo en Power Platform
Para recuperar datos sobre los catálogos de su inquilino, debe determinar qué entornos tienen catálogos instalados. Luego, puede recuperar datos de ese ambiente sobre el catálogo consultando las tablas o la API diseñadas para proporcionar esta información.
La mayoría de los inquilinos solo instalan un catálogo, pero es posible instalar un catálogo en varios entornos del inquilino.
Buscar entornos con catálogos en su inquilino
Utilizar el comando pac admin list para ver los entornos con catálogos en su tenant.
Nota
Este comando requiere un perfil de autenticación Administrador.
Al usar este comando, debe usar el siguiente parámetro --application
con el valor 83a35943-cb41-4266-b7d2-81d60f383695
. Este valor es el ID de la aplicación asociada al catálogo.
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
Tablas de catálogos
Cuando instale la aplicación gestora de catálogos de Power Platform en un entorno de su tenant, las tablas enumeradas en la referencia de tablas/entidades Catálogo en Power Platform se añadirán solo a ese entorno.
Algunas de las tablas más importantes que puedes utilizar se encuentran en la siguiente tabla:
Table | Description |
---|---|
Solicitud de aprobación (mspcat_certificationrequest) | Contiene registros de aprobación que se utilizan para procesar envíos nuevos o actualizados al sistema de catálogo. |
Editor del catálogo (mspcat_publisher) | La entidad editora para mantener los datos del Editor TPS. |
Elemento del catálogo (mspcat_applications) | Entrada que aparece en el Catálogo |
Paquete (mspcat_packages) | Activos de implementación para un elemento de catálogo. |
Historial de instalación (mspcat_InstallHistory) | Contiene el registro de las instalaciones y sus estados |
Actividad de instalación (mspcat_InstallActivity) | ID de actividad del historial de instalación |
Ver información del catálogo
Hay dos mensajes de Dataverse que puede utilizar para obtener información sobre el catálogo.
-
mspcat_GetPowerCatalogInformation
Este mensaje pretende ser rápido y proporcionar los permisos mínimos y datos descriptivos para el catálogo. -
mspcat_GetPowerCatalogDetails
Utilice el contenido de este mensaje para rellenar el documento de envío y establecer las etiquetas de cómo debe llamarse un Artículo de catálogo y un Editor para este catálogo.
mspcat_GetPowerCatalogInformation
El mspcat_GetPowerCatalogInformation
El mensaje tiene un solo permissionsonly
parámetro booleano y devuelve la siguiente información definida por el mspcat_GetPowerCatalogInformationResponse
tipo complejo:
Name | Type | Description |
---|---|---|
SolutionVersion |
string | Versión de la solución de catálogo instalada |
CatalogDescription |
string | Describe para qué sirve este catálogo |
CanRead |
bool | ¿El usuario puede leer los elementos del catálogo? |
CatalogName |
string | Nombre del catálogo instalado en este entorno |
ImageLink |
string | Si se establece, es la imagen del catálogo |
CanSubmit |
bool | ¿El usuario puede enviar elementos al catálogo? |
Si el parámetro booleano permissionsonly
es verdadero, no se devuelven los valores CatalogDescription
, CatalogName
y ImageLink
. Los valores SolutionVersion
, CanRead
y CanSubmit
se devuelven siempre.
El siguiente método estático de GetPowerCatalogInformationExample
recupera datos utilizando las clases mspcat_GetPowerCatalogInformationRequest
y mspcat_GetPowerCatalogInformationResponse
generadas para el mensaje mspcat_GetPowerCatalogInformation
por el comando 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}");
}
Output
Con permissionsonly
igual a falso.
SolutionVersion: 1.1.24.500
CatalogDescription: Catalog in Power Platform applications created by your company.
CanRead: True
CatalogName: Default Catalog Name
ImageLink:
CanSubmit: True
Generar clases de enlace en tiempo de compilación para SDK para .NET
Utilice el SDK de Dataverse para .NET
mspcat_GetPowerCatalogDetails
Utilice la información devuelta por mspcat_GetPowerCatalogDetails
para completar el documento de envío y establecer las etiquetas para el nombre que debe tener un elemento del catálogo y un editor para este catálogo.
Esta función devuelve un objeto con un solo CatalogDetails
Propiedad de cadena que contiene una cadena codificada. Una vez decodificada, la cadena contiene datos JSON con las siguientes propiedades:
Name | Type | Description |
---|---|---|
catalogId |
string | El identificador único del catálogo |
isSuccess |
string | Para uso interno. |
sourceOptions |
Matriz de opciones | Las opciones de la elección global de mspcat_certificationrequest_requestsource . |
categoryOptions |
Matriz de opciones | Las opciones de la elección global de mspcat_catalogbusinesscategory . |
publisherLocalizedDisplayName |
string | El nombre localizado del editor del catálogo. |
catalogItemLocalizedDisplayName |
string | El nombre localizado utilizado para referirse a los artículos del catálogo. |
El siguiente método estático de GetPowerCatalogDetailsExample
recupera datos utilizando las clases mspcat_GetPowerCatalogDetailsRequest
y mspcat_GetPowerCatalogDetailsResponse
generadas para el mensaje mspcat_GetPowerCatalogDetails
por el comando 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}");
}
Output
El método estático de GetPowerCatalogDetailsExample
escribe algo así en la consola:
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
Generar clases de enlace en tiempo de compilación para SDK para .NET
Utilice el SDK de Dataverse para .NET
Ver elementos del catálogo
Puede descubrir los elementos del catálogo mediante la CLI del PAC o consultando la tabla Elementos del catálogo (mspcat_applications).
Uso de PAC CLI
Utilice el comando pac catalog list para ver los elementos del catálogo.
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
También puede utilizar estos parámetros para filtrar los registros devueltos:
parámetro | alias | Descripción |
---|---|---|
--catalog-item-id |
-cid |
ID de artículo de catálogo para buscar. Cuando se utiliza el ID de artículo de catálogo, se ignoran los valores de los parámetros --catalog-item-name . |
--catalog-item-name |
-n |
Nombre del elemento de catalog que se va a buscar. |
--include-active |
-ia |
Incluir elementos activos. |
Utilice el --json
parámetro para devolver datos JSON.
Utilice el parámetro --environment
(-env
) para consultar un catálogo en un entorno diferente.
Consultar tablas de Dataverse
La información sobre los artículos del catálogo se encuentra en Elemento del catálogo (mspcat_applications) tabla, de modo que pueda recuperar datos de ella como lo haría con cualquier otra Dataverse mesa.
La siguiente estática RetrieveCatalogItems
El método recupera e imprime una tabla de datos de la Elemento del catálogo (mspcat_applications) y Paquete (mspcat_packages) Tablas sobre los artículos del catálogo. Esta función depende de la Tablas de consola NuGet paquete para representar la tabla en una aplicación de consola.
/// <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();
}
El resultado de este ejemplo podría ser similar al siguiente:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
| 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 |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Utilice el SDK de Dataverse para .NET
Consultar datos usando QueryExpression