Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa esercitazione ha lo scopo di consentire agli amministratori di Power Platform di utilizzare l'API di Power Platform per installare applicazioni il cui tenant dispone già di diritti. Queste applicazioni devono essere visibili nell'interfaccia di amministrazione di Power Platform in Ambienti>[nome-ambiente]>Risorse>App Dynamics 365.
In questa esercitazione apprenderai a:
- Creare un flusso di lavoro di Power Automate o di App per la logica (Azure) che esegue l'autenticazione con l'API di Power Platform.
- Chiamare l'API Get Environment Application Package per recuperare l'elenco di applicazioni che puoi installare in un ambiente specifico
- Installare l'applicazione utilizzando l'API Install Application Package
- Eseguire il polling dello stato dell'API Install Operation Get Application Package Install Status
- Inviare una notifica via e-mail una volta completata l'installazione
In questo scenario di esempio, un cliente sta cercando di installare Gruppi di Office in uno specifico ambiente di sua scelta.
Scegliere uno strumento che consente di eseguire l'autenticazione con l'API di Power Platform
Le seguenti informazioni forniscono dettagli su come connettersi a Power Platform programmaticamente. Questa esercitazione include l'uso di App per la logica di Azure come client comune per gli amministratori che lavorano nello spazio di Azure e un esempio di interfaccia della riga di comando di Azure di Power Platform nativa.
Creare il flusso di lavoro e impostare le variabili
Per iniziare, in questo tutorial utilizzeremo un flusso di lavoro App per la logica. Anche un flusso di Power Automate è accettabile e qualsiasi altro motore di orchestrazione che l'organizzazione preferisce utilizzare per l'automazione. Tutte le chiamate per recuperare i dati utilizzano API RESTful, pertanto qualsiasi strumento che supporti REST funzionerà con questo tutorial.
Visita il portale di Azure, quindi crea una nuova app per la logica e assegnale un nome:
Al termine del provisioning, modifica il flusso di lavoro utilizzando la finestra di progettazione e imposta un trigger di ricorrenza da eseguire secondo la pianificazione desiderata:
Per il resto di questo tutorial, avrai bisogno di un ID ambiente e di un nome applicazione per completare i passaggi successivi:
- ambiente Id: ID del ambiente su cui vuoi installare il pacchetto. Questo ID non è l'ID dell'organizzazione.
- Nome applicazione: il nome dell'applicazione che stai tentando di installare.
Successivamente eseguiamo l'autenticazione con Microsoft Entra e recuperiamo un token per chiamare l'API Power Platform . Se non è stata completata la configurazione di Microsoft Entra, vedere Autenticazione.
In questa esercitazione, utilizziamo una credenziale utente con password per ottenere un token.
Esaminiamo quindi la risposta del token di Microsoft Entra in un oggetto tipizzato usando questo schema JSON nell'azione "Parse JSON":
{
"properties": {
"access_token": {
"type": "string"
},
"expires_in": {
"type": "integer"
},
"ext_expires_in": {
"type": "integer"
},
"token_type": {
"type": "string"
}
},
"type": "object"
}
Recuperare pacchetti disponibili da installare
In questa sezione recuperiamo l'elenco delle applicazioni che è possibile installare su uno specifico ambiente. Assicurati di avere l'id ambiente disponibile e che questo ambiente disponga di un database Dataverse creato.
Endpoint Environment Application Package
Ora effettuiamo la nostra prima chiamata all'API. Power Platform Useremo l'API Get Environment Application Package per recuperare tutti i pacchetti disponibili che possiamo installare per l'organizzazione Dataverse specificata. Assicurati che l'identità che stai utilizzando, ovvero un'entità servizio o un nome utente/password, abbia accesso a Dataverse e disponga del ruolo di sicurezza appropriato.
GET https://api.powerplatform.com/appmanagement/environments/{environmentId}/applicationPackages?api-version=2022-03-01-preview
Analizziamo quindi risposta in un oggetto tipizzato utilizzando questo schema JSON con l'azione 'Analizza 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"
}
Installare l'applicazione
Ora possiamo installare una delle applicazioni del passaggio precedente. Ad esempio, l'applicazione "Gruppi di Office 365". Seleziona il valore nel campo PackageUniqueName, in questo caso Office365Groups, da utilizzare nel passaggio successivo.
API Install application
Utilizziamo l' API di installazione dell'applicazione endpoint per grilletto l'installazione. Assicurati di impostare la proprietà uniqueName su Office365Groups in questo esempio.
POST https://api.powerplatform.com/appmanagement/environments/{environmentId}/applicationPackages/{uniqueName}/install?api-version=2022-03-01-preview
E corpo della richiesta ha la voce di applicazione del precedente passaggio:
{
"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"
]
}
Il codice seguente è un esempio risposta:
{
"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
}
Quindi utilizziamo l'azione Analizza JSON per ottenere l'operationID per i passaggi successivi.
Eseguire il polling dello stato dell'operazione
Ora monitoriamo l'avanzamento dell'installazione dell'applicazione eseguendo di tanto in tanto un polling utilizzando l'operationID del precedente passaggio.
Utilizzare il controllo Until
Valutando risposta interrogando OperationID per qualsiasi stato terminale come Annullato, Non riuscito o Riuscito, monitoriamo efficacemente il completamento del processo. Fatto è facile da realizzare con il controllo Until, che esegue un ciclo continuo finché questa condizione non viene soddisfatta.
Utilizziamo lo stato di installazione dell'applicazione endpoint per monitorare l'installazione. Assicurati di impostare la proprietà operationId del passaggio precedente.
GET https://api.powerplatform.com/appmanagement/environments/{environmentId}/operations/{operationId}?api-version=2022-03-01-preview
Viene mostrato un esempio di output:
{
"status": "NotStarted",
"createdDateTime": "2022-03-22T20:05:58.9414573Z",
"lastActionDateTime": null,
"error": null,
"statusMessage": null,
"operationId": "523b51a8-6af4-40cd-aa7d-86bddfa6697b"
}
Da qui, possiamo valutare lo stato e se è uno dei valori del terminale possiamo interrompere il ciclo.
Inviare un messaggio e-mail
Ora che il monitoraggio è terminato, possiamo condividere il risultato via e-mail come esempio di attività.