Поделиться через


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

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

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

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

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

  1. Создание триггера PowerApps
  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. Создание триггера PowerApps

  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. В поле Имя введите ScheduleAPIDemoBucket1.
  7. В поле Проект введите /msdyn_projects(.
  8. В поле Динамическое содержимое выберите msdyn_CreateProjectV1Response ProjectId.
  9. В поле Проект введите ).

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

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

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

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

Шаг 9. Инициализация массива

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

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

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

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

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

Шаг 12. Добавление задачи в массив

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

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

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

  4. Переименуйте шаг в Добавление задачи в массив.

  5. В поле Имя выберите Задачи и назначения.

  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(@{outputs('Create_Bucket')?['body/msdyn_projectbucketid']})",
        "msdyn_start": "@{addDays(utcNow(), 1)}",
        "msdyn_scheduledstart": "@{utcNow()}",
        "msdyn_scheduledend": "@{addDays(utcNow(), 5)}",
        "msdyn_LinkStatus": "192350000"
    }
    

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

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

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

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

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

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

  4. Переименуйте шаг в Добавление назначения в массив.

  5. В поле Имя выберите Задачи и назначения.

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

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

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

Шаг 15. Добавление задач и назначений в набор операций

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

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

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

Ссылки