Replanning
Every schedule is subject to change. New jobs may be added, existing jobs may be cancelled, or a production line may become unavailable.
To reflect the changes in the schedule, or to improve the schedule further, you can re-plan the jobs, with keeping the existing assignments from the previous plan as a part of the input.
{
"lines": [
{
"id": "line A",
"size": 2000,
"startDate": "2024-12-01",
"jobs": [
"job 1",
"job 2"
]
}
]
}
However, including the assignments does not guarantee the jobs will be assigned to the same line as before.
For example, if a job is already in progress on a line, it should not move to a different line as a side effect of re-planning.
To make sure the assignment is always kept, you can pin the job to the line.
{
"lines": [
{
"id": "line A",
"size": 2000,
"startDate": "2024-12-01",
"jobs": [
"job 1",
"job 2"
]
}
],
"jobs": [
{
"id": "job 1",
"durationInDays": 5,
"size": 1000,
"pinned": true
},
{
"id": "job 2",
"durationInDays": 10,
"size": 1200
}
]
}
In this example, job 1 is pinned to line A, while job 2 is not. Job 2 may be assigned to a different line during re-planning.
Pinning also guarantees that the start and end of the job processing does not change after re-planning. For that reason, you can pin a job only together with every preceding job on the line.
There is no need to bring completed jobs into the re-planning input unless that have impact on the future jobs. |