Work Orders — the resources
🛠️ WOM — the people, trucks, parts and templates the work runs on.
Bons de travail — les ressources
🛠️ WOM — les gens, les camions, les pièces et les gabarits sur lesquels le travail repose.
Órdenes de trabajo — los recursos
🛠️ WOM — las personas, camiones, piezas y plantillas sobre los que descansa el trabajo.
What WOM is for, and the order to read it in
WOM is the everyday work: repairing and maintaining the assets AMS holds. It has around twenty screens, and they are not all the same kind of thing.
Three movements
- Prepare the resources — set once, then maintained. Teams, technicians, crews, trucks, parts, job types, alarms. This part of the chapter.
- Do the work — work orders, Scheduling, Fleet routing, routes, map.
- Account for it — dashboard, reports, activity, data exchange, settings.
Read part A in order, and do it in order
Each screen here depends on the one before it. A job type cannot require a trade that does not exist; a crew cannot be built without technicians and a truck; the scheduler cannot place a work order whose job type has no crew able to do it.
If you start by creating work orders, everything downstream will refuse them and the reasons will look mysterious. Spend the first day here.
The team selector narrows what you see
At the top of the screen sits the active Operations Team. The dashboard, the work-order list and the accounts are narrowed to it. The map is not — it draws every work order and asset in the tenant, and says so in a banner above itself rather than letting you believe otherwise.
On Scheduling and Routes the selector is hidden: the scheduler and the optimizer plan one shared pool, so these two screens always show every team's work. The team you picked comes back when you leave them.
À quoi sert WOM, et dans quel ordre le lire
WOM, c'est le travail de tous les jours : réparer et entretenir les actifs que tient AMS. Il compte une vingtaine d'écrans, et ils ne sont pas tous de même nature.
Trois temps
- Préparer les ressources — à régler une fois, puis à entretenir. Équipes, techniciens, équipages, camions, pièces, types de travail, alarmes. Cette partie-ci du chapitre.
- Faire le travail — bons, Scheduling, Fleet routing, tournées, carte.
- En rendre compte — tableau de bord, rapports, activité, échange de données, réglages.
Lisez la partie A dans l'ordre, et faites-la dans l'ordre
Chaque écran dépend du précédent. Un type de travail ne peut pas exiger un métier qui n'existe pas ; un équipage ne se construit pas sans techniciens ni camion ; l'ordonnanceur ne peut pas poser un bon dont le type de travail n'a aucun équipage capable de le faire.
Si vous commencez par créer des bons, tout ce qui vient après les refusera et les motifs paraîtront mystérieux. Passez la première journée ici.
Le sélecteur d'équipe restreint ce que vous voyez
En haut de l'écran se trouve l'Operations Team active. Le tableau de bord, la liste des bons et les comptes y sont restreints. La carte, non — elle dessine tous les bons et tous les actifs du locataire, et elle le dit dans un bandeau au-dessus d'elle plutôt que de vous laisser croire le contraire.
Sur Scheduling et Routes, le sélecteur est masqué : l'ordonnanceur et l'optimiseur planifient un seul bassin, donc ces deux écrans montrent toujours le travail de toutes les équipes. L'équipe choisie revient quand vous les quittez.
Para qué sirve WOM, y en qué orden leerlo
WOM es el trabajo de cada día: reparar y mantener los activos que guarda AMS. Tiene una veintena de pantallas, y no todas son de la misma naturaleza.
Tres tiempos
- Preparar los recursos — se ajusta una vez y luego se mantiene. Equipos, técnicos, cuadrillas, camiones, piezas, tipos de trabajo, alarmas. Esta parte del capítulo.
- Hacer el trabajo — órdenes, Scheduling, Fleet routing, rutas, mapa.
- Rendir cuentas — panel, informes, actividad, intercambio de datos, ajustes.
Lea la parte A en orden, y hágala en orden
Cada pantalla depende de la anterior. Un tipo de trabajo no puede exigir un oficio que no existe; una cuadrilla no se construye sin técnicos ni camión; el programador no puede colocar una orden cuyo tipo de trabajo no tiene ninguna cuadrilla capaz de hacerlo.
Si empieza creando órdenes, todo lo que viene después las rechazará y los motivos parecerán misteriosos. Dedique el primer día a esto.
El selector de equipo restringe lo que usted ve
En la parte superior de la pantalla está el Operations Team activo. El panel, la lista de órdenes y las cuentas quedan restringidos a él. El mapa no — dibuja todas las órdenes y todos los activos del inquilino, y lo dice en un aviso sobre sí mismo en lugar de dejarle creer lo contrario.
En Scheduling y Routes el selector está oculto: el planificador y el optimizador planifican un solo conjunto, así que estas dos pantallas muestran siempre el trabajo de todos los equipos. El equipo elegido vuelve cuando sale de ellas.
🧭 Ops Teams & Categories — what you see, not what you share
An Operations Team decides what you see and what you may act on — not which resources may be shared. Crews, fleet and technicians form one pool per organization: the scheduler and the optimizer plan every team's work orders against it in a single run, matching each job on trade, truck type and per-truck caps.
The screen has two parts.
Team ↔ category mapping (top)
Tick which categories each team owns. Ownership is one-to-one: a category already claimed by another team shows greyed out with “Owned by … — uncheck there first”, so nothing can sit in two teams at once.
With a team active, only that team's categories — and the job types under them — are in scope. Everything else is hidden until you switch teams.
Categories catalogue (bottom)
➕ New category, ✎ Edit (name, icon, colour) and 🗑 Delete. Built-in categories can be renamed but not deleted; only categories you created yourself can be removed.
Who owns what, across the two applications
WOM owns a category's name, icon, colour and its equipment list. Every edit is broadcast to AMS automatically.
AMS owns which asset types belong to a category — so that assignment is not editable on this side. If a type is in the wrong family, the fix is in chapter 2.
⚠️ Access is Operations Team × Category — and empty means no access
A person's reach is the intersection of the teams they belong to and the categories those teams own. Give someone no team, or a team that owns no category, and they see nothing.
This is the opposite of the rule in AMS, where a category no team covers is visible to everyone. Both are true, and they are not contradictory: coverage decides which team a category belongs to; this decides what a person reaches.
🧭 Ops Teams & Categories — ce qu'on voit, pas ce qu'on partage
Une Operations Team décide de ce qu'on voit et de ce sur quoi on peut agir — pas des ressources qu'on partage. Équipages, flotte et techniciens forment un seul bassin par organisation : l'ordonnanceur et l'optimiseur planifient les bons de toutes les équipes contre lui en un seul calcul, en appariant chaque bon par métier, genre de camion et plafond par camion.
L'écran a deux parties.
L'appariement équipe ↔ catégorie (en haut)
Cochez les catégories que chaque équipe possède. La possession est de un à un : une catégorie déjà revendiquée par une autre équipe s'affiche grisée avec « Owned by … — uncheck there first », si bien que rien ne peut se trouver dans deux équipes à la fois.
Une équipe étant active, seules ses catégories — et les types de travail qui en dépendent — sont dans le périmètre. Tout le reste est caché jusqu'à ce que vous changiez d'équipe.
Le catalogue de catégories (en bas)
➕ New category, ✎ Edit (nom, icône, couleur) et 🗑 Delete. Les catégories livrées peuvent être renommées mais pas supprimées ; seules celles que vous avez créées vous-même peuvent être retirées.
Qui possède quoi, entre les deux applications
WOM possède le nom, l'icône, la couleur d'une catégorie et sa liste d'équipements. Chaque modification est diffusée automatiquement vers AMS.
AMS possède l'appartenance des types d'actif à une catégorie — cette affectation n'est donc pas modifiable de ce côté-ci. Si un type est dans la mauvaise famille, la correction est au chapitre 2.
⚠️ L'accès, c'est Operations Team × Catégorie — et vide signifie aucun accès
La portée d'une personne est l'intersection des équipes auxquelles elle appartient et des catégories que ces équipes possèdent. Donnez à quelqu'un aucune équipe, ou une équipe qui ne possède aucune catégorie, et il ne voit rien.
C'est l'inverse de la règle d'AMS, où une catégorie que personne ne couvre est visible par tous. Les deux sont vraies et ne se contredisent pas : la couverture décide à quelle équipe une catégorie appartient ; ceci décide de ce qu'une personne atteint.
🧭 Ops Teams & Categories — lo que se ve, no lo que se comparte
Un Operations Team decide lo que se ve y sobre qué se puede actuar — no qué recursos se comparten. Cuadrillas, flota y técnicos forman un solo conjunto por organización: el planificador y el optimizador planifican las órdenes de todos los equipos contra él en un solo cálculo, asignando cada orden por oficio, tipo de camión y tope por camión.
La pantalla tiene dos partes.
El emparejamiento equipo ↔ categoría (arriba)
Marque las categorías que posee cada equipo. La posesión es uno a uno: una categoría ya reclamada por otro equipo aparece atenuada con «Owned by … — uncheck there first», de modo que nada puede estar en dos equipos a la vez.
Con un equipo activo, solo sus categorías — y los tipos de trabajo que dependen de ellas — están en el ámbito. Todo lo demás queda oculto hasta que cambie de equipo.
El catálogo de categorías (abajo)
➕ New category, ✎ Edit (nombre, icono, color) y 🗑 Delete. Las categorías de fábrica pueden renombrarse pero no borrarse; solo las que usted mismo creó pueden retirarse.
Quién posee qué, entre las dos aplicaciones
WOM posee el nombre, el icono, el color de una categoría y su lista de equipos. Cada modificación se difunde automáticamente a AMS.
AMS posee la pertenencia de los tipos de activo a una categoría — esa asignación no es modificable de este lado. Si un tipo está en la familia equivocada, la corrección está en el capítulo 2.
⚠️ El acceso es Operations Team × Categoría — y vacío significa ningún acceso
El alcance de una persona es la intersección de los equipos a los que pertenece y las categorías que esos equipos poseen. Dé a alguien ningún equipo, o un equipo que no posee ninguna categoría, y no verá nada.
Es lo contrario de la regla de AMS, donde una categoría que nadie cubre es visible para todos. Ambas son ciertas y no se contradicen: la cobertura decide a qué equipo pertenece una categoría; esto decide lo que alcanza una persona.
👷 Technicians — the people and their trades
Four sub-tabs: Roster, Types, Crews and Statistics. Crews have their own section below.
The roster
Each technician carries three things the scheduler reads:
- Their trade — one technician type. This is what a job type asks for.
- Their working days and their time off — set with ✎. A technician is only available on a working day they are not off.
- Their rank within their trade — moved with ▲▼. The scheduler picks the top-ranked available technician first. Rank is not seniority; it is your pick order.
Types — the trades
Electrician, Lineworker, Waterworks Technician, and whatever else your operation uses. They are not fixed in the software: you add, rename and retire them here.
| What you do | What happens |
|---|---|
| Add or rename | Written to the server as a name in three languages.
Needs the admin_client role. |
| The code | Set once and never renamed. It is what technicians and job types store. |
| Rename a trade | Cascades to every technician and every job type that uses it. |
| Retire a trade | Only takes it out of the pickers — it deletes nothing. And it is refused while anything still uses it. |
⚠️ A trade nobody carries is not refused — it just never schedules
Nothing stops you creating a job type that requires a trade no technician has. The job type saves, work orders can be created against it, and then the scheduler quietly reports “No crew for …” for every one of them.
After adding a trade, add the people who hold it — in the same sitting.
👷 Technicians — les gens et leurs métiers
Quatre sous-onglets : Roster, Types, Crews et Statistics. Les équipages ont leur propre section plus bas.
L'effectif
Chaque technicien porte trois choses que l'ordonnanceur lit :
- Son métier — un seul type de technicien. C'est ce qu'un type de travail demande.
- Ses jours travaillés et ses congés — réglés avec ✎. Un technicien n'est disponible qu'un jour travaillé où il n'est pas absent.
- Son rang dans son métier — déplacé avec ▲▼. L'ordonnanceur prend d'abord le mieux classé qui est disponible. Le rang n'est pas l'ancienneté : c'est votre ordre de choix.
Types — les métiers
Électricien, monteur de lignes, technicien en aqueduc, et tout ce que votre exploitation utilise. Ils ne sont pas figés dans le logiciel : vous les ajoutez, les renommez et les retirez ici.
| Ce que vous faites | Ce qui se passe |
|---|---|
| Ajouter ou renommer | Écrit sur le serveur comme un nom en trois
langues. Exige le rôle admin_client. |
| Le code | Posé une seule fois et jamais renommé. C'est ce que stockent les techniciens et les types de travail. |
| Renommer un métier | Se répercute sur tous les techniciens et tous les types de travail qui l'utilisent. |
| Retirer un métier | Cela le sort seulement des menus — cela ne supprime rien. Et c'est refusé tant que quelque chose l'utilise encore. |
⚠️ Un métier que personne ne porte n'est pas refusé — il ne s'ordonnance simplement jamais
Rien ne vous empêche de créer un type de travail qui exige un métier qu'aucun technicien n'a. Le type s'enregistre, des bons peuvent être créés dessus, et l'ordonnanceur signale ensuite discrètement « No crew for … » pour chacun d'eux.
Après avoir ajouté un métier, ajoutez les gens qui le portent — dans la même séance.
👷 Technicians — las personas y sus oficios
Cuatro subpestañas: Roster, Types, Crews y Statistics. Las cuadrillas tienen su propia sección más abajo.
La plantilla
Cada técnico lleva tres cosas que el programador lee:
- Su oficio — un solo tipo de técnico. Es lo que pide un tipo de trabajo.
- Sus días trabajados y sus ausencias — se ajustan con ✎. Un técnico solo está disponible en un día trabajado en el que no esté ausente.
- Su rango dentro de su oficio — se mueve con ▲▼. El programador toma primero al mejor clasificado que esté disponible. El rango no es la antigüedad: es su orden de elección.
Types — los oficios
Electricista, montador de líneas, técnico de aguas, y lo que use su explotación. No están fijados en el software: usted los añade, los renombra y los retira aquí.
| Lo que usted hace | Lo que ocurre |
|---|---|
| Añadir o renombrar | Se escribe en el servidor como un nombre en tres
idiomas. Exige el rol admin_client. |
| El código | Se fija una sola vez y nunca se renombra. Es lo que almacenan los técnicos y los tipos de trabajo. |
| Renombrar un oficio | Se propaga a todos los técnicos y todos los tipos de trabajo que lo usan. |
| Retirar un oficio | Solo lo saca de los menús — no borra nada. Y se rechaza mientras algo siga usándolo. |
⚠️ Un oficio que nadie tiene no se rechaza — simplemente nunca se programa
Nada le impide crear un tipo de trabajo que exija un oficio que ningún técnico tiene. El tipo se guarda, pueden crearse órdenes sobre él, y el programador informa después discretamente «No crew for …» para cada una de ellas.
Después de añadir un oficio, añada a las personas que lo tienen — en la misma sesión.
Crews — technicians tied to a truck
A crew ties technicians of one trade to one truck for a date range. It models how a team actually rolls out of the yard.
The moment the first crew exists, the whole system changes gear
Once any crew exists, the scheduler assigns work to crews and the optimizer routes them as fixed units — so technicians never shuffle between trucks mid-day.
With no crews defined at all, it falls back to the older model of loose technicians plus equipment. That is deliberate: you can adopt crews gradually.
⚙ Auto-build
It reads what your job types demand (for example 3 × Waterworks Technician + Hydro-excavation truck), derives crew templates from that, and staffs each truck with the top-ranked available technicians.
⚠️ Auto-build replaces. It does not add.
Every crew a previous Auto-build created is retired first. Re-running it refreshes the crew set rather than doubling it — which is what you want, and not what most people expect from a button called “build”.
Two things it will not touch: crews you made by hand, and a crew still holding open work orders.
A kept crew counts as one crew already built for its template only if it is the size that template asks for. A kept crew that is too small is offered as a crew to grow, with the technicians to add named. The proposal lists what goes and what stays before anything is written — read it; that screen is the last moment to stop.
+ New crew, by hand
Name, trade, technicians in rank order, truck, and the dates the crew is valid.
Conflicts
Every crew is checked and flagged with the reason:
- A technician or a truck double-booked across overlapping crews.
- A member on time off during the crew's dates.
- A member of the wrong trade.
- A missing truck.
A crew stays valid until a member's time off, then re-forms — automatically substituting the next-ranked technician. What it cannot fill is reported as a coverage gap.
Crews — des techniciens liés à un camion
Un équipage lie des techniciens d'un seul métier à un camion pour une période. Il représente la façon dont une équipe sort réellement de la cour.
Dès qu'un premier équipage existe, tout le système change de régime
Dès qu'un équipage — n'importe lequel — existe, l'ordonnanceur affecte le travail à des équipages et l'optimiseur les route comme des unités fixes : les techniciens ne changent jamais de camion en cours de journée.
Sans aucun équipage défini, il retombe sur le modèle plus ancien des techniciens isolés plus équipement. C'est délibéré : on peut adopter les équipages progressivement.
⚙ Auto-build
Il lit ce que vos types de travail exigent (par exemple 3 × technicien en aqueduc + camion d'excavation hydraulique), en dérive des gabarits d'équipage, et garnit chaque camion avec les techniciens disponibles les mieux classés.
⚠️ Auto-build remplace. Il n'ajoute pas.
Tout équipage créé par un précédent Auto-build est retiré d'abord. Le relancer rafraîchit le jeu d'équipages au lieu de le doubler — ce qui est bien ce que l'on veut, et n'est pas ce que la plupart des gens attendent d'un bouton nommé « build ».
Deux choses auxquelles il ne touche pas : les équipages faits à la main, et un équipage qui porte encore des bons ouverts.
Un équipage gardé compte pour un équipage déjà construit pour son gabarit uniquement s'il a la taille que ce gabarit demande. Un équipage gardé trop petit est proposé comme équipage à agrandir, avec les techniciens à ajouter nommés. La proposition liste ce qui part et ce qui reste avant que rien ne soit écrit — lisez-la ; cet écran est le dernier moment pour arrêter.
+ New crew, à la main
Nom, métier, techniciens dans l'ordre de rang, camion, et les dates de validité de l'équipage.
Les conflits
Chaque équipage est contrôlé et signalé avec son motif :
- Un technicien ou un camion réservé deux fois sur des équipages qui se chevauchent.
- Un membre en congé pendant les dates de l'équipage.
- Un membre du mauvais métier.
- Un camion manquant.
Un équipage reste valide jusqu'au congé d'un membre, puis se reforme — en substituant automatiquement le technicien suivant au classement. Ce qu'il ne peut pas combler est signalé comme un trou de couverture.
Crews — técnicos ligados a un camión
Una cuadrilla liga técnicos de un solo oficio a un camión durante un periodo. Representa cómo sale realmente un equipo del parque.
En cuanto existe una primera cuadrilla, todo el sistema cambia de régimen
En cuanto existe una cuadrilla — cualquiera —, el programador asigna el trabajo a cuadrillas y el optimizador las enruta como camiones fijos: los técnicos nunca cambian de camión a media jornada.
Sin ninguna cuadrilla definida, vuelve al modelo más antiguo de técnicos sueltos más equipo. Es deliberado: se pueden adoptar las cuadrillas poco a poco.
⚙ Auto-build
Lee lo que exigen sus tipos de trabajo (por ejemplo 3 × técnico de aguas + camión de excavación hidráulica), deriva de ello plantillas de cuadrilla, y dota cada camión con los técnicos disponibles mejor clasificados.
⚠️ Auto-build reemplaza. No añade.
Toda cuadrilla creada por un Auto-build anterior se retira primero. Volver a lanzarlo refresca el conjunto de cuadrillas en lugar de duplicarlo — que es lo que uno quiere, y no lo que la mayoría espera de un botón llamado «build».
Dos cosas que no toca: las cuadrillas hechas a mano y una cuadrilla que todavía lleva órdenes abiertas.
Una cuadrilla conservada cuenta como una cuadrilla ya construida para su plantilla únicamente si tiene el tamaño que esa plantilla pide. Una cuadrilla conservada demasiado pequeña se propone como cuadrilla a ampliar, nombrando los técnicos que hay que añadir. La propuesta enumera lo que se va y lo que se queda antes de escribir nada — léala; esa pantalla es el último momento para parar.
+ New crew, a mano
Nombre, oficio, técnicos en orden de rango, camión, y las fechas de validez de la cuadrilla.
Los conflictos
Cada cuadrilla se comprueba y se señala con su motivo:
- Un técnico o un camión reservado dos veces en cuadrillas que se solapan.
- Un miembro ausente durante las fechas de la cuadrilla.
- Un miembro del oficio equivocado.
- Un camión que falta.
Una cuadrilla sigue siendo válida hasta la ausencia de un miembro, y entonces se rehace — sustituyendo automáticamente por el técnico siguiente en la clasificación. Lo que no puede cubrir se informa como un hueco de cobertura.
🚚 Equipment Fleet — depots and trucks
Three sub-tabs: Depots & Trucks, Types and Statistics.
The fleet is a list of individual units, each with its own ID — BT-02 —
a name, and a home depot. The scheduler assigns specific units to jobs, one
unit of each required kind per day, and never double-books a unit.
Click a unit's ID to see that unit's own schedule.
Changing the fleet re-runs the scheduler. You do not have to ask it to.
Equipment types — the kinds of vehicle
Service truck, bucket truck, hydro-excavation, and so on. Same rules as the trades:
- The name is written to the server in three languages, and needs
admin_client. - The code is set once and never renamed.
- Retiring only takes a type out of the pickers.
- Renaming cascades — to units, to job types including their truck lines, to work orders and to crews.
One field lives only in your browser: the ID prefix
The ID prefix — used when creating units, so that they come out as
BT-01, BT-02 — has no column in the database. It stays in
this browser.
So a colleague creating units on another workstation may get a different prefix. If your unit IDs need to be consistent across the team, agree the prefix out loud; the software will not carry it for you.
Seasonal capacity reserve — on the Types sub-tab
Under the list of equipment types, a grid gives one row per truck type, one column per period of the year. Each cell is a reserve % — the share of that truck type's minutes the scheduler must leave free for urgent jobs during that season, for all categories together.
| Idea | What it means |
|---|---|
| A period | A season. It has only a start day (month and day, no year) and runs until the next period starts, every year; the last one wraps around to the first. The whole year is always covered, with no gaps or overlaps. |
| A rate per truck type | Trucks are shared between categories, so the minutes kept free are kept on the trucks: a bucket truck kept free is free for every category it serves. A storm season can keep more room on bucket trucks than on service trucks. A category's reserve is never entered: Scheduling → Capacity Reserve shows it derived from its truck types. |
| What 25 % does | Normal jobs of any category can fill only 75 % of that truck type's minutes that day. The other 25 % stays free: Critical and pinned jobs are never refused by the reserve. |
| An empty cell | 0 % — no reserve for that truck type in that season. |
Editing the grid
- Type a whole number from 0 to 100 in a cell. Leaving the cell saves it (Enter leaves it too). Each cell is saved on its own.
- Empty a cell to remove its rate: the truck type falls back to 0 % for that season.
- + Period adds a season: choose the month and start day and name it in all three languages — each user reads the name in their own language, and the application cannot translate a name you invent. Two periods cannot start on the same day, and a day that does not exist in the month (30 February) is refused.
- ✕ under a period's name removes it, after confirmation. Its days then belong to the previous period.
- The ⓘ next to + Period repeats how periods work, on screen.
One day different from its season
The grid is the rule for the year. A single day is changed with a day exception on Scheduling → Capacity Reserve: it replaces the seasonal rate for that truck type on that day only. How the scheduler uses the % — with a worked example — is explained there.
Each rate carries a version: if a colleague changed it while you were typing, your save is refused and the grid reloads — check it and type it again.
🚚 Equipment Fleet — dépôts et camions
Trois sous-onglets : Depots & Trucks, Types et Statistics.
La flotte est une liste d'unités individuelles, chacune avec son propre identifiant —
BT-02 — un nom, et un dépôt d'attache. L'ordonnanceur affecte des
unités précises aux travaux, une unité de chaque genre exigé par jour, et ne réserve
jamais deux fois la même unité.
Cliquez l'identifiant d'une unité pour voir l'horaire de cette unité-là.
Modifier la flotte relance l'ordonnanceur. Vous n'avez pas à le demander.
Les types d'équipement — les genres de véhicule
Camion de service, nacelle, excavation hydraulique, et ainsi de suite. Mêmes règles que pour les métiers :
- Le nom est écrit sur le serveur en trois langues, et exige
admin_client. - Le code est posé une seule fois et jamais renommé.
- Retirer sort seulement un type des menus.
- Renommer se répercute — sur les unités, sur les types de travail y compris leurs lignes de camion, sur les bons et sur les équipages.
Un champ ne vit que dans votre navigateur : le préfixe d'identifiant
Le préfixe d'identifiant — utilisé à la création des unités, pour qu'elles sortent
en BT-01, BT-02 — n'a aucune colonne en base. Il reste dans
ce navigateur.
Un collègue qui crée des unités depuis un autre poste peut donc obtenir un préfixe différent. Si vos identifiants d'unité doivent être cohérents dans l'équipe, entendez-vous sur le préfixe de vive voix ; le logiciel ne le portera pas pour vous.
Seasonal capacity reserve — dans le sous-onglet Types
Sous la liste des types d'équipement, une grille donne une ligne par genre de camion, une colonne par période de l'année. Chaque case est un % de réserve — la part des minutes de ce genre de camion que l'ordonnanceur doit laisser libre pour les bons urgents pendant cette saison, pour toutes les catégories ensemble.
| Notion | Ce qu'elle veut dire |
|---|---|
| Une période | Une saison. Elle n'a qu'un jour de début (mois et jour, sans année) et dure jusqu'au début de la suivante, chaque année ; la dernière rejoint la première. Toute l'année est donc couverte, sans trou ni chevauchement. |
| Un taux par genre de camion | Les camions sont partagés entre catégories, c'est donc sur eux que les minutes restent libres : une nacelle gardée libre l'est pour toutes les catégories qu'elle sert. Une saison des orages peut garder plus de place sur les nacelles que sur les camions de service. La réserve d'une catégorie ne se saisit nulle part : Scheduling → Capacity Reserve la montre, déduite de ses genres de camion. |
| Ce que fait 25 % | Les bons ordinaires de toute catégorie ne peuvent remplir que 75 % des minutes de ce genre de camion ce jour-là. Les 25 % restants demeurent libres : la réserve ne refuse jamais les bons Critical ni les bons épinglés. |
| Une case vide | 0 % — aucune réserve pour ce genre de camion pendant cette saison. |
Modifier la grille
- Tapez un nombre entier de 0 à 100 dans une case. Quitter la case l'enregistre (Entrée la quitte aussi). Chaque case s'enregistre seule.
- Videz une case pour retirer son taux : le genre de camion retombe à 0 % pour cette saison.
- + Period ajoute une saison : choisissez le mois et le jour de début, et nommez-la dans les trois langues — chaque utilisateur lit le nom dans la sienne, et l'application ne peut pas traduire un nom que vous inventez. Deux périodes ne peuvent pas commencer le même jour, et un jour qui n'existe pas dans le mois (30 février) est refusé.
- ✕ sous le nom d'une période la retire, après confirmation. Ses jours reviennent alors à la période précédente.
- Le ⓘ à côté de + Period rappelle à l'écran comment fonctionnent les périodes.
Un jour différent de sa saison
La grille est la règle de l'année. Un seul jour se change par une surcharge du jour dans Scheduling → Capacity Reserve : elle remplace le taux saisonnier de ce genre de camion, ce jour-là seulement. La façon dont l'ordonnanceur se sert du % — avec un exemple chiffré — y est expliquée.
Chaque taux porte une version : si un collègue l'a changé pendant que vous tapiez, votre enregistrement est refusé et la grille se recharge — vérifiez-la et retapez-le.
🚚 Equipment Fleet — depósitos y camiones
Tres subpestañas: Depots & Trucks, Types y Statistics.
La flota es una lista de camiones individuales, cada uno con su propio identificador
— BT-02 — un nombre, y un depósito base. El programador asigna
camiones concretos a los trabajos, un camión de cada clase exigida por día, y
nunca reserva dos veces el mismo camión.
Presione el identificador de un camión para ver el horario de ese camión.
Modificar la flota relanza el programador. No tiene que pedírselo.
Los tipos de equipo — las clases de vehículo
Camión de servicio, camión canastilla, excavación hidráulica, etcétera. Mismas reglas que para los oficios:
- El nombre se escribe en el servidor en tres idiomas, y exige
admin_client. - El código se fija una sola vez y nunca se renombra.
- Retirar solo saca un tipo de los menús.
- Renombrar se propaga — a los camiones, a los tipos de trabajo incluidas sus líneas de camión, a las órdenes y a las cuadrillas.
Un campo vive solo en su navegador: el prefijo de identificador
El prefijo de identificador — usado al crear camiones, para que salgan como
BT-01, BT-02 — no tiene ninguna columna en la base de datos. Se
queda en este navegador.
Un compañero que cree camiones desde otro puesto puede obtener un prefijo distinto. Si sus identificadores de camión deben ser coherentes en el equipo, acuerden el prefijo de viva voz; el software no lo llevará por ustedes.
Seasonal capacity reserve — en la subpestaña Types
Bajo la lista de tipos de equipo, una cuadrícula da una fila por tipo de camión, una columna por periodo del año. Cada celda es un % de reserva — la parte de los minutos de ese tipo de camión que el programador debe dejar libre para los trabajos urgentes durante esa temporada, para todas las categorías juntas.
| Idea | Qué significa |
|---|---|
| Un periodo | Una temporada. Solo tiene un día de inicio (mes y día, sin año) y dura hasta que empieza el siguiente, cada año; el último continúa hasta el primero. Así el año entero queda siempre cubierto, sin huecos ni solapamientos. |
| Una tasa por tipo de camión | Los camiones se comparten entre categorías, así que los minutos libres se mantienen en los camiones: un camión canastilla mantenido libre lo está para todas las categorías que atiende. Una temporada de tormentas puede guardar más espacio en los camiones canastilla que en los de servicio. La reserva de una categoría no se ingresa en ningún lugar: Scheduling → Capacity Reserve la muestra, derivada de sus tipos de camión. |
| Qué hace un 25 % | Los trabajos normales de cualquier categoría solo pueden llenar el 75 % de los minutos de ese tipo de camión ese día. El 25 % restante queda libre: la reserva nunca rechaza los trabajos Critical ni los fijados. |
| Una celda vacía | 0 % — sin reserva para ese tipo de camión en esa temporada. |
Editar la cuadrícula
- Escriba un número entero de 0 a 100 en una celda. Salir de la celda la guarda (Enter también sale). Cada celda se guarda por separado.
- Vacíe una celda para quitar su tasa: el tipo de camión vuelve a 0 % en esa temporada.
- + Period agrega una temporada: elija el mes y el día de inicio y póngale nombre en los tres idiomas — cada usuario lee el nombre en el suyo, y la aplicación no puede traducir un nombre que usted invente. Dos periodos no pueden empezar el mismo día, y un día que no existe en el mes (30 de febrero) se rechaza.
- ✕ bajo el nombre de un periodo lo quita, tras confirmación. Sus días pasan entonces al periodo anterior.
- El ⓘ junto a + Period recuerda en pantalla cómo funcionan los periodos.
Un día distinto de su temporada
La cuadrícula es la regla del año. Un solo día se cambia con una excepción del día en Scheduling → Capacity Reserve: reemplaza la tasa estacional de ese tipo de camión, solo ese día. Cómo usa el programador el % — con un ejemplo numérico — se explica allí.
Cada tasa lleva una versión: si un compañero la cambió mientras usted escribía, su guardado se rechaza y la cuadrícula se recarga — revísela y vuelva a escribirla.
📦 Materials / Inventory
The parts store: what you hold, what the open work will need, and when you run out.
Each item carries a code, a name in three languages, a unit, in stock, a reorder threshold, a unit cost and a lead time. Items at or below their threshold are flagged red.
The five header cards
Lines tracked · how many are below threshold · stock value (on hand × unit cost, over the priced items only) · how many have no unit cost · the average lead time.
Two figures that put everything on one scale
- Suggest — what to order to come back to twice the threshold.
- Coverage — on hand measured against 2× its threshold, so every line is comparable.
Both come from stock and threshold alone. Neither knows anything about your open work.
Editing, and the one field you cannot type
✎ edits the name, category, unit, threshold, cost or lead time. Never the stock.
The stock is the sum of the item's locations. You change it by counting (✎ Count somewhere, up or down) or by moving it (⇄ Move parts), both from ⓘ. + stock adds a quantity at one location without retyping the total.
You can tick several rows to restock them, or set one threshold across them, in one go. Each item is still a separate write, and the result says how many went through.
Required, and Available
Required is what the job types of the open work orders prescribe, summed per item. Available is on hand minus that.
⚠️ Nothing is reserved
No line moves in the database when work is scheduled. “Required” is a calculation, not a hold. Two dispatchers planning the same afternoon can both be told the part is available.
And work orders with no job type, or with a fallback type the catalogue excludes, are counted separately and named under the table. Their demand is unknown, not zero — do not read the total as complete.
Incoming, and the run-out day
Open ⓘ on any item for its expected arrivals and its run-out day. An arrival carries a day, a quantity and optionally a PO number, a supplier and a unit cost.
- ✓ Receive is what raises the stock — and it is the only write that makes the stock journal say receipt rather than correction. If you raise the number by counting instead, the trail will not show a delivery.
- Order by is the run-out day less the item's lead time.
- An arrival that was expected and never received is named and not counted. The scheduler drops it too.
Work orders with parts but no scheduled day count in Required and in no day of the curve; the screen says how many. And nothing writes consumption yet, so parts leave the curve when a day passes, not when a truck opens the box.
📦 Materials / Inventory
Le magasin de pièces : ce que vous détenez, ce dont le travail ouvert aura besoin, et quand vous serez à sec.
Chaque article porte un code, un nom en trois langues, une unité, un stock disponible, un seuil de réapprovisionnement, un coût unitaire et un délai. Les articles à leur seuil ou en dessous sont signalés en rouge.
Les cinq cartes d'en-tête
Lignes suivies · combien sont sous le seuil · la valeur du stock (disponible × coût unitaire, sur les seuls articles valorisés) · combien n'ont aucun coût unitaire · le délai moyen.
Deux chiffres qui mettent tout sur la même échelle
- Suggest — ce qu'il faut commander pour revenir au double du seuil.
- Coverage — le disponible mesuré face à 2 × son seuil, pour que toutes les lignes soient comparables.
Les deux ne viennent que du stock et du seuil. Ni l'un ni l'autre ne sait quoi que ce soit de votre travail ouvert.
La modification, et le seul champ qu'on ne saisit pas
✎ modifie le nom, la catégorie, l'unité, le seuil, le coût ou le délai. Jamais le stock.
Le stock est la somme des emplacements de l'article. On le change en comptant (✎ Count somewhere, à la hausse ou à la baisse) ou en le déplaçant (⇄ Move parts), les deux depuis ⓘ. + stock ajoute une quantité à un emplacement sans avoir à ressaisir le total.
Vous pouvez cocher plusieurs lignes pour les réapprovisionner, ou leur poser un même seuil, d'un coup. Chaque article reste une écriture séparée, et le compte rendu dit combien sont passées.
Required, et Available
Required est ce que prescrivent les types de travail des bons ouverts, sommé par article. Available est le disponible moins cela.
⚠️ Rien n'est réservé
Aucune ligne ne bouge en base quand du travail est ordonnancé. « Required » est un calcul, pas une retenue. Deux répartiteurs qui planifient le même après-midi peuvent tous les deux s'entendre dire que la pièce est disponible.
Et les bons sans type de travail, ou portant un type de repli que le catalogue exclut, sont comptés à part et nommés sous le tableau. Leur demande est inconnue, pas nulle — ne lisez pas le total comme s'il était complet.
Les arrivages, et le jour de rupture
Ouvrez ⓘ sur un article pour voir ses arrivages attendus et son jour de rupture. Un arrivage porte un jour, une quantité et, facultativement, un numéro de commande, un fournisseur et un coût unitaire.
- ✓ Receive est ce qui monte le stock — et c'est la seule écriture qui fait dire réception au journal de stock plutôt que correction. Si vous montez le nombre en comptant, la trace ne montrera pas de livraison.
- Order by est le jour de rupture moins le délai de l'article.
- Un arrivage attendu et jamais reçu est nommé et non compté. L'ordonnanceur le laisse tomber lui aussi.
Les bons qui ont des pièces mais aucun jour ordonnancé comptent dans Required et dans aucun jour de la courbe ; l'écran dit combien. Et rien n'écrit encore la consommation : les pièces quittent la courbe quand un jour passe, pas quand un camion ouvre la boîte.
📦 Materials / Inventory
El almacén de piezas: lo que tiene, lo que necesitará el trabajo abierto, y cuándo se quedará sin existencias.
Cada artículo lleva un código, un nombre en tres idiomas, una unidad de medida, existencias, un umbral de reposición, un coste unitario y un plazo. Los artículos en su umbral o por debajo se señalan en rojo.
Las cinco tarjetas de cabecera
Líneas seguidas · cuántas están bajo el umbral · el valor del stock (existencias × coste unitario, solo sobre los artículos valorados) · cuántas no tienen ningún coste unitario · el plazo medio.
Dos cifras que ponen todo en la misma escala
- Suggest — lo que hay que pedir para volver al doble del umbral.
- Coverage — las existencias medidas frente a 2 × su umbral, para que todas las líneas sean comparables.
Ambas salen solo del stock y del umbral. Ninguna sabe nada de su trabajo abierto.
La edición, y el único campo que no se teclea
✎ edita el nombre, la categoría, la unidad de medida, el umbral, el coste o el plazo. Nunca las existencias.
Las existencias son la suma de las ubicaciones del artículo. Se cambian contando (✎ Count somewhere, al alza o a la baja) o moviéndolas (⇄ Move parts), ambas desde ⓘ. + stock añade una cantidad en una ubicación sin volver a teclear el total.
Puede marcar varias líneas para reponerlas, o ponerles un mismo umbral, de una vez. Cada artículo sigue siendo una escritura separada, y el resultado dice cuántas pasaron.
Required y Available
Required es lo que prescriben los tipos de trabajo de las órdenes abiertas, sumado por artículo. Available son las existencias menos eso.
⚠️ No se reserva nada
Ninguna línea se mueve en la base de datos cuando se programa trabajo. «Required» es un cálculo, no una retención. Dos despachadores que planifiquen la misma tarde pueden oír ambos que la pieza está disponible.
Y las órdenes sin tipo de trabajo, o con un tipo de reserva que el catálogo excluye, se cuentan aparte y se nombran bajo la tabla. Su demanda es desconocida, no nula — no lea el total como si estuviera completo.
Las llegadas y el día de rotura
Abra ⓘ en un artículo para ver sus llegadas previstas y su día de rotura. Una llegada lleva un día, una cantidad y, opcionalmente, un número de pedido, un proveedor y un coste unitario.
- ✓ Receive es lo que sube las existencias — y es la única escritura que hace que el diario de stock diga recepción en lugar de corrección. Si sube el número contando, el rastro no mostrará ninguna entrega.
- Order by es el día de rotura menos el plazo del artículo.
- Una llegada prevista y nunca recibida se nombra y no se cuenta. El programador también la descarta.
Las órdenes con piezas pero sin día programado cuentan en Required y en ningún día de la curva; la pantalla dice cuántas. Y todavía nada escribe el consumo: las piezas salen de la curva cuando pasa un día, no cuando un camión abre la caja.
🧩 Job Types — the template for a kind of work
A job type declares what a job of that kind needs — crew, trucks, parts, time — and how much of it can run per day. Every work order is created against one.
| Field | What it decides |
|---|---|
| Asset type | The single asset type this job applies to, e.g. Fire hydrant. The category is derived from it automatically. |
| Default priority | Low / Normal / High / Critical — pre-selected on the work order. |
| Duration (min) | Standard on-site time. Feeds the routing. |
| Daily capacity | The most jobs of this type the scheduler will place on any single day. |
| Crew per truck | For each truck the job needs: its kind, how many on site at once, the trade, and technicians per truck. Zero technicians means equipment only; a line with no truck means crew only. Both are real declarations, not blanks. |
| Required materials | The parts and quantities the job consumes. |
| Lead time | Blank means the priority SLA applies instead: Critical 1 day, High 3, Normal 7, Low 14. |
⚠️ A red Duration or Capacity/day is a warning, not a refusal
Red means the number is above what one truck can physically do in a day — the day's work budget, less travel, divided by the duration.
The scheduler plans that capacity exactly as written. So a red line is you over-promising, and it is never the reason work was held back. Fix the number, or accept that the plan is optimistic.
A job type longer than the whole day budget is the extreme case: no crew and no truck can ever run one in a day, so it never schedules at all. Raise the day limit, cut the travel allowance, or shorten the job.
Scoped by asset type
A job type targets exactly one asset type, so when you create a work order the Job type menu offers only the job types matching the asset you picked. One asset type can carry several — hydrant → flush, repair, replace — and each asset type in a category gets its own.
The template, and the work order's own copy
At creation a work order copies the job type's equipment and materials into its own snapshot, so you can tailor one job without touching the template.
Editing a job type propagates to every still-open work order of that type whose snapshot still matches the old template. Work orders you had customised are left alone, and the save reports how many it refreshed.
Deleting
🗑 is a logical delete: past work orders keep their reference, the audit trail is untouched, and the code becomes free again. The server refuses while any open work order still carries the type, and says how many.
Fallback types cannot be edited at all. And note that work orders can cite a type the catalogue excludes — which is why Materials counts those separately.
🧩 Job Types — le gabarit d'un genre de travail
Un type de travail déclare ce dont un travail de ce genre a besoin — équipage, camions, pièces, temps — et combien on peut en faire par jour. Chaque bon est créé contre un type.
| Champ | Ce qu'il décide |
|---|---|
| Asset type | Le seul type d'actif auquel ce travail s'applique, par exemple borne d'incendie. La catégorie en est déduite automatiquement. |
| Default priority | Low / Normal / High / Critical — présélectionnée sur le bon. |
| Duration (min) | Le temps standard sur place. Il alimente le routage. |
| Daily capacity | Le nombre maximal de travaux de ce type que l'ordonnanceur posera sur une même journée. |
| Crew per truck | Pour chaque camion nécessaire : son genre, combien sur place à la fois, le métier, et le nombre de techniciens par camion. Zéro technicien signifie équipement seul ; une ligne sans camion signifie équipage seul. Les deux sont de vraies déclarations, pas des vides. |
| Required materials | Les pièces et quantités que le travail consomme. |
| Lead time | Vide signifie que le délai de la priorité s'applique à la place : Critical 1 jour, High 3, Normal 7, Low 14. |
⚠️ Une Duration ou une Capacity/day en rouge est un avertissement, pas un refus
Le rouge signifie que le nombre est au-dessus de ce qu'un camion peut physiquement faire en une journée — le budget de travail du jour, moins le trajet, divisé par la durée.
L'ordonnanceur planifie cette capacité exactement telle qu'elle est écrite. Une ligne rouge, c'est donc vous qui promettez trop, et ce n'est jamais la raison pour laquelle du travail a été retenu. Corrigez le nombre, ou acceptez que le plan soit optimiste.
Un type de travail plus long que le budget de la journée entière est le cas extrême : aucun équipage et aucun camion ne peut jamais en faire un en une journée, donc il ne s'ordonnance jamais. Relevez le plafond du jour, réduisez l'allocation de trajet, ou raccourcissez le travail.
Délimité par le type d'actif
Un type de travail vise exactement un type d'actif : à la création d'un bon, le menu Job type ne propose donc que les types de travail qui correspondent à l'actif que vous avez choisi. Un type d'actif peut en porter plusieurs — borne → rinçage, réparation, remplacement — et chaque type d'actif d'une catégorie a les siens.
Le gabarit, et la copie propre au bon
À la création, un bon copie l'équipement et le matériel du type de travail dans son propre instantané : vous pouvez donc ajuster un travail particulier sans toucher au gabarit.
Modifier un type de travail se répercute sur tous les bons encore ouverts de ce type dont l'instantané correspond encore à l'ancien gabarit. Les bons que vous aviez personnalisés sont laissés tranquilles, et l'enregistrement dit combien il en a rafraîchis.
La suppression
🗑 est une suppression logique : les bons passés gardent leur référence, la piste d'audit n'est pas touchée, et le code redevient libre. Le serveur refuse tant qu'un bon ouvert porte encore le type, et il dit combien.
Les types de repli ne sont pas modifiables du tout. Et notez que des bons peuvent citer un type que le catalogue exclut — c'est pourquoi Materials les compte à part.
🧩 Job Types — la plantilla de una clase de trabajo
Un tipo de trabajo declara lo que un trabajo de esa clase necesita — cuadrilla, camiones, piezas, tiempo — y cuánto puede hacerse al día. Cada orden se crea contra uno.
| Campo | Qué decide |
|---|---|
| Asset type | El único tipo de activo al que se aplica este trabajo, por ejemplo hidrante. La categoría se deduce de él automáticamente. |
| Default priority | Low / Normal / High / Critical — preseleccionada en la orden. |
| Duration (min) | El tiempo estándar en el sitio. Alimenta el enrutado. |
| Daily capacity | El número máximo de trabajos de este tipo que el programador colocará en un mismo día. |
| Crew per truck | Para cada camión necesario: su clase, cuántos en el sitio a la vez, el oficio, y el número de técnicos por camión. Cero técnicos significa solo equipo; una línea sin camión significa solo cuadrilla. Ambas son declaraciones reales, no huecos. |
| Required materials | Las piezas y cantidades que consume el trabajo. |
| Lead time | Vacío significa que se aplica el plazo de la prioridad: Critical 1 día, High 3, Normal 7, Low 14. |
⚠️ Una Duration o una Capacity/day en rojo es un aviso, no un rechazo
El rojo significa que el número está por encima de lo que un camión puede hacer físicamente en un día — el presupuesto de trabajo del día, menos el trayecto, dividido por la duración.
El programador planifica esa capacidad exactamente como está escrita. Una línea roja es, por tanto, usted prometiendo de más, y nunca es la razón por la que se retuvo trabajo. Corrija el número, o acepte que el plan es optimista.
Un tipo de trabajo más largo que el presupuesto de la jornada entera es el caso extremo: ninguna cuadrilla y ningún camión puede hacer uno en un día, así que nunca se programa. Suba el límite del día, reduzca la asignación de trayecto, o acorte el trabajo.
Delimitado por el tipo de activo
Un tipo de trabajo apunta exactamente a un tipo de activo: al crear una orden, el menú Job type ofrece solo los tipos de trabajo que corresponden al activo que usted eligió. Un tipo de activo puede llevar varios — hidrante → purga, reparación, sustitución — y cada tipo de activo de una categoría tiene los suyos.
La plantilla y la copia propia de la orden
Al crearse, una orden copia el equipo y el material del tipo de trabajo en su propia instantánea: puede así ajustar un trabajo concreto sin tocar la plantilla.
Editar un tipo de trabajo se propaga a todas las órdenes aún abiertas de ese tipo cuya instantánea siga coincidiendo con la plantilla antigua. Las órdenes que usted había personalizado se dejan en paz, y el guardado dice cuántas refrescó.
El borrado
🗑 es un borrado lógico: las órdenes pasadas conservan su referencia, el rastro de auditoría no se toca, y el código vuelve a quedar libre. El servidor se niega mientras una orden abierta siga llevando el tipo, y dice cuántas.
Los tipos de reserva no son editables en absoluto. Y tenga en cuenta que las órdenes pueden citar un tipo que el catálogo excluye — por eso Materials los cuenta aparte.
🚨 Alarms
Assets that carry a sensor can raise an alarm on their own. An alarm is not a message — it creates work.
- Each alarm auto-creates a service-call work order at High or Critical priority.
- It honours the one-open-work-order-per-asset rule: if a work order is already open on that asset, the alarm escalates that one instead of creating a duplicate.
- Acknowledge an alarm once it is being handled. That clears its override on the map.
The Unack. count
An alarm is unacknowledged while it is active and nobody has answered it: it is not acknowledged, and no open work order covers it. The 🚨 Alarms badge counts these for the whole organization, read from the server; the dashboard card Unack. alarms counts them for the team selected. Unacknowledged only, above the list, shows exactly those — the card opens the tab with it ticked.
On the map
An account with an active, unacknowledged alarm is coloured by severity — Critical red, High orange, Medium yellow, Low lime — drawn larger with a white ring so it stands out.
The alarm colour overrides the work-order status colour, and the marker always shows. Several alarms on one account use the highest severity.
So a marker that looks alarming may be carrying a job that is already well in hand — acknowledge alarms as you pick them up, or the map stops meaning anything.
🚨 Alarms
Les actifs qui portent un capteur peuvent lever une alarme tout seuls. Une alarme n'est pas un message : elle crée du travail.
- Chaque alarme crée automatiquement un bon d'intervention en priorité High ou Critical.
- Elle respecte la règle d'un seul bon ouvert par actif : si un bon est déjà ouvert sur cet actif, l'alarme rehausse celui-là au lieu d'en créer un doublon.
- Acquittez une alarme dès qu'elle est prise en charge. Cela lève sa priorité d'affichage sur la carte.
Le compte des non acquittées
Une alarme est non acquittée tant qu'elle est active et que personne n'y a répondu : elle n'est pas acquittée et aucun bon ouvert ne la couvre. La pastille de l'onglet 🚨 Alarms les compte pour toute l'organisation, lues sur le serveur ; la carte Unack. alarms du tableau de bord les compte pour l'équipe choisie. Unacknowledged only, au-dessus de la liste, montre exactement celles-là — la carte ouvre l'onglet avec cette case cochée.
Sur la carte
Un compte portant une alarme active et non acquittée est coloré selon sa gravité — Critical rouge, High orange, Medium jaune, Low vert clair — dessiné plus gros avec un anneau blanc pour ressortir.
La couleur de l'alarme l'emporte sur la couleur d'état du bon, et le marqueur s'affiche toujours. Plusieurs alarmes sur un même compte prennent la gravité la plus haute.
Un marqueur qui paraît alarmant peut donc porter un travail déjà bien en main — acquittez les alarmes au fur et à mesure, sinon la carte cesse de vouloir dire quoi que ce soit.
🚨 Alarms
Los activos que llevan un sensor pueden levantar una alarma por sí solos. Una alarma no es un mensaje: crea trabajo.
- Cada alarma crea automáticamente una orden de intervención con prioridad High o Critical.
- Respeta la regla de una sola orden abierta por activo: si ya hay una orden abierta sobre ese activo, la alarma eleva esa en lugar de crear un duplicado.
- Reconozca una alarma en cuanto se esté atendiendo. Eso levanta su prioridad de visualización en el mapa.
El recuento de no reconocidas
Una alarma está sin reconocer mientras está activa y nadie la ha atendido: no está reconocida y ninguna orden abierta la cubre. La insignia de la pestaña 🚨 Alarms las cuenta para toda la organización, leídas en el servidor; la tarjeta Unack. alarms del panel las cuenta para el equipo elegido. Unacknowledged only, encima de la lista, muestra exactamente esas — la tarjeta abre la pestaña con esa casilla marcada.
En el mapa
Una cuenta con una alarma activa y no reconocida se colorea según su gravedad — Critical rojo, High naranja, Medium amarillo, Low verde claro — dibujada más grande y con un anillo blanco para destacar.
El color de la alarma prevalece sobre el color de estado de la orden, y el marcador siempre se muestra. Varias alarmas en una misma cuenta toman la gravedad más alta.
Un marcador que parece alarmante puede llevar, por tanto, un trabajo ya bien encaminado — reconozca las alarmas según las vaya recogiendo, o el mapa dejará de significar nada.
🏢 Accounts (read-only)
The same accounts and assets as chapter 2, mirrored here so a dispatcher can see who a job belongs to without leaving WOM.
Nothing here can be written. A wrong address, a missing phone number, an asset on the wrong account — all of that is corrected in AMS, and arrives here on the next publish.
The screen is hidden when WOM runs embedded inside AMS, because AMS is already showing its own.
🏢 Accounts (read-only)
Les mêmes comptes et actifs qu'au chapitre 2, reflétés ici pour qu'un répartiteur voie à qui appartient un travail sans quitter WOM.
Rien ici n'est inscriptible. Une adresse fausse, un numéro de téléphone manquant, un actif sur le mauvais compte — tout cela se corrige dans AMS, et arrive ici à la publication suivante.
L'écran est caché quand WOM tourne embarqué dans AMS, puisque AMS montre déjà les siens.
🏢 Accounts (read-only)
Las mismas cuentas y activos que en el capítulo 2, reflejados aquí para que un despachador vea a quién pertenece un trabajo sin salir de WOM.
Nada de aquí se puede escribir. Una dirección errónea, un teléfono que falta, un activo en la cuenta equivocada — todo eso se corrige en AMS, y llega aquí en la siguiente publicación.
La pantalla se oculta cuando WOM funciona incrustado dentro de AMS, porque AMS ya muestra las suyas.
📋 Work Orders
The work order is the unit of everything that follows. It says what has to be done, on which asset, by when, and how urgent it is.
Where they come from
- By hand — + New work order, or from an account or an asset (including the + W.O. button in AMS).
- From an alarm — created automatically at High or Critical priority.
One open work order per asset
The key is the account plus the asset. Creating a work order for an asset that already has an open one does not make a duplicate — it opens the existing one so you can adjust what it needs. Alarms follow the same rule: they escalate the existing work order's priority rather than adding a second.
This is why two people reporting the same broken hydrant do not send two crews.
The target date, and why it matters more than it looks
Every work order carries a target date — the day it should be done by — shown on the
card with a lateness chip (⏰ 3d late, due today).
Leave it empty and it is filled from the priority: Critical +1 day, High +3, Normal +7, Low +14 from creation. You can change it on any work order.
Plan by — the latest safe day
The work order card shows Plan by right after Scheduled for: the last day the job can be done without putting its target date at risk. For a Critical job it is the target date minus the Critical margin, for a High job minus the High margin — in working days, weekends not counted (see Settings). For Normal and Low jobs it is the target date itself.
- Beside the date, a chip gives the slack: the working days between the scheduled day (or today, if the job is not scheduled) and Plan by. Green at 1 or more, amber at 0, red below 0 — the job is planned after its latest safe day. Hover it for the target date and the slack.
- A job with no target date has no Plan by. A Fixed or Cancelled job keeps the date, without the chip.
- The same date and chip appear on the Work Orders list and on the board cards.
The status cycle
A work order can only move along these paths. The system will not offer you a jump that is not on the list.
| From | You may go to |
|---|---|
| New | Scheduled · Cancelled |
| Scheduled | On-site · Cancelled |
| On-site | Problem identified · Fixed · Not fixed · Cancelled |
| Problem identified | Fixed · Not fixed · Cancelled |
| Not fixed | Scheduled · On-site · Cancelled |
| Fixed | — nothing. It is closed. |
| Cancelled | — nothing. It is closed. |
Open means New, Scheduled, On-site, Problem identified or Not fixed. Fixed and Cancelled are closed and are left alone by everything downstream.
Four statuses demand a sentence
These are not optional boxes. The route refuses the change without text, and the question is different each time — because “what was done” and “why it failed” are not the same sentence:
| Status | What it asks |
|---|---|
| Problem identified | What is blocking? |
| Fixed | What was done? |
| Not fixed | Why did it fail? |
| Cancelled | Why cancel? |
The number on screen is the number to say out loud
A work order is identified by something like WO-2026-000024 — readable over a
radio, writable on paper. You will never be asked to read out an internal identifier.
Each work order carries its own copy of the equipment and parts its job type prescribed, so you can tailor one job without changing the template for everybody. See Job Types.
📋 Work Orders
Le bon de travail est l'unité de tout ce qui suit. Il dit ce qu'il faut faire, sur quel actif, pour quand, et à quel point c'est urgent.
D'où ils viennent
- À la main — + New work order, ou depuis un compte ou un actif (y compris le bouton + W.O. d'AMS).
- D'une alarme — créé automatiquement en priorité High ou Critical.
Un seul bon ouvert par actif
La clé est le compte plus l'actif. Créer un bon pour un actif qui en a déjà un d'ouvert ne fabrique pas de doublon : cela ouvre celui qui existe, pour que vous ajustiez ce dont il a besoin. Les alarmes suivent la même règle : elles rehaussent la priorité du bon existant au lieu d'en ajouter un second.
C'est pour cela que deux personnes signalant la même borne cassée n'envoient pas deux équipes.
L'échéance, et pourquoi elle compte plus qu'il n'y paraît
Chaque bon porte une échéance — le jour pour lequel il devrait être fait — affichée
sur la carte avec une pastille de retard (⏰ 3d late,
due today).
Laissez-la vide et elle est remplie d'après la priorité : Critical +1 jour, High +3, Normal +7, Low +14 à partir de la création. Vous pouvez la changer sur n'importe quel bon.
Plan by — le dernier jour sûr
La fiche du bon affiche Plan by juste après Scheduled for : le dernier jour où le travail peut être fait sans mettre son échéance en danger. Pour un bon Critical, c'est l'échéance moins la marge Critical ; pour un bon High, moins la marge High — en jours ouvrables, fins de semaine non comptées (voir Settings). Pour les bons Normal et Low, c'est l'échéance elle-même.
- À côté de la date, une pastille donne la marge : les jours ouvrables entre le jour planifié (ou aujourd'hui, si le bon n'est pas planifié) et Plan by. Verte à 1 ou plus, ambre à 0, rouge sous 0 — le bon est planifié après son dernier jour sûr. Survolez-la pour voir l'échéance et la marge.
- Un bon sans échéance n'a pas de Plan by. Un bon Fixed ou Cancelled garde la date, sans la pastille.
- La même date et la même pastille figurent dans la liste des bons et sur les cartes du tableau.
Le cycle des statuts
Un bon ne peut se déplacer que sur ces chemins. Le système ne vous proposera jamais un saut qui n'est pas dans la liste.
| Depuis | Vous pouvez aller vers |
|---|---|
| New | Scheduled · Cancelled |
| Scheduled | On-site · Cancelled |
| On-site | Problem identified · Fixed · Not fixed · Cancelled |
| Problem identified | Fixed · Not fixed · Cancelled |
| Not fixed | Scheduled · On-site · Cancelled |
| Fixed | — rien. Il est clos. |
| Cancelled | — rien. Il est clos. |
Ouvert veut dire New, Scheduled, On-site, Problem identified ou Not fixed. Fixed et Cancelled sont clos, et tout ce qui suit les laisse tranquilles.
Quatre statuts exigent une phrase
Ce ne sont pas des cases facultatives. La route refuse le changement sans texte, et la question diffère à chaque fois — parce que « ce qui a été fait » et « pourquoi ça a échoué » ne se remplissent pas avec la même phrase :
| Statut | Ce qu'il demande |
|---|---|
| Problem identified | Qu'est-ce qui bloque ? |
| Fixed | Qu'a-t-on fait ? |
| Not fixed | Pourquoi ça a échoué ? |
| Cancelled | Pourquoi annuler ? |
Le numéro à l'écran est celui qu'on dit à voix haute
Un bon s'identifie par quelque chose comme WO-2026-000024 — lisible à la
radio, inscriptible sur papier. On ne vous demandera jamais de lire un identifiant
interne.
Chaque bon porte sa propre copie de l'équipement et des pièces prescrits par son type de travail : vous pouvez donc ajuster un travail sans changer le gabarit de tout le monde. Voir Job Types.
📋 Work Orders
La orden de trabajo es la base de todo lo que sigue. Dice qué hay que hacer, sobre qué activo, para cuándo, y cuán urgente es.
De dónde vienen
- A mano — + New work order, o desde una cuenta o un activo (incluido el botón + W.O. de AMS).
- De una alarma — creada automáticamente con prioridad High o Critical.
Una sola orden abierta por activo
La clave es la cuenta más el activo. Crear una orden para un activo que ya tiene una abierta no fabrica un duplicado: abre la que existe, para que usted ajuste lo que necesita. Las alarmas siguen la misma regla: elevan la prioridad de la orden existente en lugar de añadir una segunda.
Por eso dos personas que avisan del mismo hidrante roto no envían dos cuadrillas.
La fecha objetivo, y por qué importa más de lo que parece
Cada orden lleva una fecha objetivo — el día para el que debería estar hecha —
mostrada en la tarjeta con una etiqueta de retraso (⏰ 3d late,
due today).
Déjela vacía y se rellena según la prioridad: Critical +1 día, High +3, Normal +7, Low +14 desde la creación. Puede cambiarla en cualquier orden.
Plan by — el último día seguro
La ficha de la orden muestra Plan by justo después de Scheduled for: el último día en que el trabajo puede hacerse sin poner en riesgo su fecha objetivo. Para una orden Critical es la fecha objetivo menos el margen Critical; para una High, menos el margen High — en días hábiles, sin contar fines de semana (vea Settings). Para las órdenes Normal y Low es la fecha objetivo misma.
- Junto a la fecha, una etiqueta da el margen: los días hábiles entre el día planificado (u hoy, si la orden no está planificada) y Plan by. Verde a partir de 1, ámbar en 0, roja por debajo de 0 — la orden está planificada después de su último día seguro. Pase el cursor sobre ella para ver la fecha objetivo y el margen.
- Una orden sin fecha objetivo no tiene Plan by. Una orden Fixed o Cancelled conserva la fecha, sin la etiqueta.
- La misma fecha y la misma etiqueta aparecen en la lista de órdenes y en las tarjetas del tablero.
El ciclo de estados
Una orden solo puede moverse por estos caminos. El sistema nunca le ofrecerá un salto que no esté en la lista.
| Desde | Puede ir a |
|---|---|
| New | Scheduled · Cancelled |
| Scheduled | On-site · Cancelled |
| On-site | Problem identified · Fixed · Not fixed · Cancelled |
| Problem identified | Fixed · Not fixed · Cancelled |
| Not fixed | Scheduled · On-site · Cancelled |
| Fixed | — nada. Está cerrada. |
| Cancelled | — nada. Está cerrada. |
Abierta significa New, Scheduled, On-site, Problem identified o Not fixed. Fixed y Cancelled están cerradas, y todo lo que sigue las deja en paz.
Cuatro estados exigen una frase
No son casillas opcionales. La ruta rechaza el cambio sin texto, y la pregunta es distinta cada vez — porque «lo que se hizo» y «por qué falló» no se rellenan con la misma frase:
| Estado | Qué pregunta |
|---|---|
| Problem identified | ¿Qué está bloqueando? |
| Fixed | ¿Qué se hizo? |
| Not fixed | ¿Por qué falló? |
| Cancelled | ¿Por qué cancelar? |
El número en pantalla es el que se dice en voz alta
Una orden se identifica por algo como WO-2026-000024 — legible por radio,
escribible en papel. Nunca se le pedirá que lea un identificador interno.
Cada orden lleva su propia copia del equipo y las piezas que prescribió su tipo de trabajo, así que puede ajustar un trabajo sin cambiar la plantilla de todos. Véase Job Types.
A Monday, end to end
Scheduling and Fleet routing are the two hardest screens in the system, and the reason is always the same: people expect one engine and there are two. This section follows a single day so the difference becomes visible.
The situation. Monday morning. 71 work orders are open. You have three trades, six trucks and two depots.
Two engines, two different decisions
| 📅 The scheduler | 🚚 The optimizer | |
|---|---|---|
| Decides | Which day, and which crew or trade | Which truck, which people, and the order of the stops |
| Thinks in | Days | Minutes and kilometres |
| Reads | Priority, lateness, day capacity, crews, parts | One day's scheduled jobs, and real road travel times |
| Writes | New → Scheduled | The day, the rank in the tour, and the crew |
Said plainly: the scheduler decides trades and days. The optimizer decides people, trucks and the order of stops. The scheduler fills the calendar; the optimizer fills the day.
Step 1 — 📅 Re-run Jobs Scheduler
The server computes a plan. Nothing is saved. What appears on the board is a proposal, laid over what is really in the database.
Before computing, it checks the crews with Auto-build and asks you only when there is a real decision — see Scheduling in detail.
- Scope — the work orders still open in your organization.
- Order — the most urgent first (its priority, plus how late it already is), then the closest due date, then the oldest.
- Filling the days — each day holds only so many minutes of work. When a day is full, what is left moves to a later day.
- Skipped — the days you locked and the frozen 🔒 work orders are never moved; pinned 📌 cards keep the day you gave them.
- Could not be placed — a job that fits in none of the days shown is listed apart, with the reason.
“Pushed to a later day” and “could not be placed” are not the same thing
A job pushed to a later day is planned — only later. A job that could not be placed is not planned at all, and it will stay that way until you act on the reason. The board keeps them in separate panels for exactly this reason. Read the panel headings before the numbers.
Step 2 — check the proposal, then commit
Proposal details, a chip above the board, lists the work orders the proposal could not place, with the reason for each. If late jobs released the capacity reserve, it names those days and how many late jobs used it (see Capacity Reserve). When you are satisfied, press 💾 Commit scheduler plan. It moves work orders from New to Scheduled, and changes nothing else.
While you work, you hold the days
Nobody else can reschedule the days you are working on. A banner counts the hold down, and any click or keystroke keeps it — there is a Keep it button if you are reading rather than clicking. Nothing you have done is lost when it lapses; the hold only stops others from rescheduling meanwhile.
If a colleague holds a day inside your horizon, the commit is refused for all of it: “Committing rewrites the WHOLE horizon, so one held day refuses all of it. Nothing was changed.” Their hold frees itself when they stop.
Step 3 — 🚚 Run Fleet Routing
A two-week calendar lets you pick exactly which days to route. They need not be consecutive, and each day is optimized independently. Days with work show a count; frozen appointments show 🔒.
The optimizer receives your real trucks, depots and crews, and starts and ends each truck at its own home depot.
Step 4 — ▶ Run Optimization, then 💾 Save & commit tour
That second button is the write. It puts the day, the rank in the tour and the crew into the database.
The three traps, in the order they bite
⚠️ 1 · Re-running the scheduler erases what the optimizer placed
An unlocked route is provisional, so a new scheduler run drops it. If you have committed to a route, freeze it (🔒). A pin (📌) only stops the scheduler moving the card — Fleet Routing can still re-route a pinned job.
This is the single most common surprise in the system: an afternoon of routing undone by one well-meant re-run.
⚠️ 2 · Auto-build comes before the scheduler, and it wipes the crew set
⚙ Auto-build retires every crew a previous Auto-build made (see Crews). Rebuild crews after scheduling and your plan was computed against crews that no longer exist.
The order is: crews, then scheduler, then optimizer. Always that way round. 📅 Re-run Jobs Scheduler now checks the crews itself before computing; what is left to avoid is running Auto-build after scheduling.
⚠️ 3 · A stale proposal can appear to move a card without anything being written
Committing a tour forgets the scheduler's proposal, deliberately: once the optimizer has written the day and the rank, the old proposal no longer describes anything.
Unfreezing a card does not forget it — and that is on purpose, because unfreezing a job so the scheduler picks it up again is legitimate. But the old proposal is still on screen, and it will re-apply its date to the card you just unfroze. The card jumps; nothing was written.
If a card moves and you did not expect it: re-run the scheduler, so what you are looking at matches what is stored.
Step 5 — the day is committed
Routed cards show 🚚 truck · stop · ETA. The Routes screen shows each vehicle's day: stops, hours on site, hours travelling, kilometres, and how full the day is.
Un lundi, d'un bout à l'autre
Scheduling et Fleet routing sont les deux écrans les plus difficiles du système, et la raison est toujours la même : on attend un moteur, il y en a deux. Cette section suit une seule journée pour rendre la différence visible.
La situation. Lundi matin. 71 bons sont ouverts. Vous avez trois métiers, six camions et deux dépôts.
Deux moteurs, deux décisions différentes
| 📅 L'ordonnanceur | 🚚 L'optimiseur | |
|---|---|---|
| Décide | Quel jour, et quel équipage ou métier | Quel camion, quelles personnes, et l'ordre des arrêts |
| Raisonne en | Journées | Minutes et kilomètres |
| Lit | Priorité, retard, capacité du jour, équipages, pièces | Les travaux ordonnancés d'une journée, et les temps de trajet routiers réels |
| Écrit | New → Scheduled | Le jour, le rang dans la tournée, et l'équipage |
Dit simplement : l'ordonnanceur décide des métiers et des jours. L'optimiseur décide des personnes, des camions et de l'ordre des arrêts. L'ordonnanceur remplit le calendrier ; l'optimiseur remplit la journée.
Étape 1 — 📅 Re-run Jobs Scheduler
Le serveur calcule un plan. Rien n'est enregistré. Ce qui apparaît sur le tableau est une proposition, posée par-dessus ce qui se trouve réellement en base.
Avant de calculer, il vérifie les équipages avec Auto-build et ne vous demande quelque chose que s'il y a une vraie décision — voir Scheduling en détail.
- Portée — les bons encore ouverts dans votre organisation.
- Ordre — le plus urgent d'abord (sa priorité, plus le retard déjà accumulé), puis l'échéance la plus proche, puis le plus ancien.
- Remplissage des journées — chaque journée ne tient qu'un certain nombre de minutes de travail. Quand elle est pleine, le reste passe à une journée suivante.
- Ignorés — les journées que vous avez verrouillées et les bons gelés 🔒 ne sont jamais déplacés ; les cartes épinglées 📌 gardent la journée que vous leur avez donnée.
- Impossible à placer — un travail qui ne rentre dans aucune des journées affichées est listé à part, avec la raison.
« Repoussé plus tard » et « impossible à placer » ne sont pas la même chose
Un travail repoussé plus tard est planifié — seulement plus tard. Un travail impossible à placer n'est pas planifié du tout, et il le restera tant que vous n'aurez pas agi sur la raison. Le tableau les garde dans des panneaux séparés exactement pour cela. Lisez les titres de panneau avant les nombres.
Étape 2 — vérifier la proposition, puis engager
Détail de la proposition, une puce au-dessus du tableau, liste les bons que la proposition n'a pas pu placer, avec le motif de chacun. Si des bons en retard ont libéré la réserve de capacité, il nomme ces jours et le nombre de bons en retard qui l'ont utilisée (voir Capacity Reserve). Quand vous êtes satisfait, pressez 💾 Commit scheduler plan. Il fait passer les bons de New à Scheduled, et ne change rien d'autre.
Pendant que vous travaillez, vous tenez les journées
Personne d'autre ne peut replanifier les journées sur lesquelles vous travaillez. Un bandeau décompte la tenue, et tout clic ou toute frappe la conserve — il y a un bouton Keep it si vous lisez plutôt que vous ne cliquez. Rien de ce que vous avez fait n'est perdu quand elle expire ; la tenue empêche seulement les autres de replanifier entre-temps.
Si un collègue tient une journée dans votre horizon, l'engagement est refusé pour la totalité : « Committing rewrites the WHOLE horizon, so one held day refuses all of it. Nothing was changed. » Sa tenue se libère d'elle-même quand il s'arrête.
Étape 3 — 🚚 Run Fleet Routing
Un calendrier de deux semaines vous laisse choisir exactement quelles journées router. Elles n'ont pas à se suivre, et chaque journée est optimisée indépendamment. Les journées qui portent du travail affichent un compte ; les rendez-vous gelés affichent 🔒.
L'optimiseur reçoit vos vrais camions, dépôts et équipages, et fait partir et revenir chaque camion de son propre dépôt d'attache.
Étape 4 — ▶ Run Optimization, puis 💾 Save & commit tour
Ce second bouton est l'écriture. Il inscrit en base le jour, le rang dans la tournée et l'équipage.
Les trois pièges, dans l'ordre où ils mordent
⚠️ 1 · Relancer l'ordonnanceur efface ce que l'optimiseur a posé
Une tournée non verrouillée est provisoire : une nouvelle exécution de l'ordonnanceur la laisse tomber. Si vous vous êtes engagé sur une tournée, gelez-la (🔒). Une épingle (📌) n'empêche que l'ordonnanceur de déplacer la carte — Fleet Routing peut encore re-router un bon épinglé.
C'est la surprise la plus fréquente du système : un après-midi de routage défait par une relance bien intentionnée.
⚠️ 2 · Auto-build passe avant l'ordonnanceur, et il efface le jeu d'équipages
⚙ Auto-build retire tous les équipages créés par un précédent Auto-build (voir Crews). Reconstruisez les équipages après l'ordonnancement et votre plan aura été calculé contre des équipages qui n'existent plus.
L'ordre est : équipages, puis ordonnanceur, puis optimiseur. Toujours dans ce sens. 📅 Re-run Jobs Scheduler vérifie maintenant lui-même les équipages avant de calculer ; ce qu'il reste à éviter, c'est de lancer Auto-build après l'ordonnancement.
⚠️ 3 · Une proposition périmée peut sembler déplacer une carte sans rien écrire
Engager une tournée oublie la proposition de l'ordonnanceur, délibérément : une fois que l'optimiseur a écrit le jour et le rang, l'ancienne proposition ne décrit plus rien.
Dégeler une carte ne l'oublie pas — et c'est voulu, parce que dégeler un bon pour que l'ordonnanceur le reprenne est légitime. Mais l'ancienne proposition est toujours à l'écran, et elle reposera sa date sur la carte que vous venez de dégeler. La carte saute ; rien n'a été écrit.
Si une carte bouge sans que vous vous y attendiez : relancez l'ordonnanceur, pour que ce que vous regardez corresponde à ce qui est enregistré.
Étape 5 — la journée est engagée
Les cartes routées affichent 🚚 camion · arrêt · heure d'arrivée. L'écran Routes montre la journée de chaque véhicule : arrêts, heures sur place, heures de trajet, kilomètres, et à quel point la journée est pleine.
Un lunes, de principio a fin
Scheduling y Fleet routing son las dos pantallas más difíciles del sistema, y la razón es siempre la misma: uno espera un motor y hay dos. Esta sección sigue una sola jornada para hacer visible la diferencia.
La situación. Lunes por la mañana. 71 órdenes están abiertas. Usted tiene tres oficios, seis camiones y dos depósitos.
Dos motores, dos decisiones distintas
| 📅 El programador | 🚚 El optimizador | |
|---|---|---|
| Decide | Qué día, y qué cuadrilla u oficio | Qué camión, qué personas, y el orden de las paradas |
| Razona en | Jornadas | Minutos y kilómetros |
| Lee | Prioridad, retraso, capacidad del día, cuadrillas, piezas | Los trabajos programados de una jornada, y tiempos de viaje reales por carretera |
| Escribe | New → Scheduled | El día, el rango en la ruta, y la cuadrilla |
Dicho llanamente: el programador decide oficios y días. El optimizador decide personas, camiones y el orden de las paradas. El programador llena el calendario; el optimizador llena la jornada.
Paso 1 — 📅 Re-run Jobs Scheduler
El servidor calcula un plan. No se guarda nada. Lo que aparece en el tablero es una propuesta, superpuesta a lo que hay realmente en la base de datos.
Antes de calcular, verifica las cuadrillas con Auto-build y solo le pregunta cuando hay una decisión real — véase Scheduling en detalle.
- Alcance — las órdenes aún abiertas en su organización.
- Orden — lo más urgente primero (su prioridad, más el retraso ya acumulado), luego el vencimiento más próximo, luego lo más antiguo.
- Llenado de los días — cada jornada solo admite cierta cantidad de minutos de trabajo. Cuando se llena, lo que sobra pasa a un día posterior.
- Omitidos — los días que usted bloqueó y las órdenes congeladas 🔒 nunca se mueven; las tarjetas fijadas 📌 conservan el día que usted les dio.
- Imposible de ubicar — un trabajo que no cabe en ninguna de las jornadas mostradas se lista aparte, con el motivo.
«Empujado a un día posterior» e «imposible de ubicar» no son lo mismo
Un trabajo empujado a un día posterior sí está planificado — solo que más tarde. Un trabajo imposible de ubicar no está planificado en absoluto, y seguirá así hasta que usted actúe sobre el motivo. El tablero los mantiene en paneles separados exactamente por eso. Lea los títulos de los paneles antes que las cifras.
Paso 2 — revisar la propuesta, y luego comprometer
Detalle de la propuesta, una etiqueta sobre el tablero, lista las órdenes que la propuesta no pudo colocar, con el motivo de cada una. Si trabajos con retraso liberaron la reserva de capacidad, nombra esos días y cuántos trabajos con retraso la usaron (vea Capacity Reserve). Cuando esté satisfecho, presione 💾 Commit scheduler plan. Pasa las órdenes de New a Scheduled, y no cambia nada más.
Mientras usted trabaja, retiene las jornadas
Nadie más puede replanificar las jornadas en las que usted trabaja. Un aviso descuenta la retención, y cualquier clic o tecla la conserva — hay un botón Keep it si usted está leyendo en lugar de presionando. Nada de lo que ha hecho se pierde cuando expira; la retención solo impide que otros replanifiquen mientras tanto.
Si un compañero retiene una jornada dentro de su horizonte, el compromiso se rechaza por completo: «Committing rewrites the WHOLE horizon, so one held day refuses all of it. Nothing was changed.» Su retención se libera sola cuando él para.
Paso 3 — 🚚 Run Fleet Routing
Un calendario de dos semanas le permite elegir exactamente qué jornadas enrutar. No tienen que ser consecutivas, y cada jornada se optimiza de forma independiente. Las jornadas con trabajo muestran un recuento; las citas congeladas muestran 🔒.
El optimizador recibe sus camiones, depósitos y cuadrillas reales, y hace salir y volver cada camión de su propio depósito base.
Paso 4 — ▶ Run Optimization, luego 💾 Save & commit tour
Ese segundo botón es la escritura. Inscribe en la base el día, el rango en la ruta y la cuadrilla.
Las tres trampas, en el orden en que muerden
⚠️ 1 · Relanzar el programador borra lo que colocó el optimizador
Una ruta no bloqueada es provisional: una nueva ejecución del programador la descarta. Si se ha comprometido con una ruta, congélela (🔒). Una chincheta (📌) solo impide que el programador mueva la tarjeta — Fleet Routing todavía puede reenrutar una orden fijada.
Es la sorpresa más frecuente del sistema: una tarde de enrutado deshecha por un relanzado bienintencionado.
⚠️ 2 · Auto-build va antes que el programador, y borra el conjunto de cuadrillas
⚙ Auto-build retira todas las cuadrillas creadas por un Auto-build anterior (véase Crews). Reconstruya las cuadrillas después de programar y su plan habrá sido calculado contra cuadrillas que ya no existen.
El orden es: cuadrillas, luego programador, luego optimizador. Siempre en ese sentido. 📅 Re-run Jobs Scheduler ahora verifica él mismo las cuadrillas antes de calcular; lo que queda por evitar es ejecutar Auto-build después de programar.
⚠️ 3 · Una propuesta caducada puede parecer mover una tarjeta sin escribir nada
Comprometer una ruta olvida la propuesta del programador, deliberadamente: una vez que el optimizador ha escrito el día y el rango, la propuesta antigua ya no describe nada.
Descongelar una tarjeta no la olvida — y es a propósito, porque descongelar una orden para que el programador la retome es legítimo. Pero la propuesta antigua sigue en pantalla, y volverá a poner su fecha en la tarjeta que acaba de descongelar. La tarjeta salta; no se ha escrito nada.
Si una tarjeta se mueve sin que lo esperara: relance el programador, para que lo que mira coincida con lo que está guardado.
Paso 5 — la jornada está comprometida
Las tarjetas enrutadas muestran 🚚 camión · parada · hora de llegada. La pantalla Routes muestra la jornada de cada vehículo: paradas, horas en el sitio, horas de viaje, kilómetros, y cuán llena está la jornada.
📅 Scheduling — in detail
The crew check — before every run
The scheduler never creates or changes a crew: a job whose trade and truck kind no crew covers stays unrouted. So 📅 Re-run Jobs Scheduler first asks Auto-build, as a preview, what it would change over the Staffing planning window (14 days by default, see Settings), with the same demand as the Auto-build box. The check writes nothing.
- Nothing to change — one line, ✓ Crews checked: up to date, and the scheduler runs straight away.
- Crews to extend only — a card offers Extend & schedule or Schedule with current crews.
- The crew set would change — new, retired or topped-up crews, and crews retired after today: a crew no longer needed but on today's accepted route keeps today, then its window ends tonight and its later open jobs go back to the scheduler. The card counts each change and offers Apply & schedule, Schedule with current crews, or Review in Auto-build, which opens the full box on the same dates and schedules nothing.
- Shortages — not enough people or trucks for some crews. Said with the outcome, never blocking.
The card then computes what the change gains in jobs, for example With these crews: +37 jobs routed · 16 fewer late. The server writes the proposal, runs the scheduler on it, then cancels everything: nothing is saved. A job counts as late when it is placed after its due date, or not placed while its due date falls within the horizon. When the change gains nothing, the card says so and Schedule with current crews becomes the main button.
- Nothing is applied without your click, extensions included.
- If the check cannot run — offline, no permission, server error — one line says so and the scheduler runs with the current crews.
- If someone changed the crews between the card and your click — another Auto-build, a dedication, a release — Apply is refused and the check runs again.
- Dispatchers, supervisors and client administrators may apply. Truck rebalancing stays a separate step of the Auto-build box.
⚠ Crews out of date · N, next to the button, is the same preview run in the background: when the Scheduling view opens (at most once a minute), when you come back to the page — a dedication or a release made in Maintenance — and after a change here to a job type, a technician's leave or a crew's members. N counts the crews Auto-build would create, retire (now or after today), top up or extend. Click it to open the check. There is no badge when the crews are up to date, or when the preview could not run.
Which work orders it touches
Only New and Scheduled ones. Started and closed jobs are left alone, and Problematic ones are never touched — they are parked for a human.
The order of the queue
Jobs are ordered by effective urgency, then earliest target date, then oldest created.
Lateness escalation — why nothing gets starved
Criticality leads on day one: Critical → High → Normal → Low. But as a job passes its target date its effective priority rises: every 3 days overdue lifts it one tier, up to three tiers.
So a badly overdue Normal job can climb past a High that is not due yet. That is the design: urgency wins at first, patience wins eventually, and nothing sits forgotten at the bottom of the list for ever.
What must hold for a job to land on a day
| Constraint | Rule |
|---|---|
| Daily capacity | Fewer than the job type's daily capacity × the number of carriers already on that day. The stored value is per truck. |
| With crews | A crew valid that day, of the right trade, with a truck of the right kind and enough members working. The least-loaded viable crew is chosen. |
| Without crews | Enough unbooked technicians of the required trade, plus a free specific unit of each required kind — never double-booked. |
| Weekends | Only Critical jobs may land on a Saturday or Sunday. |
| Capacity reserve | The booked minutes of each truck type the job takes, every category together, plus this job, must stay within that truck type's bookable minutes — its truck minutes less its reserve %. Critical and pinned jobs count but are never refused by it; a job line naming only a crew, with no truck type, is held by no reserve. See Capacity Reserve below. |
Parts: tracked, or a real gate
By default parts are tracked, not gated: short jobs get a red ⚠ but are still scheduled. Turn on Gate scheduling on material stock in Settings and stock becomes a real constraint — the plan is simulated forward day by day, jobs consume stock as they land, and deliveries top it back up.
Held back by parts is its own panel, and that is not cosmetic
A job the gate holds back appears in Held back by parts — not in “Why work overflowed its day”, which only ever lists reasons meaning the day was full.
The separation is the engine's: a job waiting on parts is deliberately kept out of the “force it earlier” pass, which does not re-check stock.
And one outcome undoes a human decision: a pinned job whose parts cannot be there on its pinned day is unpinned. It is called out in red, in the panel and as a message after the run, because a pin to a date you cannot buy for is a fiction.
📌 Pin versus 🔒 Freeze
| What it does | Set and cleared by | |
|---|---|---|
| 📌 Pin | The scheduler will not move it — but Fleet Routing still can. It carries no time window to the optimizer. | Dragging a card, ▲▼, a rolled overflow or a carry-forward. Release one card's pin, or a whole day's with 📌✕. |
| 🔒 Freeze | A committed route. Both the scheduler and Fleet Routing skip it. Sent to the optimizer as a fixed appointment — locked to its arrival time window and its exact truck. | Click a routed card's grey 🔒, or a day header's padlock to freeze all its routes. Unfreeze all from the banner. |
Freeze what you have committed to. A pin only nudges the scheduler.
Work stream and work held by Maintenance
The Work stream selector, next to the board's filters, shows All work, Regular work only, or only the jobs a Maintenance plan opened — those carry a 🗓️ on their card. It filters what is drawn, and what the day padlock and 📌✕ touch: “freeze what you see”. The scheduler and Fleet Routing still see every job.
When Maintenance holds a crew for a campaign (chapter 4), the plan's jobs scheduled on its held days are held: their 🗓️ says so, the scheduler keeps them on their day as if pinned, and the bulk gestures — the day padlock, Unfreeze all, truck rebalancing — skip them. Moving one card by hand still works. The crew's row on the Crews screen reads 🔒 Held by Maintenance, with the plan, the holder and the end date; Auto-build leaves it alone and it cannot be removed. Request release sends the holder a request; when they release days, you are told in your inbox, and the plan's jobs on those days stay frozen until you unfreeze them with the day padlock.
The exception panels
- ⚠ Overflow — a Critical or High job bumped past its preferred day because the day was full. You are offered Roll forward within capacity, which moves them to the front of the next available days without piling one day up.
- ⚠ Not routed by optimizer — jobs the last routing run could not fit. Committing a
tour marks them and moves nothing: the job leaves the day it just missed, keeps the
reason (no capable vehicle, or the day was full), and waits in Unscheduled
with a
⚠ not routedchip. The next scheduler run picks it up like any other undated job. Nothing is carried to a day you did not choose. - ⚑ Problematic — parked out of scheduling and routing entirely, for a human to fix the cause: add a capable truck, split the job, widen a window. Click Resolve and it re-enters the queue. Use ⚑ Park as problematic when a miss really needs a person.
The board
Planned and in-progress work; Fixed and Cancelled are hidden. An overdue open job is carried into Today with a ⏱ badge. Drag a card to another day, drop between cards to reorder, or use ▲▼ — any manual move pins it. Filter by technician or equipment, and the 🔍 search locates any work order and reports the day it is on, or Problematic, carried, or not scheduled yet.
📅 Show by Due Date
In the ⋯ menu (or right-click the Board · Tech Gantt · Truck Gantt · Capacity Reserve bar), this option files every card under its due date instead of its planned day, and turns Colour by lateness on: the colour then tells how far the planned day is from the column. A due date already past goes under Today; one beyond the last day shown goes under that last day, and the card names its real date. A due date that falls on a day the board does not show — a day with no work is skipped — goes under the last day shown before it. Jobs with no due date get their own No due date box. Dragging a card onto another day moves its due date, not its planned day. The same button works on both Gantts. The choice is remembered by this browser only.
Tech Gantt and Truck Gantt
Two buttons at the right end of the Board · Capacity Reserve line replace the board's day columns with a Gantt chart: one row per technician (Tech Gantt) or per truck (Truck Gantt). Click the same button again, or Board, to return to the columns. The search, the filters and the team selection apply exactly as on the board.
- Days are stacked from earliest to latest, each headed by its weekday and date, with no day left out. Consecutive days with no job are merged into one block headed by their dates (October 17 – 18, 2026), drawn as three empty rows.
- The time ruler stays at the top while you scroll. It spans the work day — Workday starts at plus Max work + travel per day, both in Settings — and widens to the full hour only for a routed job that falls outside it.
- Each block is one job, as long as its duration, outlined in black and coloured by priority: red Critical, amber High, blue Normal, grey Low. The black line before a block is the travel time to that stop.
- Hover a block to see the same card as on the board; click it to open the work order. ◀ brings you back to the same place in the Gantt, with that block outlined in yellow.
Where the times come from
A block's start is the arrival time of its committed route (Fleet Routing). A job with no route that day — typically every day after the last routed one — has no time yet. It is drawn faded and placed on its technician's row (Tech) or its crew's truck row (Truck), one after another from the start of the day in board order, separated by Travel between two jobs; its hover card says the time is estimated. A job with no technician, or no crew, goes on the last row of the day: Unassigned or Not routed. Estimated jobs that run past the end of the day do not stretch the ruler: they are counted in a +N badge at the end of their row — open the board to see them.
Crew availability
Right-click Tech Gantt or Truck Gantt and tick Crew availability. The chart switches to one column per day of the board's window (10 days, week or 2 weeks) and no longer shows work orders. Each row is a technician (Tech Gantt) or a truck (Truck Gantt), and carries one bar per crew it belongs to, from the crew's start date to its end date — Auto-build crews and crews made by hand alike. The same colour means the same crew, from one row to the next.
- Empty — no bar: that day, the technician or truck is in no crew. The end of the label counts these empty days in the window (No gap when there are none).
- Hatched inside a bar: in the crew, but unable to work that day — not a working day, time off, or truck down (on Truck Gantt also: no member at work). Hover the hatched day for the reason; hover the bar for the crew's dates and members.
- On Truck Gantt, a crew with no truck assigned gets its own row, marked (no truck).
- Hatched yellow: the day is held by Maintenance for a campaign. The figure in it is the crew's idle hours that day — the length of the day less its jobs. Hover it for the plan and the holder.
Weekends are shaded and today is outlined in yellow. The option is not available in the due-date view, and the choice is remembered by this browser only.
🔗 Merge similar work orders
It looks for separate work orders that could be cleared in a single visit: two or more unstarted jobs at the same account whose work needs the identical set of equipment.
Each group is shown for review with every work order's asset, job type, priority, target date and note count; you tick which to combine and confirm per group. Merging keeps the earliest-target work order, sets its target date to the earliest of the group, deletes the others, and folds all their notes onto the survivor, each prefixed with where it came from. Any alarm pointing at a deleted work order is re-pointed to the kept one.
Capacity Reserve — minutes kept free for emergencies
Scheduling has two sub-tabs, Board and Capacity Reserve. The reserve keeps part of each truck type's minutes free, so the scheduler can never fill a day completely with normal jobs. It is set per truck type, for all categories together: trucks are shared between categories, so the minutes kept free are kept on the trucks. The tab shows one day at a time (◀ ▶ or the date field); the ⓘ after the date opens this explanation on screen.
By truck type — where the reserve is set
The first table has one row per truck type. Each truck counts once, whatever categories it serves.
| Column | Meaning |
|---|---|
| Truck time (the pool) | The total minutes available that day across all trucks of that type (or crews, in crew mode). Each truck counts for its day budget plus one travel allowance. Trucks that are down or crews outside their dates don't count. |
| Bookable | How much of the pool the scheduler may fill: pool × (100 − reserve %) / 100. The rest is kept free for emergencies. |
| Booked | Minutes already planned on that truck type that day, every category together. Each job counts its duration plus the average travel between jobs, times the number of trucks of that type it takes. |
Booked and bookable share one column, Booked / bookable. The Reserve column is the % you edit. The From column says where the day's % comes from: this day (a day exception), seasonal (the rate set in WOM → Fleet → Types → Seasonal capacity reserve) or none set. The last line, Fleet, gives the whole fleet's booked and total minutes, and how many are still free.
- Typing a new % updates bookable right away, but nothing changes until you click Save. Saving sets a day exception: it replaces the seasonal rate for that truck type on that day only.
- Clear (shown on a this day row) removes the exception; the day goes back to its seasonal rate. 0 % is a value (“no reserve this day”), not the same as clearing.
- Upcoming day exceptions lists the exceptions ahead, with their truck type; click a date to open that day.
By category — read only
The second table shows each category's minutes for information. Its reserve is not set: it follows from the truck types its job types use, weighted by how many trucks of each type serve it. Example: 2 bucket trucks at 20 % and 1 crane truck at 50 % give 30 %. To change it, change the reserve of its truck types above.
- Its truck time only counts trucks of the kinds the category's job types use. A line under it says 15 trucks · 15 shared (orange) or 2 trucks · dedicated: a shared truck also serves other categories, so its minutes appear in those rows too, and the category rows add up to more than the fleet has.
- Its bookable is the sum, for each of its truck types, of that type's truck minutes × (100 − that type's reserve %).
How it affects scheduling
Example: 1 truck, an 08:00 day, 00:15 of travel between jobs, a 00:45 job type and a 25 % reserve on its truck type.
- Pool = 08:00 + 00:15 = 08:15.
- Bookable = 08:15 × 75 % = 06:11.
- Each job costs 00:45 + 00:15 = 01:00. The scheduler places jobs in priority order until the next one would go over 06:11: 6 jobs = 06:00 / 06:11.
- The 7th job would reach 07:00, which is over 06:11. It is not placed on that day, and the scheduler tries the next day.
- If no day in the planning window has room, the job is marked unplaceable. The message names the truck type's reserve as the cause.
The truck type is the only gate: normal jobs of any category stop on it once booked would go over bookable. No category has a gate of its own.
Critical and pinned jobs are handled differently
They are never refused by the reserve, so an emergency can always go into the kept-free minutes.
They still count as booked. After 2 Critical jobs (02:00), only 04:11 remain for normal jobs, which is 4 jobs.
“Booked” can therefore exceed “bookable”. The row then shows in red. That means the reserve has been used, not that something is broken.
Lifted on days that show lateness
The reserve is for emergencies, and a job about to miss its due date this week is one. So the scheduler checks the first days of its run — Days ahead in which late jobs lift the truck-type reserve in Settings, from 0 (off) to 7 calendar days, 7 by default.
- A day shows lateness when a job due that day ends up planned after it, or not placed, with the reserve applied. A job already overdue counts on the first open day (not a weekend, not locked, not a finished day).
- A job due on a Saturday or Sunday counts on the last working day before it, the Friday: only Critical jobs work weekends, so lifting the weekend day would help nothing. That Friday is lifted, and the job goes through the reserve there.
- The scheduler then plans again. On those days only, jobs due that day or earlier go through the truck-type reserve, like Critical jobs. Every other job still sees it.
- Critical jobs (they already go through), pinned, Problematic, closed and undated jobs lift nothing. With no lateness, there is one pass and the plan is the same as before.
- Proposal details says so: Capacity reserve released for late work on: followed by each day and its number of late jobs. The % on this tab does not change — the lift exists only inside the scheduler run.
What the reserve does not do
- It only holds trucks whose type is known: a job line that names only a crew, with no truck type, is held by no reserve.
- It only works on days the scheduler is planning. Jobs already placed stay where they are until the next scheduler run.
- It sits on top of the other limits: each truck's minute budget, and the manual daily capacity of the job type if one is set. A job has to pass all of them.
📅 Scheduling — en détail
La vérification d'équipages — avant chaque calcul
L'ordonnanceur ne crée ni ne modifie jamais un équipage : un bon dont aucun équipage ne couvre le métier et le genre de camion reste non routé. 📅 Re-run Jobs Scheduler demande donc d'abord à Auto-build, en aperçu, ce qu'il changerait sur la Staffing planning window (14 jours par défaut, voir Réglages), avec la même demande que la boîte Auto-build. La vérification n'écrit rien.
- Rien à changer — une ligne, ✓ Crews checked: up to date, et l'ordonnanceur part tout de suite.
- Seulement des équipages à prolonger — une carte propose Extend & schedule ou Schedule with current crews.
- Le jeu d'équipages changerait — équipages neufs, retirés ou renforcés, et équipages retirés après aujourd'hui : un équipage qui n'est plus nécessaire mais qui est sur la tournée acceptée du jour garde la journée, puis sa fenêtre se termine ce soir et ses bons ouverts suivants retournent à l'ordonnanceur. La carte compte chaque changement et propose Apply & schedule, Schedule with current crews, ou Review in Auto-build, qui ouvre la boîte complète sur les mêmes dates et ne planifie rien.
- Des manques — pas assez de personnes ou de camions pour certains équipages. Dits avec l'issue, jamais bloquants.
La carte calcule ensuite ce que le changement rapporte en bons, par exemple With these crews: +37 jobs routed · 16 fewer late. Le serveur écrit la proposition, fait tourner l'ordonnanceur dessus, puis annule tout : rien n'est enregistré. Un bon compte comme en retard s'il est placé après son échéance, ou s'il n'est pas placé alors que son échéance tombe dans l'horizon. Quand le changement ne rapporte rien, la carte le dit et Schedule with current crews devient le bouton principal.
- Rien ne s'applique sans votre clic, prolongations comprises.
- Si la vérification ne peut pas se faire — hors ligne, droit refusé, panne du serveur — une ligne le dit et l'ordonnanceur part avec les équipages actuels.
- Si quelqu'un a changé les équipages entre la carte et votre clic — une autre constitution automatique, une dédicace, une libération — Apply est refusé et la vérification repart.
- Répartiteurs, superviseurs et administrateurs client peuvent appliquer. Le rééquilibrage des camions reste une étape à part de la boîte Auto-build.
⚠ Crews out of date · N, à côté du bouton, c'est le même aperçu fait en arrière-plan : à l'ouverture du Scheduling (au plus une fois par minute), au retour sur la page — une dédicace ou une libération faite dans la Maintenance — et après un changement fait ici à un type de travail, au congé d'un technicien ou aux membres d'un équipage. N compte les équipages qu'Auto-build créerait, retirerait (tout de suite ou après aujourd'hui), renforcerait ou prolongerait. Un clic ouvre la vérification. Pas de badge quand les équipages sont à jour, ou quand l'aperçu n'a pas pu se faire.
Quels bons il touche
Seulement ceux en New et en Scheduled. Les travaux commencés et clos sont laissés tranquilles, et les Problematic ne sont jamais touchés — ils sont mis de côté pour un humain.
L'ordre de la file
Les travaux sont classés par urgence effective, puis par échéance la plus proche, puis par ancienneté de création.
L'escalade du retard — pourquoi rien n'est affamé
La criticité mène au premier jour : Critical → High → Normal → Low. Mais à mesure qu'un travail dépasse son échéance, sa priorité effective monte : chaque tranche de 3 jours de retard le fait monter d'un cran, jusqu'à trois crans.
Un travail Normal très en retard peut donc passer devant un High qui n'est pas encore dû. C'est voulu : l'urgence gagne au début, la patience gagne à la fin, et rien ne reste oublié au bas de la liste pour toujours.
Ce qui doit tenir pour qu'un travail se pose sur une journée
| Contrainte | Règle |
|---|---|
| Capacité quotidienne | Moins que la capacité quotidienne du type de travail × le nombre de porteurs déjà sur cette journée. La valeur enregistrée est par camion. |
| Avec des équipages | Un équipage valide ce jour-là, du bon métier, avec un camion du bon genre et assez de membres qui travaillent. C'est l'équipage viable le moins chargé qui est choisi. |
| Sans équipages | Assez de techniciens non réservés du métier exigé, plus une unité précise libre de chaque genre exigé — jamais réservée deux fois. |
| Fins de semaine | Seuls les travaux Critical peuvent tomber un samedi ou un dimanche. |
| Réserve de capacité | Les minutes réservées de chaque genre de camion que prend le bon, toutes catégories ensemble, plus ce bon, doivent rester dans les minutes réservables de ce genre — ses minutes de camion moins son % de réserve. Les bons Critical et épinglés comptent mais ne sont jamais refusés ; une ligne de bon qui ne nomme qu'un équipage, sans genre de camion, n'est tenue par aucune réserve. Voir Capacity Reserve plus bas. |
Les pièces : suivies, ou véritable barrière
Par défaut les pièces sont suivies, pas bloquantes : un travail à court reçoit un ⚠ rouge mais reste ordonnancé. Activez Gate scheduling on material stock dans les réglages et le stock devient une vraie contrainte — le plan est simulé jour après jour, les travaux consomment le stock en se posant, et les livraisons le regarnissent.
« Held back by parts » est un panneau à part, et ce n'est pas cosmétique
Un travail retenu par la barrière apparaît dans Held back by parts — et non dans « Why work overflowed its day », qui ne liste jamais que des raisons signifiant la journée était pleine.
La séparation vient du moteur : un travail qui attend des pièces est délibérément tenu hors de la passe « forcer plus tôt », laquelle ne revérifie pas le stock.
Et une issue défait une décision humaine : un travail épinglé dont les pièces ne peuvent pas être là le jour épinglé est désépinglé. C'est signalé en rouge, dans le panneau et par un message après l'exécution, parce qu'une épingle sur une date pour laquelle on ne peut pas acheter est une fiction.
📌 Épingler contre 🔒 Geler
| Ce que cela fait | Posé et levé par | |
|---|---|---|
| 📌 Épingle | L'ordonnanceur ne la déplacera pas — mais Fleet Routing le peut encore. Elle ne porte aucune fenêtre horaire vers l'optimiseur. | Glisser une carte, ▲▼, un report de débordement ou une reconduction. Levez l'épingle d'une carte, ou celles de toute une journée avec 📌✕. |
| 🔒 Gel | Une tournée engagée. L'ordonnanceur et Fleet Routing la sautent. Envoyée à l'optimiseur comme un rendez-vous fixe — verrouillée sur sa fenêtre d'arrivée et sur son camion exact. | Cliquer le 🔒 gris d'une carte routée, ou le cadenas d'un en-tête de journée pour geler toutes ses tournées. Unfreeze all depuis le bandeau. |
Gelez ce sur quoi vous vous êtes engagé. Une épingle ne fait que retenir l'ordonnanceur.
Work stream et le travail retenu par la Maintenance
Le sélecteur Work stream, à côté des filtres du tableau, montre All work, le travail Regular seul, ou les seuls bons ouverts par un plan de Maintenance — ceux-là portent un 🗓️ sur leur carte. Il filtre ce qui est dessiné, et ce que touchent le cadenas de jour et 📌✕ : « on gèle ce qu'on voit ». L'ordonnanceur et Fleet Routing voient toujours tous les bons.
Quand la Maintenance retient un équipage pour une campagne (chapitre 4), les bons du plan planifiés sur ses jours retenus sont retenus : leur 🗓️ le dit, l'ordonnanceur les garde sur leur jour comme s'ils étaient épinglés, et les gestes de masse — le cadenas de jour, Unfreeze all, le rééquilibrage des camions — les sautent. Déplacer une carte à la main reste possible. La ligne de l'équipage dans l'écran Crews indique 🔒 Held by Maintenance, avec le plan, le détenteur et la date de fin ; Auto-build le laisse tranquille et il ne peut pas être retiré. Request release envoie une demande au détenteur ; quand il libère des jours, vous en êtes avisé dans votre boîte, et les bons du plan de ces jours restent gelés jusqu'à ce que vous les dégeliez avec le cadenas de jour.
Les panneaux d'exception
- ⚠ Overflow — un travail Critical ou High repoussé au-delà de sa journée préférée parce que la journée était pleine. On vous propose Roll forward within capacity, qui les déplace en tête des prochaines journées disponibles sans en empiler une seule.
- ⚠ Not routed by optimizer — les travaux que la dernière exécution de routage n'a
pas pu caser. Engager une tournée les marque et ne déplace rien : le travail quitte
la journée qu'il vient de manquer, garde la raison (aucun véhicule capable, ou la
journée était pleine), et attend dans Unscheduled avec une pastille
⚠ not routed. La prochaine exécution de l'ordonnanceur le reprend comme n'importe quel travail sans date. Rien n'est porté vers une journée que vous n'avez pas choisie. - ⚑ Problematic — mis entièrement hors ordonnancement et hors routage, pour qu'un humain règle la cause : ajouter un camion capable, découper le travail, élargir une fenêtre. Cliquez Resolve et il rentre dans la file. Utilisez ⚑ Park as problematic quand un échec demande vraiment quelqu'un.
Le tableau
Le travail prévu et en cours ; Fixed et Cancelled sont cachés. Un travail ouvert en retard est reporté dans Today avec une pastille ⏱. Glissez une carte vers une autre journée, déposez entre deux cartes pour réordonner, ou utilisez ▲▼ — tout déplacement manuel l'épingle. Filtrez par technicien ou par équipement, et la recherche 🔍 retrouve n'importe quel bon et dit la journée où il est, ou Problematic, carried, ou not scheduled yet.
📅 Show by Due Date
Dans le menu ⋯ (ou par un clic droit sur la barre Board · Tech Gantt · Truck Gantt · Capacity Reserve), cette option range chaque carte sous son échéance plutôt que sous sa journée prévue, et allume Colour by lateness : la couleur dit alors l'écart entre la journée prévue et la colonne. Une échéance déjà passée va sous Today ; une échéance au-delà de la dernière journée montrée va sous celle-ci, et la carte nomme sa vraie date. Une échéance qui tombe sur une journée que le tableau ne montre pas — une journée sans travail est sautée — va sous la dernière journée montrée avant elle. Les travaux sans échéance ont leur propre boîte No due date. Glisser une carte sur une autre journée déplace son échéance, pas sa journée prévue. Le même bouton vaut pour les deux Gantt. Le choix est retenu par ce navigateur seulement.
Tech Gantt et Truck Gantt
Deux boutons, à droite de la ligne Board · Capacity Reserve, remplacent les colonnes de journées du tableau par un diagramme de Gantt : une ligne par technicien (Tech Gantt) ou par camion (Truck Gantt). Un second clic sur le même bouton, ou sur Board, ramène les colonnes. La recherche, les filtres et le choix de l'équipe s'appliquent exactement comme sur le tableau.
- Les journées s'empilent de la plus tôt à la plus tard, chacune coiffée de son jour de la semaine et de sa date, sans en omettre aucune. Les journées consécutives sans aucun bon se fondent en un seul bloc coiffé de leurs dates (17–18 octobre 2026), dessiné en trois lignes vides.
- La règle des heures reste en haut pendant le défilement. Elle couvre la journée de travail — Workday starts at plus Max work + travel per day, tous deux dans les Réglages — et ne s'élargit, à l'heure pleine, que pour un bon routé qui en déborde.
- Chaque bloc est un travail, long de sa durée, cerné de noir et coloré selon sa priorité : rouge Critical, ambre High, bleu Normal, gris Low. Le trait noir avant un bloc est le temps de trajet jusqu'à cet arrêt.
- Survoler un bloc montre la même carte que sur le tableau ; le cliquer ouvre le bon. ◀ ramène au même endroit du Gantt, ce bloc cerné de jaune.
D'où viennent les heures
Le début d'un bloc est l'heure d'arrivée de sa tournée engagée (Fleet Routing). Un bon sans tournée ce jour-là — en pratique, chaque journée après la dernière routée — n'a pas encore d'heure. Il est dessiné pâli et posé sur la ligne de son technicien (Tech) ou du camion de son équipage (Truck), à la suite, dès le début de journée, dans l'ordre du tableau, séparé par Travel between two jobs ; sa carte de survol dit que l'heure est estimée. Un bon sans technicien, ou sans équipage, va sur la dernière ligne de la journée : Unassigned ou Not routed. Les bons estimés qui dépassent la fin de journée n'étirent pas la règle : ils sont comptés dans une pastille +N au bout de leur ligne — le tableau les montre.
Disponibilité des équipages
Un clic droit sur Tech Gantt ou Truck Gantt, puis cochez Crew availability. Le diagramme passe à une colonne par jour de la fenêtre du tableau (10 jours, semaine ou 2 semaines) et ne montre plus les bons. Chaque ligne est un technicien (Tech Gantt) ou un camion (Truck Gantt), et porte une barre par équipage dont il fait partie, de la date de début à la date de fin de l'équipage — ceux d'Auto-build comme ceux faits à la main. Une même couleur désigne le même équipage, d'une ligne à l'autre.
- Vide — aucune barre : ce jour-là, le technicien ou le camion n'est dans aucun équipage. Le bout du libellé compte ces jours vides dans la fenêtre (Aucun trou s'il n'y en a pas).
- Hachuré dans une barre : dans l'équipage, mais incapable de travailler ce jour-là — jour non travaillé, congé ou camion immobilisé (en Truck Gantt aussi : aucun membre au travail). Survolez le jour hachuré pour la raison ; la barre, pour les dates et les membres de l'équipage.
- En Truck Gantt, un équipage sans camion attitré a sa propre ligne, marquée (sans camion).
- Hachuré jaune : le jour est retenu par la Maintenance pour une campagne. Le nombre inscrit est le nombre d'heures creuses de l'équipage ce jour-là — la durée de la journée moins ses bons. Survolez-le pour le plan et le détenteur.
Les fins de semaine sont assombries et aujourd'hui est cerné de jaune. L'option est sans objet dans la vue par échéance, et le choix est retenu par ce navigateur seulement.
🔗 Merge similar work orders
Il cherche des bons distincts qui pourraient être soldés en une seule visite : deux travaux ou plus non commencés, sur le même compte, dont le travail exige exactement le même ensemble d'équipements.
Chaque groupe est présenté pour relecture avec, pour chaque bon, son actif, son type de travail, sa priorité, son échéance et son nombre de notes ; vous cochez ceux à combiner et confirmez groupe par groupe. La fusion garde le bon à l'échéance la plus proche, lui pose l'échéance la plus proche du groupe, supprime les autres, et replie toutes leurs notes sur le survivant, chacune préfixée de sa provenance. Toute alarme qui pointait vers un bon supprimé est repointée vers celui qui est gardé.
Capacity Reserve — les minutes gardées libres pour les urgences
Scheduling a deux sous-onglets, Board et Capacity Reserve. La réserve garde libre une part des minutes de chaque genre de camion : l'ordonnanceur ne peut jamais remplir entièrement une journée avec des bons ordinaires. Elle se pose par genre de camion, pour toutes les catégories ensemble : les camions sont partagés entre catégories, c'est donc sur eux que les minutes restent libres. L'onglet montre une journée à la fois (◀ ▶ ou le champ de date) ; le ⓘ après la date ouvre cette explication à l'écran.
By truck type — là où la réserve se pose
Le premier tableau a une ligne par genre de camion. Chaque camion y compte une seule fois, quelles que soient les catégories qu'il sert.
| Colonne | Sens |
|---|---|
| Truck time (le bassin) | Le total des minutes disponibles ce jour-là sur tous les camions de ce genre (ou équipages, en mode équipage). Chaque camion compte pour son budget de la journée plus une allocation de trajet. Les camions immobilisés et les équipages hors de leurs dates ne comptent pas. |
| Bookable (réservable) | La part du bassin que l'ordonnanceur peut remplir : bassin × (100 − % de réserve) / 100. Le reste est gardé libre pour les urgences. |
| Booked (réservé) | Les minutes déjà planifiées sur ce genre de camion ce jour-là, toutes catégories ensemble. Chaque bon compte sa durée plus le trajet moyen entre deux bons, multipliés par le nombre de camions de ce genre qu'il prend. |
Réservé et réservable partagent une colonne, Booked / bookable. La colonne Reserve est le % que vous modifiez. La colonne From dit d'où vient le % du jour : this day (une surcharge du jour), seasonal (le taux posé dans WOM → Fleet → Types → Seasonal capacity reserve) ou none set. La dernière ligne, Fleet, donne les minutes réservées et totales de toute la flotte, et combien restent libres.
- Taper un nouveau % met réservable à jour aussitôt, mais rien ne change avant de cliquer Save. Enregistrer pose une surcharge du jour : elle remplace le taux saisonnier de ce genre de camion, ce jour-là seulement.
- Clear (présent sur une ligne this day) retire la surcharge ; le jour retombe sur son taux saisonnier. 0 % est une valeur (« aucune réserve ce jour »), pas la même chose qu'effacer.
- Upcoming day exceptions liste les surcharges à venir, avec leur genre de camion ; cliquez une date pour ouvrir ce jour-là.
By category — en lecture seule
Le second tableau montre les minutes de chaque catégorie, pour information. Sa réserve ne se pose pas : elle découle des genres de camion que ses types de travail utilisent, pondérés par le nombre de camions de chaque genre qui la servent. Exemple : 2 nacelles à 20 % et 1 camion-grue à 50 % donnent 30 %. Pour la changer, changez la réserve de ses genres de camion plus haut.
- Son temps de camion ne compte que les camions des genres qu'utilisent les types de travail de la catégorie. Une ligne dessous dit 15 trucks · 15 shared (en orange) ou 2 trucks · dedicated : un camion partagé sert aussi d'autres catégories, ses minutes figurent aussi sur leurs lignes, et les lignes de catégorie additionnées dépassent ce que la flotte possède.
- Son réservable est la somme, pour chacun de ses genres de camion, des minutes de camion de ce genre × (100 − % de réserve de ce genre).
Effet sur l'ordonnancement
Exemple : 1 camion, une journée de 08:00, 00:15 de trajet entre deux bons, un type de travail de 00:45 et une réserve de 25 % sur son genre de camion.
- Bassin = 08:00 + 00:15 = 08:15.
- Réservable = 08:15 × 75 % = 06:11.
- Chaque bon coûte 00:45 + 00:15 = 01:00. L'ordonnanceur place les bons par ordre de priorité jusqu'à ce que le suivant dépasse 06:11 : 6 bons = 06:00 / 06:11.
- Le 7e bon atteindrait 07:00, au-delà de 06:11. Il n'est pas placé ce jour-là, et l'ordonnanceur essaie le jour suivant.
- Si aucun jour de la fenêtre de planification n'a de place, le bon est marqué non plaçable. Le message nomme la réserve du genre de camion comme cause.
Le genre de camion est la seule barrière : les bons ordinaires de n'importe quelle catégorie s'y arrêtent dès que le réservé dépasserait le réservable. Aucune catégorie n'a de barrière à elle.
Les bons Critical et épinglés sont traités autrement
La réserve ne les refuse jamais : une urgence peut toujours entrer dans les minutes gardées libres.
Ils comptent quand même comme réservés. Après 2 bons Critical (02:00), il ne reste que 04:11 pour les bons ordinaires, soit 4 bons.
« Réservé » peut donc dépasser « réservable ». La ligne s'affiche alors en rouge. Cela veut dire que la réserve a servi, pas que quelque chose est brisé.
Levée les jours qui montrent du retard
La réserve sert aux urgences, et un bon qui va manquer son échéance cette semaine en est une. L'ordonnanceur examine donc les premiers jours de son exécution — Days ahead in which late jobs lift the truck-type reserve dans Settings, de 0 (désactivé) à 7 jours calendaires, 7 par défaut.
- Un jour montre du retard quand un bon dû ce jour-là finit planifié après lui, ou non placé, réserve appliquée. Un bon déjà en retard compte sur le premier jour ouvert (ni fin de semaine, ni verrouillé, ni journée finie).
- Un bon dû un samedi ou un dimanche compte sur le dernier jour ouvrable avant son échéance, le vendredi : seuls les bons Critical travaillent la fin de semaine, lever ce jour-là n'aiderait donc rien. C'est ce vendredi qui est levé, et le bon y franchit la réserve.
- L'ordonnanceur planifie alors une seconde fois. Ces jours-là seulement, les bons dus ce jour-là ou avant franchissent la réserve du genre de camion, comme les bons Critical. Tous les autres la voient toujours.
- Les bons Critical (ils la franchissent déjà), épinglés, Problematic, clos et sans échéance ne lèvent rien. Sans retard, il n'y a qu'une passe et le plan est le même qu'avant.
- Le détail de la proposition le dit : Réserve de capacité libérée pour le travail en retard le : suivi de chaque jour et de son nombre de bons en retard. Le % de cet onglet ne change pas — la levée n'existe que dans l'exécution de l'ordonnanceur.
Ce que la réserve ne fait pas
- Elle ne tient que les camions dont le genre est connu : une ligne de bon qui ne nomme qu'un équipage, sans genre de camion, n'est tenue par aucune réserve.
- Elle n'agit que sur les jours que l'ordonnanceur planifie. Les bons déjà placés restent où ils sont jusqu'à la prochaine passe de l'ordonnanceur.
- Elle s'ajoute aux autres limites : le budget de minutes de chaque camion, et la capacité quotidienne manuelle du type de travail s'il y en a une. Un bon doit toutes les passer.
📅 Scheduling — en detalle
La verificación de cuadrillas — antes de cada cálculo
El programador nunca crea ni modifica una cuadrilla: una orden cuyo oficio y tipo de camión no cubre ninguna cuadrilla queda sin ruta. Por eso 📅 Re-run Jobs Scheduler pregunta primero a Auto-build, como vista previa, qué cambiaría en la Staffing planning window (14 días por defecto, véase Ajustes), con la misma demanda que el cuadro Auto-build. La verificación no escribe nada.
- Nada que cambiar — una línea, ✓ Crews checked: up to date, y el programador arranca de inmediato.
- Solo cuadrillas que extender — una tarjeta propone Extend & schedule o Schedule with current crews.
- El conjunto de cuadrillas cambiaría — cuadrillas nuevas, retiradas o reforzadas, y cuadrillas retiradas después de hoy: una cuadrilla que ya no se necesita pero está en la ruta aceptada del día conserva la jornada, luego su ventana termina esta noche y sus órdenes abiertas siguientes vuelven al programador. La tarjeta cuenta cada cambio y propone Apply & schedule, Schedule with current crews, o Review in Auto-build, que abre el cuadro completo en las mismas fechas y no programa nada.
- Faltantes — no hay suficientes personas o camiones para algunas cuadrillas. Se dicen con el resultado, nunca bloquean.
La tarjeta calcula después lo que el cambio gana en órdenes, por ejemplo With these crews: +37 jobs routed · 16 fewer late. El servidor escribe la propuesta, ejecuta el programador sobre ella y luego lo anula todo: no se guarda nada. Una orden cuenta como atrasada si se coloca después de su fecha límite, o si no se coloca y su fecha límite cae dentro del horizonte. Cuando el cambio no gana nada, la tarjeta lo dice y Schedule with current crews pasa a ser el botón principal.
- Nada se aplica sin su clic, extensiones incluidas.
- Si la verificación no puede hacerse — sin conexión, sin permiso, error del servidor — una línea lo dice y el programador arranca con las cuadrillas actuales.
- Si alguien cambió las cuadrillas entre la tarjeta y su clic — otra construcción automática, una dedicación, una liberación — Apply se rechaza y la verificación vuelve a empezar.
- Despachadores, supervisores y administradores del cliente pueden aplicar. El reequilibrio de camiones sigue siendo un paso aparte del cuadro Auto-build.
⚠ Crews out of date · N, junto al botón, es la misma vista previa hecha en segundo plano: al abrir Scheduling (como máximo una vez por minuto), al volver a la página — una dedicación o una liberación hecha en Mantenimiento — y tras un cambio hecho aquí a un tipo de trabajo, a la ausencia de un técnico o a los miembros de una cuadrilla. N cuenta las cuadrillas que Auto-build crearía, retiraría (ahora o después de hoy), reforzaría o extendería. Un clic abre la verificación. No hay insignia cuando las cuadrillas están al día, o cuando la vista previa no pudo hacerse.
Qué órdenes toca
Solo las que están en New y en Scheduled. Los trabajos empezados y cerrados se dejan en paz, y los Problematic no se tocan nunca — están apartados para una persona.
El orden de la cola
Los trabajos se ordenan por urgencia efectiva, luego por el vencimiento más próximo, luego por antigüedad de creación.
La escalada del retraso — por qué nada se queda sin atender
La criticidad manda el primer día: Critical → High → Normal → Low. Pero a medida que un trabajo pasa su fecha objetivo, su prioridad efectiva sube: cada 3 días de retraso lo suben un escalón, hasta tres escalones.
Así, un trabajo Normal muy retrasado puede adelantar a un High que aún no vence. Es deliberado: la urgencia gana al principio, la paciencia gana al final, y nada queda olvidado al fondo de la lista para siempre.
Lo que debe cumplirse para que un trabajo caiga en una jornada
| Restricción | Regla |
|---|---|
| Capacidad diaria | Menos que la capacidad diaria del tipo de trabajo × el número de portadores que ya hay ese día. El valor guardado es por camión. |
| Con cuadrillas | Una cuadrilla válida ese día, del oficio correcto, con un camión de la clase correcta y suficientes miembros trabajando. Se elige la cuadrilla viable menos cargada. |
| Sin cuadrillas | Suficientes técnicos libres del oficio exigido, más un camión concreto libre de cada clase exigida — nunca reservado dos veces. |
| Fines de semana | Solo los trabajos Critical pueden caer en sábado o domingo. |
| Reserva de capacidad | Los minutos reservados de cada tipo de camión que ocupa el trabajo, todas las categorías juntas, más este trabajo, deben quedar dentro de los minutos reservables de ese tipo — sus minutos de camión menos su % de reserva. Los trabajos Critical y fijados cuentan pero nunca se rechazan; una línea de trabajo que solo nombra una cuadrilla, sin tipo de camión, no la retiene ninguna reserva. Vea Capacity Reserve más abajo. |
Las piezas: seguidas, o barrera real
Por defecto las piezas están seguidas, no bloqueadas: un trabajo corto de material recibe un ⚠ rojo pero se programa igual. Active Gate scheduling on material stock en los ajustes y las existencias pasan a ser una restricción real — el plan se simula día a día, los trabajos consumen existencias al colocarse, y las entregas las reponen.
«Held back by parts» es un panel aparte, y no es cosmético
Un trabajo retenido por la barrera aparece en Held back by parts — y no en «Why work overflowed its day», que solo lista motivos que significan la jornada estaba llena.
La separación viene del motor: un trabajo que espera piezas se mantiene deliberadamente fuera de la pasada de «forzarlo antes», que no vuelve a comprobar las existencias.
Y un resultado deshace una decisión humana: un trabajo fijado cuyas piezas no pueden estar el día fijado se desfija. Se señala en rojo, en el panel y como mensaje tras la ejecución, porque una chincheta en una fecha para la que no se puede comprar es una ficción.
📌 Fijar frente a 🔒 Congelar
| Qué hace | Se pone y se quita con | |
|---|---|---|
| 📌 Chincheta | El programador no la moverá — pero Fleet Routing todavía puede. No lleva ninguna ventana horaria al optimizador. | Arrastrar una tarjeta, ▲▼, un arrastre de desbordamiento o una reconducción. Quite la chincheta de una tarjeta, o las de toda una jornada con 📌✕. |
| 🔒 Congelación | Una ruta comprometida. El programador y Fleet Routing la saltan. Se envía al optimizador como una cita fija — bloqueada a su ventana de llegada y a su camión exacto. | Presionar el 🔒 gris de una tarjeta enrutada, o el candado de una cabecera de jornada para congelar todas sus rutas. Unfreeze all desde el aviso. |
Congele aquello con lo que se ha comprometido. Una chincheta solo frena al programador.
Work stream y el trabajo retenido por Mantenimiento
El selector Work stream, junto a los filtros del tablero, muestra All work, solo el trabajo Regular, o solo las órdenes que abrió un plan de Maintenance — esas llevan un 🗓️ en su tarjeta. Filtra lo que se dibuja, y lo que tocan el candado del día y 📌✕: «se congela lo que se ve». El programador y Fleet Routing siguen viendo todas las órdenes.
Cuando Mantenimiento retiene una cuadrilla para una campaña (capítulo 4), las órdenes del plan programadas en sus días retenidos quedan retenidas: su 🗓️ lo indica, el programador las mantiene en su día como si estuvieran fijadas, y los gestos masivos — el candado del día, Unfreeze all, el reequilibrio de camiones — las saltan. Mover una tarjeta a mano sigue siendo posible. La fila de la cuadrilla en la pantalla Crews indica 🔒 Held by Maintenance, con el plan, el titular y la fecha de fin; Auto-build no la toca y no se puede quitar. Request release envía una solicitud al titular; cuando libera días, usted recibe el aviso en su bandeja, y las órdenes del plan de esos días siguen congeladas hasta que las descongele con el candado del día.
Los paneles de excepción
- ⚠ Overflow — un trabajo Critical o High empujado más allá de su jornada preferida porque la jornada estaba llena. Se le ofrece Roll forward within capacity, que los mueve al principio de las siguientes jornadas disponibles sin amontonar ninguna.
- ⚠ Not routed by optimizer — los trabajos que la última ejecución de enrutado no
pudo encajar. Comprometer una ruta los marca y no mueve nada: el trabajo deja la
jornada que acaba de perder, conserva el motivo (ningún vehículo capaz, o la
jornada estaba llena), y espera en Unscheduled con una etiqueta
⚠ not routed. La siguiente ejecución del programador lo recoge como cualquier otro trabajo sin fecha. Nada se lleva a una jornada que usted no eligió. - ⚑ Problematic — apartado por completo de la programación y del enrutado, para que una persona arregle la causa: añadir un camión capaz, dividir el trabajo, ampliar una ventana. Presione Resolve y vuelve a entrar en la cola. Use ⚑ Park as problematic cuando un fallo necesite de verdad a alguien.
El tablero
El trabajo previsto y en curso; Fixed y Cancelled están ocultos. Un trabajo abierto atrasado se arrastra a Today con una etiqueta ⏱. Arrastre una tarjeta a otra jornada, suéltela entre dos tarjetas para reordenar, o use ▲▼ — todo movimiento manual la fija. Filtre por técnico o por equipo, y la búsqueda 🔍 encuentra cualquier orden y dice en qué jornada está, o Problematic, carried, o not scheduled yet.
📅 Show by Due Date
En el menú ⋯ (o con un clic derecho en la barra Board · Tech Gantt · Truck Gantt · Capacity Reserve), esta opción coloca cada tarjeta bajo su fecha límite en lugar de su jornada prevista, y activa Colour by lateness: el color indica entonces la distancia entre la jornada prevista y la columna. Una fecha límite ya pasada va bajo Today; una más allá de la última jornada mostrada va bajo esa última, y la tarjeta indica su fecha real. Una fecha límite que cae en una jornada que el tablero no muestra — una jornada sin trabajo se omite — va bajo la última jornada mostrada antes de ella. Los trabajos sin fecha límite tienen su propio recuadro No due date. Arrastrar una tarjeta a otra jornada mueve su fecha límite, no su jornada prevista. El mismo botón funciona en ambos Gantt. La elección la recuerda solo este navegador.
Tech Gantt y Truck Gantt
Dos botones, a la derecha de la línea Board · Capacity Reserve, reemplazan las columnas de días del tablero por un diagrama de Gantt: una fila por técnico (Tech Gantt) o por camión (Truck Gantt). Un segundo clic en el mismo botón, o en Board, vuelve a las columnas. La búsqueda, los filtros y la selección de equipo se aplican exactamente como en el tablero.
- Los días se apilan del más temprano al más tardío, cada uno encabezado por su día de la semana y su fecha, sin omitir ninguno. Los días consecutivos sin ninguna orden se funden en un solo bloque encabezado por sus fechas (17–18 de octubre de 2026), dibujado como tres filas vacías.
- La regla de horas queda arriba durante el desplazamiento. Cubre la jornada — Workday starts at más Max work + travel per day, ambos en la Configuración — y solo se amplía, a la hora completa, para una orden con ruta que se sale de ella.
- Cada bloque es un trabajo, tan largo como su duración, con borde negro y coloreado según su prioridad: rojo Critical, ámbar High, azul Normal, gris Low. La línea negra antes de un bloque es el tiempo de trayecto hasta esa parada.
- Pasar el cursor sobre un bloque muestra la misma tarjeta que en el tablero; hacer clic abre la orden. ◀ regresa al mismo lugar del Gantt, con ese bloque bordeado en amarillo.
De dónde vienen las horas
El inicio de un bloque es la hora de llegada de su ruta confirmada (Fleet Routing). Una orden sin ruta ese día — en la práctica, cada día después del último con rutas — aún no tiene hora. Se dibuja atenuada y se coloca en la fila de su técnico (Tech) o del camión de su cuadrilla (Truck), una tras otra desde el inicio de la jornada, en el orden del tablero, separadas por Travel between two jobs; su tarjeta indica que la hora es estimada. Una orden sin técnico, o sin cuadrilla, va en la última fila del día: Unassigned o Not routed. Las órdenes estimadas que pasan del fin de la jornada no estiran la regla: se cuentan en una insignia +N al final de su fila — el tablero las muestra.
Disponibilidad de cuadrillas
Haga clic derecho en Tech Gantt o Truck Gantt y marque Crew availability. El diagrama pasa a una columna por día de la ventana del tablero (10 días, semana o 2 semanas) y ya no muestra las órdenes. Cada fila es un técnico (Tech Gantt) o un camión (Truck Gantt), y lleva una barra por cuadrilla a la que pertenece, de la fecha de inicio a la fecha de fin de la cuadrilla — las de Auto-build y las hechas a mano. Un mismo color indica la misma cuadrilla, de una fila a otra.
- Vacío — sin barra: ese día, el técnico o el camión no está en ninguna cuadrilla. El final de la etiqueta cuenta esos días vacíos en la ventana (Sin huecos si no hay).
- Rayado dentro de una barra: en la cuadrilla, pero sin poder trabajar ese día — día no laborable, ausencia o camión inmovilizado (en Truck Gantt también: ningún miembro trabajando). Pase el cursor sobre el día rayado para ver el motivo; sobre la barra, para las fechas y los miembros de la cuadrilla.
- En Truck Gantt, una cuadrilla sin camión asignado tiene su propia fila, marcada (sin camión).
- Rayado amarillo: el día está retenido por Mantenimiento para una campaña. La cifra inscrita son las horas libres de la cuadrilla ese día — la duración de la jornada menos sus órdenes. Pase el cursor para ver el plan y el titular.
Los fines de semana aparecen sombreados y hoy se resalta en amarillo. La opción no aplica en la vista por fecha límite, y la elección la recuerda solo este navegador.
🔗 Merge similar work orders
Busca órdenes distintas que podrían saldarse en una sola visita: dos o más trabajos no empezados, en la misma cuenta, cuyo trabajo exige exactamente el mismo conjunto de equipos.
Cada grupo se presenta para revisión con, por cada orden, su activo, su tipo de trabajo, su prioridad, su fecha objetivo y su número de notas; usted marca cuáles combinar y confirma grupo por grupo. La fusión conserva la orden con el vencimiento más próximo, le pone el vencimiento más próximo del grupo, borra las demás, y pliega todas sus notas sobre la superviviente, cada una con el prefijo de su procedencia. Toda alarma que apuntaba a una orden borrada se reapunta a la conservada.
Capacity Reserve — los minutos que se mantienen libres para emergencias
Scheduling tiene dos subpestañas, Board y Capacity Reserve. La reserva mantiene libre una parte de los minutos de cada tipo de camión, de modo que el programador nunca puede llenar un día por completo con trabajos normales. Se fija por tipo de camión, para todas las categorías juntas: los camiones se comparten entre categorías, así que los minutos libres se mantienen en los camiones. La pestaña muestra un día a la vez (◀ ▶ o el campo de fecha); el ⓘ después de la fecha abre esta explicación en pantalla.
By truck type — donde se fija la reserva
La primera tabla tiene una fila por tipo de camión. Cada camión cuenta una sola vez, sean cuales sean las categorías que atiende.
| Columna | Significado |
|---|---|
| Truck time (la bolsa) | El total de minutos disponibles ese día en todos los camiones de ese tipo (o cuadrillas, en modo cuadrilla). Cada camión cuenta por su presupuesto del día más una asignación de trayecto. Los camiones fuera de servicio y las cuadrillas fuera de sus fechas no cuentan. |
| Bookable (reservable) | La parte de la bolsa que el programador puede llenar: bolsa × (100 − % de reserva) / 100. El resto se mantiene libre para las emergencias. |
| Booked (reservado) | Los minutos ya planificados en ese tipo de camión ese día, todas las categorías juntas. Cada trabajo cuenta su duración más el trayecto medio entre trabajos, multiplicado por el número de camiones de ese tipo que ocupa. |
Reservado y reservable comparten una columna, Booked / bookable. La columna Reserve es el % que usted modifica. La columna From dice de dónde viene el % del día: this day (una excepción del día), seasonal (la tasa fijada en WOM → Fleet → Types → Seasonal capacity reserve) o none set. La última línea, Fleet, da los minutos reservados y totales de toda la flota, y cuántos quedan libres.
- Escribir un nuevo % actualiza reservable de inmediato, pero nada cambia hasta hacer clic en Save. Guardar pone una excepción del día: reemplaza la tasa estacional de ese tipo de camión, solo ese día.
- Clear (presente en una fila this day) quita la excepción; el día vuelve a su tasa estacional. 0 % es un valor («sin reserva ese día»), no es lo mismo que borrar.
- Upcoming day exceptions lista las próximas excepciones, con su tipo de camión; haga clic en una fecha para abrir ese día.
By category — solo lectura
La segunda tabla muestra los minutos de cada categoría, a título informativo. Su reserva no se fija: se deriva de los tipos de camión que usan sus tipos de trabajo, ponderados por cuántos camiones de cada tipo la atienden. Ejemplo: 2 camiones canasta al 20 % y 1 camión grúa al 50 % dan 30 %. Para cambiarla, cambie la reserva de sus tipos de camión más arriba.
- Su tiempo de camión solo cuenta los camiones de los tipos que usan los tipos de trabajo de la categoría. Una línea debajo dice 15 trucks · 15 shared (en naranja) o 2 trucks · dedicated: un camión compartido atiende también otras categorías, sus minutos aparecen también en esas filas, y las filas de categoría suman más de lo que tiene la flota.
- Su reservable es la suma, para cada uno de sus tipos de camión, de los minutos de camión de ese tipo × (100 − % de reserva de ese tipo).
Cómo afecta a la programación
Ejemplo: 1 camión, un día de 08:00, 00:15 de trayecto entre trabajos, un tipo de trabajo de 00:45 y una reserva del 25 % en su tipo de camión.
- Bolsa = 08:00 + 00:15 = 08:15.
- Reservable = 08:15 × 75 % = 06:11.
- Cada trabajo cuesta 00:45 + 00:15 = 01:00. El programador coloca los trabajos por orden de prioridad hasta que el siguiente superaría 06:11: 6 trabajos = 06:00 / 06:11.
- El 7.º trabajo llegaría a 07:00, por encima de 06:11. No se coloca ese día, y el programador prueba el día siguiente.
- Si ningún día de la ventana de planificación tiene espacio, el trabajo se marca como no colocable. El mensaje nombra la reserva del tipo de camión como causa.
El tipo de camión es la única barrera: los trabajos normales de cualquier categoría se detienen en él cuando lo reservado superaría lo reservable. Ninguna categoría tiene barrera propia.
Los trabajos Critical y fijados se tratan de otra forma
La reserva nunca los rechaza, así que una emergencia siempre puede entrar en los minutos mantenidos libres.
Aun así cuentan como reservados. Tras 2 trabajos Critical (02:00), solo quedan 04:11 para trabajos normales, es decir 4 trabajos.
Por eso «reservado» puede superar «reservable». La fila se muestra entonces en rojo. Significa que la reserva se ha usado, no que algo esté roto.
Liberada los días que muestran retraso
La reserva es para las emergencias, y un trabajo a punto de incumplir su fecha límite esta semana lo es. Por eso el programador examina los primeros días de su ejecución — Days ahead in which late jobs lift the truck-type reserve en Settings, de 0 (desactivado) a 7 días naturales, 7 por defecto.
- Un día muestra retraso cuando un trabajo que vence ese día termina planificado después, o sin colocar, con la reserva aplicada. Un trabajo ya vencido cuenta en el primer día abierto (ni fin de semana, ni bloqueado, ni jornada terminada).
- Un trabajo que vence un sábado o un domingo cuenta en el último día hábil antes de su fecha límite, el viernes: solo los trabajos Critical trabajan el fin de semana, así que liberar ese día no ayudaría en nada. Se libera ese viernes, y el trabajo atraviesa ahí la reserva.
- El programador planifica entonces otra vez. Solo esos días, los trabajos que vencen ese día o antes atraviesan la reserva del tipo de camión, como los Critical. Todos los demás la siguen viendo.
- Los trabajos Critical (ya la atraviesan), fijados, Problematic, cerrados y sin fecha límite no liberan nada. Sin retraso, hay una sola pasada y el plan es el mismo que antes.
- El detalle de la propuesta lo dice: Reserva de capacidad liberada para trabajo con retraso el: seguido de cada día y su número de trabajos con retraso. El % de esta pestaña no cambia — la liberación solo existe dentro de la ejecución del programador.
Lo que la reserva no hace
- Solo retiene los camiones cuyo tipo se conoce: una línea de trabajo que solo nombra una cuadrilla, sin tipo de camión, no la retiene ninguna reserva.
- Solo actúa en los días que el programador está planificando. Los trabajos ya colocados se quedan donde están hasta la próxima pasada del programador.
- Se suma a los demás límites: el presupuesto de minutos de cada camión y la capacidad diaria manual del tipo de trabajo, si hay una. Un trabajo tiene que pasarlos todos.
🚚 Fleet routing — the optimizer
It takes one day's scheduled work and sequences each truck's stops using real road travel times, returning a truck, a stop order and an arrival time for every job.
First, which team?
If the days you picked carry work for more than one Operations Team, the optimizer stops and asks which one. This is not a formality: a routing run covers one team at a time, because its trucks, its crews and its depots are its own. A run that mixed two teams would propose a truck that cannot do the job.
Only the team you choose is sent, and only it comes back scheduled. The other work orders keep their day and are left exactly as they are — nothing is lost, but nothing is routed either. To route a second team, run Fleet routing again.
If every work order on those days belongs to one team — or to none — no question is asked and the optimizer opens straight away.
Inside the optimizer
- ▶ Run Optimization — it fetches travel times the first time, then computes.
- 💾 Save & commit tour — sends the result back and writes it.
- Truck Legend — click a route to isolate it on the map, Ctrl-click to show several, hover to see that truck's crew, and use 🗑 to delete a route and free its stops for a re-run.
It protects urgent work when not everything fits
The cost of leaving a job out is weighted by priority — Critical above High above Normal above Low — so when a day cannot hold everything, it drops the low-priority work first. It does not simply drop whatever is furthest away.
What priority controls — and what it does not
| Stage | What priority does |
|---|---|
| Scheduler picks the day | Work orders are placed most urgent first — priority, then due date — so Critical and High get the earliest day that has capacity. Only Critical and High are flagged as overflow when they are pushed to a later day. Within a day, the card order uses priority only as a tie-breaker. |
| Optimizer picks the truck, the crew and the stop order | Priority weighs the cost of leaving a job out: Critical 10×, High 4×, Normal 1×, Low 0.3× (a pinned job weighs 5× more). When a day is too full, Low and Normal work is dropped first. |
| Stop order within the day | A soft late-arrival cost pulls High and Critical toward the start of the route: every minute after the truck leaves costs half a minute of driving for a Critical job, a quarter for a High one. It is a nudge, not a promise — a Critical job far from the rest of the route can still come later in the day. |
| Settings → Crew build order when short-staffed | Only decides which crew Auto-build staffs first when there are not enough technicians. It does not order the stops. |
Need a set hour? Give it a time window
When you set a work order to High or Critical — from the priority list on a Work Orders board card, or on the work order card — WOM asks Need a time window? Pick Morning, Afternoon, or mark the hours on the day strip, then Save this window; No leaves it without one. The question is skipped when the work order already has a window, or is frozen.
A time window is a hard limit: the optimizer starts the visit inside it, or leaves the job out. It is the only way to guarantee an early visit.
In crew mode — that is, as soon as any crew exists — each job is pinned to its crew's truck, so the crew and its technicians never split mid-day.
Back on the board
Routed cards show 🚚 truck · stop · ETA. Click a card's grey 🔒 to freeze the route — frozen jobs are re-sent as fixed appointments and never re-planned.
👁 View in Optimizer revisits committed routes read-only. 📥 Load Routes imports an optimizer file. Anything the optimizer could not fit appears in the exception panels.
The optimizer mirrors your real fleet: WOM sends its trucks, its depots and — in crew mode — the crew technicians, and each truck starts and ends at its assigned home depot.
🚚 Fleet routing — l'optimiseur
Il prend le travail ordonnancé d'une journée et met en séquence les arrêts de chaque camion avec des temps de trajet routiers réels, en rendant pour chaque travail un camion, un rang d'arrêt et une heure d'arrivée.
D'abord, quelle équipe ?
Si les journées choisies portent du travail pour plus d'une équipe d'opérations, l'optimiseur s'arrête et demande laquelle. Ce n'est pas une formalité : une passe de routage couvre une équipe à la fois, parce que ses camions, ses équipages et ses dépôts sont les siens. Une passe qui mélangerait deux équipes proposerait un camion incapable de faire le travail.
Seule l'équipe choisie part, et seule elle revient planifiée. Les autres bons gardent leur journée et restent exactement tels quels — rien n'est perdu, mais rien n'est routé non plus. Pour router une deuxième équipe, relancez Fleet routing.
Si tous les bons de ces journées appartiennent à une seule équipe — ou à aucune — aucune question n'est posée et l'optimiseur s'ouvre directement.
Dans l'optimiseur
- ▶ Run Optimization — il va chercher les temps de trajet la première fois, puis calcule.
- 💾 Save & commit tour — renvoie le résultat et l'écrit.
- Truck Legend — cliquez une tournée pour l'isoler sur la carte, Ctrl-cliquez pour en montrer plusieurs, survolez pour voir l'équipage de ce camion, et utilisez 🗑 pour supprimer une tournée et libérer ses arrêts pour une nouvelle exécution.
Il protège le travail urgent quand tout ne rentre pas
Le coût de laisser un travail de côté est pondéré par la priorité — Critical au-dessus de High, au-dessus de Normal, au-dessus de Low : quand une journée ne peut pas tout tenir, il laisse tomber le travail peu prioritaire en premier. Il ne laisse pas simplement tomber ce qui est le plus loin.
Ce que la priorité décide — et ce qu'elle ne décide pas
| Étape | Ce que fait la priorité |
|---|---|
| Ordonnanceur choisit le jour | Les bons sont placés du plus urgent au moins urgent — la priorité, puis l'échéance — : Critical et High reçoivent le premier jour qui a de la place. Seuls Critical et High sont marqués en débordement quand ils sont repoussés à un jour suivant. Dans une journée, l'ordre des cartes n'utilise la priorité que pour départager. |
| Optimiseur choisit le camion, l'équipage et l'ordre des arrêts | La priorité pèse le coût de laisser un travail de côté : Critical 10×, High 4×, Normal 1×, Low 0,3× (un bon épinglé pèse 5× plus). Quand une journée déborde, Low et Normal tombent en premier. |
| Ordre des arrêts dans la journée | Un coût doux d'arrivée tardive tire High et Critical vers le début de la tournée : chaque minute après le départ du camion coûte une demi-minute de route pour un Critical, un quart pour un High. C'est une poussée, pas une promesse — un Critical loin du reste de la tournée peut encore venir plus tard dans la journée. |
| Settings → Crew build order when short-staffed | Décide seulement quel équipage Auto-build compose en premier quand il manque de techniciens. Il n'ordonne pas les arrêts. |
Besoin d'une heure précise ? Donnez-lui une fenêtre horaire
Quand vous passez un bon en High ou Critical — depuis la liste de priorité d'une carte du tableau des bons, ou sur la fiche du bon — WOM demande Besoin d'une fenêtre horaire ? Choisissez Matin, Après-midi, ou marquez les heures sur la bande de la journée, puis Enregistrer cette fenêtre ; Non le laisse sans fenêtre. La question n'est pas posée si le bon a déjà une fenêtre, ou s'il est gelé.
Une fenêtre horaire est une limite stricte : l'optimiseur commence la visite à l'intérieur, ou laisse le travail de côté. C'est la seule façon de garantir une visite matinale.
En mode équipage — c'est-à-dire dès qu'un équipage existe — chaque travail est épinglé au camion de son équipage : l'équipage et ses techniciens ne se séparent jamais en cours de journée.
De retour sur le tableau
Les cartes routées affichent 🚚 camion · arrêt · heure d'arrivée. Cliquez le 🔒 gris d'une carte pour geler la tournée — les travaux gelés sont renvoyés comme rendez-vous fixes et ne sont jamais replanifiés.
👁 View in Optimizer permet de revoir les tournées engagées en lecture seule. 📥 Load Routes importe un fichier d'optimiseur. Tout ce que l'optimiseur n'a pas pu caser apparaît dans les panneaux d'exception.
L'optimiseur reflète votre vraie flotte : WOM lui envoie ses camions, ses dépôts et — en mode équipage — les techniciens des équipages, et chaque camion part et revient de son dépôt d'attache.
🚚 Fleet routing — el optimizador
Toma el trabajo programado de una jornada y secuencia las paradas de cada camión con tiempos de viaje reales por carretera, devolviendo para cada trabajo un camión, un orden de parada y una hora de llegada.
Primero, ¿qué equipo?
Si los días elegidos llevan trabajo de más de un equipo de operaciones, el optimizador se detiene y pregunta cuál. No es una formalidad: una pasada de ruteo cubre un equipo a la vez, porque sus camiones, sus cuadrillas y sus depósitos son suyos. Una pasada que mezclara dos equipos propondría un camión incapaz de hacer el trabajo.
Solo se envía el equipo elegido, y solo él vuelve planificado. Las demás órdenes conservan su día y quedan exactamente como están — nada se pierde, pero nada se rutea tampoco. Para rutear un segundo equipo, vuelva a lanzar Fleet routing.
Si todas las órdenes de esos días pertenecen a un solo equipo — o a ninguno — no se hace ninguna pregunta y el optimizador se abre directamente.
Dentro del optimizador
- ▶ Run Optimization — busca los tiempos de viaje la primera vez, y luego calcula.
- 💾 Save & commit tour — devuelve el resultado y lo escribe.
- Truck Legend — presione una ruta para aislarla en el mapa, Ctrl-clic para mostrar varias, pase el cursor para ver la cuadrilla de ese camión, y use 🗑 para borrar una ruta y liberar sus paradas para una nueva ejecución.
Protege el trabajo urgente cuando no cabe todo
El coste de dejar fuera un trabajo se pondera por la prioridad — Critical por encima de High, por encima de Normal, por encima de Low: cuando una jornada no puede con todo, descarta primero el trabajo poco prioritario. No descarta simplemente lo que queda más lejos.
Lo que decide la prioridad — y lo que no
| Etapa | Lo que hace la prioridad |
|---|---|
| Planificador elige el día | Las órdenes se colocan de la más urgente a la menos urgente — la prioridad, luego el vencimiento —: Critical y High reciben el primer día con capacidad. Solo Critical y High se marcan como desborde cuando se aplazan a un día posterior. Dentro de un día, el orden de las tarjetas usa la prioridad solo para desempatar. |
| Optimizador elige el camión, la cuadrilla y el orden de las paradas | La prioridad pondera el coste de dejar fuera un trabajo: Critical 10×, High 4×, Normal 1×, Low 0,3× (una orden fijada pesa 5× más). Cuando una jornada no da abasto, Low y Normal se descartan primero. |
| Orden de las paradas en el día | Un coste suave de llegada tardía acerca High y Critical al inicio de la ruta: cada minuto tras la salida del camión cuesta medio minuto de conducción para una Critical, un cuarto para una High. Es un empujón, no una promesa — una Critical lejos del resto de la ruta aún puede llegar más tarde en el día. |
| Settings → Crew build order when short-staffed | Solo decide qué cuadrilla forma primero Auto-build cuando faltan técnicos. No ordena las paradas. |
¿Necesita una hora fija? Dele una ventana horaria
Cuando pasa una orden a High o Critical — desde la lista de prioridad de una tarjeta del tablero de órdenes, o en la ficha de la orden — WOM pregunta ¿Necesita una ventana horaria? Elija Mañana, Tarde, o marque las horas en la franja del día, luego Guardar esta ventana; No la deja sin ventana. La pregunta no aparece si la orden ya tiene una ventana, o si está congelada.
Una ventana horaria es un límite estricto: el optimizador comienza la visita dentro de ella, o deja el trabajo fuera. Es la única forma de garantizar una visita temprana.
En modo cuadrilla — es decir, en cuanto existe una cuadrilla — cada trabajo queda fijado al camión de su cuadrilla, de modo que la cuadrilla y sus técnicos nunca se separan a media jornada.
De vuelta en el tablero
Las tarjetas enrutadas muestran 🚚 camión · parada · hora de llegada. Presione el 🔒 gris de una tarjeta para congelar la ruta — los trabajos congelados se reenvían como citas fijas y nunca se replanifican.
👁 View in Optimizer permite revisar las rutas comprometidas en solo lectura. 📥 Load Routes importa un archivo del optimizador. Todo lo que el optimizador no pudo encajar aparece en los paneles de excepción.
El optimizador refleja su flota real: WOM le envía sus camiones, sus depósitos y — en modo cuadrilla — los técnicos de las cuadrillas, y cada camión sale y vuelve a su depósito base.
🗺️ Routes
The committed tours, read as a day's work rather than as a map.
Per vehicle: stops · hours on site · hours travelling · kilometres · % of the day used. That last figure is the one to watch: a truck at 60 % has room, a truck at 105 % is a promise nobody can keep.
Per technician type is also available — it needs Crews to exist, because that is what maps a truck to a trade.
Nothing appears here until you have run Fleet Routing and pressed 💾 Save & commit tour. An empty Routes screen usually means the tour was computed but never committed.
🗺️ Routes
Les tournées engagées, lues comme une journée de travail plutôt que comme une carte.
Par véhicule : arrêts · heures sur place · heures de trajet · kilomètres · % de la journée utilisée. Ce dernier chiffre est celui à surveiller : un camion à 60 % a de la marge, un camion à 105 % est une promesse que personne ne peut tenir.
Par type de technicien existe aussi — cela exige que des équipages existent, puisque c'est ce qui rattache un camion à un métier.
Rien n'apparaît ici tant que vous n'avez pas lancé Fleet Routing et pressé 💾 Save & commit tour. Un écran Routes vide veut généralement dire que la tournée a été calculée mais jamais engagée.
🗺️ Routes
Las rutas comprometidas, leídas como una jornada de trabajo y no como un mapa.
Por vehículo: paradas · horas en el sitio · horas de viaje · kilómetros · % de la jornada usada. Esta última cifra es la que hay que vigilar: un camión al 60 % tiene margen, un camión al 105 % es una promesa que nadie puede cumplir.
Por tipo de técnico también existe — exige que haya cuadrillas, porque es lo que liga un camión a un oficio.
Aquí no aparece nada mientras no haya lanzado Fleet Routing y presionado 💾 Save & commit tour. Una pantalla Routes vacía suele significar que la ruta se calculó pero nunca se comprometió.
🗺️ Map
Accounts and assets on their real coordinates. Two filters narrow the work orders: a category, then a job type within it; each work order is coloured by its category.
⚠️ The map is not narrowed to your Operations Team
Every other screen respects the team selector. This one draws every work order and every asset in the tenant. A banner above the map says so on every visit.
Leaving the team name at the top of the screen above the whole park would not show an error — it would show a plausible lie. Read the banner before you count anything.
Marker colour
- Normally the marker shows the account's top work-order status.
- An active alarm overrides it with the alarm's severity — larger marker, white ring.
- An account with no open work order is a small grey dot.
Hover and tap
- With a mouse: hover shows the bubble, click opens the account.
- On a touch screen: the first tap shows the bubble, a second tap opens the account.
The bubble lists that account's open work orders, each with its status, scheduled date and route (truck) — so you can see at a glance when a job is due and which vehicle it is on.
🗺️ Map
Les comptes et les actifs à leurs vraies coordonnées. Deux filtres restreignent les bons : une catégorie, puis un type de travail dans celle-ci ; chaque bon prend la couleur de sa catégorie.
⚠️ La carte n'est pas restreinte à votre Operations Team
Tous les autres écrans respectent le sélecteur d'équipe. Celui-ci dessine tous les bons et tous les actifs du locataire. Un bandeau au-dessus de la carte le dit à chaque visite.
Laisser le nom de l'équipe en haut de l'écran au-dessus du parc entier ne montrerait pas une erreur — cela montrerait un mensonge plausible. Lisez le bandeau avant de compter quoi que ce soit.
La couleur du marqueur
- Normalement le marqueur montre le statut de bon le plus élevé du compte.
- Une alarme active l'emporte et impose la gravité de l'alarme — marqueur plus gros, anneau blanc.
- Un compte sans bon ouvert est un petit point gris.
Survol et toucher
- À la souris : le survol montre la bulle, le clic ouvre le compte.
- Sur écran tactile : le premier toucher montre la bulle, le second ouvre le compte.
La bulle liste les bons ouverts de ce compte, chacun avec son statut, sa date d'ordonnancement et sa tournée (camion) — on voit donc d'un coup d'œil quand un travail est dû et sur quel véhicule il se trouve.
🗺️ Map
Las cuentas y los activos en sus coordenadas reales. Dos filtros restringen las órdenes: una categoría y luego un tipo de trabajo dentro de ella; cada orden toma el color de su categoría.
⚠️ El mapa no está restringido a su Operations Team
Todas las demás pantallas respetan el selector de equipo. Esta dibuja todas las órdenes y todos los activos del inquilino. Un aviso sobre el mapa lo dice en cada visita.
Dejar el nombre del equipo en lo alto de la pantalla sobre el parque entero no mostraría un error — mostraría una mentira plausible. Lea el aviso antes de contar nada.
El color del marcador
- Normalmente el marcador muestra el estado de orden más alto de la cuenta.
- Una alarma activa prevalece e impone la gravedad de la alarma — marcador más grande, anillo blanco.
- Una cuenta sin orden abierta es un pequeño punto gris.
Pasar el cursor y tocar
- Con ratón: pasar el cursor muestra la burbuja, presionar abre la cuenta.
- En pantalla táctil: el primer toque muestra la burbuja, el segundo abre la cuenta.
La burbuja enumera las órdenes abiertas de esa cuenta, cada una con su estado, su fecha programada y su ruta (camión) — así se ve de un vistazo cuándo vence un trabajo y en qué vehículo está.
📊 Dashboard
Where the day stands, in seven figures.
| Card | What it counts |
|---|---|
| Open work orders | Not Fixed, not Cancelled. The total is underneath. |
| Critical | Open and Critical. Turns red as soon as it is above zero. |
| Unscheduled | Open with no day yet. |
| Overdue | Past its target date. Red above zero. |
| Assets | Your equipment, with the count of addresses still to verify. |
| Unack. alarms | Active alarms nobody has answered yet — not acknowledged, and no open work order — out of all active alarms, with the orphan count. Click it to open that list in Alarms. |
| Batches waiting | Meter readings received but not yet taken in. |
All of it describes one instant
The counters come from a single query and are shown exactly as returned — never added up again from a page on screen. So the cards and the four charts below them always agree with each other. If a figure looks wrong, reload; do not try to reconcile it against a list you are scrolling, because that list is a different moment.
The four breakdowns
Underneath: by status (a ring, in the status colours), by priority, by zone, and by intervention type.
A bar marked (unclassified) is not a job type
In “By intervention type”, a bar labelled Water (unclassified) means 71
work orders of the Water category that nobody managed to classify — not 71 jobs of one
kind. They carry a fallback type, invented so the record would resolve, not chosen by a
dispatcher. A large unclassified bar is a catalogue to fix, not a workload to plan.
The team banner
With an Operations Team selected, every counter is narrowed by the server. Two cards then read “—” on purpose: orphan episodes and batches waiting have no path to a team, and showing the tenant total under a team's name would be a true figure in the wrong place.
If the server is an older one that ignores the team filter, a banner says so in plain words — because nothing in the numbers themselves would reveal it.
📊 Dashboard
Où en est la journée, en sept chiffres.
| Carte | Ce qu'elle compte |
|---|---|
| Open work orders | Ni Fixed, ni Cancelled. Le total est en dessous. |
| Critical | Ouverts et Critical. Passe au rouge dès qu'il dépasse zéro. |
| Unscheduled | Ouverts, sans journée. |
| Overdue | Passé l'échéance. Rouge au-dessus de zéro. |
| Assets | Vos équipements, avec le nombre d'adresses encore à vérifier. |
| Unack. alarms | Les alarmes actives auxquelles personne n'a encore répondu — ni acquittées, ni couvertes par un bon ouvert — sur l'ensemble des alarmes actives, avec le nombre d'orphelines. Un clic ouvre cette liste dans Alarms. |
| Batches waiting | Des relevés reçus, pas encore admis. |
Tout cela décrit un seul instant
Les compteurs viennent d'une seule requête et sont affichés tels que rendus — jamais recomptés depuis une page à l'écran. Les cartes et les quatre graphiques qui les suivent sont donc toujours d'accord entre eux. Si un chiffre semble faux, rechargez ; n'essayez pas de le rapprocher d'une liste que vous faites défiler, parce que cette liste est un autre moment.
Les quatre ventilations
En dessous : par statut (un anneau, aux couleurs des statuts), par priorité, par zone, et par type d'intervention.
Une barre marquée (unclassified) n'est pas un type de travail
Dans « By intervention type », une barre Water (unclassified) veut dire
71 bons de la catégorie Eau que personne n'a su classer — et non 71 travaux d'une
même sorte. Ils portent un type de repli, fabriqué pour qu'une résolution aboutisse, pas
choisi par un répartiteur. Une grosse barre non classée est un catalogue à corriger, pas
une charge à planifier.
Le bandeau d'équipe
Avec une Operations Team choisie, chaque compteur est restreint par le serveur. Deux cartes affichent alors « — » à dessein : orphan episodes et batches waiting n'ont aucun chemin vers une équipe, et montrer le total du locataire sous le nom d'une équipe serait un chiffre vrai au mauvais endroit.
Si le serveur est d'une version antérieure qui ignore le filtre d'équipe, un bandeau le dit en toutes lettres — parce que rien, dans les nombres eux-mêmes, ne le laisserait voir.
📊 Dashboard
Cómo va la jornada, en siete cifras.
| Tarjeta | Qué cuenta |
|---|---|
| Open work orders | Ni Fixed, ni Cancelled. El total va debajo. |
| Critical | Abiertas y Critical. Se pone roja en cuanto pasa de cero. |
| Unscheduled | Abiertas, sin jornada. |
| Overdue | Pasada la fecha objetivo. Roja por encima de cero. |
| Assets | Sus equipos, con el número de direcciones aún por verificar. |
| Unack. alarms | Las alarmas activas que nadie ha atendido todavía — sin reconocer y sin orden de trabajo abierta — sobre el total de alarmas activas, con el número de huérfanas. Un clic abre esa lista en Alarms. |
| Batches waiting | Lecturas recibidas, aún no admitidas. |
Todo ello describe un solo instante
Los contadores vienen de una sola consulta y se muestran tal como se devuelven — nunca recontados desde una página en pantalla. Así, las tarjetas y los cuatro gráficos que las siguen siempre coinciden entre sí. Si una cifra parece errónea, recargue; no intente cuadrarla contra una lista que está recorriendo, porque esa lista es otro momento.
Los cuatro desgloses
Debajo: por estado (un anillo, con los colores de los estados), por prioridad, por zona, y por tipo de intervención.
Una barra marcada (unclassified) no es un tipo de trabajo
En «By intervention type», una barra Water (unclassified) significa 71
órdenes de la categoría Agua que nadie supo clasificar — no 71 trabajos de una misma
clase. Llevan un tipo de reserva, fabricado para que una resolución cuadrara, no elegido
por un despachador. Una barra sin clasificar grande es un catálogo que corregir, no una
carga que planificar.
El aviso de equipo
Con una Operations Team elegida, cada contador se restringe en el servidor. Dos tarjetas muestran entonces «—» a propósito: orphan episodes y batches waiting no tienen ningún camino hacia un equipo, y mostrar el total del inquilino bajo el nombre de un equipo sería una cifra cierta en el lugar equivocado.
Si el servidor es de una versión anterior que ignora el filtro de equipo, un aviso lo dice con todas las letras — porque nada, en las cifras mismas, dejaría verlo.
🧮 Reports
Build your own list: pick the columns, say which work orders, sort it, run it. The server runs the report and returns the rows — nothing is computed in your browser.
The four steps
- Columns — pick from the field catalogue. Add a total (Count, Sum, Average, Minimum, Maximum) and the rows group themselves; the screen then names what they are grouped on.
- Filter — which work orders. Conditions read as sentences: is, is not, contains, starts with, is one of, between, in the last N days, is empty. Group them with all of / any of, and wrap a group in not to exclude it whole.
- Sort & size — one sort column, a direction, and a row cap.
- Result — the rows, exportable.
Keeping a report, and giving it to a colleague
💾 Save report keeps the definition under your name. + Save as keeps your own copy of somebody else's — you never edit theirs. Then open it to colleagues.
A shared report runs with their scope, never yours
You share the question, not the answer. A colleague who opens your report sees the rows they are allowed to see. A supervisor and a dispatcher running the same saved report can legitimately get different numbers, and neither is wrong.
At the bottom, “The definition, as the server receives it” shows the exact document a saved report stores. You never need to read it — it is there so that a report that misbehaves can be described precisely to support.
🧮 Reports
Construisez votre propre liste : choisissez les colonnes, dites quels bons, triez, lancez. C'est le serveur qui exécute le rapport et rend les lignes — rien n'est calculé dans votre navigateur.
Les quatre étapes
- Colonnes — à prendre dans le catalogue de champs. Ajoutez un total (Count, Sum, Average, Minimum, Maximum) et les lignes se regroupent d'elles-mêmes ; l'écran dit alors sur quoi elles sont regroupées.
- Filtre — quels bons. Les conditions se lisent comme des phrases : is, is not, contains, starts with, is one of, between, in the last N days, is empty. Groupez-les par all of / any of, et enveloppez un groupe dans not pour l'exclure en entier.
- Tri et taille — une colonne de tri, un sens, et un plafond de lignes.
- Résultat — les lignes, exportables.
Garder un rapport, et le donner à un collègue
💾 Save report garde la définition à votre nom. + Save as garde votre propre copie de celui d'un autre — vous ne modifiez jamais le sien. Ensuite, ouvrez-le à des collègues.
Un rapport partagé s'exécute avec leur portée, jamais la vôtre
Vous partagez la question, pas la réponse. Un collègue qui ouvre votre rapport voit les lignes qu'il a le droit de voir. Un superviseur et un répartiteur qui lancent le même rapport gardé peuvent légitimement obtenir des nombres différents, et aucun des deux n'a tort.
En bas, « The definition, as the server receives it » montre le document exact qu'un rapport gardé enregistre. Vous n'avez jamais besoin de le lire — il est là pour qu'un rapport qui se comporte mal puisse être décrit précisément au soutien.
🧮 Reports
Construya su propia lista: elija las columnas, diga qué órdenes, ordénela, ejecútela. Es el servidor quien ejecuta el informe y devuelve las filas — nada se calcula en su navegador.
Los cuatro pasos
- Columnas — a elegir del catálogo de campos. Añada un total (Count, Sum, Average, Minimum, Maximum) y las filas se agrupan solas; la pantalla dice entonces sobre qué están agrupadas.
- Filtro — qué órdenes. Las condiciones se leen como frases: is, is not, contains, starts with, is one of, between, in the last N days, is empty. Agrúpelas con all of / any of, y envuelva un grupo en not para excluirlo entero.
- Orden y tamaño — una columna de orden, un sentido, y un tope de filas.
- Resultado — las filas, exportables.
Guardar un informe, y dárselo a un compañero
💾 Save report guarda la definición a su nombre. + Save as guarda su propia copia del de otro — usted nunca modifica el suyo. Después, ábralo a compañeros.
Un informe compartido se ejecuta con su alcance, nunca con el de usted
Usted comparte la pregunta, no la respuesta. Un compañero que abre su informe ve las filas que él tiene derecho a ver. Un supervisor y un despachador que ejecuten el mismo informe guardado pueden obtener legítimamente cifras distintas, y ninguno se equivoca.
Abajo, «The definition, as the server receives it» muestra el documento exacto que guarda un informe. Nunca necesita leerlo — está ahí para que un informe que se comporte mal pueda describirse con precisión al soporte.
🔔 Activity / Notifications and 🧾 Field Log
These two tabs show the same thing
Both read the tenant's activity journal — every recorded action, server-side, scoped to your organization. Field Log adds one thing the other has not: an ⬇️ Export CSV button. That is the whole difference.
Five columns: When · Actor · Action · Entity · Request. “Entity” names what was acted
on (work_order #WO-2026-000024). “Request” is a reference to give support when
you report something.
It is a shared trace, not your browser's
This is what everyone did, visible to everyone, from any workstation. If the journal cannot be read, the screen says nothing rather than falling back to whatever this browser happens to remember — a private trace shown where a shared one is expected would be worse than an empty screen.
Three messages, three different situations: “Sign in again…” (your session lapsed) · “Activity journal unavailable…” (the service is not answering) · “No events for this filter.” (it answered, and there is nothing).
The CSV export writes exactly the rows on screen, never more.
🔔 Activity / Notifications et 🧾 Field Log
Ces deux onglets montrent la même chose
Tous deux lisent le journal d'activité du locataire — chaque action enregistrée, côté serveur, dans le périmètre de votre organisation. Field Log ajoute une seule chose que l'autre n'a pas : un bouton ⬇️ Export CSV. Toute la différence est là.
Cinq colonnes : When · Actor · Action · Entity · Request. « Entity » nomme ce sur quoi
on a agi (work_order #WO-2026-000024). « Request » est une référence à donner au
soutien quand vous signalez quelque chose.
C'est une trace partagée, pas celle de votre navigateur
C'est ce que tout le monde a fait, visible par tout le monde, depuis n'importe quel poste. Si le journal ne peut pas être lu, l'écran n'affiche rien plutôt que de retomber sur ce dont ce navigateur se souvient — une trace privée montrée là où on en attend une partagée serait pire qu'un écran vide.
Trois messages, trois situations différentes : « Sign in again… » (votre session a expiré) · « Activity journal unavailable… » (le service ne répond pas) · « No events for this filter. » (il a répondu, et il n'y a rien).
L'export CSV écrit exactement les lignes à l'écran, jamais davantage.
🔔 Activity / Notifications y 🧾 Field Log
Estas dos pestañas muestran lo mismo
Ambas leen el registro de actividad del inquilino — cada acción registrada, en el servidor, dentro del alcance de su organización. Field Log añade una sola cosa que la otra no tiene: un botón ⬇️ Export CSV. Toda la diferencia está ahí.
Cinco columnas: When · Actor · Action · Entity · Request. «Entity» nombra aquello
sobre lo que se actuó (work_order #WO-2026-000024). «Request» es una referencia
que dar al soporte cuando informe de algo.
Es una traza compartida, no la de su navegador
Es lo que hizo todo el mundo, visible para todo el mundo, desde cualquier puesto. Si el registro no puede leerse, la pantalla no muestra nada en lugar de recurrir a lo que este navegador recuerde — una traza privada mostrada donde se espera una compartida sería peor que una pantalla vacía.
Tres mensajes, tres situaciones distintas: «Sign in again…» (su sesión caducó) · «Activity journal unavailable…» (el servicio no responde) · «No events for this filter.» (respondió, y no hay nada).
La exportación CSV escribe exactamente las filas en pantalla, nunca más.
👤 Users & Roles
The organization's real accounts: add, edit, enable or disable someone, give them a role. Three views — 👤 Users, 🎭 Roles, 🔐 Permission Matrix.
Roles are shown, not designed
The Roles and Permission Matrix views display what each role is allowed to do as the server enforces it. There is no screen anywhere that edits that. What you assign is which role a person holds — never what the role means.
This is the same server data as the Console's user administration: two doors on one set of accounts, not two systems. See chapter 5 for the full treatment.
Writes are administrator-only. A non-administrator sees the screen and is refused on save. The users list and the rights list are read independently, so one being refused does not empty the other — and the screen says which one failed instead of showing you a short list as if it were complete.
👤 Users & Roles
Les comptes réels de l'organisation : ajouter, modifier, activer ou désactiver quelqu'un, lui donner un rôle. Trois vues — 👤 Users, 🎭 Roles, 🔐 Permission Matrix.
Les rôles sont montrés, pas conçus
Les vues Roles et Permission Matrix affichent ce que chaque rôle a le droit de faire tel que le serveur l'applique. Aucun écran, nulle part, ne modifie cela. Ce que vous attribuez, c'est quel rôle une personne porte — jamais ce que le rôle veut dire.
Ce sont les mêmes données serveur que l'administration des utilisateurs de la Console : deux portes sur un seul jeu de comptes, pas deux systèmes. Voir le chapitre 5 pour le traitement complet.
Les écritures sont réservées à l'administrateur. Un non-administrateur voit l'écran et se fait refuser à l'enregistrement. La liste des utilisateurs et celle des droits sont lues indépendamment : un refus sur l'une ne vide donc pas l'autre — et l'écran dit laquelle a échoué, au lieu de vous montrer une liste courte comme si elle était complète.
👤 Users & Roles
Las cuentas reales de la organización: añadir, modificar, activar o desactivar a alguien, darle un rol. Tres vistas — 👤 Users, 🎭 Roles, 🔐 Permission Matrix.
Los roles se muestran, no se diseñan
Las vistas Roles y Permission Matrix muestran lo que cada rol puede hacer tal como el servidor lo aplica. Ninguna pantalla, en ningún sitio, modifica eso. Lo que usted asigna es qué rol tiene una persona — nunca lo que el rol significa.
Son los mismos datos de servidor que la administración de usuarios de la Consola: dos puertas sobre un único conjunto de cuentas, no dos sistemas. Véase el capítulo 5 para el tratamiento completo.
Las escrituras son solo para el administrador. Quien no lo sea ve la pantalla y es rechazado al guardar. La lista de usuarios y la de derechos se leen de forma independiente: un rechazo en una no vacía la otra — y la pantalla dice cuál falló, en lugar de mostrarle una lista corta como si estuviera completa.
⚙️ Settings
The gear in the top bar. The important part is the top block: the day settings — the numbers every engine in this chapter obeys.
They belong to the organization, not to your browser
They are stored per organization on the server, because one organization's working day is not another's. Everyone sees the same values from any workstation.
They used to be editable in this browser as well, and this browser's copy won: someone changed the day length, the plan followed, and the next page load quietly put the organization's values back. There is now one copy.
The day settings
| Setting | What it governs |
|---|---|
| Max work + travel per day (min) | A crew takes jobs until Σ job durations + travel would exceed this. With 480 and 60 of travel: 420 minutes of job work per crew per day. |
| Average travel per day (min) | The travel reserve subtracted above, before any route exists. |
| Travel between two jobs (min) | One average for the whole organization, 0 to 240, 0 by default. The scheduler charges every job its duration plus this: N jobs fit a crew's day when N × duration + (N − 1) × travel stays within the budget above. |
| Workday starts at | Entered as HH:MM, 08:00 when first saved. The day runs from here for Max work + travel per day. A plan run today after this hour only fills the time left today; the optimizer's day and the Gantt also start here. |
| Scheduler horizon (days) | How far ahead the scheduler plans. A job that fits in none of these days is “could not be placed”. |
| Staffing planning window (days) | How far ahead crews and availability are read. |
| Level-load carry-forward (days) | How many days a Normal or Low job the optimizer cannot fit keeps rolling before it is flagged Problematic. Critical and High jobs, and “no capable vehicle” misses, surface at once. |
| Gate scheduling on material stock | Off: parts are tracked, not gated. On: the plan is simulated forward day by day, jobs consume on-hand stock, and only confirmed resupply receipts credit it back on their date. See Scheduling. |
| Book Critical / High jobs at their latest safe day | Off by default. On: a Critical or High job with a due date is booked on its latest safe day — the due date minus its margin — then on each day back toward today if that day is full, and after it only if none fits. Once every job is placed, it moves earlier only into capacity no other job uses. Off: urgent jobs take the earliest free day. |
| Critical margin before due date (working days) | The latest safe day of a Critical job: its due date minus this many working days, weekends not counted. 0 to 20, 1 by default; 0 is the due date itself. It also sets the Plan by date on the job, whether the switch above is on or off. |
| High margin before due date (working days) | The same for a High job. 0 to 20, 2 by default. |
| Crew build order when short-staffed | When Auto-build runs out of people, which crew gets staffed first: most in demand (default), largest crews, or highest job priority. No effect when there are enough people for every crew. |
| Days ahead in which late jobs lift the truck-type reserve | 0 to 7 calendar days from the start of a run, 7 by default; 0 turns it off. On those days, jobs due that day or earlier go through the truck-type reserve when the day shows lateness. See Capacity Reserve. |
| Cost of an unserved job (crew-days) | What it costs to leave a job unserved for a day. 2 is recommended. |
Why the last one is in crew-days and not dollars
2 means “a normal job left unserved is worth about two days of the most
expensive crew you run.” Change a truck rate or a trade rate and it recalibrates
itself; a dollar figure would not.
Priority multiplies it: critical ×10, high ×4, normal ×1, low ×0.3. Below 1, the plan gets cheap and leaves work behind, normal-priority work included. 4 and up, it serves almost everything and opens crews freely — cost stops steering it.
Crew prices come from Equipment types and Technician types, one cost per day each. A type with no price cannot be priced at all.
⚠️ “Defaults — not chosen for this organization”
If nobody has ever saved settings for your organization, the server returns starting-point values and the screen says so in amber. Every utilization percentage computed on them — Routes, the plan run, “% of the day” — is provisional until an administrator saves real ones. The flag is never hidden, because a default shown as a decision would quietly falsify every figure built on it.
Editing them
✎ Edit on server (admin). Writes are administrator-only; the server
refuses others. The first save also demands a time zone, as a full IANA name
like America/Toronto. An abbreviation such as EST is refused — it
would freeze the organization in winter time all year.
If someone else saved between your reading the screen and your pressing Save, the write is refused rather than silently overwriting them. Reload and redo your change.
The rest of the panel
- Turn-by-turn directions in the Route Report (PDF) — off by default: the report shows the map, the crew, the materials to load and the stops. On, it appends per-leg driving directions and distances. The road overlay on the route map is a separate 🧭 tick on the Routes tab.
- SMS notifications, with a test phone override that sends every message to one number instead of each owner's.
- 🧹 Erase all “Route imported” history & notes — removes optimizer bookkeeping from work-order histories. It is not field activity, and new imports are no longer logged.
On a demonstration tenant only, one extra button re-rolls target dates so 2–3 % of open work orders are overdue — for realistic figures on a demo. It is hidden on a real organization, because there it would overwrite genuine deadlines with noise.
⚙️ Settings
L'engrenage de la barre du haut. L'essentiel est le bloc du haut : les réglages de journée — les nombres auxquels obéit chaque moteur de ce chapitre.
Ils appartiennent à l'organisation, pas à votre navigateur
Ils sont enregistrés par organisation, sur le serveur, parce que la journée de travail d'une organisation n'est pas celle d'une autre. Tout le monde voit les mêmes valeurs, depuis n'importe quel poste.
Ils étaient autrefois modifiables dans ce navigateur aussi, et c'est la copie du navigateur qui gagnait : quelqu'un changeait la longueur de la journée, le plan suivait, et le chargement suivant remettait les valeurs de l'organisation sans rien dire. Il n'y a désormais qu'une seule copie.
Les réglages de journée
| Réglage | Ce qu'il commande |
|---|---|
| Max work + travel per day (min) | Un équipage prend des travaux jusqu'à ce que Σ durées + trajet dépasse cette valeur. Avec 480 et 60 de trajet : 420 minutes de travail par équipage et par jour. |
| Average travel per day (min) | La réserve de trajet retranchée ci-dessus, avant qu'aucune tournée n'existe. |
| Travel between two jobs (min) | Une seule moyenne pour toute l'organisation, de 0 à 240, 0 par défaut. L'ordonnanceur charge chaque travail de sa durée plus ce trajet : N travaux tiennent dans la journée d'un équipage quand N × durée + (N − 1) × trajet reste dans le budget ci-dessus. |
| Workday starts at | Saisie en HH:MM, 08:00 au premier enregistrement. La journée part de là pour Max work + travel per day. Une exécution du plan lancée aujourd'hui après cette heure ne remplit que le temps qui reste aujourd'hui ; la journée de l'optimiseur et le Gantt partent aussi de là. |
| Scheduler horizon (jours) | Jusqu'où l'ordonnanceur planifie. Un travail qui ne rentre dans aucune de ces journées est « impossible à placer ». |
| Staffing planning window (jours) | Jusqu'où les équipages et les disponibilités sont lus. |
| Level-load carry-forward (jours) | Combien de jours un travail Normal ou Low que l'optimiseur n'arrive pas à caser continue de rouler avant d'être marqué Problematic. Les travaux Critical et High, et les échecs « aucun véhicule capable », remontent tout de suite. |
| Gate scheduling on material stock | Éteint : les pièces sont suivies, pas bloquantes. Allumé : le plan est simulé jour après jour, les travaux consomment le stock, et seules les réceptions confirmées le regarnissent à leur date. Voir Scheduling. |
| Book Critical / High jobs at their latest safe day | Éteint par défaut. Allumé : un travail Critical ou High avec échéance est placé à son dernier jour sûr — l'échéance moins sa marge —, puis à chaque jour en reculant vers aujourd'hui si ce jour est plein, et après lui seulement si aucun ne convient. Une fois tous les travaux placés, il n'est avancé que dans la capacité qu'aucun autre travail n'utilise. Éteint : les travaux urgents prennent le premier jour libre. |
| Critical margin before due date (jours ouvrables) | Le dernier jour sûr d'un travail Critical : son échéance moins ce nombre de jours ouvrables, fins de semaine non comptées. De 0 à 20, 1 par défaut ; 0 est l'échéance elle-même. Il fixe aussi la date Plan by du travail, que l'interrupteur ci-dessus soit allumé ou non. |
| High margin before due date (jours ouvrables) | La même chose pour un travail High. De 0 à 20, 2 par défaut. |
| Crew build order when short-staffed | Quand Auto-build manque de monde, quel équipage est doté en premier : le plus demandé (défaut), les plus gros équipages, ou la priorité de travail la plus haute. Sans effet quand il y a assez de monde pour tous. |
| Days ahead in which late jobs lift the truck-type reserve | De 0 à 7 jours calendaires depuis le début d'une exécution, 7 par défaut ; 0 la désactive. Ces jours-là, les bons dus ce jour-là ou avant franchissent la réserve du genre de camion quand le jour montre du retard. Voir Capacity Reserve. |
| Cost of an unserved job (journées d'équipage) | Ce que coûte de laisser un travail non servi pendant une journée. 2 est recommandé. |
Pourquoi le dernier est en journées d'équipage et non en dollars
2 veut dire : « un travail normal laissé non servi vaut environ deux
journées de l'équipage le plus cher que vous faites rouler ». Changez le tarif d'un
camion ou d'un métier et le réglage se réétalonne tout seul ; un montant en dollars, non.
La priorité le multiplie : critical ×10, high ×4, normal ×1, low ×0,3. Sous 1, le plan devient économe et laisse du travail derrière, y compris du travail de priorité normale. À partir de 4, il sert presque tout et ouvre des équipages librement — le coût cesse de le gouverner.
Le prix des équipages vient des types d'équipement et des types de technicien, un coût par jour chacun. Un type sans prix ne peut pas être chiffré.
⚠️ « Defaults — not chosen for this organization »
Si personne n'a jamais enregistré de réglages pour votre organisation, le serveur rend des valeurs de départ et l'écran le dit en ambre. Tout taux d'utilisation calculé dessus — Routes, l'exécution du plan, le « % de la journée » — est provisoire tant qu'un administrateur n'en a pas enregistré de vrais. Le drapeau n'est jamais masqué, parce qu'un défaut présenté comme une décision fausserait en silence tous les chiffres bâtis dessus.
Les modifier
✎ Edit on server (admin). Les écritures sont réservées à
l'administrateur ; le serveur refuse les autres. Le premier enregistrement exige en
plus un fuseau horaire, sous un nom IANA complet comme America/Toronto.
Une abréviation comme EST est refusée — elle figerait l'organisation à l'heure d'hiver
toute l'année.
Si quelqu'un d'autre a enregistré entre le moment où vous avez lu l'écran et celui où vous pressez Save, l'écriture est refusée plutôt que de l'écraser en silence. Rechargez et refaites votre changement.
Le reste du panneau
- Itinéraire détaillé dans le rapport de tournée (PDF) — éteint par défaut : le rapport montre la carte, l'équipage, le matériel à charger et les arrêts. Allumé, il ajoute les indications de conduite et les distances par tronçon. Le tracé routier sur la carte de tournée est une case 🧭 distincte, dans l'onglet Routes.
- Notifications SMS, avec un téléphone d'essai qui envoie tous les messages à un seul numéro au lieu de celui de chaque propriétaire.
- 🧹 Erase all « Route imported » history & notes — retire la comptabilité de l'optimiseur de l'historique des bons. Ce n'est pas de l'activité de terrain, et les nouveaux imports ne sont plus journalisés.
Sur un locataire de démonstration seulement, un bouton supplémentaire retire au sort les échéances pour que 2–3 % des bons ouverts soient en retard — pour obtenir des chiffres réalistes en démonstration. Il est caché sur une vraie organisation, où il écraserait de vraies échéances par du bruit.
⚙️ Settings
El engranaje de la barra superior. Lo importante es el bloque de arriba: los ajustes de jornada — las cifras que obedece cada motor de este capítulo.
Pertenecen a la organización, no a su navegador
Se guardan por organización en el servidor, porque la jornada laboral de una organización no es la de otra. Todo el mundo ve los mismos valores desde cualquier puesto.
Antes también eran editables en este navegador, y ganaba la copia del navegador: alguien cambiaba la duración de la jornada, el plan lo seguía, y la siguiente carga devolvía los valores de la organización sin decir nada. Ahora hay una sola copia.
Los ajustes de jornada
| Ajuste | Qué gobierna |
|---|---|
| Max work + travel per day (min) | Una cuadrilla toma trabajos hasta que Σ duraciones + viaje supere este valor. Con 480 y 60 de viaje: 420 minutos de trabajo por cuadrilla y día. |
| Average travel per day (min) | La reserva de viaje que se resta arriba, antes de que exista ninguna ruta. |
| Travel between two jobs (min) | Un solo promedio para toda la organización, de 0 a 240, 0 por defecto. El programador carga a cada trabajo su duración más este viaje: N trabajos caben en la jornada de una cuadrilla cuando N × duración + (N − 1) × viaje no supera el presupuesto de arriba. |
| Workday starts at | Se introduce en HH:MM, 08:00 en el primer guardado. La jornada empieza aquí y dura Max work + travel per day. Una ejecución del plan lanzada hoy después de esta hora solo llena el tiempo que queda hoy; la jornada del optimizador y el Gantt también empiezan aquí. |
| Scheduler horizon (días) | Hasta dónde planifica el programador. Un trabajo que no cabe en ninguna de esas jornadas es «imposible de ubicar». |
| Staffing planning window (días) | Hasta dónde se leen las cuadrillas y las disponibilidades. |
| Level-load carry-forward (días) | Cuántos días sigue rodando un trabajo Normal o Low que el optimizador no logra encajar antes de marcarse Problematic. Los trabajos Critical y High, y los fallos «ningún vehículo capaz», salen a la luz de inmediato. |
| Gate scheduling on material stock | Apagado: las piezas se siguen, no bloquean. Encendido: el plan se simula día a día, los trabajos consumen existencias, y solo las recepciones confirmadas las reponen en su fecha. Véase Scheduling. |
| Book Critical / High jobs at their latest safe day | Apagado por defecto. Encendido: un trabajo Critical o High con vencimiento se programa en su último día seguro — el vencimiento menos su margen —, luego en cada día hacia atrás, hacia hoy, si ese día está lleno, y después de él solo si ninguno sirve. Una vez ubicados todos los trabajos, solo se adelanta a la capacidad que ningún otro trabajo usa. Apagado: los trabajos urgentes toman el primer día libre. |
| Critical margin before due date (días hábiles) | El último día seguro de un trabajo Critical: su vencimiento menos este número de días hábiles, sin contar los fines de semana. De 0 a 20, 1 por defecto; 0 es el propio vencimiento. También fija la fecha Plan by del trabajo, esté encendido o no el interruptor de arriba. |
| High margin before due date (días hábiles) | Lo mismo para un trabajo High. De 0 a 20, 2 por defecto. |
| Crew build order when short-staffed | Cuando Auto-build se queda sin gente, qué cuadrilla se dota primero: la más demandada (por defecto), las cuadrillas más grandes, o la prioridad de trabajo más alta. Sin efecto cuando hay gente suficiente para todas. |
| Days ahead in which late jobs lift the truck-type reserve | De 0 a 7 días naturales desde el inicio de una ejecución, 7 por defecto; 0 la desactiva. Esos días, los trabajos que vencen ese día o antes atraviesan la reserva del tipo de camión cuando el día muestra retraso. Vea Capacity Reserve. |
| Cost of an unserved job (días-cuadrilla) | Lo que cuesta dejar un trabajo sin atender durante un día. Se recomienda 2. |
Por qué el último va en días-cuadrilla y no en dólares
2 significa: «un trabajo normal dejado sin atender vale unos dos días de la
cuadrilla más cara que usted hace rodar». Cambie la tarifa de un camión o de un oficio y
el ajuste se recalibra solo; una cifra en dólares, no.
La prioridad lo multiplica: critical ×10, high ×4, normal ×1, low ×0,3. Por debajo de 1, el plan se vuelve barato y deja trabajo atrás, incluido trabajo de prioridad normal. A partir de 4, atiende casi todo y abre cuadrillas libremente — el coste deja de gobernarlo.
El precio de las cuadrillas viene de los tipos de equipo y los tipos de técnico, un coste por día cada uno. Un tipo sin precio no puede valorarse.
⚠️ «Defaults — not chosen for this organization»
Si nadie ha guardado nunca ajustes para su organización, el servidor devuelve valores de partida y la pantalla lo dice en ámbar. Todo porcentaje de utilización calculado sobre ellos — Routes, la ejecución del plan, el «% de la jornada» — es provisional hasta que un administrador guarde los reales. La marca nunca se oculta, porque un valor por defecto presentado como una decisión falsearía en silencio todas las cifras construidas sobre él.
Modificarlos
✎ Edit on server (admin). Las escrituras son solo del administrador;
el servidor rechaza a los demás. El primer guardado exige además una zona
horaria, con un nombre IANA completo como America/Toronto. Una abreviatura
como EST se rechaza — congelaría la organización en horario de invierno todo el
año.
Si otra persona guardó entre el momento en que usted leyó la pantalla y el momento en que presiona Save, la escritura se rechaza en lugar de pisarla en silencio. Recargue y rehaga su cambio.
El resto del panel
- Indicaciones tramo a tramo en el informe de ruta (PDF) — apagado por defecto: el informe muestra el mapa, la cuadrilla, el material que cargar y las paradas. Encendido, añade las indicaciones de conducción y las distancias por tramo. El trazado de carretera en el mapa de ruta es una casilla 🧭 aparte, en la pestaña Routes.
- Notificaciones SMS, con un teléfono de prueba que envía todos los mensajes a un único número en lugar del de cada propietario.
- 🧹 Erase all «Route imported» history & notes — retira la contabilidad del optimizador del historial de las órdenes. No es actividad de campo, y las importaciones nuevas ya no se registran.
Solo en un inquilino de demostración, un botón adicional vuelve a sortear las fechas objetivo para que el 2–3 % de las órdenes abiertas estén atrasadas — para obtener cifras realistas en una demostración. Está oculto en una organización real, donde pisaría fechas reales con ruido.
🔄 Data Exchange
⚠️ Read this before you use this tab
Data Exchange reads and writes the local store of this browser — not the platform. Every working list in WOM reads the server: work orders, scheduling, routes, dashboard, map, accounts, assets, alarms, job types, materials, fleet, technicians, crews, the journal. None of them reads this store.
So an export here is a snapshot of something the product no longer lists, and an import is never sent to the server.
If you want data out of the system, use Reports — or, for zones and the deployment plan, the server files listed at the end of this section.
It is not inert, though
An import has no screen of its own, but it is not harmless. Imported alarms still feed the map markers, the account severity badge, the work-order → alarm link and Acknowledge. Several other collections still feed calculations the same way, and the scheduler still reads this store.
Importing on a real organization therefore asks you to confirm and names the organization first. The store is one key per organization, so what you import stays in that organization. Export fabricates nothing and never asks.
What it is good for: seeding or carrying a demonstration from one machine to another.
Reading the rows
Fourteen structures, each with an ⓘ giving its exact columns, its allowed values and a sample line. Three formats: CSV (one file per structure), Excel (one sheet per structure), JSON (a bundle that keeps relationships).
| Dot | Meaning |
|---|---|
| ● exists | Round-trips without loss. |
| ● lossy | A field the app relies on is not on the sheet — often the link back to the server row. Read the ⓘ before re-importing one. |
| ● unproven | Declared, never exercised. Not the same as not written. |
The 📥 AMS Inbox panel is the proof-of-concept file drop, where AMS drops work orders as files on a local proxy. On staging the AMS bridge is server-side and this panel has nothing to talk to; it says so.
The server's imports and exports — the deployment plan and the zones
Unlike this tab, these files read and write the server. None of them lives in WOM: they sit in DFO and in AMS, next to the data they carry.
| File | Where | What it carries |
|---|---|---|
| Import template (.xlsx) Rejected rows (.xlsx) |
DFO → 📥 Import | The deployment plan, one row per head, not per pole. The rejected rows come back in the template's columns, in the same order, to be corrected and imported again. |
| Zone shapes (.geojson) import and export |
DFO → ✏️ Design → 🗺️ Zone shapes | The zone boundaries of the plan. This is the only place a zone is created and drawn. |
| Inventory by zone (.xlsx) export |
DFO → ✏️ Design | Every head of the plan, grouped by zone, in the import template's columns. |
| Zone shapes (.geojson) Inventory per zone (.xlsx) export only |
AMS → 🗂️ Assets | The zones of the parc (the whole tenant, not the rows loaded on screen) and the assets each one holds. |
The import template: eight columns
| Column | Required | Why |
|---|---|---|
poleRef | Always | The pole's asset code — the only key a row has. A row without it is rejected. |
headRef | When the pole carries several heads | What an install is matched on. It cannot be derived from the pole code. |
latitude, longitude | Only when no parc is adopted | Once a parc is adopted, the server holds the position: the column is read, then ignored. |
fixtureType, street, deviceId,
deviceType | Never | A head without a type is a head to be equipped, not a faulty row. |
Importing zone shapes takes two actions, not one
- ⬆ Import shapes (.geojson) replaces the zone set. The codes and boundaries come from the file. Before anything is written, a confirmation tells you how many shapes match a zone already on screen, how many are new, which zones on screen are missing from the file, and how many poles those zones would leave without a zone. No pole moves yet.
- Apply zones to poles gives each pole the zone whose shape covers it. The confirmation counts the poles covered and those that change zone. The day plan built on the old split is now out of date: generate it again in ② Plan.
Between the two actions, the plan has zones with no poles in them. That pause is on purpose: it is your last chance to see that the file does not describe your territory.
What the file must be, and what it cannot carry
- A GeoJSON FeatureCollection of polygons, coordinates in [longitude,
latitude]. Each feature names its zone in a
code,zoneornameproperty. - A shape with no code is rejected. So is a second shape with the same code; neither one is kept.
- A zone is one polygon. A multi-polygon with several parts is rejected, not cut down to its first part. Holes are dropped, and the confirmation says how many polygons had them: the zone covers the holes.
- A boundary holds at most 100 vertices. Longer rings, as GIS files often have,
are simplified, and the cost is shown in metres for each zone, e.g.
ZONE-03 412→98 (±7 m). - A zone found in the file by its code keeps its gateway. A new zone starts without one.
Applying: three outcomes for a pole, not two
| The pole | What happens |
|---|---|
| Inside a shape | Takes that zone. If shapes overlap, the first one in the file takes it. |
| Inside no shape | Left with no zone, on purpose. Keeping its old zone would say the file covers it, and it does not. It shows in red on the map. |
| No coordinates | Left alone. No shape can cover a pole with no position. |
What the exports hold
- ⬇ Export shapes (DFO) writes only boundaries that were drawn or imported. The outline the map draws around a zone without a boundary is the convex hull of its poles. That is a consequence of which poles belong to it, not a border anyone decided, so it is left out. The message says how many zones that was.
- ⬇ Export inventory (.xlsx) (DFO) has three sheets. Zones gives each zone two counts, heads (what the zone check counts, one node per head) and poles (what the office orders masts by). Assets uses the import template's columns, so you can correct it and import it back. How says in the file itself what the other two mean. Two groups come last: (no zone) and (zone not on screen), which holds poles still pointing to a zone from an earlier state of the plan.
- The two AMS files cover the parc. Each shape there is derived: it is the
concave hull of the assets carrying that zone name, and every feature says so with
deduit:true. Zones without an outline and assets without a zone are listed, not hidden. The AMS inventory has its own columns (zone,code,id,type_code…), not the DFO template's.
AMS does not import zone shapes, and will not: zones are created and drawn in DFO, and AMS receives the resulting zone of each asset.
🔄 Data Exchange
⚠️ À lire avant d'utiliser cet onglet
Data Exchange lit et écrit le magasin local de ce navigateur — pas la plateforme. Toutes les listes de travail de WOM lisent le serveur : bons, ordonnancement, tournées, tableau de bord, carte, comptes, actifs, alarmes, types de travail, matériel, flotte, techniciens, équipages, journal. Aucune ne lit ce magasin.
Un export ici est donc un instantané de quelque chose que le produit n'affiche plus, et un import n'est jamais envoyé au serveur.
Si vous voulez sortir des données du système, utilisez Reports — ou, pour les zones et le plan de déploiement, les fichiers du serveur listés à la fin de cette section.
Il n'est pourtant pas inerte
Un import n'a pas d'écran à lui, mais il n'est pas sans effet. Les alarmes importées alimentent encore les marqueurs de la carte, la pastille de gravité du compte, le lien bon → alarme et Acknowledge. Plusieurs autres collections alimentent des calculs de la même façon, et l'ordonnanceur lit encore ce magasin.
Importer sur une vraie organisation demande donc d'abord confirmation et nomme l'organisation. Le magasin est une clé par organisation, donc ce que vous importez reste dans cette organisation. L'export ne fabrique rien et ne demande jamais rien.
Ce à quoi il sert vraiment : semer ou transporter une démonstration d'une machine à une autre.
Lire les rangées
Quatorze structures, chacune avec un ⓘ qui donne ses colonnes exactes, ses valeurs admises et une ligne d'exemple. Trois formats : CSV (un fichier par structure), Excel (une feuille par structure), JSON (un lot qui garde les liens).
| Pastille | Sens |
|---|---|
| ● exists | Fait l'aller-retour sans perte. |
| ● lossy | Un champ dont l'app dépend n'est pas sur la feuille — souvent le lien vers la rangée serveur. Lisez le ⓘ avant d'en réimporter une. |
| ● unproven | Déclarée, jamais exercée. Ce n'est pas la même chose que pas écrite. |
Le panneau 📥 AMS Inbox est le dépôt de fichiers du prototype, où AMS dépose des bons sous forme de fichiers sur un mandataire local. Sur staging, le pont AMS est côté serveur et ce panneau n'a rien à qui parler ; il le dit.
Les imports et exports du serveur — le plan de déploiement et les zones
Contrairement à cet onglet, ces fichiers lisent et écrivent le serveur. Aucun ne vit dans WOM : ils sont dans DFO et dans AMS, à côté de la donnée qu'ils portent.
| Fichier | Où | Ce qu'il porte |
|---|---|---|
| Gabarit d'import (.xlsx) Lignes rejetées (.xlsx) |
DFO → 📥 Import | Le plan de déploiement, une ligne par tête, pas par poteau. Les lignes rejetées reviennent dans les colonnes du gabarit, dans le même ordre, pour être corrigées puis réimportées. |
| Formes de zone (.geojson) import et export |
DFO → ✏️ Design → 🗺️ Zone shapes | Les contours des zones du plan. C'est le seul endroit où une zone naît et se dessine. |
| Inventaire par zone (.xlsx) export |
DFO → ✏️ Design | Chaque tête du plan, regroupée par zone, dans les colonnes du gabarit d'import. |
| Formes de zone (.geojson) Inventaire par zone (.xlsx) export seulement |
AMS → 🗂️ Assets | Les zones du parc (tout le locataire, pas les rangées chargées à l'écran) et les actifs que chacune contient. |
Le gabarit d'import : huit colonnes
| Colonne | Obligatoire | Pourquoi |
|---|---|---|
poleRef | Toujours | Le code d'actif du poteau — la seule clé d'une ligne. Une ligne sans lui est rejetée. |
headRef | Quand le poteau porte plusieurs têtes | Ce sur quoi une pose est appariée. Il ne se déduit pas du code du poteau. |
latitude, longitude | Seulement si aucun parc n'est adopté | Une fois un parc adopté, c'est le serveur qui tient la position : la colonne est lue, puis ignorée. |
fixtureType, street, deviceId,
deviceType | Jamais | Une tête sans type est une tête à équiper, pas une ligne fautive. |
Importer des formes de zone se fait en deux gestes, pas un
- ⬆ Import shapes (.geojson) remplace le jeu de zones. Les codes et les contours viennent du fichier. Avant toute écriture, une confirmation dit combien de formes retrouvent une zone déjà à l'écran, combien sont neuves, quelles zones à l'écran manquent au fichier, et combien de poteaux ces zones laisseraient sans zone. Aucun poteau ne bouge encore.
- Apply zones to poles donne à chaque poteau la zone dont la forme le couvre. La confirmation compte les poteaux couverts et ceux qui changent de zone. Le plan de la journée bâti sur l'ancien découpage est alors périmé : régénérez-le dans ② Plan.
Entre les deux gestes, le plan porte des zones sans poteaux. Cette pause est voulue : c'est votre dernière occasion de voir que le fichier ne décrit pas votre territoire.
Ce que le fichier doit être, et ce qu'il ne peut pas porter
- Une FeatureCollection de polygones GeoJSON, coordonnées en [longitude,
latitude]. Chaque entité nomme sa zone dans une propriété
code,zoneouname. - Une forme sans code est rejetée. Une deuxième forme au même code aussi : aucune des deux n'est gardée.
- Une zone est un seul polygone. Un multipolygone à plusieurs parties est rejeté, pas réduit à sa première partie. Les trous sont retirés, et la confirmation dit combien de polygones en avaient : la zone couvre les trous.
- Un contour porte au plus 100 sommets. Les anneaux plus longs, fréquents dans les
fichiers de SIG, sont simplifiés, et le coût est affiché en mètres pour chaque zone, par
exemple
ZONE-03 412→98 (±7 m). - Une zone retrouvée dans le fichier par son code garde sa passerelle. Une zone neuve part sans passerelle.
Appliquer : trois issues pour un poteau, pas deux
| Le poteau | Ce qui arrive |
|---|---|
| Dans une forme | Il prend cette zone. Si des formes se chevauchent, la première du fichier le prend. |
| Dans aucune forme | Il reste sans zone, volontairement. Lui garder son ancienne zone dirait que le fichier le couvre, et il ne le couvre pas. Il apparaît en rouge sur la carte. |
| Sans coordonnées | Il n'est pas touché. Aucune forme ne peut couvrir un poteau qui n'a pas de position. |
Ce que contiennent les exports
- ⬇ Export shapes (DFO) n'écrit que les contours dessinés ou importés. Le tracé que la carte dessine autour d'une zone sans contour est l'enveloppe convexe de ses poteaux. C'est une conséquence de l'appartenance des poteaux, pas une frontière que quelqu'un a décidée : il est donc laissé de côté. Le message dit combien de zones l'ont été.
- ⬇ Export inventory (.xlsx) (DFO) a trois feuilles. Zones donne à chaque zone deux nombres, les têtes (ce que compte le contrôle des zones, un nœud par tête) et les poteaux (ce sur quoi le bureau commande les mâts). Assets reprend les colonnes du gabarit d'import : vous pouvez la corriger et la réimporter. How dit, dans le fichier même, ce que veulent dire les deux autres. Deux groupes viennent en dernier : (no zone) et (zone not on screen), qui réunit les poteaux pointant encore vers une zone d'un état antérieur du plan.
- Les deux fichiers d'AMS couvrent le parc. Chaque forme y est déduite :
c'est l'enveloppe concave des actifs qui portent ce nom de zone, et chaque entité le dit par
deduit:true. Les zones sans contour et les actifs sans zone sont nommés, pas tus. L'inventaire d'AMS a ses propres colonnes (zone,code,id,type_code…), pas celles du gabarit de DFO.
AMS n'importe pas de formes de zone, et n'en importera pas : les zones naissent et se dessinent dans DFO, et AMS reçoit la zone qui en résulte pour chaque actif.
🔄 Data Exchange
⚠️ Léase antes de usar esta pestaña
Data Exchange lee y escribe el almacén local de este navegador — no la plataforma. Todas las listas de trabajo de WOM leen el servidor: órdenes, programación, rutas, tablero, mapa, cuentas, activos, alarmas, tipos de trabajo, material, flota, técnicos, cuadrillas, registro. Ninguna lee ese almacén.
Así que una exportación aquí es una instantánea de algo que el producto ya no muestra, y una importación nunca se envía al servidor.
Si quiere sacar datos del sistema, use Reports — o, para las zonas y el plan de despliegue, los archivos del servidor listados al final de esta sección.
Sin embargo, no es inerte
Una importación no tiene pantalla propia, pero no es inocua. Las alarmas importadas siguen alimentando los marcadores del mapa, la etiqueta de gravedad de la cuenta, el enlace orden → alarma y Acknowledge. Otras colecciones alimentan cálculos del mismo modo, y el programador todavía lee este almacén.
Importar en una organización real pide por tanto confirmación y nombra la organización antes. El almacén es una clave por organización, así que lo que importe se queda en esa organización. La exportación no fabrica nada y nunca pregunta.
Para lo que sí sirve: sembrar o transportar una demostración de una máquina a otra.
Leer las filas
Catorce estructuras, cada una con un ⓘ que da sus columnas exactas, sus valores admitidos y una línea de ejemplo. Tres formatos: CSV (un archivo por estructura), Excel (una hoja por estructura), JSON (un paquete que conserva los vínculos).
| Punto | Significado |
|---|---|
| ● exists | Va y vuelve sin pérdida. |
| ● lossy | Un campo del que la app depende no está en la hoja — a menudo el enlace a la fila del servidor. Lea el ⓘ antes de reimportar una. |
| ● unproven | Declarada, nunca ejercitada. No es lo mismo que no escrita. |
El panel 📥 AMS Inbox es el buzón de archivos del prototipo, donde AMS deja órdenes como archivos en un proxy local. En staging el puente AMS está en el servidor y este panel no tiene con quién hablar; lo dice.
Las importaciones y exportaciones del servidor — el plan de despliegue y las zonas
A diferencia de esta pestaña, estos archivos leen y escriben en el servidor. Ninguno vive en WOM: están en DFO y en AMS, junto al dato que llevan.
| Archivo | Dónde | Qué lleva |
|---|---|---|
| Plantilla de importación (.xlsx) Filas rechazadas (.xlsx) |
DFO → 📥 Import | El plan de despliegue, una fila por cabeza, no por poste. Las filas rechazadas vuelven con las columnas de la plantilla, en el mismo orden, para corregirlas e importarlas de nuevo. |
| Formas de zona (.geojson) importación y exportación |
DFO → ✏️ Design → 🗺️ Zone shapes | Los contornos de las zonas del plan. Es el único lugar donde una zona se crea y se dibuja. |
| Inventario por zona (.xlsx) exportación |
DFO → ✏️ Design | Cada cabeza del plan, agrupada por zona, con las columnas de la plantilla de importación. |
| Formas de zona (.geojson) Inventario por zona (.xlsx) solo exportación |
AMS → 🗂️ Assets | Las zonas del parque (todo el inquilino, no las filas cargadas en pantalla) y los activos que contiene cada una. |
La plantilla de importación: ocho columnas
| Columna | Obligatoria | Por qué |
|---|---|---|
poleRef | Siempre | El código de activo del poste — la única clave de una fila. Una fila sin él se rechaza. |
headRef | Cuando el poste lleva varias cabezas | Aquello con lo que se empareja una instalación. No se deduce del código del poste. |
latitude, longitude | Solo si no hay un parque adoptado | Una vez adoptado un parque, el servidor tiene la posición: la columna se lee y luego se ignora. |
fixtureType, street, deviceId,
deviceType | Nunca | Una cabeza sin tipo es una cabeza por equipar, no una fila errónea. |
Importar formas de zona requiere dos acciones, no una
- ⬆ Import shapes (.geojson) reemplaza el conjunto de zonas. Los códigos y los contornos vienen del archivo. Antes de escribir nada, una confirmación indica cuántas formas coinciden con una zona ya en pantalla, cuántas son nuevas, qué zonas en pantalla faltan en el archivo y cuántos postes dejarían esas zonas sin zona. Todavía no se mueve ningún poste.
- Apply zones to poles da a cada poste la zona cuya forma lo cubre. La confirmación cuenta los postes cubiertos y los que cambian de zona. El plan del día construido sobre el reparto anterior queda desactualizado: vuelva a generarlo en ② Plan.
Entre las dos acciones, el plan tiene zonas sin postes. Esa pausa es deliberada: es su última oportunidad de ver que el archivo no describe su territorio.
Lo que el archivo debe ser, y lo que no puede llevar
- Una FeatureCollection de polígonos GeoJSON, con coordenadas en [longitud,
latitud]. Cada entidad nombra su zona en una propiedad
code,zoneoname. - Una forma sin código se rechaza. También una segunda forma con el mismo código: no se conserva ninguna de las dos.
- Una zona es un solo polígono. Un multipolígono de varias partes se rechaza, no se recorta a su primera parte. Los huecos se eliminan, y la confirmación dice cuántos polígonos los tenían: la zona cubre los huecos.
- Un contorno tiene como máximo 100 vértices. Los anillos más largos, habituales en
los archivos SIG, se simplifican, y el coste se muestra en metros para cada zona, por
ejemplo
ZONE-03 412→98 (±7 m). - Una zona encontrada en el archivo por su código conserva su pasarela. Una zona nueva empieza sin pasarela.
Aplicar: tres resultados para un poste, no dos
| El poste | Qué ocurre |
|---|---|
| Dentro de una forma | Toma esa zona. Si las formas se superponen, se la queda la primera del archivo. |
| Fuera de toda forma | Queda sin zona, a propósito. Conservar su zona anterior diría que el archivo lo cubre, y no lo cubre. Aparece en rojo en el mapa. |
| Sin coordenadas | No se toca. Ninguna forma puede cubrir un poste sin posición. |
Qué contienen las exportaciones
- ⬇ Export shapes (DFO) solo escribe los contornos dibujados o importados. El trazo que el mapa dibuja alrededor de una zona sin contorno es la envolvente convexa de sus postes. Es una consecuencia de qué postes le pertenecen, no una frontera que alguien haya decidido, así que se deja fuera. El mensaje indica cuántas zonas quedaron fuera.
- ⬇ Export inventory (.xlsx) (DFO) tiene tres hojas. Zones da a cada zona dos cifras: las cabezas (lo que cuenta el control de zonas, un nodo por cabeza) y los postes (con lo que la oficina pide los mástiles). Assets usa las columnas de la plantilla de importación, así que puede corregirla y reimportarla. How explica, dentro del propio archivo, qué significan las otras dos. Dos grupos van al final: (no zone) y (zone not on screen), que reúne los postes que aún apuntan a una zona de un estado anterior del plan.
- Los dos archivos de AMS cubren el parque. Cada forma ahí es deducida: es la
envolvente cóncava de los activos que llevan ese nombre de zona, y cada entidad lo indica
con
deduit:true. Las zonas sin contorno y los activos sin zona se nombran, no se ocultan. El inventario de AMS tiene sus propias columnas (zone,code,id,type_code…), no las de la plantilla de DFO.
AMS no importa formas de zona, ni lo hará: las zonas se crean y se dibujan en DFO, y AMS recibe la zona resultante de cada activo.