Schedule Manager
The Schedule Manager Instantiable Model (users.%.models.scheduleManager), included in Iotellect Monitoring MES Planning & Scheduling, serves as the primary tool for schedule generation. Instances of this model, available from the root of the system tree, enable scheduling for various parts of the enterprise.
Schedule Manager Variables
Settings
Variable: Status
The Status variable (status) displays the current state of the Schedule Manager.
Field | Type | Description |
|---|---|---|
status | Integer | Current Schedule Manager status:
|
Variable: Algorithm Settings
The Algorithm Settings variable (algorithmSettings) defines general parameters that affect how the Schedule Manager builds schedules.
Field | Type | Description |
|---|---|---|
mode | Integer | Manager operation mode:
|
minStorageTime | Long | Minimum storage time — the shortest possible duration a lot can remain in a storage cell |
maximumTravelTimeForParallelJobs | Long | Maximum travel time for parallel jobs — the longest allowable travel time for an employee moving between two production entities while performing parallel work orders |
WOExecutionTimeError | Long | Work-order execution time tolerance — acceptable timing deviation for work-order start or finish before the system triggers automatic rescheduling |
WOInfluenceTimeArea | Long | Work-order influence time window — the interval before and after a scheduled work order. If a work order changes and any related orders fall within this window, the system initiates schedule recalculation |
autoUpdateDelay | Long | Automatic update delay — time period the manager waits after a rescheduling event before starting automatic recalculation |
autoUpdateShift | Long | Automatic update shift — offset for the start date of the scheduling interval when triggering automatic rescheduling. The value accounts for the estimated schedule generation time |
Variable: Event List
The Event List variable (eventList) stores information about triggered events that cause the Schedule Manager to recalculate the generated schedule when operating in one of the automatic modes. The variable clears automatically during rescheduling — that is, after the period defined by autoUpdateDelay elapses from the moment the first trigger event occurs.
Field | Type | Description |
|---|---|---|
entity | String | Context of the entity where the trigger event occurred |
dateTime | Date | Date and time when the event occurred |
type | String | Type of the trigger event |
Input
This group of variables defines the main input parameters for the Schedule Manager’s scheduling algorithm.
Variable: Time Range
The Time Range variable (timeRange) defines the time interval within which the Schedule Manager must place the work orders of the generated schedule.
Field | Type | Description |
|---|---|---|
baseDateStart | Date | Start date of the schedule |
baseDateEnd | Date | End date of the schedule |
Variable: Root Production Entity
The Root Production Entity variable (rootProductionEntity) defines the production area for which the Schedule Manager generates the schedule.
Field | Type | Description |
|---|---|---|
rootProductionEntity | String | Context of the root production entity |
Variable: Commercial Orders
The Commercial Orders variable (commercialOrders) defines the list of commercial orders for which the Schedule Manager generates the schedule.
As soon as all work orders related to a particular commercial order are completed, that commercial order is removed from the list.
Field | Type | Description |
|---|---|---|
product | String | Context of the product being manufactured. |
quantity | Double | Quantity of the product to be produced. |
measurementUnit | String | Measurement unit of the produced product. |
commercialID | String | Commercial order identifier. |
commercialOrder | Data Table | Additional user-defined data for the commercial order. |
Variable: Cancelled Work Orders
The Cancelled Work Orders variable (cancelledWorkorders) defines the list of existing work orders that the Schedule Manager cancels during schedule generation.
System Snapshots
This group represents a set of variables that store various system data snapshots created during Phase 1 of the scheduling algorithm:
Storage Units (
storageUnits) — snapshot of storage cell data, including current lots, lots after work order cancellation, and expected lots according to the generated schedule.Employees (
employees) — snapshot of employee data, including hourly rates, existing work orders, and work schedules.Production Entities (
productionEntities) — snapshot of production entity data and their work orders.Tools (
tools) — snapshot of tool data and their associated work orders.
Output
This group of variables defines the output data of the scheduling algorithm.
Variable: Possible Work Orders
The Possible Work Orders variable (possibleWorkorders) stores the schedule generated by the Schedule Manager.
Field | Type | Description |
|---|---|---|
n | Integer | Sequential record number. |
ID | String | Unique identifier of the work order. |
type | String | Work order type (see the Work Order Types model):
|
orderID | String | Unique identifier of the commercial order. |
segment | String | Segment executed as part of the order. |
cycleCount | Integer | Required number of segment repetitions. |
inputProducts | Data Table | List of input product lots. |
outputProducts | Data Table | List of output product lots. |
productionEntity | String | Context of the production entity assigned to the work order. |
workload | Double | Workload of the production entity while executing the work order. |
employees | Data Table | Team of employees assigned to execute the work order. |
kit | Data Table | Set of tools required to complete the work order. |
start | Date | Estimated start date and time of the work order. |
end | Date | Estimated end date and time of the work order. |
cost | Double | Estimated cost of executing the work order, calculated by the manager. |
code | Integer | Code used in cost calculation. |
comment | String | Manager’s comment on cost calculation. |
Variable: Segments
The Segments variable (segments) stores templates for production orders prepared by the Schedule Manager.
Variable: Warnings
The Warnings variable (warnings) stores the list of warnings generated by the Schedule Manager about potential inconsistencies in the generated schedule.
Field | Type | Description |
|---|---|---|
warning | String | Текст предупреждения. |
data | Data Table | Warning message text. |
code | Integer | Additional warning data. |
wt | Integer | Warning code. |
entity | String | Warning weight (importance). |
type | String | Context of the entity associated with the warning. |
Core Functions of the Schedule Manager
The Schedule Manager’s primary purpose is planning and schedule generation.
The scheduling algorithm operates in several phases.
Phase 1 — Initialization
This function launches Phase 1 of the scheduling algorithm.
During this phase, the algorithm creates multiple snapshots of system data and saves them into model variables. These snapshots include:
Standard work schedules of employees, including defined working and non-working time intervals.
Storage states and stock balances within the root production entity.
Data on active work orders of production entities that belong to the root production area.
![]() | After this phase completes, the operator who started the scheduling process can manually adjust the captured data. This allows “what-if” scenario planning. |
Function: | callPhase1 | ||
Permissions: | Available at the Observer permission level | ||
Input records: | 1 | ||
Input format: | Field | Type | Description |
start | Date | Schedule start date. | |
end | Date | Schedule end date. | |
rootProductionEntity | String | Root production entity. | |
commercialOrders | Data Table | List of commercial orders. | |
globalSchedule | Data Table | Global schedule. | |
cancelledWorkorders | Data Table | List of cancelled work orders. | |
0...unlimited | |||
Output format: | The function returns the global schedule updated to reflect cancelled work orders. | ||
Field | Type | Description | |
ID | String | Unique work order ID | |
type | String | Work order type (see Work Order Types model) | |
orderID | String | Unique commercial order ID | |
segment | String | Segment executed as part of the order | |
cycleCount | Integer | Number of segment repetitions | |
workload | Double | Production entity workload | |
inputProducts | Data Table | List of input product lots | |
outputProducts | Data Table | List of output product lots | |
employees | Data Table | Assigned employee team | |
kit | Data Table | Set of tools required to complete the order | |
start | Date | Estimated start time | |
end | Date | Estimated end time | |
description | String | Detailed description | |
status | String | Current work order status (see Work Order Statuses model) | |
currentCycleCount | Integer | Current repetition count | |
scrapRate | Integer | Current number of defective repetitions | |
realStart | Date | Actual start time | |
realEnd | Date | Actual end time | |
disableAutoCancelling | Boolean | Flag preventing automatic cancellation during rescheduling | |
Phase 2 — Work Order Tree Generation
This function launches Phase 2 of the scheduling algorithm. Using storage data, production recipes, and commercial orders, the algorithm recursively reconstructs the genealogy of all production orders required to fulfill each commercial order. If free (unreserved) product lots already exist in storage, the algorithm trims corresponding branches from the work order tree — no production is needed for those items. Draft work orders (“stubs”) are created according to minimal batch sizes. At this stage, the system also specifies production recipes and the input/output products of each recipe segment.
At the end of Phase 2, the algorithm validates material availability and supplements work order drafts with:
Suitable production entities
Employee teams and tools required for execution
Storage cells used for input and output products
Other essential parameters for planning
Function: | callPhase2 | ||
Permissions: | Available at the Observer permission level | ||
Input records: | 1 | ||
Input format: | Field | Type | Description |
removedEmployees | Data Table | List of employee contexts excluded from scheduling | |
removedProductionEntities | Data Table | List of production entity contexts excluded from scheduling | |
removedTools | Data Table | List of tool contexts excluded from scheduling | |
Output records: | 1 | ||
Output format: | Field | Type | Description |
result | Data Table | Tree of generated production orders | |
storageStatus | Data Table | Preliminary storage status after executing required orders | |
segments | Data Table | Drafts of production work orders | |
code | Integer | Completion code:
| |
Phase 3 — Optimization and Validation
Phase 3 focuses on selecting the most efficient execution option for each production order. Possible execution options depend on combinations of production entities, employee teams, and start times (time slots).
The algorithm evaluates each option by calculating the conditional execution cost.
The base cost function depends on:
Hourly and overtime rates of assigned employees.
Total cost of related non-production work orders (e.g., changeovers).
Deviation of the order start time from the beginning of the scheduling interval.
This multi-parameter optimization enables the system to minimize overall production costs, reduce setup time, and ensure on-time completion of commercial orders. The algorithm validates each execution option; if an option cannot be executed under given conditions, its cost is considered infinite. The function also finalizes input/output lots and tool assignments for each variant.
The algorithm iterates through all tasks sequentially, considering already selected best options.
If no feasible options exist for a given task, the algorithm stops early.
Once the schedule is generated, it undergoes low-priority consistency checks. The system may generate warnings about minor issues, which are stored in the Warnings variable. The final schedule is saved in Possible Work Orders.
Function: | callPhase3 |
Permissions: | Available at the Observer permission level |
Input records: | 0 |
Input format: | |
Output records: | 0 |
Output format: |
Phase 4 — Schedule Application
In manual mode, this function returns information about the generated work orders and product lots.
In automatic mode, it automatically assigns and cancels work orders and lots in storage units and production entities.
Function: | callPhase4 | ||
Permissions: | Available at the Observer permission level | ||
Input records: | 0 | ||
Input format: | |||
Output records: | 0-1 | ||
Output format: | The function output depends on the manager’s operation mode. | ||
Field | Type | Description | |
addedWO | Data Table | List of newly created work orders. | |
removedWO | Data Table | List of cancelled work orders. | |
addedLots | Data Table | List of newly added product lots. | |
removedLots | Data Table | List of cancelled product lots. | |
changedLots | Data Table | List of modified product lots. | |
Schedule Creation Call
This function runs the Schedule Manager in one of the automatic modes.
It sequentially executes all scheduling algorithm phases.
Function: | callCreateSchedule | ||
Permissions: | Available at the Observer permission level | ||
Input records: | 1 | ||
Input format: | Field | Type | Description |
start | Date | Schedule start date. | |
end | Date | Schedule end date. | |
rootProductionEntity | String | Root production entity. | |
commercialOrders | Data Table | List of commercial orders. | |
globalSchedule | Data Table | Global schedule. | |
cancelledWorkorders | Data Table | List of cancelled work orders. | |
Output records: | 0...unlimited | ||
Output format: | The function output is dynamic. If a scheduled error occurs at any algorithm phase, the function returns detailed information about the error; otherwise, it returns | ||
Was this page helpful?
