Hi team,
I was working on a resource allocation based project. We would need to perform allocation based on resource availability for the day.
Now the time taken for a particular task to be completed can be summarized to few set of values. Ex: 0.05, 0.10, 0.18, 0.22, 0.25 etc. (it may change tomorrow, but for today, lets keep it this way. task weight would always be below zero as its decided based on some internal KPI's and we would having 100's of task generated every day as in the example)
The total availability for per person could be values like 7.5,7.6,5.6.5,3.2,1.3 etc. Always less than 8hrs per day.
Now my need is that using the first set of values (Its combination basically), we would need to allocate every task to each resource based on their availability for the day.
Attaching a sample data
Tasks list (100's of tasks would be there in a similar format)
Task | Hours req |
A | 0.05 |
B | 0.1 |
C | 0.22 |
D | 0.22 |
E | 0.05 |
F | 0.05 |
G | 0.15 |
H | 0.22 |
Resource list (There would be like 10,15 resources)
Resource | Availability for the day |
P1 | 2.5 |
P2 | 3.67 |
P3 | 5.3 |
The task list would always have those amount of tasks less than total availability for the day (i.e., sum of hrs in 1st table would always be less than or equal to 11.47 as per the availability in table 2.)
Can somebody help me on this, Thank you 🙂
Solved! Go to Solution.
See if this workflow helps you.
This is basically an iterative macro type of problem. The thing about these macros is that only one input is iterative. In your case, you need to iterate both, so I had to do a trick to deal with it.
Anyway, See if you understand the ideas behind the macro and change it to address your needs.
Perfect!
Thanks @AZuc My head was going round with some combination of batch + iterative which clearly didn't need. Thank you so much for your time (y)
I'm still going through the flow now. Between, could you help me to understand how did you iterate both the datasets together?
Hi @jaimonsk , in cases like this we need to choose what would be the iterative input, and create additional columns on it to control the iterations. In this case I chose Resource and I created a blank column to receive the assigned tasks. Having the task in the iterative input allowed me to join with the full list of tasks and to remove preassigned tasks.
The first container were to remove assigned tasks, last 2 containers to take care about the output rules. Containers in between was to assign the task to a resource