Compartir a través de


Automatización de tareas de movimiento cuando los empleados cambian de trabajo mediante las API de flujos de trabajo de ciclo de vida de Microsoft Graph

En este tutorial se ofrecen instrucciones paso a paso para automatizar las tareas de mover empleados mediante las API de flujos de trabajo de ciclo de vida en Microsoft Graph.

Captura de pantalla del escenario Flujos de trabajo de ciclo de vida.

En este tutorial, aprenderá a:

  • Configure un flujo de trabajo de ciclo de vida para comprobar si los empleados se trasladan a un nuevo departamento.
  • Configure una tarea para notificar al administrador de los usuarios movidos por correo electrónico.
  • Supervise el estado del flujo de trabajo y sus tareas asociadas.

Requisitos previos

Para completar este tutorial, necesita los siguientes recursos y privilegios:

  • Esta característica requiere licencias de Gobierno de Microsoft Entra ID. Para encontrar la licencia adecuada para sus requisitos, consulte Gobierno de Microsoft Entra ID aspectos básicos de las licencias.

  • Inicie sesión en un cliente de API, como Graph Explorer, para llamar a Microsoft Graph con una cuenta que tenga al menos el rol Microsoft Entra administrador del ciclo de vida.

  • Concédete el permiso delegado LifecycleWorkflows.ReadWrite.All de Microsoft Graph.

  • Cree dos cuentas de usuario para usarlas en este tutorial: una para el empleado y otra para su administrador y tenga la siguiente configuración configurada según corresponda.

    User (propiedad) Descripción Azuzar
    mail Notifica al administrador que el empleado se ha movido al departamento. Tanto el administrador como el empleado deben tener buzones activos para recibir correos electrónicos. Empleado, Administrador
    manager La tarea de flujo de trabajo usa este atributo. Empleado

Creación de un flujo de trabajo de mover

Solicitud

La siguiente solicitud crea un flujo de trabajo de mover con la siguiente configuración:

  • Se ejecuta según la programación, pero también se puede ejecutar a petición.
  • El flujo de trabajo se ejecuta cuando se agrega un empleado al departamento de ventas .
  • Solo se ejecuta una tarea integrada en este flujo de trabajo: para enviar un correo electrónico al administrador del empleado que le notifica el traslado. Esta tarea se identifica en los flujos de trabajo del ciclo de vida mediante taskDefinitionIdaab41899-9972-422a-9d97-f626014578b7.
POST https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows
Content-type: application/json

{
    "category": "mover",
    "description": "Configure mover tasks for a user moved to the Sales department.",
    "displayName": "Added to Sales department workflow",
    "isEnabled": true,
    "isSchedulingEnabled": true,
    "executionConditions": {
        "@odata.type": "#microsoft.graph.identityGovernance.triggerAndScopeBasedConditions",
        "scope": {
            "@odata.type": "#microsoft.graph.identityGovernance.ruleBasedSubjectSet",
            "rule": "(department eq 'Sales')"
        },
        "trigger": {
            "@odata.type": "#microsoft.graph.identityGovernance.attributeChangeTrigger",
            "triggerAttributes": [
                {
                    "name": "department"
                }
            ]
        }
    },
    "tasks": [
        {
            "continueOnError": false,
            "description": "Send email to moving employee's manager",
            "displayName": "Notify manager of move",
            "isEnabled": true,
            "taskDefinitionId": "aab41899-9972-422a-9d97-f626014578b7",
            "arguments": []
        }
    ]
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 201 Created
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/lifecycleWorkflows/workflows/$entity",
    "category": "mover",
    "description": "Configure mover tasks for a user moved to the Sales department.",
    "displayName": "Added to Sales department workflow",
    "isEnabled": true,
    "isSchedulingEnabled": true,
    "lastModifiedDateTime": "2024-03-28T12:46:10.0505943Z",
    "createdDateTime": "2024-03-28T12:46:10.0505809Z",
    "deletedDateTime": null,
    "id": "2bb05c85-556a-429a-8c16-16f6be5ef880",
    "nextScheduleRunDateTime": "2024-03-28T13:37:08Z",
    "version": 1,
    "executionConditions": {
        "@odata.type": "#microsoft.graph.identityGovernance.triggerAndScopeBasedConditions",
        "scope": {
            "@odata.type": "#microsoft.graph.identityGovernance.ruleBasedSubjectSet",
            "rule": "(department eq 'Sales')"
        },
        "trigger": {
            "@odata.type": "#microsoft.graph.identityGovernance.attributeChangeTrigger",
            "triggerAttributes": [
                {
                    "name": "department"
                }
            ]
        }
    }
}

Comprobación del ámbito del flujo de trabajo

Ahora que se crea el flujo de trabajo, tome nota del identificador de flujo de trabajo y agregue el usuario en el que desea probar el flujo de trabajo al departamento de ventas . Después de entre 15 y 30 minutos, puede determinar si el usuario está en cola para que el flujo de trabajo se ejecute para ellos comprobando el ámbito de ejecución del flujo de trabajo. Para determinar si un usuario está en cola para que se ejecute el flujo de trabajo para ellos, use la siguiente solicitud.

POST https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows/2bb05c85-556a-429a-8c16-16f6be5ef880/executionScope

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(microsoft.graph.identityGovernance.userProcessingResult)",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET identityGovernance/lifecycleWorkflows/workflows('<guid>')/executionScope?$select=completedDateTime,failedTasksCount",
    "value": [
        {
            "id": "2bb05c85-556a-429a-8c16-16f6be5ef880_1_2bb05c85-556a-429a-8c16-16f6be5ef880_638472334281668424_6324d383-5034-49dc-a62d-30d61e01b613",
            "completedDateTime": null,
            "failedTasksCount": 0,
            "processingStatus": "queued",
            "scheduledDateTime": "2024-03-28T14:37:08.1668424Z",
            "startedDateTime": null,
            "totalTasksCount": 1,
            "totalUnprocessedTasksCount": 1,
            "workflowExecutionType": "scheduled",
            "workflowVersion": 1,
            "subject": {
                "id": "6324d383-5034-49dc-a62d-30d61e01b613"
            }
        }
    ]
}

Comprobación de las tareas y el estado del flujo de trabajo

En cualquier momento, puede supervisar el estado de los flujos de trabajo y sus tareas asociadas en tres niveles.

  • Supervisión de tareas en el nivel de usuario.
  • Supervise el resumen agregado de alto nivel de los resultados de nivel de usuario para un flujo de trabajo, dentro de un período especificado.
  • Recupere el registro detallado de todas las tareas que se ejecutaron para un usuario específico en el flujo de trabajo.

Opción 1: Supervisar las tareas de un flujo de trabajo en el nivel de usuario

Solicitud

En el ejemplo siguiente se muestra la solicitud.

GET https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows/2bb05c85-556a-429a-8c16-16f6be5ef880/userProcessingResults

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#identityGovernance/lifecycleWorkflows/workflows('2bb05c85-556a-429a-8c16-16f6be5ef880')/userProcessingResults",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET identityGovernance/lifecycleWorkflows/workflows('<guid>')/userProcessingResults?$select=completedDateTime,failedTasksCount",
    "value": [
        {
            "id": "2bb05c85-556a-429a-8c16-16f6be5ef880_1_2bb05c85-556a-429a-8c16-16f6be5ef880_638470955486351520_6324d383-5034-49dc-a62d-30d61e01b613",
            "completedDateTime": "2024-03-27T00:19:22.5753749Z",
            "failedTasksCount": 1,
            "processingStatus": "completedWithErrors",
            "scheduledDateTime": "2024-03-27T00:19:08.635152Z",
            "startedDateTime": "2024-03-27T00:19:17.1696067Z",
            "totalTasksCount": 1,
            "totalUnprocessedTasksCount": 0,
            "workflowExecutionType": "onDemand",
            "workflowVersion": 1,
            "subject": {
                "id": "6324d383-5034-49dc-a62d-30d61e01b613"
            }
        }
    ]
}

Opción 2: Obtener el resumen agregado de alto nivel de los resultados de nivel de usuario para un flujo de trabajo, dentro de un período especificado

Solicitud

En el ejemplo siguiente se muestra la solicitud.

GET https://graph.microsoft.com/v1.0/identityGovernance/lifecycleWorkflows/workflows/2bb05c85-556a-429a-8c16-16f6be5ef880/userProcessingResults/summary(startDateTime=2024-03-01T00:00:00Z,endDateTime=2024-03-30T00:00:00Z)

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.identityGovernance.userSummary",
    "failedTasks": 2,
    "failedUsers": 2,
    "successfulUsers": 10,
    "totalTasks": 12,
    "totalUsers": 12
}