Factory Planning
Factory Planning is the central visual tool introduced by the Bricklead Production Optimization extension. It enables planners to view, organize, and optimize production orders across defined time blocks (called subperiods) and production lines. It uses Planning Characteristics, Changeover Times, and other configurable attributes to minimize downtime, balance workload, and meet production due dates.

Factory Planning Concepts
Factory Planning introduces the following core scheduling concepts:
- Blocks: Logical groupings of production lines within a time subperiod.
- Subperiods: Divisions of the planning window (Day, Week, Month, Quarter, or Year).
- Changeover Matrix: Determines downtime between items or planning characteristics.
- Planning Flexibility: Determines if a production line can be rescheduled automatically.
- Manual Adjustments: Users can override system suggestions by setting manual dates/times.
Setup
Factory Planning is worksheet-based, and each worksheet includes:
Filter | Description |
---|---|
Production Line No Filter | Select the specific Production Line. |
Starting Date From / To | Defines the date range for planned production orders. |
Optimization Period / Subperiod | Determines how production is divided into planning blocks. |
Produce From Time | Starting time for daily production. |
Location Code | Optional filter by location. |
Each production order line in Factory Planning contains key information for scheduling:
Field | Description |
---|---|
Block / New Block | Current and target block number for grouping. |
Item No / Variant Code / Description | Identifies the item being produced. |
Planning Characteristics 1–10 | Inherited from the item or SKU. |
Production Order No / Line No | Identifies the source production document. |
Status | Status of the production order (Planned, Firm Planned, Released). |
Original Starting / Ending Date-Time | Source values from the production order line. |
New Starting / Ending Date-Time | Proposed values after scheduling. |
Changeover Time / UoM | Downtime assigned by matrix between operations. |
Manual Date / Time | Optional override by user input. |
Planning Flexibility | Whether the order can be rescheduled. |
Sales Order No / Family No | Link to sales documents and family grouping. |
Flags | Scheduled Downtime, Maintenance Time, Overtime, Invalid Combination. |
Key Actions
Factory Planning provides a suite of actions to enable dynamic production scheduling:
Action | Description |
---|---|
Retrieve | Collects production order lines using current filters. |
Schedule | Sorts orders by planning characteristics within each block. |
Assign | Calculates proposed dates/times using sequencing and changeover logic. |
Adjust | Applies the proposed plan to actual production orders. |
Move Line Up / Down | Reorders lines within a block. |
Move Block Up / Down | Reorders entire blocks. |
Move Lines to Block | Moves selected lines to a new block. |
Insert Scheduled Downtime | Adds downtime between two production orders. |
Insert Maintenance Time | Adds a maintenance activity to the routing. |
Split Production Order | Splits a production order into two parts. |
Plan Overtime | Adds overtime hours beyond standard working hours. |
Add Maintenance Order | Create a released Maintenance Order to block planning time for a Production Line. The line is treated as a fixed schedule within its block. |
Change Status | Changes production order status. |
Change Planning Flexibility | Toggles flexibility between None and Unlimited. |
Turn Off Invalid Combination | Clears the invalid combination warning from selected lines. |
Comments | Opens standard comment sheet for the production order. |
Retrieve Action
Purpose: Load production order lines into the Factory Planning page based on filters and setup rules.
Behavior:
- Pulls orders based on:
- Status defined in Factory Planning Setup (Planned, Firm Planned, Released).
- Starting Date From / Optimization Period.
- Location Code (optional).
- Production Line and Subperiod filters.
Validations:
- All filters must be filled (except Location).
- Shows an error if:
- Optimization Order Nos. is not defined.
- Item is blocked.
- Required filters are empty.
Schedule Action
Purpose: Organizes production lines within blocks by planning characteristics and item/family grouping.
Sorting Logic:
- Group by Block and filters.
- Group by Item No. (or Family No. if family order).
- Sort by Planning Characteristic Priority (1–10).
- From Prod. Line Planning Characteristics if exist and have priorities defined.
- If not, from Planning Characteristics page.
- Released → Firm Planned → Planned.
- For equal priority: sort by Production Order No.
Special Case – Family Orders:
- Keeps all lines for a family order grouped.
- Family orders appear after non-family items of the same priority.
Assign Action
Purpose: Assigns new start and end dates to each production order line using block sequencing and changeover time.
Calculation Logic:
- First line: New Starting Date-Time = Produce From Time + Preparation Time New Ending Date-Time = New Starting Date-Time + Duration
- Next lines: New Starting Date-Time = Previous New Ending Date-Time + Changeover Time New Ending Date-Time = New Starting Date-Time + Duration
Handles:
- Changeover Time from matrix (Item and Planning Characteristic).
- Automatic split into two orders if end time exceeds default working hours (if enabled).
- Manual override using Manual Date + Manual Time.
Validations:
- Manual fields must be both populated.
- Family orders must have consistent manual values.
- Flexibility = None means that it is not possible to assign new information.
- Missing changeover = marks as Invalid Combination.
- Late schedule = highlights Due Date in red.
Adjust Action
Purpose: Applies new proposed start/end times to actual production orders.
Behavior:
- Checks current data against original production order:
- Item, Variant, Routing, Due Date, Quantity.
- Applies the new schedule only if everything matches.
- Updates Production Order Lines and clears buffer fields.
- Updates Planning Flexibility to post-optimization setting.
Validations:
- No updates if ledger entries exist.
- Rollback on any mismatch between buffer and source data.
Move Line Up / Down Action
Purpose: Manually reorder lines within the same block.
Limitations:
- Cannot move across blocks.
- One line at a time.
- Has no functional impact on scheduling until Assign is used again.
Move Block Up / Down Action
Purpose: Reorder entire blocks (subperiod groupings).
Limitations:
- Family orders cannot be moved.
Move Lines to Block Action
Purpose: Moves selected lines to a new block.
Steps:
- Populate the New Block field.
- Click Move Lines to Block.
- The line is reassigned, and New Block is cleared.
Validations:
- New Block must exist.
- Family orders: All lines of the same Family and Order must be selected and consistent.
Insert Scheduled Downtime Action
Purpose: Adds buffer time to the end of a production order line.
Steps:
- Opens a request page to input Downtime.
- Downtime is added to the last operation of the routing.
Validations:
- Manual/New Date-Time fields must be empty.
- Routing must exist and have at least one operation.
Insert Maintenance Time Action
Purpose: Adds a new operation to the routing for maintenance.
Steps:
- Opens request page to input Setup and Run time, start date/time.
- Adds a new operation before the last in routing.
- Uses Work Center from Factory Planning Setup.
Validations:
- Manual/New fields must be empty.
- Shifts to next working day if time exceeds day limit.
Split Production Order
Purpose: Splits a production order line into two based on quantity.
Behavior:
- Opens a request page to define split quantity.
- Copies components, routings, tracking to new order.
- Updates Factory Planning view.
Limitations:
- Not available for Family Orders.
- Blocked if ledger entries or item tracking exist.
Plan Overtime
Purpose: Adds time outside regular hours for a production order.
Behavior:
- User selects time and amount.
- User can choose in which operation of the routing the overtime should be added.
- Ignores Ending Date-Time from Production Line.
- System does not ignore standard shop calendar for each work center. Meaning that the overtime will be set outside regular Production Line work hours, if the respective Work Center has a shop calendar that works later than the Production Line.
Validations:
- Time must be outside standard hours.
- Manual/New Date-Time must be empty.
Add Maintenance Order
Purpose: Create a released Maintenance Order to block planning time for a Production Line. The line is treated as a fixed schedule within its block.
Behavior:
- Pick a Maintenance Routing for the line.
- Enter Starting DateTime and Run Time (Location optional).
- Confirm to create the Released Production Order; a Factory Planning line is added and flagged as Maintenance Order.
Validations:
- Maintenance Item and Maintenance Work Center must exist.
- Manual/New date/time must be empty.
- Only one Maintenance Order can be created in the same period.
- Incompatible with Insert Scheduled Downtime, Insert Maintenance Time, Split, and Plan Overtime.
- Maintenance Orders keep original start/end during the Assign function. The system positions them and reassigns subsequent lines in the block.
Change Status Action
Purpose: Updates the production order’s status.
Behavior:
- Uses standard status change logic.
- Cannot change from Released to Finished via this page.
- Applies to full order, not just line.
Validation:
- Ensures buffer and source values match.
Change Planning Flexibility Action
Purpose: Toggles Planning Flexibility (None ↔ Unlimited).
Limitations:
- All selected lines must have same flexibility.
- Blocked if capacity ledger entries exist
Turn Off Invalid Combination Action
Purpose: Clears the Invalid Combination flag for selected lines.
Usage:
- Helpful after manually correcting planning errors.
- Can be applied to multiple lines at once.
Comments Action
Purpose: Opens the standard Production Order Comment Sheet.
Details:
- Lets users view/add comments from Factory Planning page.
- Syncs directly with the Production Order record.
Business Rules
Factory Planning enforces the following core business logic:
- Mandatory Filters: Users must define values for Production Line, Starting Date From, and Optimization Period before using the Retrieve action.
- Planning Characteristic Inheritance: The number and values of Planning Characteristics per order line match the definitions from Factory Planning Setup and the Item Card or SKU.
- Changeover Logic:
- When the Assign action is used, the system calculates downtime between production orders using the Changeover Time Matrix.
- If Allow Invalid Combinations is disabled and if a valid changeover record is not found or if the New Ending Date exceeds the Due Date, the line is flagged as Invalid Combination.
- Manual Date/Time Restrictions:
- Manual values must be fully entered (both date and time) to take effect.
- If only one is populated, the system returns an error.
- Family Orders:
- All lines from a Family Production Order must receive identical manual date/time values for Assign to proceed.
- Splitting or moving individual lines in a family group is not permitted unless the entire group is selected.
- Adjust Restrictions:
- Adjust validates that the current Factory Planning data matches the source production order. If discrepancies are found, the process is aborted with an error.
- Planning Flexibility Enforcement:
- Orders with Planning Flexibility = None cannot be rescheduled. Attempting to assign a manual date/time results in an error.
- Ledger Entry Locks:
- Orders with capacity or item ledger entries cannot be adjusted, split, or modified for planning flexibility. The system provides appropriate error messages and halts the process.