Usar API de programación de proyectos V1 con Power Automate
Se aplica a: Project Operations para escenarios basados en recursos/no mantenidos, implementación lite: del acuerdo a la factura proforma
Este artículo describe un flujo de ejemplo que muestra cómo crear un plan de proyecto completo usando Microsoft Power Automate, cómo crear un conjunto de operaciones y cómo actualizar una entidad. El ejemplo demuestra cómo crear un proyecto, un miembro del equipo del proyecto, conjuntos de operaciones, tareas del proyecto y asignaciones de recursos. Este artículo también explica cómo actualizar una entidad y ejecutar un conjunto de operaciones.
El ejemplo de este artículo utiliza la API PssCreateV1. Para ver un ejemplo que utiliza la API PssCreateV2, consulte API de programación de proyectos V2 con Power Automate.
La siguiente es una lista completa de los pasos que están documentados en el flujo de muestra en este artículo:
- Crear un desencadenador de Power Apps
- Crear un proyecto
- Inicializar una variable para el miembro del equipo
- Crear un miembro del equipo genérico
- Crear un conjunto de opciones
- Inicializar una variable para el Id. de Project Bucket
- Crear un cubo de proyecto
- Inicializar una variable para el número de tareas
- Inicializar una variable para el id. de tarea de proyecto
- Hacer hasta
- Establecer una tarea de proyecto
- Crear una tarea de proyecto
- Crear una asignación de recurso
- Decrementar una variable
- Renombrar una tarea de proyecto
- Ejecutar un conjunto de opciones
Supuestos
Este artículo asume que tiene un conocimiento básico de la plataforma de Dataverse, flujos en la nube y la API de la programación del proyecto. Para obtener más información, consulte la sección Referencias más adelante en este artículo.
Creación de un flujo
Seleccionar un entorno
Puede crear el flujo de Power Automate en su entorno.
- Vaya a https://flow.microsoft.com e inicie sesión con sus credenciales de administrador.
- En la esquina superior derecha, seleccione Entornos .
- En la lista, seleccione el entorno donde esté instalado Dynamics 365 Project Operations.
Crear una solución
Siga estos pasos para crear un flujo compatible con la solución. Al crear un flujo compatible con la solución, puede exportar más fácilmente el flujo para usarlo más tarde.
- En el panel de navegación, seleccione Soluciones.
- En la página Soluciones, seleccione Nueva solución.
- En el cuadro de diálogo nueva solución, establezca los campos requeridos y, a continuación, seleccione Crear.
Paso 1: crear un desencadenador de Power Apps
- En la página Soluciones, seleccione la solución que creó y, a continuación Nuevo.
- En el panel izquierdo, seleccione Flujos de nube>Automatización>Flujo de nube>Instantáneo.
- En el campo Nombre de flujo, introduzca Programar flujo de demostración de API.
- En la lista Elegir cómo desencadenar este flujo, seleccione Power Apps. Cuando cree un desencadenador de Power Apps, la lógica depende de usted como autor. Por ejemplo, en este artículo, deje los parámetros de entrada en blanco con fines de prueba.
- Seleccione Crear.
Paso 2: crear un proyecto
Siga estos pasos para crear una estimación de proyecto.
En el flujo que creó, seleccione Nuevo paso.
En el cuadro de diálogo Elegir una operación, en el campo de búsqueda, introduzca Realizar una acción no enlazada. Entonces, en la pestaña Acciones, seleccione la operación en la lista de resultados.
En el nuevo paso, selecciones los puntos suspensivos (…) y luego elija Renombrar.
Cambie el nombre del paso Crear proyecto.
En el campo Nombre de acción, seleccione msdyn_CreateProjectV1.
En el campo msdyn_subject, seleccione Agregar contenido dinámico.
En la pestaña Expresión, en el campo de función, introduzca concat('Nombre de proyecto - ',utcNow()).
Seleccione Aceptar.
Paso 3: inicializar una variable para el miembro del equipo
- En el flujo, seleccione Nuevo paso.
- En el cuadro de diálogo Elegir una operación, en el campo de búsqueda, introduzca Inicializar variable. Entonces, en la pestaña Acciones, seleccione la operación en la lista de resultados.
- En el nuevo paso, selecciones los puntos suspensivos (…) y luego elija Renombrar.
- Cambie el nombre del paso Inicializar miembro del equipo.
- En el campo Nombre, escriba TeamMemberAction.
- En el campo Tipo, seleccione Cadena.
- En el campo Valor, introduzca msdyn_CreateTeamMemberV1.
Paso 4: crear un miembro del equipo genérico
En el flujo, seleccione Nuevo paso.
En el cuadro de diálogo Elegir una operación, en el campo de búsqueda, introduzca Realizar una acción no enlazada. Entonces, en la pestaña Acciones, seleccione la operación en la lista de resultados.
En el nuevo paso, selecciones los puntos suspensivos (…) y luego elija Renombrar.
Cambie el nombre del paso Crear miembro del equipo.
Para el campo Nombre de la acción, seleccione TeamMemberAction en el cuadro de diálogo Contenido dinámico .
En el campo Parámetros de acción, introduzca la siguiente información del parámetro.
{ "TeamMember": { "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_projectteam", "msdyn_projectteamid": "@{guid()}", "msdyn_project@odata.bind": "/msdyn_projects(@{outputs('Create_Project')?['body/ProjectId']})", "msdyn_name": "ScheduleAPIDemoTM1" } }
A continuación se ofrece una explicación de los parámetros:
- @@odata.type: nombre de entidad. Por ejemplo, introduzca "Microsoft.Dynamics.CRM.msdyn_projectteam".
- msdyn_projectteamid: la clave principal del id. del equipo del proyecto. El valor es una expresión de identificador único global (GUID). El id. se genera desde la pestaña de expresión.
- msdyn_project@odata.bind: Id. del calendario del proyecto. El valor es contenido dinámico que provenga de la respuesta del paso "Crear proyecto". Asegúrese de introducir la ruta completa y agregue contenido dinámico entre paréntesis. Se requieren comillas. Por ejemplo, introduzca "/msdyn_projects(ADD DYNAMIC CONTENT)".
- msdyn_name: nombre para mostrar del miembro del equipo. Por ejemplo, escriba "ScheduleAPIDemoTM1".
Paso 5: crear un conjunto de opciones
- En el flujo, seleccione Nuevo paso.
- En el cuadro de diálogo Elegir una operación, en el campo de búsqueda, introduzca Realizar una acción no enlazada. Entonces, en la pestaña Acciones, seleccione la operación en la lista de resultados.
- En el nuevo paso, selecciones los puntos suspensivos (…) y luego elija Renombrar.
- Cambie el nombre del paso Crear conjunto de operaciones.
- En el campo Nombre de la acción, seleccione la acción de Dataverse personalizada msdyn_CreateOperationSetV1.
- En el campo Descripción, introduzca ScheduleAPIDemoOperationSet".
- En el campo Proyecto, en el cuadro de diálogo Contenido dinámico, seleccione msdyn_CreateProjectV1Response ProjectId.
Paso 6: Inicializar una variable para el Id. de Project Bucket
- En el flujo, seleccione Nuevo paso.
- En el cuadro de diálogo Elegir una operación, en el campo de búsqueda, introduzca Inicializar variable. Entonces, en la pestaña Acciones, seleccione la operación en la lista de resultados.
- En el nuevo paso, selecciones los puntos suspensivos (…) y luego elija Renombrar.
- Cambie el nombre del paso Init Id. Project Bucket.
- En el campo Nombre, escriba project bucket id.
- En el campo Tipo, seleccione Cadena.
- En el campo Valor, introduzca @{guid()}.
Paso 7: crear un cubo de proyecto
En el flujo, seleccione Agregar una acción.
En el cuadro de diálogo Elegir una operación, en el campo de búsqueda, introduzca Realizar una acción no enlazada. Entonces, en la pestaña Acciones, seleccione la operación en la lista de resultados.
En el paso, selecciones los puntos suspensivos (…) y luego elija Renombrar.
Cambie el nombre del paso Crear cubo.
-
- En el campo Nombre de acción, seleccione msdyn_PssCreateV1.
En el campo Entidad, introduzca la siguiente información del parámetro.
{ "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_projectbucket", "msdyn_projectbucketid": "@{variables('project bucket id')}", "msdyn_name": "ScheduleAPIDemoBucket1", "msdyn_project@odata.bind": "/msdyn_projects(@{outputs('Create_Project')?['body/ProjectId']})", }
A continuación se ofrece una explicación de los parámetros:
- @@odata.type: nombre de entidad. Por ejemplo, introduzca "Microsoft.Dynamics.CRM.msdyn_projectbucket".
- msdyn_projectbucketid: el id. único del depósito del proyecto. El valor debe establecerse desde una variable dinámica del paso 6.
- msdyn_project@odata.bind: Id. del calendario del proyecto. El valor es contenido dinámico que provenga de la respuesta del paso "Crear proyecto". Asegúrese de introducir la ruta completa y agregue contenido dinámico entre paréntesis. Se requieren comillas. Por ejemplo, introduzca "/msdyn_projects(ADD DYNAMIC CONTENT)".
- msdyn_name: el nombre del cubo de proyecto.
En el campo OperationSetId, seleccione msdyn_CreateOperationSetV1Response OperationSetId en el cuadro de diálogo Contenido dinámico.
Paso 8: inicializar una variable para el número de tareas
- En el flujo, seleccione Nuevo paso.
- En el cuadro de diálogo Elegir una operación, en el campo de búsqueda, introduzca Inicializar variable. Entonces, en la pestaña Acciones, seleccione la operación en la lista de resultados.
- En el nuevo paso, selecciones los puntos suspensivos (…) y luego elija Renombrar.
- Cambie el nombre del paso Inicializar número de tareas.
- En el campo Nombre, escriba Número de tareas.
- En el campo Tipo, seleccione Entero.
- En el campo Valor, introduzca 5.
Paso 9: inicializar una variable para el id. de tarea de proyecto
- En el flujo, seleccione Nuevo paso.
- En el cuadro de diálogo Elegir una operación, en el campo de búsqueda, introduzca Inicializar variable. Entonces, en la pestaña Acciones, seleccione la operación en la lista de resultados.
- En el nuevo paso, selecciones los puntos suspensivos (…) y luego elija Renombrar.
- Cambie el nombre del paso Init ProjectTaskID.
- En el campo Nombre, escriba msdyn_projecttaskid.
- En el campo Tipo, seleccione Cadena.
- Para el campo Valor, introduzca guid() en el generador de expresiones.
Paso 10: hacer hasta
- En el flujo, seleccione Nuevo paso.
- En el cuadro de diálogo Elegir una operación, en el campo de búsqueda, introduzca Hacer hasta. Entonces, en la pestaña Acciones, seleccione la operación en la lista de resultados.
- Establezca el primer valor de la declaración condicional en la variable Número de tareas del cuadro de diálogo Contenido dinámico.
- Establezca la condición de menor o igual que.
- Establezca el segundo valor de la declaración condicional en 0.
Paso 11: establecer una tarea de proyecto
- En el flujo, seleccione Agregar una acción.
- En el cuadro de diálogo Elegir una operación, en el campo de búsqueda, introduzca Establecer variable. Entonces, en la pestaña Acciones, seleccione la operación en la lista de resultados.
- En el nuevo paso, selecciones los puntos suspensivos (…) y luego elija Renombrar.
- Cambie el nombre del paso Establecer tarea de proyecto.
- En el campo Nombre, seleccione msdyn_projecttaskid.
- Para el campo Valor, introduzca guid() en el generador de expresiones.
Paso 12: crear una tarea de proyecto
Siga estos pasos para crear una tarea de proyecto que tenga un id. único que pertenezca al proyecto actual y al cubo de proyectos que creó.
En el flujo, seleccione Nuevo paso.
En el cuadro de diálogo Elegir una operación, en el campo de búsqueda, introduzca Realizar una acción no enlazada. Entonces, en la pestaña Acciones, seleccione la operación en la lista de resultados.
En el paso, selecciones los puntos suspensivos (…) y luego elija Renombrar.
Cambie el nombre del paso Crear tarea de proyecto.
En el campo Nombre de acción, seleccione msdyn_PssCreateV1.
En el campo Entidad, introduzca la siguiente información del parámetro.
{ "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_projecttask", "msdyn_projecttaskid": "@{variables('msdyn_projecttaskid')}", "msdyn_project@odata.bind": "/msdyn_projects(@{outputs('Create_Project')?['body/ProjectId']})", "msdyn_subject": "ScheduleAPIDemoTask1", "msdyn_projectbucket@odata.bind": "/msdyn_projectbuckets(@{variables('project bucket id')})", "msdyn_start": "@{addDays(utcNow(), 1)}", "msdyn_scheduledstart": "@{utcNow()}", "msdyn_scheduledend": "@{addDays(utcNow(), 5)}" }
A continuación se ofrece una explicación de los parámetros:
- @@odata.type: nombre de entidad. Por ejemplo, introduzca "Microsoft.Dynamics.CRM.msdyn_projecttask".
- msdyn_projecttaskid: el id. único de la tarea. El valor debe establecerse en una variable dinámica de msdyn_projecttaskid.
- msdyn_project@odata.bind: Id. del calendario del proyecto. El valor es contenido dinámico que provenga de la respuesta del paso "Crear proyecto". Asegúrese de introducir la ruta completa y agregue contenido dinámico entre paréntesis. Se requieren comillas. Por ejemplo, introduzca "/msdyn_projects(ADD DYNAMIC CONTENT)".
- msdyn_subject: cualquier nombre de tarea.
- msdyn_projectbucket@odata.bind: el cubo del proyecto que contiene las tareas. El valor es el mismo que se utiliza para establecer msdyn_projectbucketid en el paso "Crear cubo". Asegúrese de introducir la ruta completa y agregue contenido dinámico entre paréntesis. Se requieren comillas. Por ejemplo, introduzca "/msdyn_projectbuckets(ADD DYNAMIC CONTENT)".
- msdyn_start: contenido dinámico para la fecha de inicio. Por ejemplo, mañana se representa como "addDays(utcNow(), 1)".
- msdyn_scheduledstart: la fecha inicial programada. Por ejemplo, mañana se representa como "addDays(utcNow(), 1)".
- msdyn_scheduleend: la fecha de finalización programada. Seleccione una fecha futura. Por ejemplo, especifique "addDays(utcNow(), 5)".
- msdyn_LinkStatus: el estado del vínculo. Por ejemplo, escriba "192350000".
En el campo OperationSetId, seleccione msdyn_CreateOperationSetV1Response OperationSetId en el cuadro de diálogo Contenido dinámico.
Paso 13: crear una asignación de recursos
En el flujo, seleccione Agregar una acción.
En el cuadro de diálogo Elegir una operación, en el campo de búsqueda, introduzca Realizar una acción no enlazada. Entonces, en la pestaña Acciones, seleccione la operación en la lista de resultados.
En el paso, selecciones los puntos suspensivos (…) y luego elija Renombrar.
Cambie el nombre del paso Crear asignación.
En el campo Nombre de acción, seleccione msdyn_PssCreateV1.
En el campo Entidad, introduzca la siguiente información del parámetro.
{ "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_resourceassignment", "msdyn_resourceassignmentid": "@{guid()}", "msdyn_name": "ScheduleAPIDemoAssign1", "msdyn_taskid@odata.bind": "/msdyn_projecttasks(@{variables('msdyn_projecttaskid')})", "msdyn_projectteamid@odata.bind": "/msdyn_projectteams(@{outputs('Create_Team_Member')?['body/TeamMemberId']})", "msdyn_projectid@odata.bind": "/msdyn_projects(@{outputs('Create_Project')?['body/ProjectId']})" }
En el campo OperationSetId, seleccione msdyn_CreateOperationSetV1Response OperationSetId en el cuadro de diálogo Contenido dinámico.
Paso 14: decrementar una variable
- En el flujo, seleccione Nuevo paso.
- En el cuadro de diálogo Elegir una operación, en el campo de búsqueda, introduzca Decrementar variable. Entonces, en la pestaña Acciones, seleccione la operación en la lista de resultados.
- En el campo Nombre, seleccione Número de tareas.
- En el campo Valor, introduzca 1.
Paso 15: cambiar el nombre de una tarea de proyecto
En el flujo, seleccione Nuevo paso.
En el cuadro de diálogo Elegir una operación, en el campo de búsqueda, introduzca Realizar una acción no enlazada. Entonces, en la pestaña Acciones, seleccione la operación en la lista de resultados.
En el paso, selecciones los puntos suspensivos (…) y luego elija Renombrar.
Cambie el nombre del paso Renombrar tarea de proyecto.
En el campo Nombre de acción, seleccione msdyn_PssUpdateV1.
En el campo Entidad, introduzca la siguiente información del parámetro.
{ "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_projecttask", "msdyn_projecttaskid": "@{variables('msdyn_projecttaskid')}", "msdyn_subject": "ScheduleDemoTask1-UpdatedName" }
En el campo OperationSetId, seleccione msdyn_CreateOperationSetV1Response OperationSetId en el cuadro de diálogo Contenido dinámico.
Paso 16: ejecutar un conjunto de opciones
- En el flujo, seleccione Nuevo paso.
- En el cuadro de diálogo Elegir una operación, en el campo de búsqueda, introduzca Realizar una acción no enlazada. Entonces, en la pestaña Acciones, seleccione la operación en la lista de resultados.
- En el paso, selecciones los puntos suspensivos (…) y luego elija Renombrar.
- Cambie el nombre del paso Ejecutar conjunto de operaciones.
- En el campo Nombre de acción, seleccione msdyn_ExecuteOperationSetV1.
- En el campo OperationSetId, seleccione msdyn_CreateOperationSetV1Response OperationSetId en el cuadro de diálogo Contenido dinámico.
Referencias
- Descripción general de cómo integrar flujos con Dataverse y Power Automate
- Usar las API de programación de proyectos para realizar operaciones con entidades de programación
- Descripción general de los flujos en la nube: Power Automate
- Información general de flujos que reconocen soluciones: Power Automate