Limitations

When designing a flow to automate Project Operations, we need to be mindful of how many actions we nest. As the flow grows in complexity, it’s a good practice to branch out into child flows, this will also aid testing later on.

NameLimitNotes
Allowed nesting depth for actions8Add child flows if you need more than eight levels of nesting.
NameLimitNotes
Maximum of open operation sets10This is a hard limit and can only be bypassed by executing created operation sets.
Maximum of operations per operation set200This is a hard limit and can only be bypassed by executing created operation sets.
Maximum of tasks per project500Hard limit

Project Schedule APIs can only be used by Users with Microsoft Project License. They can’t be used by:

Please carefully review the documentation provided by Microsoft: Schedule API Preview

Understanding Core Concepts

For all of our interactions with the Scheduling API we need to use the “Perform an unbound action” action.

Below is a set of actions you can run in “Perform an unbound action”.

APIDescription
msdyn_CreateProjectV1This API is used to create a project. The project and default project bucket are created immediately.
msdyn_CreateTeamMemberV1This API is used to create a project team member.
msdyn_CreateOperationSetV1This API is used to schedule several requests that must be performed within a transaction.
msdyn_PssCreateV1This API is used to create an entity. The entity can be any of the Project scheduling entities that support the create operation.
msdyn_PssCreateV2This API is used to create multiple entities in one action.
msdyn_PssUpdateV1Used to update an entity.
msdyn_PssUpdateV2Update multiple entities in one action.
msdyn_PssDeleteV1Used to delete an entity.
msdyn_PssDeleteV2Delete multiple entities in one action.
msdyn_ExecuteOperationSetV1Execute all operations within an operation set.
msdyn_PssUpdateResourceAssignmentV1Update a Resource Assignment planned work contour.

When you create a project using msdyn_CreateProjectV1 you will see something like this:

Case Scenario

Let’s say we need to create a Project and a Project Task. Here is how we do it:

Create a Project:
Action name: trim('msdyn_CreateProjectV1')

{
“Project”: {
“msdyn_subject”: “Lemon tree”,
“msdyn_schedulemode”: 192350001,
“msdyn_scheduledstart”: @{string(utcNow())},
“msdyn_customer@odata.bind”: “accounts(@{string(‘00000000-0000-0000-0000-000000000000’)})”
}
}

Create Project Bucket: Action name: msdyn_PssCreateV1

{
“msdyn_name”: “Schedule API Bucket for proj”,
“@odata.type”: “Microsoft.Dynamics.CRM.msdyn_projectbucket”,
“msdyn_project@odata.bind”: “msdyn_projects(@{variables(‘Project ID’)})”
}

Useful Links

Leave a Reply

Your email address will not be published. Required fields are marked *