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:

  • 0 – Idle — the manager is not assigned to any commercial orders.

  • 11 – Running (Phase 1) — Phase 1 of the scheduling algorithm is active, or scheduling stopped at Phase 1.

  • 12 – Running (Phase 2) — Phase 2 of the scheduling algorithm is active, or scheduling stopped at Phase 2.

  • 13 – Running (Phase 3) — Phase 3 of the scheduling algorithm is active.

  • 14 – Running (Phase 4) — Phase 4 of the scheduling algorithm is active.

  • 20 – Completed (Manual) — the manager finished execution in manual mode.

  • 21 – Monitoring (Automatic) — the manager monitors schedule changes automatically.

  • 22 – Monitoring (Next Order) — the manager monitors schedule changes in “next order” mode.

  • 3 – Error — the manager failed to generate a consistent schedule.

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:

  • 0 – Manual — the operator manually starts the scheduling process and confirms the generated schedule/

  • 1 – Automatic — after generating a schedule, the manager monitors it and all related entities. When critical changes occur, the manager automatically rebuilds the schedule, cancels previously created work orders, and assigns new ones.

  • 2 – Next Order — the manager creates partial schedules instead of long work-order chains. It monitors schedule progress and replans dynamically as work orders complete, adding new ones when necessary

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:

  • Shifts (shifts) — snapshot of employee shift information.

  • 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):

  • production — production order

  • cleaning — cleaning (non-production)

  • maintenance — maintenance (non-production)

  • changeover — changeover (non-production)

  • testing — testing (non-production)

  • training — training (non-production)

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:

  • 0 — Work order drafts created successfully

  • 1 — Commercial order products already available in storage

  • 2 — Insufficient raw materials

  • 3 — Insufficient production resources

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.
If the manager runs in an automatic mode, the function returns null.
In manual mode, it returns the following table:

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 null.

Was this page helpful?