Compartir a través de


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

Pasos siguientes