--- alias: user-guide-schedule-index description: "Manage resource processing sequences within a facility to optimize key performance indicators" --- # Schedule :lock: Schedule.**Show** !!! info Scheduling is an optional Critical Manufacturing module. ## Overview A **Schedule** is used to optimize the individual **Resource** processing sequence for one or more **Areas**, based on the **Facility** model as given by the master data configuration, subject to a set of constraints and trying to maximize or minimize some key performance indicators as specified by the user. Note that each Resource must be configured to use either Dispatching or Scheduling. In order to use the Scheduling functionality, it is necessary to follow the following steps: 1. Create the Schedule object. 2. Assign the Schedule object to one or more **Areas**, where it is intended to be applied. 3. Set the desired Resources to Scheduling mode, and make sure that they have the *Resource Process Time* defined, and when applicable, the Setup and **Setup Matrix**. 4. Create one or more **Schedule Scenarios**. 5. Generate (optimize) one or more **Schedule Scenarios** according to some [[tutorials-scheduling-optimization-criteria]]. 6. See the Schedule Scenario [[tutorials-scheduling-kpis]] and release one **Schedule Scenario**. 7. Execute the Schedule. The Schedule Engine works as a two step optimization process as described in the next picture. ```mermaid graph LR subgraph "First Step (Mandatory)" A1["1. Deterministic (same input will always generate the same output)
2. Not time bound (will take as much time as required)"] end subgraph "Second Step (Optional)" A2["1. Requires solution from First-Step
2.Non-Deterministic (random)
3.Time-bound (the more time, the higher the probability of finding a better solution."] end A1 ==> A2 classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200; classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden; classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%; classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%; classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%; classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%; classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%; classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5; classDef mermaid_state color:#000, fill:#d7e4bd, stroke:#000, stroke-width:1px, font-size:100%, font-weight:300; class Main1,Main2 mermaid_entity class A1,A2 mermaid_entitylinked ``` ## State Model At the core of the **Schedule** object is a set of **Schedule Scenario Jobs** which contain all the planned information. A Schedule Scenario Job follows the state model described in the next figure. ```mermaid graph TD Start1 ==> A1[Unscheduled] ==> A2[Scheduled] ==> A3[Ready] ==> A5[In Progress] ==> A6[Completed] A3 --> A4 A4 --> A3 A2 --> A4[Error] classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200; classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden; classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%; classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%; classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%; classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%; classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%; classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5; classDef mermaid_state color:#000, fill:#d7e4bd, stroke:#000, stroke-width:1px, font-size:100%, font-weight:300; classDef mermaid_initial_state fill:#d7e4bd,stroke:#92d050,stroke-width:3px,color:#000; classDef mermaid_final_state fill:#a7e2f2,stroke:#65CDE8,stroke-width:3px,color:#000; class Main1,Main2 mermaid_entity class Start1,Start2,Start3 mermaid_start class A1,A2,A3,A4,A5,A7,A8,A9,A10,A11,A12 mermaid_initial_state class A6 mermaid_final_state class N1,N2 mermaid_businessdata ``` !!! info A **Schedule** possesses various views and visual functionalities. To better understand how to navigate a **Schedule**, see [[tutorials-s-overview-index]] !!! info To better understand how the different functionalities and entities articulate during Scheduling, visit the [[tutorials-scheduling-index]] tutorial. ## Tying Everything Together ```mermaid graph LR L1[Schedule Optimization Criteria] === Main[Schedule] L2[Schedule Untie Sort Rule] === Main L3[Schedule Feed Step] === Main Main --- A1[Schedule Scenario] A1 === L4[Schedule Scenario Job] A2[Area] --- Main A3[Step] --- L4 A4[Flow] --- L4 A5[Product] --- L4 A6[Material] --- L4 L4 --- L5[Schedule Scenario Job Predecessor] L4 --- A7[Resource] --- A8[Setup Matrix] classDef mermaid_title color:#000, fill:#fafafa, stroke:#fafafa, stroke-width:0x, font-size:100%, font-weight:200; classDef mermaid_start color:#000, fill:#fafafa, stroke:#fafafa, color:#fafafa, stroke-width:0x, font-size:100%, visibility: hidden; classDef mermaid_businessdata color:#000, fill:#65CDE8, stroke:#65CDE8, stroke-width:0px, font-size:100%; classDef mermaid_nonbusinessdata color:#000, fill:#B7DEE8, stroke:#B7DEE8, stroke-width:0px, font-size:100%; classDef mermaid_entity color:#000, fill:#FB9F53, stroke:#FB9F53, stroke-width:0px, font-size:100%; classDef mermaid_entitylinked color:#000, fill:#FCD5B5, stroke:#FCD5B5, stroke-width:0px, font-size:100%; classDef mermaid_context color:#000, fill:#B9CDE5, stroke:#B9CDE5, stroke-width:0px, font-size:100%; classDef mermaid_optional color:#000, fill:#B7DEE8, stroke:#65CDE8, stroke-width:1px, font-size:100%, stroke-dasharray: 5 5; class Main mermaid_entity class A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14 mermaid_businessdata class L1,L2,L3,L4,L5,L6,L7 mermaid_entitylinked class C1,C2,C3,C4,C5,C6 mermaid_context class N1,N2,N3,N4,N5,N6 mermaid_nonbusinessdata click Main "../../business-data/schedule" click A1 "../../business-data/schedule-scenario" click A2 "../../business-data/area" click A3 "../../business-data/step" click A4 "../../business-data/flow" click A5 "../../business-data/product" click A6 "../../business-data/material" click A7 "../../business-data/resource" click A8 "../../business-data/setup-matrix" ``` ## Sequence Of Steps The necessary steps for correctly using a Schedule are the following: 1. [Create the Schedule](create_schedule.md). 2. [Create a Schedule Scenario](create_schedule_scenario.md). 3. [Generate a Schedule Scenario](../schedule-scenario/generate_schedule_scenario.md). 4. [Release a Schedule Scenario](../schedule-scenario/release_schedule_scenario.md). !!! info For more information, see the [Scheduling](../../../tutorials/modules/advanced-planning-and-scheduling/scheduling/index.md) tutorial. {{ generate_index() }}