Sdílet prostřednictvím


Kurz: Instalace aplikace do cílového prostředí

Tento kurz je zaměřen na umožnění správcům Power Platform, aby mohli využívat výhod API Power Platform pro instalaci aplikací, na které jejich tenant již má oprávnění. Tyto aplikace by měly být viditelné v centru pro správu Power Platform v části Prostředí>[název prostředí]>Prostředky>Aplikace Dynamics 365.

V tomto kurzu se naučíte:

  1. Vytvořte Power Automate nebo pracovní postup Logic Apps (Azure), který se ověřuje pomocí Power Platform API.
  2. Voláním API Načíst balíček aplikace prostředí získáte seznam aplikací, které můžete nainstalovat do konkrétního prostředí
  3. Instalace aplikace pomocí API Nainstalovat balíček prostředí
  4. Dotaz na stav operace instalace pomocí API Získat stav instalace balíčku aplikace
  5. Po dokončení instalace upozornit e-mailem

V tomto příkladu scénáře chce zákazník nainstalovat skupiny Office do konkrétního prostředí dle vlastního výběru.

Vyberte nástroj, který je možné ověřit pomocí API Power Platform

Následující informace poskytují podrobnosti o programovém připojení k Power Platform . Tento kurz zahrnuje použití Azure Logic Apps jako běžného klienta pro správce pracující v prostoru Azure a příklad nativního rozhraní příkazového řádku Power Platform.

Vytvoření pracovního postupu a nastavení proměnných

Pro začátek v tomto tutoriálu používáme pracovní postup Logic Apps. Tok Power Automate je také přijatelný a jakýkoli jiný nástroj pro orchestraci, který vaše společnost preferuje používat pro automatizaci. Všechna volání k načtení dat používají rozhraní RESTful API, takže s tímto výukovým programem pracují všechny nástroje, které podporují REST.

Navštivte Azure Portal a poté vytvořte novou aplikaci logiky a pojmenujte ji:

Vytvořit aplikaci logiky.

Po dokončení zřizování upravte pracovní postup pomocí Návrháře a nastavte trigger opakování, aby se spouštěl podle vašeho výběru:

Nastavit spouštěč opakování.

Pro zbytek tohoto kurzu budete potřebovat ID prostředí a název aplikace, abyste mohli provést následující kroky:

  • Environment Id: ID prostředí, do kterého byste balíček nainstalovali. Toto ID není ID organizace.
  • Název aplikace: Název aplikace, kterou se pokoušíte nainstalovat.

Dále se ověříme pomocí Microsoft Entra a načteme token pro volání rozhraní Power Platform API. Pokud jste ještě nedokončili nastavení Microsoft Entra, přečtěte si téma Ověřování.

V tomto kurzu používáme k získání tokenu přihlašovací údaje uživatele s heslem.

Poté parsujeme odpověď tokenu Microsoft Entra do zadaného objektu pomocí tohoto schématu JSON v akci „Parse JSON“:

{
    "properties": {
        "access_token": {
            "type": "string"
        },
        "expires_in": {
            "type": "integer"
        },
        "ext_expires_in": {
            "type": "integer"
        },
        "token_type": {
            "type": "string"
        }
    },
    "type": "object"
}

Parsování odpovědi tokenu Microsoft Entra na objekt se silným typováním.

Získání dostupných balíčků k instalaci

V této části načteme seznam aplikací, které můžete nainstalovat do konkrétního prostředí. Ujistěte se, že máte dostupné ID prostředí a že toto prostředí má vytvořenou databázi Dataverse.

Koncový bod balíčku aplikace prostředí

Nyní provedeme první volání do Power Platform API. Použijeme API Načíst balíček aplikací prostředí k načtení všech dostupných balíčků, které můžeme nainstalovat pro danou organizaci Dataverse. Ujistěte se, že identita, kterou používáte, ať už je to správce služby, nebo uživatelské jméno/heslo, má přístup k Dataverse a příslušné roli zabezpečení.

GET https://api.powerplatform.com/appmanagement/environments/{environmentId}/applicationPackages?api-version=2022-03-01-preview

Poté analyzujeme odpověď do zadaného objektu pomocí tohoto schématu JSON s akcí „Parse JSON“:

{
    "properties": {
        "value": {
            "items": {
                "properties": {
                    "applicationDescription": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "applicationId": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "applicationName": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "applicationVisibility": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "catalogVisibility": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "crmMaxVersion": {},
                    "crmMinversion": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "customHandleUpgrade": {
                        "type": "boolean"
                    },
                    "endDateUtc": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "errorDetails": {},
                    "id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "instancePackageId": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "learnMoreUrl": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "localizedDescription": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "localizedName": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "publisherId": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "publisherName": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "singlePageApplicationUrl": {},
                    "startDateUtc": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "state": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "supportedCountries": {
                        "items": {
                            "type": [
                                "string",
                                "null"
                            ]
                        },
                        "type": "array"
                    },
                    "uniqueName": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "version": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "required": [
                    "id",
                    "uniqueName",
                    "version",
                    "localizedDescription",
                    "localizedName",
                    "applicationId",
                    "applicationName",
                    "applicationDescription",
                    "singlePageApplicationUrl",
                    "publisherName",
                    "publisherId",
                    "learnMoreUrl",
                    "crmMinversion",
                    "crmMaxVersion",
                    "customHandleUpgrade",
                    "instancePackageId",
                    "state",
                    "catalogVisibility",
                    "applicationVisibility",
                    "errorDetails",
                    "startDateUtc",
                    "endDateUtc",
                    "supportedCountries"
                ],
                "type": "object"
            },
            "type": "array"
        }
    },
    "type": "object"
}

Instalace aplikace

Nyní můžeme vzít jednu z aplikací z předchozího kroku a nainstalovat ji. Řekněme, že byste chtěli nainstalovat aplikaci „Office 365 Groups“. Vyberte hodnotu v poli PackageUniqueName, v tomto případě je to Office365Groups, která se má použít v dalším kroku.

API Instalace aplikace

Ke spuštění instalace využíváme Instalační aplikační API koncový bod. V tomto příkladu nastavte vlastnost uniqueName na Office365Groups.

POST https://api.powerplatform.com/appmanagement/environments/{environmentId}/applicationPackages/{uniqueName}/install?api-version=2022-03-01-preview

A tělo požadavku má záznam aplikace z dřívějšího krok:

{
                "id": "ce3bab3c-ada1-40cf-b84b-49b26603a281",
                "uniqueName": "Office365Groups",
                "version": "2.9.0.3",
                "localizedDescription": "With Office 365 groups, you can collaborate with people across your company even if they aren’t Dynamics 365 users. Groups provide a single location to share conversations, meetings, documents, and more.",
                "localizedName": "Office 365 Groups",
                "applicationId": "2f17f077-4175-4d82-b82b-17cd8950b74f",
                "applicationName": "Office365Groups",
                "applicationDescription": "",
                "singlePageApplicationUrl": "",
                "publisherName": "Microsoft CRM Package",
                "publisherId": "255953fd-9ab8-4146-bfa1-859aae326ae9",
                "learnMoreUrl": "http://go.microsoft.com/fwlink/?LinkID=525719",
                "crmMinversion": "8.0",
                "crmMaxVersion": null,
                "customHandleUpgrade": false,
                "instancePackageId": null,
                "state": "None",
                "catalogVisibility": "None",
                "applicationVisibility": "All",
                "errorDetails": null,
                "startDateUtc": "2016-01-01T00:00:00Z",
                "endDateUtc": "2050-01-01T00:00:00Z",
                "supportedCountries": [
                    "AE",
                    "AL",
                    "AM",
                    "AO",
                    "VN",
                    "ZA",
                    "ZW"
                ]
            }

Následující kód je příklad odpověď:

{
        "id": "9a44d33b-6055-4c9b-aa4a-4c410a22e9ad",
        "packageId": "ce3bab3c-ada1-40cf-b84b-49b26603a281",
        "applicationId": "2f17f077-4175-4d82-b82b-17cd8950b74f",
        "applicationName": "Office365Groups",
        "applicationDescription": "",
        "singlePageApplicationUrl": "",
        "publisherName": "Microsoft CRM Package",
        "publisherId": "255953fd-9ab8-4146-bfa1-859aae326ae9",
        "packageUniqueName": "Office365Groups",
        "packageVersion": "2.9.0.3",
        "localizedDescription": "With Office 365 groups, you can collaborate with people across your company even if they aren’t Dynamics 365 users. Groups provide a single location to share conversations, meetings, documents, and more.",
        "localizedName": "Office 365 Groups",
        "learnMoreUrl": "http://go.microsoft.com/fwlink/?LinkID=525719",
        "termsOfServiceBlobUris": [
            "https://crmprodnam.blob.core.windows.net/preferredsolution/microsoft_tos_dbd53f75-b571-46ad-b9ce-21b5656b85dd_1?sv=2018-03-28&sr=c&sig=v5iBtDum0N6A0sqyyhIkPECibmpGOKGiSmmm3ALGIR0%3D&se=2022-03-23T19%3A35%3A59Z&sp=r"
        ],
        "applicationVisibility": "All",
        "lastOperation": {
            "state": "InstallRequested",
            "createdOn": "2022-03-22T19:35:59.7425066Z",
            "modifiedOn": null,
            "errorDetails": null,
            "statusMessage": null,
            "instancePackageId": "9a44d33b-6055-4c9b-aa4a-4c410a22e9ad",
            "operationId": "4fde996a-bf68-413c-b2bf-33f21a7e9afb"
        },
        "customHandleUpgrade": false
    }

Pak použijeme akci Parse JSON k získání OperationID pro naše následující kroky.

Dotaz na stav operace

Nyní sledujeme průběh instalace aplikace tak, že se občas dotazujeme pomocí OperationID z předchozího krok.

Použití ovládacího prvku Until

Vyhodnocením odpověď z dotazování OperationID na jakýkoli stav terminálu, jako je Zrušeno, Neúspěšné nebo Úspěch, efektivně monitorujeme dokončení procesu. To lze snadno provést pomocí ovládacího prvku Until, který nepřetržitě prochází smyčkou, dokud není tato podmínka splněna.

Ovládací prvek Until.

Ke sledování instalace využíváme Stav instalace aplikace koncový bod. Nezapomeňte nastavit vlastnost operationId z předchozího kroku.

GET https://api.powerplatform.com/appmanagement/environments/{environmentId}/operations/{operationId}?api-version=2022-03-01-preview

Je zobrazen příklad výstupu:

{
  "status": "NotStarted",
  "createdDateTime": "2022-03-22T20:05:58.9414573Z",
  "lastActionDateTime": null,
  "error": null,
  "statusMessage": null,
  "operationId": "523b51a8-6af4-40cd-aa7d-86bddfa6697b"
}

Odtud můžeme vyhodnotit stav, a pokud je to jedna z koncových hodnot, můžeme smyčku přerušit.

Odeslání e-mailu

Nyní, když monitorování skončilo, můžeme výsledek sdílet e-mailem jako příklad aktivity.

Odeslat e-mail (v2) o stavu aktivity.