We start with the Query Project Server, to get a list of ALL project UIDs, and store them into a collection variable.
Next, start a collection operation using the For Each operation, so that we can look at each Project GUID that we collected in the previous step.
For each of the Project UID, Query Project Server, to query for projects that are checked out. We will get the values “Checked Out date”, “Checked Out By”, and “Project Owner”
Set a variable, to calculate the difference between the current date and the date the project was checked out. This should be based on the policy of your organization.
Once we get the data for each project, we would want to handle only the projects that have been checked out for more time than dictated by the organizational policy. To do that, we use the Run If action, and specify the conditions as shown in the configuration.
For the projects that are identified, as the offenders, you can decide what you want to do. You can send the Project Owner a notification to let them know that the project is being checked in because it has exceeded the amount of time that a project can remain checked out. Alternatively, you could also add a reminder to check the projects in, and then pause for some more time to let them check in the project. I am not handling this scenario in my workflow example here.
Now comes the real meat of the process, the actual Force Check-In. Nintex allows us to interact with the PSI web Services which allow us to force check-in the project without manually having to do it.
We will use the Call Web Service action, and call the QueueCheckin web method, to check the project in. Configure it as shown the configuration image.