Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este tutorial está destinado a permitir a los administradores de Power Platform para que puedan aprovechar la API de Power Platform para instalar aplicaciones de las que sus inquilinos ya tienen derecho. Estas aplicaciones deben estar visibles en el Centro de administración de Power Platform bajo Entornos>[environment-name]>Recursos>aplicaciones Dynamics 365.
En este tutorial, aprenderá a:
- Cree un script de Power Automate o de flujo de trabajo de Logic Apps (Azure) que se autentique con la API de Power Platform.
- Llamar a la API Obtener paquete de aplicación de entorno para recuperar la lista de aplicaciones que puede instalar en un entorno específico
- Instalar la aplicación utilizando la API del paquete de instalación de la aplicación
- Encuestar para conocer el estado de la API de estado de instalación de la operación de instalación Obtener paquete de aplicación
- Notificar por correo electrónico una vez que se complete la instalación
En este escenario de ejemplo, un cliente busca instalar Grupos de Office en un entorno específico de su elección.
Elija una herramienta que pueda autenticarse con la API de Power Platform
La siguiente información proporciona detalles sobre cómo conectarse a Power Platform mediante programación. Este tutorial incluye el uso de Azure Logic Apps como un cliente común para los administradores que trabajan en el espacio de Azure y un ejemplo nativo de Power Platform CLI.
Crear el flujo de trabajo y configurar las variables
Para comenzar, en este tutorial utilizamos un flujo de trabajo Logic Apps. Un flujo de Power Automate también es aceptable, y cualquier otro motor de orquestación que su empresa prefiera utilizar para la automatización. Todas las llamadas para recuperar datos utilizan API RESTful, por lo que cualquier herramienta que admita REST funciona con este tutorial.
Visite Azure Portal y luego cree una nueva aplicación lógica y asígnele un nombre:
Después de que finalice el aprovisionamiento, edite el flujo de trabajo con el diseñador y configure un desencadenador de recurrencia para que se ejecute según la programación que elija:
Para el resto de este tutorial, necesitará un ID ambiente y un nombre de aplicación para completar los pasos siguientes:
- ambiente Id: El ID del ambiente en el que instalarías el paquete. Esta ID no es la ID de la organización.
- Nombre de la aplicación: el nombre de la aplicación que estás intentando instalar.
A continuación nos autenticamos con Microsoft Entra y recuperamos un token para llamar a la Power Platform API. Si no ha completado la configuración de Microsoft Entra, consulte Autenticación.
En este tutorial, estamos usando una credencial de usuario con contraseña para obtener un token.
Luego analizamos la respuesta del token de Microsoft Entra en un objeto indicado usando este esquema JSON en la acción 'Analizar JSON':
{
"properties": {
"access_token": {
"type": "string"
},
"expires_in": {
"type": "integer"
},
"ext_expires_in": {
"type": "integer"
},
"token_type": {
"type": "string"
}
},
"type": "object"
}
Recuperar paquetes disponibles para instalar
En esta sección recuperamos la lista de aplicaciones que puedes instalar en un ambiente específico. Asegúrese de tener su id. del entorno disponible, y que este entorno tenga creada una base de datos de Dataverse.
Punto de conexión de paquete de aplicaciones de entorno
Ahora hacemos nuestra primera llamada a la Power Platform API. Usaremos Obtener API de paquete de aplicación de entorno para recuperar todos los paquetes disponibles que podemos instalar para la organización de Dataverse dada. Asegúrese de que la identidad que está utilizando, ya sea una entidad de servicio o un nombre de usuario/contraseña, tenga acceso a Dataverse y el rol de seguridad apropiado.
GET https://api.powerplatform.com/appmanagement/environments/{environmentId}/applicationPackages?api-version=2022-03-01-preview
Luego analizamos respuesta en un objeto tipificado usando este esquema JSON con la acción 'Analizar 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"
}
Instalar la aplicación
Ahora podemos tomar una de las aplicaciones del paso anterior e instalarla. Digamos que le gustaría instalar la aplicación "Grupos de Office 365". Seleccione el valor en el campo PackageUniqueName, en este caso, es Office365Groups, para utilizar en el siguiente paso.
Instalar la API de la aplicación
Utilizamos la API de instalación de aplicaciones punto de conexión para Gatillo la instalación. Asegúrese de configurar la propiedad uniqueName en Office365Groups en este ejemplo.
POST https://api.powerplatform.com/appmanagement/environments/{environmentId}/applicationPackages/{uniqueName}/install?api-version=2022-03-01-preview
Y el cuerpo de la solicitud tiene la entrada de aplicación del paso anterior:
{
"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"
]
}
El siguiente código es un ejemplo respuesta:
{
"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
}
Luego usamos la acción Analizar JSON para obtener el ID de operación para nuestros pasos posteriores.
Consulta de estado de operación
Ahora monitoreamos el progreso de la instalación de la aplicación sondeando cada cierto tiempo usando el ID de operación del paso anterior.
Usar el control Hasta
Al evaluar respuesta a partir del sondeo de OperationID para cualquier estado terminal como Cancelado, Error o Exitoso, monitoreamos eficazmente que el proceso se complete. Esto se hace Listo fácilmente con el control Until, que se repite continuamente hasta que se cumple esta condición.
Utilizamos el Estado de instalación de la aplicación punto de conexión para supervisar la instalación. Asegúrese de configurar la propiedad operationId a partir del paso anterior.
GET https://api.powerplatform.com/appmanagement/environments/{environmentId}/operations/{operationId}?api-version=2022-03-01-preview
Se muestra un ejemplo de salida:
{
"status": "NotStarted",
"createdDateTime": "2022-03-22T20:05:58.9414573Z",
"lastActionDateTime": null,
"error": null,
"statusMessage": null,
"operationId": "523b51a8-6af4-40cd-aa7d-86bddfa6697b"
}
Desde aquí, podemos evaluar el estado y, si es uno de los valores terminales, podemos romper el ciclo.
Enviar un correo electrónico
Ahora que el monitoreo ha concluido, podemos compartir el resultado por correo electrónico como una actividad de ejemplo.