Использование API расписания проекта V1 с Power Automate

Относится к: Project Operations для сценариев на основе ресурсов/нескладируемых запасов, упрощенное развертывание — от сделки до выставления счетов-фактур

В этой статье описывается пример потока, который показывает, как создать полный план проекта с помощью Microsoft Power Automate, как создать набор операций и как обновить сущность. Пример демонстрирует, как создать проект, участника проектной группы, наборы операций, задачи проекта и назначения ресурсов. В этой статье также объясняется, как обновить сущность и запустить набор операций.

В примере в этой статье используется API PssCreateV1. Пример использования API PssCreateV2 см. в статье Использование API расписания проекта V2 с Power Automate.

Ниже приведен полный список шагов, задокументированных в примере потока в этой статье:

  1. Создание триггера Power Apps
  2. Создание проекта
  3. Инициализация переменной для участника рабочей группы
  4. Создание универсального участника рабочей группы
  5. Создание набора операций
  6. Инициализация переменной для ИД группы проекта
  7. Создание группы проекта
  8. Инициализация переменной для количества задач
  9. Инициализация переменной для ИД задачи проекта
  10. Цикл "Выполнять до"
  11. Задание задачи проекта
  12. Создание задачи проекта
  13. Создание назначения ресурса
  14. Уменьшение переменной на 1
  15. Переименование задачи проекта
  16. Выполнение набора операций

Предположения

Эта статья предполагает, что у вас есть базовые знания о платформе Dataverse, облачных потоках и API расписания проекта. Дополнительные сведения см. в разделе Ссылки далее в этой статье.

Создание потока

Выберите среду

Вы можете создать поток Power Automate в своей среде.

  1. Перейдите на страницу https://flow.microsoft.com и выполните вход с учетными данными администратора.
  2. Выберите Среды в правом верхнем углу.
  3. В списке выберите среду, в которой установлено приложение Dynamics 365 Project Operations.

Создание решения

Чтобы создать поток, связанный с решением, выполните описанные ниже действия. Создание потока, связанного с решением, упрощает его экспорт для дальнейшего использования.

  1. В области навигации выберите Решения.
  2. На странице Решения выберите Новое решение.
  3. В диалоговом окне Новое решение заполните обязательные поля, затем выберите OK.

Шаг 1. Создание триггера Power Apps

  1. На странице Решения выберите созданное решение, а затем выберите Создать.
  2. На левой панели выберите Облачные потоки>Автоматизация>Облачный поток>Мгновенный.
  3. В поле Имя потока введите Демонстрационный поток для API расписания.
  4. В списке Выберите способ запуска для этого потока выберите Power Apps. При создании триггера Power Apps логику целиком определяете вы как автор. В примере в этой статье оставьте входные параметры пустыми для целей тестирования.
  5. Выберите Создать.

Шаг 2. Создание проекта

Выполните следующие действия, чтобы создать пример проекта.

  1. В созданном потоке выберите Новый шаг.

    Добавление нового шага.

  2. В диалоговом окне Выберите операцию в поле поиска введите выполнить несвязанное действие. Затем на вкладке Действия выберите операцию в списке результатов.

    Выбор операции.

  3. В новом шаге выберите многоточие (...), а затем выберите Переименовать.

    Переименование шага.

  4. Переименуйте шаг в Создание проекта.

  5. В поле Имя действия выберите msdyn_CreateProjectV1.

  6. Под полем msdyn_subject выберите Добавить динамическое содержимое.

  7. На вкладке Выражение в поле функции введите concat('Имя проекта -',utcNow()).

  8. Выберите OK.

Шаг 3. Инициализация переменной для участника рабочей группы

  1. В потоке выберите Новый шаг.
  2. В диалоговом окне Выберите операцию в поле поиска введите инициализировать переменную. Затем на вкладке Действия выберите операцию в списке результатов.
  3. В новом шаге выберите многоточие (...), а затем выберите Переименовать.
  4. Переименуйте шаг в Инициализация участника рабочей группы.
  5. В поле Имя введите TeamMemberAction.
  6. В поле Тип выберите Строка.
  7. В поле Значение введите msdyn_CreateTeamMemberV1.

Шаг 4. Создание универсального участника рабочей группы

  1. В потоке выберите Новый шаг.

  2. В диалоговом окне Выберите операцию в поле поиска введите выполнить несвязанное действие. Затем на вкладке Действия выберите операцию в списке результатов.

  3. В новом шаге выберите многоточие (...), а затем выберите Переименовать.

  4. Переименуйте шаг в Создание участника рабочей группы.

  5. Для поля Имя действия выберите TeamMemberAction в диалоговом окне Динамическое содержимое.

  6. В поле Параметры действия введите следующую информацию для параметров.

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

    Что представляют собой параметры:

    • @@odata.type — имя сущности. Например, введите "Microsoft.Dynamics.CRM.msdyn_projectteam".
    • msdyn_projectteamid — первичный ключ идентификатора проектной группы. Значение представляет собой выражение глобального уникального идентификатора (GUID). Идентификатор генерируется на вкладке выражения.
    • msdyn_project@odata.bind – Идентификатор календаря проекта. Значением будет динамическое содержимое, полученное из ответа шага «Создание проекта». Убедитесь, что вы ввели полный путь и добавили динамическое содержимое в скобках. Кавычки обязательны. Например, введите "/msdyn_projects(ДОБАВЬТЕ ДИНАМИЧЕСКОЕ СОДЕРЖИМОЕ)".
    • msdyn_name — имя участника рабочей группы. Например, введите "ScheduleAPIDemoTM1".

Шаг 5. Создание набора операций

  1. В потоке выберите Новый шаг.
  2. В диалоговом окне Выберите операцию в поле поиска введите выполнить несвязанное действие. Затем на вкладке Действия выберите операцию в списке результатов.
  3. В новом шаге выберите многоточие (...), а затем выберите Переименовать.
  4. Переименуйте шаг в Создание набора операций.
  5. В поле Имя действия выберите пользовательское действие msdyn_CreateOperationSetV1 Dataverse.
  6. В поле Описание введите ScheduleAPIDemoOperationSet.
  7. В поле Проект в диалоговом окне Динамическое содержимое выберите msdyn_CreateProjectV1Response ProjectId.

Шаг 6. Инициализация переменной для ИД группы проекта

  1. В потоке выберите Новый шаг.
  2. В диалоговом окне Выберите операцию в поле поиска введите инициализировать переменную. Затем на вкладке Действия выберите операцию в списке результатов.
  3. В новом шаге выберите многоточие (...), а затем выберите Переименовать.
  4. Переименуйте шаг в Инициализация ИД группы проекта.
  5. В поле Имя введите ид группы проекта.
  6. В поле Тип выберите Строка.
  7. В поле Значение введите @{guid()}.

Шаг 7. Создание группы проекта

  1. В потоке выберите Добавить действие.

  2. В диалоговом окне Выберите операцию в поле поиска введите выполнить несвязанное действие. Затем на вкладке Действия выберите операцию в списке результатов.

  3. В шаге выберите многоточие (...), а затем выберите Переименовать.

  4. Переименуйте шаг в Создание группы.

    1. В поле Имя действия выберите msdyn_PssCreateV1.
  5. В поле Сущность введите следующую информацию для параметров.

    {
        "@@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']})",
    }
    

    Что представляют собой параметры:

    • @@odata.type — имя сущности. Например, введите "Microsoft.Dynamics.CRM.msdyn_projectbucket".
    • msdyn_projectbucketid — уникальный идентификатор сегмента проекта. Значение должно быть установлено из динамической переменной из шага 6.
    • msdyn_project@odata.bind – Идентификатор календаря проекта. Значением будет динамическое содержимое, полученное из ответа шага «Создание проекта». Убедитесь, что вы ввели полный путь и добавили динамическое содержимое в скобках. Кавычки обязательны. Например, введите "/msdyn_projects(ДОБАВЬТЕ ДИНАМИЧЕСКОЕ СОДЕРЖИМОЕ)".
    • msdyn_name — имя группы проекта.
  6. Для поля OperationSetId выберите msdyn_CreateOperationSetV1Response OperationSetId в диалоговом окне Динамическое содержимое.

Шаг 8. Инициализация переменной для количества задач

  1. В потоке выберите Новый шаг.
  2. В диалоговом окне Выберите операцию в поле поиска введите инициализировать переменную. Затем на вкладке Действия выберите операцию в списке результатов.
  3. В новом шаге выберите многоточие (...), а затем выберите Переименовать.
  4. Переименуйте шаг в Инициализация количества задач.
  5. В поле Имя введите количество задач.
  6. В поле Тип выберите Целое число.
  7. В поле Значение введите 5.

Шаг 9. Инициализация переменной для ИД задачи проекта

  1. В потоке выберите Новый шаг.
  2. В диалоговом окне Выберите операцию в поле поиска введите инициализировать переменную. Затем на вкладке Действия выберите операцию в списке результатов.
  3. В новом шаге выберите многоточие (...), а затем выберите Переименовать.
  4. Переименуйте шаг в Инициализация ИД задачи проекта.
  5. В поле Имя введите msdyn_projecttaskid.
  6. В поле Тип выберите Строка.
  7. Для поля Значение введите guid() в построителе выражений.

Шаг 10. Цикл "выполнять до"

  1. В потоке выберите Новый шаг.
  2. В диалоговом окне Выберите операцию в поле поиска введите выполнять до. Затем на вкладке Действия выберите операцию в списке результатов.
  3. Установите первое значение в условном операторе равным переменной количество задач из диалогового окна Динамическое содержимое.
  4. В качестве условия выберите меньше или равно.
  5. Установите второе значение в условном операторе равным 0.

Шаг 11. Задание задачи проекта

  1. В потоке выберите Добавить действие.
  2. В диалоговом окне Выберите операцию в поле поиска введите задать переменную. Затем на вкладке Действия выберите операцию в списке результатов.
  3. В новом шаге выберите многоточие (...), а затем выберите Переименовать.
  4. Переименуйте шаг в Задание задачи проекта.
  5. В поле Имя выберите msdyn_projecttaskid.
  6. Для поля Значение введите guid() в построителе выражений.

Шаг 12. Создание задачи проекта

Выполните следующие действия, чтобы создать задачу проекта с уникальным идентификатором, принадлежащим к текущему проекту и созданной вами группе проекта.

  1. В потоке выберите Новый шаг.

  2. В диалоговом окне Выберите операцию в поле поиска введите выполнить несвязанное действие. Затем на вкладке Действия выберите операцию в списке результатов.

  3. В шаге выберите многоточие (...), а затем выберите Переименовать.

  4. Переименуйте шаг в Создание задачи проекта.

  5. В поле Имя действия выберите msdyn_PssCreateV1.

  6. В поле Сущность введите следующую информацию для параметров.

    {
        "@@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)}"
    }
    

    Что представляют собой параметры:

    • @@odata.type — имя сущности. Например, введите "Microsoft.Dynamics.CRM.msdyn_projecttask".
    • msdyn_projecttaskid — уникальный идентификатор задачи. Значение должно быть установлено равным динамической переменной из msdyn_projecttaskid.
    • msdyn_project@odata.bind – Идентификатор календаря проекта. Значением будет динамическое содержимое, полученное из ответа шага «Создание проекта». Убедитесь, что вы ввели полный путь и добавили динамическое содержимое в скобках. Кавычки обязательны. Например, введите "/msdyn_projects(ДОБАВЬТЕ ДИНАМИЧЕСКОЕ СОДЕРЖИМОЕ)".
    • msdyn_subject — любое имя задачи.
    • msdyn_projectbucket@odata.bind – группа проекта, содержащая задачи. Это то же значение, которое использовалось для установки msdyn_projectbucketid на шаге «Создать группу». Убедитесь, что вы ввели полный путь и добавили динамическое содержимое в скобках. Кавычки обязательны. Например, введите "/msdyn_projectbuckets(ДОБАВЬТЕ ДИНАМИЧЕСКОЕ СОДЕРЖИМОЕ)".
    • msdyn_start — динамическое содержимое для даты начала. Например, завтрашний день будет представлен как "addDays(utcNow(), 1)".
    • msdyn_scheduledstart — запланированная дата начала. Например, завтрашний день будет представлен как "addDays(utcNow(), 1)".
    • msdyn_scheduleend — запланированная дата окончания. Выберите дату в будущем. Например, укажите "addDays(utcNow(), 5)".
    • msdyn_LinkStatus — состояние ссылки. Например, введите "192350000".
  7. Для поля OperationSetId выберите msdyn_CreateOperationSetV1Response OperationSetId в диалоговом окне Динамическое содержимое.

Шаг 13. Создание назначения ресурса

  1. В потоке выберите Добавить действие.

  2. В диалоговом окне Выберите операцию в поле поиска введите выполнить несвязанное действие. Затем на вкладке Действия выберите операцию в списке результатов.

  3. В шаге выберите многоточие (...), а затем выберите Переименовать.

  4. Переименуйте шаг в Создание назначения.

  5. В поле Имя действия выберите msdyn_PssCreateV1.

  6. В поле Сущность введите следующую информацию для параметров.

    {
        "@@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']})"
    }
    
  7. Для поля OperationSetId выберите msdyn_CreateOperationSetV1Response OperationSetId в диалоговом окне Динамическое содержимое.

Шаг 14. Уменьшение переменной на 1

  1. В потоке выберите Новый шаг.
  2. В диалоговом окне Выберите операцию в поле поиска введите уменьшить переменную. Затем на вкладке Действия выберите операцию в списке результатов.
  3. В поле Имя выберите количество задач.
  4. В поле Значение введите 1.

Шаг 15. Переименование задачи проекта

  1. В потоке выберите Новый шаг.

  2. В диалоговом окне Выберите операцию в поле поиска введите выполнить несвязанное действие. Затем на вкладке Действия выберите операцию в списке результатов.

  3. В шаге выберите многоточие (...), а затем выберите Переименовать.

  4. Переименуйте шаг в Переименование задачи проекта.

  5. В поле Имя действия выберите msdyn_PssUpdateV1.

  6. В поле Сущность введите следующую информацию для параметров.

    {
        "@@odata.type": "Microsoft.Dynamics.CRM.msdyn_projecttask",
        "msdyn_projecttaskid": "@{variables('msdyn_projecttaskid')}",
        "msdyn_subject": "ScheduleDemoTask1-UpdatedName"
    }
    
  7. Для поля OperationSetId выберите msdyn_CreateOperationSetV1Response OperationSetId в диалоговом окне Динамическое содержимое.

Шаг 16. Выполнение набора операций

  1. В потоке выберите Новый шаг.
  2. В диалоговом окне Выберите операцию в поле поиска введите выполнить несвязанное действие. Затем на вкладке Действия выберите операцию в списке результатов.
  3. В шаге выберите многоточие (...), а затем выберите Переименовать.
  4. Переименуйте шаг в Выполнение набора операций.
  5. В поле Имя действия выберите msdyn_ExecuteOperationSetV1.
  6. Для поля OperationSetId выберите msdyn_CreateOperationSetV1Response OperationSetId в диалоговом окне Динамическое содержимое.

Ссылки