lint(standard): corrections completes mode standard
- Em dashes: 1712 remplaces par tirets simples (86 fichiers + _index.md, en-tete section Limagrain conserve) - Checklists: 24 '- [ ]' -> '- ☐' (3 pages operations, plus de todos Obsidian) - Ancres: 33 reparees (slugs GitHub + ancres HTML <a id> reconnues), 1 reciblee (manuel de reten) - related: tenseflow -> tense-flow, pie -> mechanical-elements, group.md retire (doublon shipping) - Registre: compteur global 122 -> 131 pages - Rapport racine _lint_report.md mis a jour (scan v2 + re-scan final: 0 anomalie) - Aucun fichier limagrain/ modifie (cloisonnement)
This commit is contained in:
@@ -26,18 +26,18 @@ The AD contains approximately **38,765 elements** spanning Commands, Queries, Di
|
||||
|
||||
### Commands
|
||||
|
||||
Commands represent **executable operations** — actions that change system state.
|
||||
Commands represent **executable operations** - actions that change system state.
|
||||
|
||||
- Mapped to `POST /api/commands/{commandName}` in the API
|
||||
- Have input parameters (validated before execution) and return a result
|
||||
- May trigger Transactions (audit records) and Events
|
||||
- May invoke sub-commands or start Workflows
|
||||
- Examples:
|
||||
- `ReceiveContainer` — receive a container at a dock station
|
||||
- `ReleaseShippingOrder` — release a shipping order for picking
|
||||
- `AdjustStock` — perform a quantity adjustment
|
||||
- `CreateCount` — create a physical count order
|
||||
- `AssignTask` — assign a task to an operator
|
||||
- `ReceiveContainer` - receive a container at a dock station
|
||||
- `ReleaseShippingOrder` - release a shipping order for picking
|
||||
- `AdjustStock` - perform a quantity adjustment
|
||||
- `CreateCount` - create a physical count order
|
||||
- `AssignTask` - assign a task to an operator
|
||||
|
||||
Commands are permission-controlled: each command is associated with one or more AD roles. A user can only execute commands their role permits.
|
||||
|
||||
@@ -49,16 +49,16 @@ Queries represent **data retrieval operations** using a LINQ-style expression en
|
||||
- Support filtering, sorting, pagination
|
||||
- Can reference any View or Entity
|
||||
- Examples:
|
||||
- `GetStockByLocation` — fetch stock for a location
|
||||
- `GetOpenShippingOrders` — fetch all non-closed shipping orders
|
||||
- `GetContainerContents` — fetch stock lines in a container
|
||||
- `GetTasksByStatus` — fetch tasks matching a status
|
||||
- `GetStockByLocation` - fetch stock for a location
|
||||
- `GetOpenShippingOrders` - fetch all non-closed shipping orders
|
||||
- `GetContainerContents` - fetch stock lines in a container
|
||||
- `GetTasksByStatus` - fetch tasks matching a status
|
||||
|
||||
The **QueryExecute API** allows ad-hoc LINQ queries without pre-defining a named Query element.
|
||||
|
||||
### Entities
|
||||
|
||||
Entities are the **core data objects** of the system — the persistent domain model.
|
||||
Entities are the **core data objects** of the system - the persistent domain model.
|
||||
|
||||
Each Entity has:
|
||||
- A schema (fields, types, constraints)
|
||||
@@ -111,11 +111,11 @@ Views are **read-only projections** of one or more Entities, optimized for displ
|
||||
- May include computed columns and aggregations
|
||||
- Back all SmartUI list screens and RF terminal display screens
|
||||
- Examples:
|
||||
- `ViewContainers` — containers with location and status
|
||||
- `ViewStocks` — stock lines with full context
|
||||
- `ViewTasksOpen` — open tasks with assignment info
|
||||
- `ViewShippingOrdersMonitor` — order monitoring dashboard
|
||||
- `ViewGroupedStock` — aggregated stock by item/owner
|
||||
- `ViewContainers` - containers with location and status
|
||||
- `ViewStocks` - stock lines with full context
|
||||
- `ViewTasksOpen` - open tasks with assignment info
|
||||
- `ViewShippingOrdersMonitor` - order monitoring dashboard
|
||||
- `ViewGroupedStock` - aggregated stock by item/owner
|
||||
|
||||
### Dialogs
|
||||
|
||||
@@ -126,10 +126,10 @@ Dialogs are **multi-step interactive flows** that guide an operator through a co
|
||||
- State is maintained server-side between steps
|
||||
- API: `POST /api/dialogs/{dialogName}/start`, then `POST /api/dialogs/{sessionId}/step`
|
||||
- Examples:
|
||||
- `ReceptionDialog` — multi-step reception flow (select order → scan container → enter quantities → confirm)
|
||||
- `PickingDialog` — guided picking (scan location → confirm quantity → scan destination)
|
||||
- `CountDialog` — count guided flow (scan location → count items → confirm)
|
||||
- `ShippingConsolidationDialog` — consolidation at shipping station
|
||||
- `ReceptionDialog` - multi-step reception flow (select order → scan container → enter quantities → confirm)
|
||||
- `PickingDialog` - guided picking (scan location → confirm quantity → scan destination)
|
||||
- `CountDialog` - count guided flow (scan location → count items → confirm)
|
||||
- `ShippingConsolidationDialog` - consolidation at shipping station
|
||||
|
||||
Dialogs encapsulate the complete operator interaction sequence for a process, invoking Commands internally at each confirmation step.
|
||||
|
||||
@@ -155,11 +155,11 @@ Workflows are **orchestrated sequences** of Commands, conditional logic, and sta
|
||||
- Used for complex multi-step processes: reception, putaway strategy evaluation, replenishment logic
|
||||
- Can be synchronous (blocking) or asynchronous (background)
|
||||
- Examples:
|
||||
- `PutawayWorkflow` — 8-stage pipeline (criteria → aisles → balancing → restrictions → validity → rules → sort → select)
|
||||
- `StockAssignmentWorkflow` — evaluate assignment strategies → assign to shipping order lines
|
||||
- `ReplenishmentWorkflow` — check PDL levels → select strategy → generate tasks
|
||||
- `DefragmentationWorkflow` — evaluate rotation/shipping criteria → generate movement tasks
|
||||
- `CountCloseWorkflow` — close count → compute differences → generate STK.ADJ transactions → send COF to ERP
|
||||
- `PutawayWorkflow` - 8-stage pipeline (criteria → aisles → balancing → restrictions → validity → rules → sort → select)
|
||||
- `StockAssignmentWorkflow` - evaluate assignment strategies → assign to shipping order lines
|
||||
- `ReplenishmentWorkflow` - check PDL levels → select strategy → generate tasks
|
||||
- `DefragmentationWorkflow` - evaluate rotation/shipping criteria → generate movement tasks
|
||||
- `CountCloseWorkflow` - close count → compute differences → generate STK.ADJ transactions → send COF to ERP
|
||||
|
||||
### Background Jobs
|
||||
|
||||
@@ -178,7 +178,7 @@ Background Jobs are **scheduled or continuous Workflows** that run autonomously:
|
||||
|
||||
### Parameters
|
||||
|
||||
AD Parameters are the **configuration knobs** of the system — named key-value pairs that alter behavior without code changes.
|
||||
AD Parameters are the **configuration knobs** of the system - named key-value pairs that alter behavior without code changes.
|
||||
|
||||
- Scope: Organization or Warehouse
|
||||
- Accessible via the Parameters view in SmartUI (Inventory > Parameters)
|
||||
@@ -238,12 +238,12 @@ The AD can be extended by Mecalux partners:
|
||||
4. **Custom Parameters**: Add module-specific configuration
|
||||
5. **Custom Events**: React to standard system events with custom logic
|
||||
|
||||
This extensibility model is used by all optional modules (AGV, Slotting, 3PL Billing, DOM, etc.) — each module adds its own AD elements without modifying core elements.
|
||||
This extensibility model is used by all optional modules (AGV, Slotting, 3PL Billing, DOM, etc.) - each module adds its own AD elements without modifying core elements.
|
||||
|
||||
## Related
|
||||
|
||||
- [Overview](overview.md) — System architecture and deployment
|
||||
- [Entities Map](entities-map.md) — Visual map of entity relationships
|
||||
- [Transactions](../concepts/transactions.md) — Transaction audit trail (generated by Commands)
|
||||
- [ERP Interface](../concepts/erp-interface.md) — ERP messages (triggered by Events)
|
||||
- [Parameters](../concepts/parameters.md) — System parameter catalog
|
||||
- [Overview](overview.md) - System architecture and deployment
|
||||
- [Entities Map](entities-map.md) - Visual map of entity relationships
|
||||
- [Transactions](../concepts/transactions.md) - Transaction audit trail (generated by Commands)
|
||||
- [ERP Interface](../concepts/erp-interface.md) - ERP messages (triggered by Events)
|
||||
- [Parameters](../concepts/parameters.md) - System parameter catalog
|
||||
|
||||
@@ -25,7 +25,7 @@ last_compiled: "2026-04-10"
|
||||
|
||||
## Overview
|
||||
|
||||
This page provides the complete entity relationship model of Easy WMS, synthesized from all documented behavior across Batches 1–5. It shows the core entities, their key attributes, and how they relate to one another — forming the mental model needed to interpret WMS data.
|
||||
This page provides the complete entity relationship model of Easy WMS, synthesized from all documented behavior across Batches 1–5. It shows the core entities, their key attributes, and how they relate to one another - forming the mental model needed to interpret WMS data.
|
||||
|
||||
## Core Entity Hierarchy
|
||||
|
||||
@@ -436,16 +436,16 @@ Each entity has ERP messages that create, update, or receive data:
|
||||
|
||||
| Entity | ERP In (ERP→WMS) | ERP Out (WMS→ERP) |
|
||||
|--------|-----------------|------------------|
|
||||
| Item | ITM | — |
|
||||
| Owner | OWN | — |
|
||||
| Supplier | SUP | — |
|
||||
| Account | ACC | — |
|
||||
| Carrier | CAR | — |
|
||||
| Item | ITM | - |
|
||||
| Owner | OWN | - |
|
||||
| Supplier | SUP | - |
|
||||
| Account | ACC | - |
|
||||
| Carrier | CAR | - |
|
||||
| Kit | KIT | KST (assemble), UNK (disassemble) |
|
||||
| ItemClassification | ITC | — |
|
||||
| ItemClassification | ITC | - |
|
||||
| ReceiptOrder | ROR | ROC (status), ROF (close) |
|
||||
| Container (ASN) | ASN | ASO (received), ASK (rejected) |
|
||||
| Receipt | — | REF (closed) |
|
||||
| Receipt | - | REF (closed) |
|
||||
| ShippingOrder | SOR, RUT, WOR | SOC (status), SOF (close), LOF (load close), WOF (work order close) |
|
||||
| Count | COR | COF (finalized) |
|
||||
| Stock | STR (lock), SCR (contrast) | STV (variation), STC (status change), WSC (contrast response) |
|
||||
@@ -454,13 +454,13 @@ Each entity has ERP messages that create, update, or receive data:
|
||||
|
||||
## Related
|
||||
|
||||
- [Application Dictionary](application-dictionary.md) — AD element types: Commands, Queries, Entities
|
||||
- [Container](../concepts/container.md) — Container entity deep-dive
|
||||
- [Location](../concepts/location.md) — Location entity deep-dive
|
||||
- [Stock](../concepts/stock.md) — Stock entity deep-dive
|
||||
- [Product / Item](../concepts/product-item.md) — Item entity deep-dive
|
||||
- [Task](../concepts/task.md) — Task entity lifecycle
|
||||
- [Inbound Order](../concepts/order-inbound.md) — Receipt order entity
|
||||
- [Outbound Order](../concepts/order-outbound.md) — Shipping order entity
|
||||
- [Transactions](../concepts/transactions.md) — Full transaction audit trail
|
||||
- [ERP Interface](../concepts/erp-interface.md) — ERP message catalog
|
||||
- [Application Dictionary](application-dictionary.md) - AD element types: Commands, Queries, Entities
|
||||
- [Container](../concepts/container.md) - Container entity deep-dive
|
||||
- [Location](../concepts/location.md) - Location entity deep-dive
|
||||
- [Stock](../concepts/stock.md) - Stock entity deep-dive
|
||||
- [Product / Item](../concepts/product-item.md) - Item entity deep-dive
|
||||
- [Task](../concepts/task.md) - Task entity lifecycle
|
||||
- [Inbound Order](../concepts/order-inbound.md) - Receipt order entity
|
||||
- [Outbound Order](../concepts/order-outbound.md) - Shipping order entity
|
||||
- [Transactions](../concepts/transactions.md) - Full transaction audit trail
|
||||
- [ERP Interface](../concepts/erp-interface.md) - ERP message catalog
|
||||
|
||||
@@ -23,20 +23,20 @@ last_compiled: "2026-04-17"
|
||||
|
||||
## Overview
|
||||
|
||||
**GALILEO** is the Mecalux **Transport Management System (TMS)** — the automation layer that physically controls conveyors, stacker cranes (TK / Miniload), shuttles, AGVs, lifts and all other mechanized equipment. EasyWMS holds all the business intelligence (stock, strategies, orders); **GALILEO has no predictive vision** — it requests work from EasyWMS and executes it.
|
||||
**GALILEO** is the Mecalux **Transport Management System (TMS)** - the automation layer that physically controls conveyors, stacker cranes (TK / Miniload), shuttles, AGVs, lifts and all other mechanized equipment. EasyWMS holds all the business intelligence (stock, strategies, orders); **GALILEO has no predictive vision** - it requests work from EasyWMS and executes it.
|
||||
|
||||
Two parallel automation controllers exist in the Mecalux ecosystem:
|
||||
|
||||
- **GALILEO** — classic PLC-driven TMS, deployed on production sites
|
||||
- **EasyS** — 3D simulation environment that speaks the same protocol as GALILEO; used for development, demos and pre-site validation (see [Galileo Simulation](../operations/galileo-simulation.md))
|
||||
- **GALILEO** - classic PLC-driven TMS, deployed on production sites
|
||||
- **EasyS** - 3D simulation environment that speaks the same protocol as GALILEO; used for development, demos and pre-site validation (see [Galileo Simulation](../operations/galileo-simulation.md))
|
||||
|
||||
Both dialogue with EasyWMS through the **EasyWMS Gateway** Windows service — a translator between GALILEO's low-level frame protocol and the EasyWMS API.
|
||||
Both dialogue with EasyWMS through the **EasyWMS Gateway** Windows service - a translator between GALILEO's low-level frame protocol and the EasyWMS API.
|
||||
|
||||
Reference documents:
|
||||
- [Control_Communications_Interface_EN_GB.pdf](https://msscc.mecalux.com/documentation/Automation/master/ES/Documents/GalileoAWS/Control_Communications_Interface_EN_GB.pdf) — all station types, event types, PIE flags
|
||||
- [EasyWMSGateway_ControlInterface_EN.pdf](https://msscc.mecalux.com/documentation/documentation/master/ES/docs_downloads/services/docs/EasyWMSGateway_ControlInterface_EN.pdf) — frame structure (low-level)
|
||||
- [Stations index](https://msscc.mecalux.com/documentation/documentation/master/EN/areas/layout/stations/index.md) — station-specific behaviour
|
||||
- [IdentErrorType](https://msscc.mecalux.com/documentation/Development/master/ES/apis/easywms/Domain/IdentErrorType.md) — rejection reason codes
|
||||
- [Control_Communications_Interface_EN_GB.pdf](https://msscc.mecalux.com/documentation/Automation/master/ES/Documents/GalileoAWS/Control_Communications_Interface_EN_GB.pdf) - all station types, event types, PIE flags
|
||||
- [EasyWMSGateway_ControlInterface_EN.pdf](https://msscc.mecalux.com/documentation/documentation/master/ES/docs_downloads/services/docs/EasyWMSGateway_ControlInterface_EN.pdf) - frame structure (low-level)
|
||||
- [Stations index](https://msscc.mecalux.com/documentation/documentation/master/EN/areas/layout/stations/index.md) - station-specific behaviour
|
||||
- [IdentErrorType](https://msscc.mecalux.com/documentation/Development/master/ES/apis/easywms/Domain/IdentErrorType.md) - rejection reason codes
|
||||
|
||||
## EasyWMS Gateway Service
|
||||
|
||||
@@ -79,7 +79,7 @@ A movement can only be generated if a **route** exists in EasyS between its orig
|
||||
|
||||
## Stations & Routes (from GALILEO's perspective)
|
||||
|
||||
Stations are the start/end points of every movement. A station is uniquely identified by the couple **(StationType, StationNumber)** — this pair must be identical in EasyS and in GALILEO; any drift causes `EndErrorCode=4` errors (see Troubleshooting).
|
||||
Stations are the start/end points of every movement. A station is uniquely identified by the couple **(StationType, StationNumber)** - this pair must be identical in EasyS and in GALILEO; any drift causes `EndErrorCode=4` errors (see Troubleshooting).
|
||||
|
||||
For the full reference of station codes (FR/ES/EN), acronyms (ALM/TK/PK/PIE/PS/ME/MS/PKE/CME/ET/MU/REAC/RECH/…) and roles, see [Mechanical Elements](../concepts/mechanical-elements.md) and [Stations & Routes](../concepts/stations.md).
|
||||
|
||||
@@ -120,7 +120,7 @@ Sometimes `ETPSxx → PSxx` must be reported to sequence shipping.
|
||||
|
||||
Declaration of container presence at a meaningful point. Primary sources:
|
||||
|
||||
- **PIE**: reports a new container with label read + gauge data — EasyWMS decides conformity
|
||||
- **PIE**: reports a new container with label read + gauge data - EasyWMS decides conformity
|
||||
- **TK**: announces presence
|
||||
- **Picking confirmation**: operator has finished a picking task
|
||||
|
||||
@@ -140,7 +140,7 @@ PIE flag values (bitwise):
|
||||
|
||||
| Flag | Meaning |
|
||||
|------|---------|
|
||||
| `65536` | Container OK — no error |
|
||||
| `65536` | Container OK - no error |
|
||||
| `256` | Barcode error |
|
||||
| `512` | Recovered container |
|
||||
| `1024` / `66560` | Correct + empty |
|
||||
@@ -151,14 +151,14 @@ PIE flag values (bitwise):
|
||||
|
||||
**Two PIE processes depending on container origin:**
|
||||
|
||||
1. **New container** — GALILEO reads the label and sends type/height; EasyWMS verifies conformity and decides destination
|
||||
2. **Known container returning** — EasyWMS pre-sends a movement toward PIE; GALILEO verifies types match, without re-reading the label
|
||||
1. **New container** - GALILEO reads the label and sends type/height; EasyWMS verifies conformity and decides destination
|
||||
2. **Known container returning** - EasyWMS pre-sends a movement toward PIE; GALILEO verifies types match, without re-reading the label
|
||||
|
||||
**PIE insert modes (set from EasyWMS → Control → Stations):**
|
||||
|
||||
- **Normal (known containers)** — reject anything the ASN doesn't recognize
|
||||
- **Empty container creation** — create supports from the data GALILEO sends (code, weight, height type…)
|
||||
- **Pallet pile creation** — operator activates "insert pallet piles" on the GALILEO console; GALILEO sends events with `Transport Number = 10`; item code + qty per pile must be defined in EasyWMS
|
||||
- **Normal (known containers)** - reject anything the ASN doesn't recognize
|
||||
- **Empty container creation** - create supports from the data GALILEO sends (code, weight, height type…)
|
||||
- **Pallet pile creation** - operator activates "insert pallet piles" on the GALILEO console; GALILEO sends events with `Transport Number = 10`; item code + qty per pile must be defined in EasyWMS
|
||||
|
||||
**Workflow triggered:** `Galileo_PIEEventHandler_PR`
|
||||
|
||||
@@ -184,7 +184,7 @@ GALILEO asks EasyWMS "what should I do with this container?" or "give me a next
|
||||
|-------|------------------------|
|
||||
| Physical station PK | 1 container on the conveyor |
|
||||
| Route to PK | 4 containers in transit on intermediate conveyors |
|
||||
| WMS PK capacity | 15 — physical + transit + every task whose destination is PK |
|
||||
| WMS PK capacity | 15 - physical + transit + every task whose destination is PK |
|
||||
|
||||
**Response state codes:**
|
||||
|
||||
@@ -194,7 +194,7 @@ GALILEO asks EasyWMS "what should I do with this container?" or "give me a next
|
||||
| `70` | **F** = Fallo (fault) | TK |
|
||||
| `69` | **E** = Error | TK |
|
||||
|
||||
**X actual / Y actual** — only meaningful for TK; the current crane position is sent so EasyWMS can optimise task ordering.
|
||||
**X actual / Y actual** - only meaningful for TK; the current crane position is sent so EasyWMS can optimise task ordering.
|
||||
|
||||
**Workflow triggered:** `Galileo_SearchCreatedEventHandler_PR`. Routed by station type inside the process.
|
||||
|
||||
@@ -204,7 +204,7 @@ GALILEO asks EasyWMS "what should I do with this container?" or "give me a next
|
||||
- Movement transitions from **Generated** → **In progress**
|
||||
- Container is virtually relocated to **Mov**
|
||||
|
||||
> ⚠️ GALILEO can emit dozens of Search per second per station. **Do not enable workflow instance tracking on Search events carelessly** — scope it to the process and keep trace TTL very short, otherwise the trace tables explode.
|
||||
> ⚠️ GALILEO can emit dozens of Search per second per station. **Do not enable workflow instance tracking on Search events carelessly** - scope it to the process and keep trace TTL very short, otherwise the trace tables explode.
|
||||
|
||||
### 3. End (log → `End0`, `End1`, …)
|
||||
|
||||
@@ -217,7 +217,7 @@ Signals that GALILEO has finished the current movement. EasyWMS advances to the
|
||||
| `0` | Movement completed | Next movement generated |
|
||||
| `1` | Deposit error | Error mask + relocation / reject |
|
||||
| `2` | Extraction error | Error mask + relocation / reject |
|
||||
| `4` | Inconsistent order | WMS/GALILEO configuration mismatch — see troubleshooting |
|
||||
| `4` | Inconsistent order | WMS/GALILEO configuration mismatch - see troubleshooting |
|
||||
| `7` | Gauge error | Relocation / reject |
|
||||
|
||||
**Workflow triggered:** `Galileo_EndCreatedEventHandler_PR`
|
||||
@@ -233,7 +233,7 @@ Sent **every 1–3 seconds** by GALILEO (or immediately on change of state / loa
|
||||
| StationType | Station type code |
|
||||
| StationNumber | Station number |
|
||||
| Status | `0` = unavailable (fault, manual mode, safety); `1` = available |
|
||||
| Loaded | `0` = occupied; `1` = free — **note the inversion** |
|
||||
| Loaded | `0` = occupied; `1` = free - **note the inversion** |
|
||||
| Capacity | Max containers |
|
||||
| CurrentCount | Current GALILEO trackings on the station |
|
||||
| Aisle | Aisle number associated with the station |
|
||||
@@ -251,7 +251,7 @@ SetStationStatus(Type, Numéro, Status, Présence, Capacité, Occupation, Allée
|
||||
|-------|---------|
|
||||
| StationTypeSource / StationNumberSource | Origin station |
|
||||
| StationTypeDestination / StationNumberDestination | Destination station |
|
||||
| Status | `0`/`1`/`2`/`3` — see Route status values above |
|
||||
| Status | `0`/`1`/`2`/`3` - see Route status values above |
|
||||
| CurrentCount | Trackings currently between the two stations |
|
||||
|
||||
**Function exposed by GALILEO:**
|
||||
@@ -259,7 +259,7 @@ SetStationStatus(Type, Numéro, Status, Présence, Capacité, Occupation, Allée
|
||||
SetRouteStatus(TypeOrigine, NuméroOrigine, TypeDestination, NuméroDestination, Etat)
|
||||
```
|
||||
|
||||
## End-to-End Example — Container Arriving at PIE
|
||||
## End-to-End Example - Container Arriving at PIE
|
||||
|
||||
```
|
||||
1. PIE reads label + gauges → Event (Galileo_PIEEventHandler_PR)
|
||||
@@ -277,7 +277,7 @@ SetRouteStatus(TypeOrigine, NuméroOrigine, TypeDestination, NuméroDestination,
|
||||
|
||||
Every automation element is a sequential machine (grafcet) with discrete steps and transitions. Typical conveyor sequence:
|
||||
|
||||
1. Rest — ready to receive
|
||||
1. Rest - ready to receive
|
||||
2. Request output from upstream conveyor
|
||||
3. Verify conditions (no presence, no tracking…)
|
||||
4. Copy tracking + physical transfer + (if station) notify WMS
|
||||
@@ -299,8 +299,8 @@ Core workflows:
|
||||
|
||||
Core commands:
|
||||
|
||||
- `GalileoMovTrackingCreateCommand` — push an order frame to GALILEO (preferred)
|
||||
- `GalileoMovTrackingCreateChangingTargetCommand` — variant that changes target mid-transport (avoid unless strictly necessary)
|
||||
- `GalileoMovTrackingCreateCommand` - push an order frame to GALILEO (preferred)
|
||||
- `GalileoMovTrackingCreateChangingTargetCommand` - variant that changes target mid-transport (avoid unless strictly necessary)
|
||||
|
||||
See [Application Dictionary](application-dictionary.md) for naming conventions and extension points.
|
||||
|
||||
@@ -310,25 +310,25 @@ The GALILEO SCADA (visualization tool) displays machines, trackings and faults i
|
||||
|
||||
- **Default credentials**: `mecalux / robmec`
|
||||
- **Tracking editor** (double-click a machine):
|
||||
- *Show tracking* — the order in execution
|
||||
- *End order* — force-tell EasyWMS that the pallet has reached destination (manual override)
|
||||
- *Machine state* — what GALILEO is currently reporting to EasyWMS
|
||||
- *Show tracking* - the order in execution
|
||||
- *End order* - force-tell EasyWMS that the pallet has reached destination (manual override)
|
||||
- *Machine state* - what GALILEO is currently reporting to EasyWMS
|
||||
- **Advanced tab (unlock icon + password):**
|
||||
- *Variables* — live variables; booleans can be forced
|
||||
- *Graph* — current grafcet step
|
||||
- *Variables* - live variables; booleans can be forced
|
||||
- *Graph* - current grafcet step
|
||||
- **Edit buttons:**
|
||||
- *Edit tracking* — origin, destination, height, type… (click "Edit" first)
|
||||
- *Delete tracking* — remove tracking from the machine
|
||||
- *Reset* — jump the grafcet to a specific step
|
||||
- *Edit tracking* - origin, destination, height, type… (click "Edit" first)
|
||||
- *Delete tracking* - remove tracking from the machine
|
||||
- *Reset* - jump the grafcet to a specific step
|
||||
|
||||
Manual tracking edits are a last-resort diagnostic / recovery tool.
|
||||
|
||||
## Related
|
||||
|
||||
- [Mechanical Elements (acronyms, conveyors, station codes)](../concepts/mechanical-elements.md)
|
||||
- [Stations & Routes](../concepts/stations.md) — full station catalogue from the WMS side
|
||||
- [Stations & Routes](../concepts/stations.md) - full station catalogue from the WMS side
|
||||
- [Galileo Simulation & Test Setup](../operations/galileo-simulation.md)
|
||||
- [Galileo Troubleshooting (Logs, Faults)](../operations/galileo-troubleshooting.md)
|
||||
- [Robotics Project Lifecycle](../operations/robotics-project-lifecycle.md)
|
||||
- [Automation Dashboard](../modules/automation-dashboard.md) — fault monitoring UI
|
||||
- [Automation Dashboard](../modules/automation-dashboard.md) - fault monitoring UI
|
||||
- [Task](../concepts/task.md) · [Location](../concepts/location.md)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "System Architecture Overview"
|
||||
type: architecture
|
||||
sources:
|
||||
- areas/architecture/index.md (404 — compiled from cross-source knowledge)
|
||||
- areas/architecture/index.md (404 - compiled from cross-source knowledge)
|
||||
- areas/saas/index.md (404)
|
||||
- areas/hardware/index.md (404)
|
||||
- areas/license/index.md (404)
|
||||
@@ -111,7 +111,7 @@ Mixed warehouses (some automatic aisles, some manual) are supported. The warehou
|
||||
|
||||
Automatic warehouses depend on a **Transport Management System (TMS)** that physically drives conveyors, stacker cranes, miniloads, shuttles and lifts. In Mecalux installations the TMS is **GALILEO** (production) or **EasyS** (3D simulation for development / demos). Both dialog with EasyWMS through the **EasyWMS Gateway** Windows service over TCP port 3000.
|
||||
|
||||
Principle: **EasyWMS holds all business intelligence** (stock, strategies, orders); **GALILEO has no predictive vision** — it only requests orders and executes them. Three GALILEO-initiated message types drive the flow (Event / Search / End) plus two status update streams (station / route).
|
||||
Principle: **EasyWMS holds all business intelligence** (stock, strategies, orders); **GALILEO has no predictive vision** - it only requests orders and executes them. Three GALILEO-initiated message types drive the flow (Event / Search / End) plus two status update streams (station / route).
|
||||
|
||||
Full protocol, workflows (`Galileo_PIEEventHandler_PR`, `Galileo_SearchCreatedEventHandler_PR`, `Galileo_EndCreatedEventHandler_PR`) and command catalogue: [GALILEO Integration](galileo-integration.md). Bring-up and simulation: [Galileo Simulation](../operations/galileo-simulation.md). Troubleshooting: [Galileo Troubleshooting](../operations/galileo-troubleshooting.md).
|
||||
|
||||
@@ -145,7 +145,7 @@ Both servers run Windows Server. For small warehouses the DB and App roles can b
|
||||
- **Client (SmartUI)**: Modern web browser (Chrome/Edge); tablet or desktop PC
|
||||
- **RF Terminals (RFT)**: Dedicated warehouse scanners running Windows CE or Android; connect via WIFI
|
||||
- **Label Printers**: Zebra-type thermal printers; connected via network or USB
|
||||
- **Automatic Warehouse**: Requires PLC/control system interface (proprietary per vendor — AGV, Pallet Shuttle, APS3D each use their own protocol)
|
||||
- **Automatic Warehouse**: Requires PLC/control system interface (proprietary per vendor - AGV, Pallet Shuttle, APS3D each use their own protocol)
|
||||
- **Scales**: PIE stations can have integrated scales for container weight validation
|
||||
- **Mobile Devices**: Android 10+ required for Amazon SaaS Marketplace integration
|
||||
|
||||
@@ -156,8 +156,8 @@ EasyWMS SaaS runs on Azure and is available in three subscription tiers:
|
||||
| Tier | vCPUs | RAM | Max concurrent users | Max orders/day |
|
||||
|------|-------|-----|---------------------|----------------|
|
||||
| **Basic** | 2 | 7 GB | 10 | 200 |
|
||||
| **Standard** | (contact Mecalux) | — | — | — |
|
||||
| **Advanced** | (contact Mecalux) | — | — | — |
|
||||
| **Standard** | (contact Mecalux) | - | - | - |
|
||||
| **Advanced** | (contact Mecalux) | - | - | - |
|
||||
|
||||
All SaaS tiers: Mecalux manages infrastructure, updates, backup. ERP integration and printers require VPN tunnel or local agents. Some integrations (Amazon Marketplace) require Android 10+ devices.
|
||||
|
||||
@@ -189,11 +189,11 @@ Key system parameters are documented at `areas/parameters.md`. Each functional m
|
||||
|
||||
## Related
|
||||
|
||||
- [Application Dictionary](application-dictionary.md) — AD structure: Commands, Queries, Entities, Workflows
|
||||
- [Security](security.md) — User roles, authentication, audit
|
||||
- [Entities Map](entities-map.md) — Data model and entity relationships
|
||||
- [ERP Interface](../concepts/erp-interface.md) — All ERP messages and integration protocols
|
||||
- [Parameters](../concepts/parameters.md) — System configuration parameters
|
||||
- [AGV](../modules/agv.md) — Automatic warehouse AGV protocol
|
||||
- [Pallet Shuttle](../modules/pallet-shuttle.md) — PS system architecture
|
||||
- [APS3D](../modules/aps3d.md) — Fleet Manager controller
|
||||
- [Application Dictionary](application-dictionary.md) - AD structure: Commands, Queries, Entities, Workflows
|
||||
- [Security](security.md) - User roles, authentication, audit
|
||||
- [Entities Map](entities-map.md) - Data model and entity relationships
|
||||
- [ERP Interface](../concepts/erp-interface.md) - All ERP messages and integration protocols
|
||||
- [Parameters](../concepts/parameters.md) - System configuration parameters
|
||||
- [AGV](../modules/agv.md) - Automatic warehouse AGV protocol
|
||||
- [Pallet Shuttle](../modules/pallet-shuttle.md) - PS system architecture
|
||||
- [APS3D](../modules/aps3d.md) - Fleet Manager controller
|
||||
|
||||
@@ -15,7 +15,6 @@ related:
|
||||
- concepts/kits.md
|
||||
- concepts/quality-control.md
|
||||
- concepts/container.md
|
||||
- concepts/group.md
|
||||
- modules/multi-carrier.md
|
||||
last_compiled: "2026-04-17"
|
||||
---
|
||||
@@ -29,11 +28,11 @@ The handheld RF terminal (`consolerf`) surfaces every operator flow through a fi
|
||||
1. **Customisation.** Overriding a menu entry means cloning the workflow, adjusting it, and pointing the menu at the new version through an Application Dictionary override.
|
||||
2. **Debugging.** When an operator reports "the RFT froze on screen X", locating the workflow that owns screen X is the shortest path to reading the logs.
|
||||
3. **Rights management.** Menu entries are granted per user/role ; this page lists the menu codes (`RFMenu_*`, `SharedMenu_*`) that configuration screens expect.
|
||||
4. **Training / acceptance.** Change management documents refer to workflow names — the table below is the cross-reference.
|
||||
4. **Training / acceptance.** Change management documents refer to workflow names - the table below is the cross-reference.
|
||||
|
||||
All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`Deliveries` for the Multi-Carrier module).
|
||||
|
||||
## 1. Tasks — `RFMenu_Task`
|
||||
## 1. Tasks - `RFMenu_Task`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -51,9 +50,9 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
| Consolidation task | `EasyWMS.Consolidation_AutomaticTasks_FromMenu_UI` |
|
||||
| Cutting task | `EasyWMS.CutInStation_Main_UI` |
|
||||
|
||||
## 2. Receptions — `SharedMenu_Receptions`
|
||||
## 2. Receptions - `SharedMenu_Receptions`
|
||||
|
||||
### Blind reception — `RFMenu_BlindReception`
|
||||
### Blind reception - `RFMenu_BlindReception`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -61,7 +60,7 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
| Mono-reference | `EasyWMS.BlindReception_Monoreference_Containers_UI` |
|
||||
| Identical mono-reference | `EasyWMS.BlindReception_Monoreference_Identical_Containers_UI` |
|
||||
|
||||
### Suppliers — `RFMenu_Providers`
|
||||
### Suppliers - `RFMenu_Providers`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -77,14 +76,14 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
| Advance notice reception | `EasyWMS.AdvanceNotice_Reception_UI` |
|
||||
| Generate labels | `EasyWMS.PrintLabels_MultireferenceContainerLabels_UI` |
|
||||
|
||||
## 3. Putaway — `RFMenu_Putaway`
|
||||
## 3. Putaway - `RFMenu_Putaway`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
| Containers or loose stock | `EasyWMS.Equipment_LoadStock_UI` |
|
||||
| Shared containers | `EasyWMS.Equipment_LoadContainer_UI` |
|
||||
|
||||
## 4. Shipping orders — `SharedMenu_ShippingOrders`
|
||||
## 4. Shipping orders - `SharedMenu_ShippingOrders`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -96,7 +95,7 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
| Paper confirmation | `EasyWMS.Picking_ConfirmPickingPaper_UI` |
|
||||
| Manual preparation | `EasyWMS.Expedition_ManualPreparation_UI` |
|
||||
|
||||
### PTL Picking — `RFMenu_PickingPTLs`
|
||||
### PTL Picking - `RFMenu_PickingPTLs`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -107,7 +106,7 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
| Equipment status | `EasyWMS.PTLsPickingPreparation_ManualEquipmentInfo_UI` |
|
||||
| Manual preparation | `EasyWMS.PTLsPickingPreparation_ManualPreparation_UI` |
|
||||
|
||||
### Truck loading — `RFMenu_TruckLoad`
|
||||
### Truck loading - `RFMenu_TruckLoad`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -116,14 +115,14 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
| Stock load | `EasyWMS.StockTruckLoad_GetLoads_UI` |
|
||||
| Parcel load | `Deliveries.Dlv_TruckLoad_GetLoads_UI` |
|
||||
|
||||
### Undo preparation — `RFMenu_UndoPreparation`
|
||||
### Undo preparation - `RFMenu_UndoPreparation`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
| Undo preparation | `EasyWMS.UndoPreparation_Main_PR` |
|
||||
| Undo excess | `EasyWMS.UndoExcess_Main_PR` |
|
||||
|
||||
## 5. Replenishment — `RFMenu_Replenishment`
|
||||
## 5. Replenishment - `RFMenu_Replenishment`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -132,7 +131,7 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
| By warehouse | `EasyWMS.Replenishment_GetAllProductLocationsByWarehouse_UI` |
|
||||
| By outbound order | `EasyWMS.Replenishment_GenerateTasksByOutboundOrder_UI` |
|
||||
|
||||
## 6. Counts — `SharedMenu_Counts`
|
||||
## 6. Counts - `SharedMenu_Counts`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -140,7 +139,7 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
| Physical count | `EasyWMS.Count_StockOnPhysicalLocation_UI` |
|
||||
| Informed count | `EasyWMS.Count_StockOnPhysicalLocation_Informed_UI` |
|
||||
|
||||
## 7. Kits — `RFMenu_Kits`
|
||||
## 7. Kits - `RFMenu_Kits`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -148,7 +147,7 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
| Assemble | `EasyWMS.KitAssembly_UI` |
|
||||
| Disassemble | `EasyWMS.KitDisassembly_UI` |
|
||||
|
||||
## 8. Quality — `RFMenu_Quality`
|
||||
## 8. Quality - `RFMenu_Quality`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -157,7 +156,7 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
| Unlock by item | `EasyWMS.Quality_UnlockByProduct_UI` |
|
||||
| Unlock by container/location | `EasyWMS.Quality_UnlockByLocationOrContainer_UI` |
|
||||
|
||||
## 9. Groups — `RFMenu_Groups`
|
||||
## 9. Groups - `RFMenu_Groups`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -168,7 +167,7 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
| Extraction without pack | `EasyWMS.Extraction_WithoutPack_UI` |
|
||||
| Change location | `EasyWMS.Ungroup_ChangeLocation_UI` |
|
||||
|
||||
## 10. Utilities — `RFMenu_Utilities`
|
||||
## 10. Utilities - `RFMenu_Utilities`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -192,7 +191,7 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
| Show cart | `EasyWMS.Utils_ShowCart_UI` |
|
||||
| My cart | `EasyWMS.Equipment_MyCart_UI` |
|
||||
|
||||
### Remount / Unremount containers — `RFMenu_RemountUnRemountContainers`
|
||||
### Remount / Unremount containers - `RFMenu_RemountUnRemountContainers`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -201,7 +200,7 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
| Unremount container | `EasyWMS.Container_UnremountContainer_UI` |
|
||||
| Unremount all containers | `EasyWMS.Container_UnremountAllContainers_UI` |
|
||||
|
||||
## 11. Pick and Pass — `Menu_PickAndPass`
|
||||
## 11. Pick and Pass - `Menu_PickAndPass`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -211,7 +210,7 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
| Picking | `EasyWMS.PickAndPass_Picking_Main_PR` |
|
||||
| Automatic task | `EasyWMS.PickAndPass_AutomaticAssignment_Main_UI` |
|
||||
|
||||
## 12. Packaging — `Menu_Packaging` *(Multi-Carrier module)*
|
||||
## 12. Packaging - `Menu_Packaging` *(Multi-Carrier module)*
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -222,7 +221,7 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
| Move parcel | `Deliveries.Dlv_PackageManualMovement_PR` |
|
||||
| Bulk load | `Deliveries.Dlv_BulkLoad_UI` |
|
||||
|
||||
### Reprint tracking number — `ReprintTrackingNumber_RFMenu`
|
||||
### Reprint tracking number - `ReprintTrackingNumber_RFMenu`
|
||||
|
||||
| Menu entry | Workflow |
|
||||
|---|---|
|
||||
@@ -231,16 +230,16 @@ All workflow codes belong to the `EasyWMS` namespace unless otherwise noted (`De
|
||||
|
||||
## Related
|
||||
|
||||
- [[application-dictionary]] — the Application Dictionary holds the Workflow entities referenced above ; overriding a menu entry is an AD operation
|
||||
- [[task]] — Tasks (menu 1) are the main RFT entry point in most deployments
|
||||
- [[reception]] — workflows under menu 2 drive the reception flows (Supplier, Blind, Return, ASN, Workstation)
|
||||
- [[putaway]] — menu 3 and the automatic-assignment path in menu 1
|
||||
- [[picking]] — menu 4 covers all picking flavours (standard, manual, wave, virtual, PTL)
|
||||
- [[replenishment]] — menu 5 covers the four replenishment scopes (location, aisle, warehouse, by-order)
|
||||
- [[count]] — menu 6 physical-count workflows
|
||||
- [[shipping]] — menu 4 packing + undo-preparation close the shipping loop on the RFT
|
||||
- [[kits]] — menu 7 assembly / disassembly
|
||||
- [[quality-control]] — menu 8 lock / unlock
|
||||
- [[group]] — menu 9 group and extraction flows
|
||||
- [[container]] — `Utilities → Remount/Unremount` flows manipulate the container tree
|
||||
- [[multi-carrier]] — menu 12 only appears when the Multi-Carrier (`Deliveries`) module is enabled
|
||||
- [[application-dictionary]] - the Application Dictionary holds the Workflow entities referenced above ; overriding a menu entry is an AD operation
|
||||
- [[task]] - Tasks (menu 1) are the main RFT entry point in most deployments
|
||||
- [[reception]] - workflows under menu 2 drive the reception flows (Supplier, Blind, Return, ASN, Workstation)
|
||||
- [[putaway]] - menu 3 and the automatic-assignment path in menu 1
|
||||
- [[picking]] - menu 4 covers all picking flavours (standard, manual, wave, virtual, PTL)
|
||||
- [[replenishment]] - menu 5 covers the four replenishment scopes (location, aisle, warehouse, by-order)
|
||||
- [[count]] - menu 6 physical-count workflows
|
||||
- [[shipping]] - menu 4 packing + undo-preparation close the shipping loop on the RFT
|
||||
- [[kits]] - menu 7 assembly / disassembly
|
||||
- [[quality-control]] - menu 8 lock / unlock
|
||||
- [[group]] - menu 9 group and extraction flows
|
||||
- [[container]] - `Utilities → Remount/Unremount` flows manipulate the container tree
|
||||
- [[multi-carrier]] - menu 12 only appears when the Multi-Carrier (`Deliveries`) module is enabled
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
title: "Security"
|
||||
type: architecture
|
||||
sources:
|
||||
- areas/security/index.md (404 — compiled from cross-source knowledge)
|
||||
- areas/security/index.md (404 - compiled from cross-source knowledge)
|
||||
- areas/parameters.md
|
||||
- areas/inventory_management/stations/roles.md
|
||||
- modules cross-source knowledge
|
||||
@@ -52,8 +52,8 @@ Password policies (minimum length, complexity, expiry) are configurable in syste
|
||||
|
||||
Operators can log in to RF terminals by scanning a personal QR Code instead of typing their credentials:
|
||||
|
||||
- The QR Code contains **anonymized data** — a third party who finds a lost QR Code cannot derive the operator's username or password from it
|
||||
- **Each reprint invalidates the previous QR Code** — there is no revocation mechanism other than reprinting
|
||||
- The QR Code contains **anonymized data** - a third party who finds a lost QR Code cannot derive the operator's username or password from it
|
||||
- **Each reprint invalidates the previous QR Code** - there is no revocation mechanism other than reprinting
|
||||
- QR Code login is **incompatible with SSO**: a user configured for SSO cannot use QR Code login
|
||||
|
||||
### SSO (Single Sign-On)
|
||||
@@ -61,7 +61,7 @@ Operators can log in to RF terminals by scanning a personal QR Code instead of t
|
||||
EasyWMS supports SSO using the **SAML V2.0 protocol**. No other SSO protocol is supported.
|
||||
|
||||
- SSO is available on both the **PC (SmartUI)** and **RF terminal** interfaces
|
||||
- When SSO is enabled for a user account, EasyWMS will **not accept any other login method** for that user — standard username/password login is disabled
|
||||
- When SSO is enabled for a user account, EasyWMS will **not accept any other login method** for that user - standard username/password login is disabled
|
||||
- **SSO and QR Code are mutually exclusive**: enabling SSO on a user account prevents them from using QR Code login
|
||||
- Configuration requires setting up the SAML identity provider (IDP) in EasyWMS system parameters and mapping EasyWMS roles to IDP groups
|
||||
|
||||
@@ -73,7 +73,7 @@ Authorization is evaluated at two levels:
|
||||
Each Role grants access to specific navigation areas. A user who cannot access a menu item cannot reach the underlying Commands or Views from the UI.
|
||||
|
||||
### Command-Level Access
|
||||
Individual AD Commands can be restricted to specific roles. This is enforced server-side — even if a user constructs an API call directly, the command execution checks the caller's role.
|
||||
Individual AD Commands can be restricted to specific roles. This is enforced server-side - even if a user constructs an API call directly, the command execution checks the caller's role.
|
||||
|
||||
### Data Scope (Owner Isolation)
|
||||
When the **Owner Extensions** module is active, data is isolated by owner:
|
||||
@@ -161,10 +161,10 @@ The SCEM (Supply Chain Event Management) module allows subscribing to operationa
|
||||
|
||||
## Related
|
||||
|
||||
- [Overview](overview.md) — System architecture and deployment model
|
||||
- [Application Dictionary](application-dictionary.md) — Role and permission configuration via AD
|
||||
- [Transactions](../concepts/transactions.md) — Audit trail for all operations
|
||||
- [Quality Control](../concepts/quality-control.md) — Stock lock system
|
||||
- [Owner Extensions](../modules/owner-extensions.md) — Multi-owner data isolation
|
||||
- [3PL Portal](../modules/3pl-portal.md) — External client access model
|
||||
- [Supply Chain Event Management](../modules/supply-chain-event.md) — Notification subscriptions
|
||||
- [Overview](overview.md) - System architecture and deployment model
|
||||
- [Application Dictionary](application-dictionary.md) - Role and permission configuration via AD
|
||||
- [Transactions](../concepts/transactions.md) - Audit trail for all operations
|
||||
- [Quality Control](../concepts/quality-control.md) - Stock lock system
|
||||
- [Owner Extensions](../modules/owner-extensions.md) - Multi-owner data isolation
|
||||
- [3PL Portal](../modules/3pl-portal.md) - External client access model
|
||||
- [Supply Chain Event Management](../modules/supply-chain-event.md) - Notification subscriptions
|
||||
|
||||
Reference in New Issue
Block a user