suggest#
Types for auto-assignment. Each requirement instance is a Slot: a scheduled leaf task, the resources allowed to fill it, and the assignment that fills it now, if any. Pass the slots and SuggestOptions to Project#suggestAssignments. The options pick the slot categories to work on (AssignTarget), the assignments that stay fixed, the cost of each extra person and the number of rebalance passes.
The call returns a SuggestResult. It holds the proposal as SchedulingChanges, which you commit with Project#apply. It also holds a step log (SuggestStep with its StepCost), the slots left unfilled or invalid, and scores for the baseline (AssignTotal) and the proposal (SuggestProposal). The project doesn't change until you apply.
Roster, returned by Project#roster, lists the scheduled leaf tasks, resources and active assignments (RosterAssignment) of the accepted state. Use it when your own code builds the slots. To build slots from skills and requirements, use SkillLayer.slots with the types in assign.
Most types here are mutable classes with public fields and a fluent withX(value) setter per field, and they implement DeepCloneable<T>. StepCost and AssignTotal take their values in the constructor and have a copy() method. AssignTarget is an enum. Collection fields hold Vec<T>, and each collection setter also takes any java.util.Collection, so List.of(...) works. Every type here is in the org.dhtmlx.plen package. For how picks are made and how to read the proposal, see Suggesting assignments.
- RosterScheduled leaf tasks, resources and active assignments of a project's accepted state, without skills
- SlotOne position to staff on a task, with its eligible resources, passed to Project#suggestAssignments
- SuggestOptionsOptions of Project#suggestAssignments - slot categories, fixed assignments, new-resource penalty, scoring stage and passes
- SuggestResultThe proposal returned by Project#suggestAssignments, with its change set, step log and cost totals