Llamar acciones de Power Automate desde la API web

Completado

Dataverse contiene una característica que permite a los usuarios avanzados crear sus propios conjuntos personalizados de lógica empresarial, llamados acciones. Desde la perspectiva del desarrollador, piense en una acción como una "operación reutilizable que puede tener efectos secundarios observables". Entre estos efectos secundarios se incluyen la creación o actualización de filas.

Dataverse tiene varias acciones prediseñadas y los desarrolladores pueden crear acciones personalizadas mediante la característica API personalizada de Dataverse.

Una característica de las acciones es su capacidad de invocarlas a través de la API web de Dataverse. Como resultado, puede encapsular las automatizaciones con escasa programación de tal manera que pueda usarlas en casi cualquier escenario al interactuar con ellas a través de la solicitud y respuesta de la API web asociada.

Si bien en esta lección no se trata cómo crear acciones en detalle, suponemos que ya tiene un conocimiento básico de cómo crearlas. Puede revisar su documentación si necesita más información sobre cómo crear una acción. Consulte la sección Crear API personalizadas para obtener información detallada sobre cómo crear acciones de Dataverse.

Ejecutar acciones con la API web

Cuando se crea una nueva acción en el entorno de Dataverse, el marco también crea un mensaje de solicitud de API web correspondiente. Puede ejecutar estas solicitudes utilizando una operación POST similar al siguiente ejemplo:

POST [Organization URI]/api/data/v9.2/WinOpportunity HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0

{
 "Status": 3,
 "OpportunityClose": {
  "subject": "Won Opportunity",
  "opportunityid@odata.bind": "[Organization URI]/api/data/v9.2/opportunities(b3828ac8-917a-e511-80d2-00155d2a68d2)"
 }
}

El ejemplo anterior es una llamada de solicitud HTTP a la acción WinOpportunity para una oportunidad con el valor de opportunityid de b3828ac8-917a-e511-80d2-00155d2a68d2.

Llamar a acciones de Dataverse precompiladas

Dataverse viene con un conjunto de acciones existentes que puede usar para realizar operaciones comunes. Algunas de estas acciones pueden ser solo válidas para aplicaciones basadas en modelo o de Dynamics 365. Por ejemplo, la acción CalculatePrice calcula el precio en una oportunidad/presupuesto/pedido/factura, por lo que solo valdría para una aplicación de Dynamics 365 Sales donde exista esa funcionalidad.

Para obtener más información sobre qué acciones precompiladas están disponibles para su uso a través de la API web, consulte la publicación Referencia de las acciones de API web.

Acciones independientes y enlazadas

Una acción se puede crear como independiente, lo que significa que no tiene una tabla de Dataverse correlacionada con ella. O puede construirse como enlazada, lo que significa que la lógica está vinculada a una fila específica de la tabla. Los desarrolladores de SQL podrían pensar en estas acciones como similares a los procedimientos almacenados (acciones independientes) frente a los desencadenadores (acciones enlazadas). Sin embargo, a diferencia de los desencadenadores de SQL, también puede ejecutar acciones enlazadas a petición proporcionando el id. de fila de tabla correspondiente como su parámetro.

Las acciones independientes son beneficiosas para la lógica genérica que se ejecutan fuera del contexto de una fila de tabla específica, como la acción WinOpportunity a la que se hizo referencia anteriormente. Para ejecutar una acción enlazada contra una fila específica, debe proporcionar el id. de esa fila en el URI de la solicitud:

POST [Organization URI]/api/data/v9.2/contacts(94d8c461-a27a-e511-80d2-00155d2a68d2)/Microsoft.Dynamics.CRM.contoso_AddNoteToContact HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
OData-MaxVersion: 4.0
OData-Version: 4.0

{
 "NoteTitle": "New Note Title",
 "NoteText": "This is the text of the note"
}

El ejemplo anterior llama a una acción personalizada que se creó previamente en la solución denominada contoso_AddNoteToContact para un contacto con id. de 94d8c461-a27a-e511-80d2-00155d2a68d2 y luego pasa los parámetros NoteTitle y NoteText a la acción. El comportamiento esperado de este procedimiento sería que se agregase una nueva nota al contacto correspondiente con el título y el texto proporcionados.

Más detalles

Para obtener más información sobre cómo llamar acciones en el código, consulte Usar acciones de API web.