Article Type: Concept / Starter Package / Platform Capability Overview
Audience: Solution Architects, Application Designers, Developers, Operations Managers
Module: Scheduling / APS Engine
Applies to Versions: 2025.3.0+
The Scheduling Configuration Package is a starter template and reference implementation that demonstrates the powerful, model-agnostic Advanced Planning and Scheduling (APS) capabilities native to the Fuuz platform. Unlike traditional scheduling systems that are locked to specific data structures, Fuuz's APS engine can schedule any data model you define—making it applicable to virtually any operational domain: manufacturing execution (MES), warehouse management (WMS), maintenance management (CMMS), quality management, field service, project management, and more.
This package provides working examples of:
| Component Type | Count | Description |
|---|---|---|
| Data Models | 11 | Event, resource, assignment, and constraint models |
| Data Flows | 1 | Scheduler Engine Test flow (31 nodes) |
| Screens | 4 | Configuration, resource management, and test screens |
| Seed Data | 6 types | Sample configuration, workcenters, operators, schedules |
| Model | Category | Fields | Purpose |
|---|---|---|---|
| Distribution | Event | 22 | The schedulable work item (task, order, job) |
| Workcenter | Primary Resource | 7 | Main resource where work is performed |
| Operator | Secondary Resource | 7 | Personnel assigned to work |
| Tooling | Secondary Resource | 6 | Equipment/tools required for work |
| AlternateWorkcenterComplex | Routing | 5 | Alternative resource options for flexibility |
| DistributionDependency | Constraint | 7 | Predecessor/successor relationships with lag |
| AllowedOperators | Constraint | 5 | Which operators are qualified for work |
| AllowedTooling | Constraint | 5 | Which tools are compatible with work |
| DistributionOperator | Assignment | 5 | Actual operator assigned to distribution |
| DistributionTooling | Assignment | 5 | Actual tooling assigned to distribution |
| DistributionAssignment | Assignment | 1 | Generic assignment placeholder |
The package includes sample data to demonstrate the configuration:
The heart of Fuuz's APS flexibility is the SchedulingConfiguration model. This configuration tells the scheduling engine how to interpret your data models as schedulable events, resources, dependencies, and assignments.
| Mapping Type | Purpose | Key Fields Mapped |
|---|---|---|
| eventMapping | Maps your data model to schedulable events | id, name, startDate, endDate, duration, resourceId, constraintDate, constraintType, percentDone |
| resourceMapping | Maps your data models to resources (primary/secondary) | id, name, calendar, imageUrl, resourceType |
| dependencyMapping | Maps predecessor/successor relationships | from, to, lag, lagUnit |
| assignmentMapping | Maps resource assignments to events | eventId, resourceId |
The included configuration maps the Distribution model as the schedulable event:
{
"dataModel": "Distribution",
"mapping": {
"id": "id",
"name": "name",
"startDate": "startDate",
"endDate": "endDate",
"duration": "duration",
"primaryResourceId": "primaryWorkcenterId",
"alternateResourceIds": "alternateWorkcenterComplexes.edges.node.workcenterId",
"constraintDate": "constraintDate",
"constraintType": "schedulingConstraintTypeId",
"resourceId": "workcenterId",
"secondaryAllowedResourceIds": [
"allowedOperators.edges.node.operatorId",
"allowedToolings.edges.node.toolingId"
],
"percentDone": "percentDone"
},
"transforms": {
"tooltipTransform": "$join([\"Name: \", name, \"</br>\",\"Workcenter: \", additionalFields.workcenter.name], \"\")",
"eventHtmlTransform": "name",
"eventColorTransform": "$contains($.name,\"Process: 1\") ? \"blue\" : \"red\""
}
}The configuration supports multiple resource types with different behaviors:
allowOverlap: true for shared resources like tools.Because the Fuuz APS engine is model-agnostic, the same scheduling capabilities can be applied to virtually any operational domain. Below are detailed scenarios showing how to adapt this package for different solutions.
| Scheduling Concept | MES Data Model | Example |
|---|---|---|
| Event | ProductionOrder, WorkOrder, Operation | PO-2025-001: Produce 500 units of Widget A |
| Primary Resource | Workcenter, Machine, ProductionLine | CNC Mill #3, Assembly Line A |
| Secondary Resource | Operator, Fixture, Die, Mold | John Smith (Certified CNC Operator), Die #42 |
| Dependencies | OperationSequence, RoutingStep | Cut → Weld → Paint (with 30 min cure time lag) |
| Constraints | OperatorCertification, ToolingCompatibility | Only certified operators can run hazardous operations |
Additional MES scenarios:
| Scheduling Concept | WMS Data Model | Example |
|---|---|---|
| Event | PickTask, PutawayTask, ReplenishmentTask, ShipmentTask | Pick Wave #45: 150 orders, Ship by 2PM |
| Primary Resource | Zone, Aisle, Dock, StagingArea | Zone A (Refrigerated), Dock 7 |
| Secondary Resource | Picker, Forklift, PickCart, Scanner | Maria (High-Bay Certified), Forklift #12 |
| Dependencies | TaskSequence | Pick → Pack → Stage → Load |
| Constraints | ZoneAccess, EquipmentCertification, CarrierCutoff | FedEx pickup at 3PM, hazmat requires certified handlers |
Additional WMS scenarios:
| Scheduling Concept | CMMS Data Model | Example |
|---|---|---|
| Event | WorkOrder, PMTask, CalibrationTask, InspectionTask | WO-5521: HVAC filter replacement, PM due 1/30 |
| Primary Resource | Asset, Equipment, Location, System | Compressor #7, Building A HVAC System |
| Secondary Resource | Technician, Tool, SparePart, Contractor | Mike (Electrical License), Multimeter, Belt Part #P-4422 |
| Dependencies | TaskSequence, LockoutTagout | Isolate → Lockout → Repair → Test → Restore |
| Constraints | TechnicianSkill, PartsAvailability, ProductionWindow | Schedule during 3rd shift when line is down |
Additional CMMS scenarios:
| Scheduling Concept | QMS Data Model | Example |
|---|---|---|
| Event | Inspection, Audit, CalibrationDue, CAPATask, NCRReview | First Article Inspection for Part #12345 |
| Primary Resource | InspectionStation, QALab, AuditArea | CMM Room, Incoming Inspection Station |
| Secondary Resource | Inspector, Auditor, MeasurementEquipment, Gauge | Sarah (ASQ CQI), CMM Machine, Caliper Set #7 |
| Dependencies | InspectionSequence, ApprovalChain | Visual → Dimensional → Functional → Sign-off |
| Constraints | InspectorCertification, EquipmentCalibration, RegulatoryDeadline | ISO audit must complete by Feb 15 |
Additional QMS scenarios:
| Domain | Events | Resources | Example Use Case |
|---|---|---|---|
| Field Service | ServiceCall, Installation, Repair | Technician, Vehicle, Territory | Route optimization for HVAC service calls |
| Project Management | Task, Milestone, Deliverable | TeamMember, Equipment, Room | Engineering project resource leveling |
| Lab Management | Test, Experiment, Analysis | Instrument, Scientist, Bench | R&D lab instrument time booking |
| Healthcare | Appointment, Procedure, Treatment | Clinician, Room, Equipment | Operating room and surgeon scheduling |
| Transportation | Trip, Route, Delivery | Driver, Vehicle, Trailer | Fleet dispatch with HOS compliance |
| Training | Course, Session, Certification | Instructor, Room, Equipment | Employee training room and instructor booking |
/system/testing/ routesThis starter package introduces core concepts, but the Fuuz APS engine provides many additional capabilities for advanced planning scenarios:
| Feature | Description |
|---|---|
| Constraint Types | Start No Earlier Than, Finish No Later Than, Must Start On, As Soon As Possible |
| Calendar Integration | ScheduleGroup, Schedule, and ScheduleEvent models for availability windows |
| Dependency Types | Finish-to-Start, Start-to-Start, Finish-to-Finish, Start-to-Finish with lag |
| Effort-Driven Scheduling | Duration adjusts based on assigned resources |
| Resource Leveling | Automatic conflict resolution and load balancing |
| Progress Tracking | percentDone field for partial completion visualization |
| Visual Customization | JSONata transforms for colors, tooltips, and HTML rendering |
| Overlap Control | allowOverlap setting for shared resources like tooling |
| Issue | Possible Cause | Resolution |
|---|---|---|
| Events not appearing | eventMapping field names don't match data model | Verify mapping field names match exactly (case-sensitive) |
| Resources not loading | resourceMapping dataModel name incorrect | Check dataModel matches your model's exact name |
| Dependencies not respected | Dependency records missing or mapping incorrect | Verify dependency records exist and from/to fields are mapped |
| Calendar not applied | scheduleGroupId not linked to resource | Ensure resources have scheduleGroupId populated |
| Transforms not rendering | JSONata syntax error in transform | Test transform in JSONata playground with sample data |
| Secondary resources not assigned | assignmentMapping missing or incorrect | Verify assignment model and eventId/resourceId mapping |
| Version | Date | Editor | Description |
|---|---|---|---|
| 1.0 | 2025-01-25 | Fuuz Documentation | Initial release documenting Scheduling Configuration Package v0.0.3 with cross-industry use cases and platform APS capability overview |