Daten über den Katalog in Power Platform abrufen
Zum Abrufen von Daten zu den Katalogen für Ihren Mandanten müssen Sie ermitteln, in welchen Umgebungen Kataloge installiert sind. Anschließend können Sie Daten aus dieser Umgebung über den Katalog abrufen, indem Sie die Tabellen oder APIs abfragen, die diese Informationen bereitstellen.
Die meisten Mandanten installieren nur einen Katalog, aber es ist möglich, einen Katalog in mehreren Umgebungen des Mandanten zu installieren.
Umgebungen mit Katalogen im Mandanten suchen
Verwenden Sie den Befehl pac admin list, um die Umgebungen mit Katalogen in Ihrem Mandanten anzuzeigen.
Anmerkung
Für diesen Befehl ist ein Administrator-Authentifizierungsprofil erforderlich.
Wenn Sie diesen Befehl verwenden, müssen Sie den folgenden Parameter --application
mit dem Wert 83a35943-cb41-4266-b7d2-81d60f383695
verwenden. Dieser Wert ist die Anwendungs-ID, die dem Katalog zugeordnet ist.
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
Katalogtabellen
Wenn Sie die Power Platform-Katalogmanageranwendung in einer Umgebung Ihres Mandanten installieren, werden die Tabellen, die in der Referenz für die Katalogtabellen/-Entität in Power Platform aufgeführt sind, nur dieser Umgebung hinzugefügt.
Einige der wichtigsten Tabellen, die Sie verwenden können, finden Sie in der folgenden Tabelle:
Table | Beschreibung |
---|---|
Genehmigungsanforderung (mspcat_certificationrequest) | Enthält Genehmigungsdatensätze, die zur Verarbeitung neuer oder aktualisierter Übermittlungen an das Katalogsystem verwendet werden. |
Katalogherausgeber (mspcat_publisher) | Die Herausgeberentität zum Speichern von TPS-Herausgeberdaten. |
Katalogartikel (mspcat_applications) | Eintrag, der im Katalog angezeigt wird |
Paket (mspcat_packages) | Bereitstellungsressourcen für einen Katalogartikel. |
Installationsverlauf (mspcat_InstallHistory) | Enthält den Datensatz der Installationen und ihren Status |
Installationsaktivität (mspcat_InstallActivity) | Installationsverlaufs-Aktivitäts-IDs |
Kataloginformationen anzeigen
Es gibt zwei Dataverse Meldungen, die Sie verwenden können, um Informationen über den Katalog abzurufen.
mspcat_GetPowerCatalogInformation
Diese Meldung soll schnell sein und die minimalen Berechtigungen und beschreibenden Daten für den Katalog bereitstellen.mspcat_GetPowerCatalogDetails
Verwenden Sie den Inhalt dieser Meldung, um das Übermittlungsdokument auszufüllen und die Beschriftungen festzulegen, die angeben, wie ein Katalogelement und ein Herausgeber für diesen Katalog aufgerufen werden sollen.
mspcat_GetPowerCatalogInformation
Die mspcat_GetPowerCatalogInformation
Nachricht verfügt über einen einzelnen permissionsonly
booleschen Parameter und gibt die folgenden Informationen zurück, die durch den mspcat_GetPowerCatalogInformationResponse
komplexen Typ definiert sind:
Name des Dataflows | typ | Beschreibung |
---|---|---|
SolutionVersion |
string | Version der installierten Kataloglösung |
CatalogDescription |
string | Beschreibt, wofür dieser Katalog dient |
CanRead |
Boolesch | Kann der Benutzende die Elemente im Katalog lesen? |
CatalogName |
string | Name des in dieser Umgebung installierten Katalogs |
ImageLink |
string | Wenn dies festgelegt, ist es das Bild für den Katalog |
CanSubmit |
Boolesch | Kann der Benutzende Elemente an den Katalog übermitteln? |
Wenn der boolesche permissionsonly
-Parameter „true“ ist, werden die CatalogDescription
-, CatalogName
- und ImageLink
-Werte nicht zurückgegeben. Die SolutionVersion
-, CanRead
- und CanSubmit
-Werte werden immer zurückgegeben.
Die folgende statische GetPowerCatalogInformationExample
-Methode ruft Daten mithilfe der mspcat_GetPowerCatalogInformationRequest
- und mspcat_GetPowerCatalogInformationResponse
-Klassen ab, die für die mspcat_GetPowerCatalogInformation
-Meldung über den Befehl pac modelbuilder build generiert wurden.
/// <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
Mit permissionsonly
gleich 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
Generieren von Klassen mit früher Bindung für das SDK für .NET
Das Dataverse-SDK für .NET verwenden
mspcat_GetPowerCatalogDetails
Verwenden Sie die von mspcat_GetPowerCatalogDetails
zurückgegebenen Informationen, um das Übermittlungsdokument auszufüllen und die Beschriftungen festzulegen, die angeben, wie ein Katalogelement für diesen Katalog aufgerufen werden soll.
Diese Funktion gibt ein Objekt mit einer einzelnen CatalogDetails
Zeichenfolgeneigenschaft zurück, die eine codierte Zeichenfolge enthält. Nach der Decodierung enthält die Zeichenfolge JSON-Daten mit den folgenden Eigenschaften:
Name des Dataflows | typ | Beschreibung |
---|---|---|
catalogId |
string | Die eindeutige ID des Katalogs |
isSuccess |
string | Nur zur internen Verwendung. |
sourceOptions |
Optionsarray | Die Optionen aus der mspcat_certificationrequest_requestsource globalen Auswahl. |
categoryOptions |
Optionsarray | Die Optionen aus der mspcat_catalogbusinesscategory globalen Auswahl. |
publisherLocalizedDisplayName |
string | Der lokalisierte Name des Katalogherausgebers. |
catalogItemLocalizedDisplayName |
string | Der lokalisierte Name, der verwendet wird, um auf Katalogelemente zu verweisen. |
Die folgende statische GetPowerCatalogDetailsExample
-Methode ruft Daten mithilfe der mspcat_GetPowerCatalogDetailsRequest
- und mspcat_GetPowerCatalogDetailsResponse
-Klassen ab, die für die mspcat_GetPowerCatalogDetails
-Meldung über den Befehl pac modelbuilder build generiert wurden.
/// <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
Die statische GetPowerCatalogDetailsExample
Methode schreibt in etwa Folgendes in die Konsole:
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
Generieren von Klassen mit früher Bindung für das SDK für .NET
Das Dataverse-SDK für .NET verwenden
Elemente im Katalog anzeigen
Sie können Elemente im Katalog mithilfe der PAC-CLI oder durch Abfragen der Tabelle Katalogelement (mspcat_applications) entdecken.
PAC-CLI verwenden
Verwenden Sie den Befehl pac catalog list, um Elemente im Katalog anzuzeigen.
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
Sie können diese Parameter auch verwenden, um zurückgegebene Datensätze zu filtern:
Parameter | Alias | Description |
---|---|---|
--catalog-item-id |
-cid |
Katalogelement-ID, nach der gesucht werden soll. Wenn die Katalogelemente-ID verwendet wird, werden alle --catalog-item-name -Parameterwerte ignoriert. |
--catalog-item-name |
-n |
Catalog-Element-Name, nach dem gesucht werden soll. |
--include-active |
-ia |
Bezieht aktive Elemente mit ein. |
Verwenden Sie den --json
Parameter, um JSON-Daten zurückzugeben.
Verwenden Sie den --environment
-Parameter (-env
), um einen Katalog in einer anderen Umgebung abzufragen.
Dataverse-Tabellen abfragen
Informationen zu Katalogelementen befinden sich in der Tabelle Katalogelement (mspcat_applications), sodass Sie Daten daraus wie aus jeder anderen Dataverse Tabelle abrufen können.
Die folgende statische RetrieveCatalogItems
Methode ruft eine Tabelle mit Daten aus den Tabellen Catalog Item (mspcat_applications) und Package (mspcat_packages) zu Elementen im Katalog ab und druckt sie. Diese Funktion hängt vom ConsoleTables-Paket NuGet ab, um die Tabelle in einer Konsolenanwendung zu rendern.
/// <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();
}
Die Ausgabe dieses Beispiels könnte in etwa wie folgt aussehen:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
| 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 |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Das Dataverse-SDK für .NET verwenden
Daten mithilfe von QueryExpression abfragen