Автоматизация задач mover при изменении заданий сотрудниками с помощью API рабочих процессов жизненного цикла Microsoft Graph

В этом руководстве содержатся пошаговые инструкции по автоматизации задач перемещения сотрудников с помощью API рабочих процессов жизненного цикла в Microsoft Graph.

Снимок экрана: сценарий рабочих процессов жизненного цикла.

В этом руководстве рассказывается, как:

  • Настройте рабочий процесс жизненного цикла для проверка для сотрудников, переходящих в новый отдел.
  • Настройте задачу для уведомления руководителя о перемещенных пользователях по электронной почте.
  • Отслеживайте состояние рабочего процесса и связанных с ним задач.

Предварительные условия

Для работы с этим руководством вам потребуются следующие ресурсы и привилегии:

  • Для этой функции требуются Управление Microsoft Entra ID лицензии. Чтобы найти подходящую лицензию для ваших требований, см. Управление Microsoft Entra ID основы лицензирования.

  • Войдите в клиент API, например Graph Обозреватель, чтобы вызвать Microsoft Graph с учетной записью, которая имеет по крайней мере роль администратора жизненного цикла Microsoft Entra.

  • Предоставьте себе делегированное разрешение LifecycleWorkflows.ReadWrite.All Microsoft Graph.

  • Создайте две учетные записи пользователей, которые будут использоваться в этом руководстве: одну для сотрудника, а другую — для руководителя, и в соответствии со следующими параметрами настроены соответствующие параметры.

    Свойство User Описание Подстрекать
    mail; Уведомляет руководителя о том, что сотрудник был перемещен в отдел. И руководитель, и сотрудник должны иметь активные почтовые ящики для получения сообщений электронной почты. Сотрудник, менеджер
    manager Этот атрибут используется задачей рабочего процесса. Сотрудник

Создание рабочего процесса перемещения

Запрос

Следующий запрос создает рабочий процесс mover со следующими параметрами:

  • Он выполняется по расписанию, но также может выполняться по запросу.
  • Рабочий процесс запускается при добавлении сотрудника в отдел продаж .
  • В этом рабочем процессе выполняется только одна встроенная задача: отправить руководителю сотрудника сообщение электронной почты с уведомлением о перемещении. Эта задача определяется в рабочих процессах жизненного цикла с помощью 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": []
        }
    ]
}

Отклик

Ниже показан пример отклика.

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"
                }
            ]
        }
    }
}

Проверка область рабочего процесса

Теперь, когда рабочий процесс создан, запишите идентификатор рабочего процесса, а затем добавьте пользователя, на который вы хотите протестировать рабочий процесс, в отдел продаж . Через 15–30 минут можно определить, находится ли пользователь в очереди для запуска рабочего процесса, проверив область выполнения рабочего процесса. Чтобы определить, находится ли пользователь в очереди для запуска рабочего процесса, используйте следующий запрос.

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

Отклик

Ниже показан пример отклика.

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"
            }
        }
    ]
}

Проверка состояния задач и рабочего процесса

В любое время можно отслеживать состояние рабочих процессов и связанных с ними задач на трех уровнях.

  • Мониторинг задач на уровне пользователя.
  • Отслеживайте агрегированную сводку результатов на уровне пользователя для рабочего процесса в течение указанного периода.
  • Получите подробный журнал всех задач, которые были выполнены для конкретного пользователя в рабочем процессе.

Вариант 1. Мониторинг задач рабочего процесса на уровне пользователя

Запрос

Ниже показан пример запроса.

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

Отклик

Ниже показан пример отклика.

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"
            }
        }
    ]
}

Вариант 2. Получение сводной сводки результатов на уровне пользователя для рабочего процесса в течение указанного периода

Запрос

Ниже показан пример запроса.

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)

Отклик

Ниже показан пример отклика.

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
}