Concepteur BPM : sélecteurs de champs, changement d'entité en direct, analytiqueUn audit complet du module BPM a restauré tout ce qui s'était perdu en silence : l'entité du processus arrive de nouveau dans le concepteur, les sélecteurs de champs, rôles et scripts (dont l'étape « Définir un champ ») se remplissent dès le choix de l'entité — sans enregistrer ni rouvrir ; la liste des entités vient du registre extensible (y compris les tâches et les tables reliées depuis le diagramme ER). La synchronisation du déclencheur depuis le nœud de départ, le démarrage des processus à la modification et l'analytique avec heatmap des jetons refonctionnent ; tout le contenu BPM fait partie de la chaîne d'installation reproductible, vérifiée par neuf suites de tests.
Listes de prix : marges par groupe, périodes de validité, tâches d'étiquetageLes listes de prix disposent du modèle complet : type détail ou gros, périodes de validité (une liste par défaut sans date de fin plus des listes datées prioritaires — tarifs de nuit ou de week-end) et marges par groupe de produits avec héritage dans l'arbre des groupes. La génération remplit chaque fiche produit ; les utilisateurs habilités peuvent corriger chaque prix à la main, la colonne Δ% montre l'écart avec le prix calculé par groupe — les corrections manuelles survivent au recalcul. Une liste se copie en un clic. Quand la liste active change, une tâche est créée pour le responsable et seules les étiquettes modifiées sont imprimées.
Annulation, clavier, lecteurs d’écranL’ajout de lignes s’accompagne désormais d’un bouton « Annuler » : un clic retire exactement les lignes qui viennent d’être ajoutées, via un jeton serveur à usage unique valable pour vous seul — le client ne peut donc jamais lancer de scripts arbitraires. Les tableaux se pilotent entièrement au clavier (flèches, espace pour cocher, Entrée pour agir), Échap ferme uniquement la fenêtre du dessus, le focus reste dans la fenêtre modale puis revient à son origine, et tableaux, dialogues et messages sont balisés pour les lecteurs d’écran.
Partager un seul enregistrement, pas un rôle entierLa visibilité suit l’organigramme — vos enregistrements, votre service, votre société — mais le travail, non. Un commercial suit l’affaire et un juriste d’un autre service doit y être associé. Jusqu’ici il fallait élargir le rôle, et la personne voyait trop, définitivement. L’accès se donne désormais sur un enregistrement précis, à une personne ou un rôle, en lecture ou en écriture, avec une échéance si besoin. Il ne fait qu’ajouter, jamais retirer : retirer reste l’affaire des rôles, pour que « pourquoi voyait-il cela ? » ait un seul endroit où chercher. L’échéance s’éteint seule, car un accès temporaire qu’il faut penser à révoquer ne l’est jamais — et le motif, l’auteur et l’heure sont conservés.
Des droits par champ qu’un administrateur peut réellement poserLe salaire visible seulement par les RH, le prix de revient seulement par les achats : la règle se pose une fois, sur une colonne, et vaut partout où le champ est affiché ou écrit — sans script par champ ni formulaire oublié. Caché veut dire non inscriptible : affichage et écriture sont fermés par la même règle. Sans règle, le champ est ouvert : la règle décrit une restriction, pas une permission. Quand plusieurs rôles se croisent, le droit le plus large l’emporte — une interdiction doit être une décision, non un hasard.
Déplacer les réglages entre environnements — et revenirFormulaires, requêtes, scripts et planification sont des données : ce qui a été mis au point sur la plateforme d’essai part en production comme un seul lot. Avant application, on voit ce qui apparaîtra et ce qui changera, champ par champ ; tout s’applique en une transaction ; l’état précédent est conservé, donc on revient en arrière sans restaurer toute une base. Les données métier ne voyagent jamais.
Un numéro de demande à citerChaque requête reçoit un code court, sans caractères qui se confondent, pour pouvoir être dicté au téléphone. Il figure dans le message d’erreur et dans le journal du service : un appel au support commence par « code 7KMQ2XPD » et non par « hier après-midi, ça n’a pas enregistré ». Les requêtes de base de données au-delà du seuil sont collectées avec leur texte, leur durée et ce numéro — y compris celles des scripts, où se cache le plus lourd. Par script : appels, temps total et pire temps, taux d’erreurs.
File d’attente des tâches de fondLe travail long ne bloque plus la fenêtre. Envois en nombre, exports vers les échanges, recalculs de rapports partent dans une file : la réponse arrive tout de suite et le travail poursuit son cours, en survivant à un redémarrage du service. Un échec n’est pas perdu — la tâche est reprise avec une pause croissante : un système externe indisponible trois minutes ne consomme pas toutes les tentatives en trois secondes. Une fois les tentatives épuisées, la tâche reste visible avec sa dernière erreur, ses données d’entrée et l’horaire de chaque tentative ; la cause corrigée, un bouton la remet dans la file. Si l’exécutant lui-même meurt, la tâche revient dans la file au lieu de rester bloquée en « en cours ».
Documents légaux par paysLes documents d'expédition suivent les règles du pays depuis lequel s'effectue la vente : pour la Russie, le bon de livraison TORG-12, la facture de TVA et le formulaire combiné UPD ; pour les États-Unis, une facture commerciale et une liste de colisage conformes aux exigences douanières ; pour l'Union européenne, une facture portant toutes les mentions obligatoires de la directive TVA ainsi qu'un bon de livraison. Le système ne propose que les formulaires valables dans le pays du document, reprend les identifiants fiscaux des parties, calcule la taxe par ligne et par taux, et écrit le montant en toutes lettres là où la forme l'exige.
Concepteur de formulaires d'impressionLes utilisateurs composent eux-mêmes leurs documents imprimés — bons de livraison, états, contrats — à partir de bandes et de champs, sans développeur. Les données passent uniquement par l'ORM, un script Python facultatif calcule ce que la requête ne fournit pas, et l'aperçu affiche exactement ce qui ira dans le PDF. L'impression multipage gère la répétition des en-têtes de tableau, les sous-totaux par groupe, la numérotation, le changement d'orientation, les QR codes et les codes-barres ; le PDF/A d'archivage est disponible.
Gestion des stocks : soldes, réservations, validationComptabilité des stocks complète, portée depuis un système hérité en C++Builder : entrepôts, réceptions, transferts entre entrepôts, mises au rebut, retours et réévaluations. Le stock est suivi par entrepôt, emplacement, lot, état et prix d'achat, sur deux couches — stock physique et réservation — de sorte que la quantité disponible est toujours le stock moins ce qui est déjà engagé. Valider un document au-delà du disponible est refusé, chiffres exacts à l'appui. Les prix sont historisés, avec tarifs et marges ; les rapports couvrent les mouvements de la période, les réservations, les articles sous le minimum et le journal complet des mouvements.
TinyORM : le seul chemin des scripts vers la baseLes scripts Python accèdent aux données via un constructeur de requêtes fluide : valeurs passées en paramètres, identifiants vérifiés contre le schéma, condition obligatoire pour les modifications et suppressions ; le SQL brut peut être désactivé entièrement. Le concepteur offre la coloration syntaxique et des suggestions à la volée sur les tables et leurs champs, issues du schéma réel.
Événements de démarrage BPM : les quatre typesLes processus démarrent sur signal (enregistrement créé, modifié — jusqu'à un champ et une condition précis — ou supprimé), sur minuterie (une fois à une date et heure, périodiquement ou par cron), à la main (bouton global ou depuis la fiche d'un enregistrement, en reprenant son identifiant) ou sur message d'un autre processus.
Notifications en temps réelLes changements atteignent immédiatement les écrans ouverts : le serveur émet des événements en s'appuyant sur les notifications de la base, si bien qu'un enregistrement sauvegardé par un collègue apparaît sans rafraîchir.
Structure organisationnelle d'entreprise dans le cœurModèle organisationnel versionné dans le temps à n'importe quelle date — passée ou future : entités juridiques, hiérarchie des unités, postes avec ETP planifié, grades et lignes hiérarchiques, sites et centres de coûts, affectations (principale et cumuls, avec quotité d'ETP, responsable administratif et fonctionnel) et délégations. Il calcule effectif prévu/réel/vacances, les chaînes hiérarchiques et le destinataire effectif d'une délégation ; une réorganisation se planifie à une date future sans perdre l'historique. Le concepteur gagne un onglet « Structure organisationnelle » avec date d'observation.
Permissions par requête et gestion centrale des utilisateursLa couche SQL de lecture est désormais soumise à permissions : chaque requête nommée porte une liste de rôles vérifiée par le cœur C++ à chaque exécution (vide — tous, admin — toujours ; fail-closed). Le concepteur gagne un onglet « Utilisateurs et rôles » : création, rôles, désactivation, réinitialisation de mot de passe — dans chaque produit. Les mots de passe sont stockés en hachés bcrypt ; les comptes hérités sont re-hachés de façon transparente à la première connexion. Les groupes d'utilisateurs — statiques ou calculés par votre propre requête SQL — font aussi partie du cœur et se gèrent depuis le concepteur.
BPM et diagramme ER dans le cœur de la plateformeLe moteur de processus métier (concepteur visuel, approbations, minuteries, scripts, déclencheurs sur n'importe quelle table) et le diagramme ER interactif du modèle de données font désormais partie du cœur de la plateforme : un pack idempotent les installe dans toute base produit, et le concepteur de formulaires gagne les onglets intégrés « Processus (BPM) » et « Diagramme ER » — disponibles dans chaque produit, du CRM à l'IDM.
IAM d'entreprise : cycle de vie piloté par les RH et gouvernance ADFormata IDM couvre désormais de bout en bout une spécification industrielle d'identité : 11 rapports de sécurité intégrés avec abonnements, prolongation des rôles lors des mutations avec révocation automatique, validation en deux étapes pour l'intégration des prestataires/GPH, cinq rôles standard avec cloisonnement de l'interface, mappage complet des attributs AD avec placement en OU et format Description, et modèles d'e-mails de cycle de vie.
Connecteur Active DirectoryConnectez Formata IDM à Microsoft Active Directory via LDAP : synchronisez les comptes dans le registre des identités, associez-les aux employés par e-mail/UPN et lisez le statut (activé/désactivé). Provisionnement du cycle de vie complet — création, activation/désactivation, appartenance aux groupes et réinitialisation du mot de passe — via LDAPS.
Connecteur Microsoft ExchangeFormata IDM provisionne désormais de vraies boîtes aux lettres Exchange 2019 via remote PowerShell (pypsrp + Kerberos) : à l'embauche, une boîte est activée (SMTP principal, visible dans le carnet d'adresses) et, au départ, elle est masquée de la liste d'adresses globale avec suppression du transfert et des règles de boîte de réception. Intégré aux processus d'embauche/départ et vérifié de bout en bout sur un domaine réel.
Diagramme interactif du modèle de données (ER)Visualisez la base comme un diagramme ER interactif — tables avec clés, relations par clés étrangères en flèches, recherche, glisser-déposer et disposition automatique. Clic droit sur une table pour attacher un déclencheur BPM (avec détection de changement de champ) ; les tables avec déclencheurs sont marquées ⚡.
Gouvernance des identités (IGA) d'entrepriseLe gestionnaire d'identités propose désormais le scoring de risque, des contrôles compensatoires SoD, des rôles métier à appartenance dynamique, un IT Shop avec accès à durée limitée et des connecteurs Microsoft Entra ID et Google Workspace. Désormais avec un indice de risque pondéré et un connecteur SAP SuccessFactors. Poids de risque configurables, approbation des contrôles SoD, connecteurs Google service-account et SCIM.
Client e-mail completConnectez plusieurs boîtes (Gmail, Outlook, Yandex, Mail.ru ou tout IMAP/SMTP) : réception, lecture, réponse, transfert et envoi avec pièces jointes — dans le CRM, liés aux contacts.
Liens profonds partageables (ancres)Copiez un lien vers une tâche, un document ou un enregistrement et collez-le dans le chat — vos collègues l'ouvrent en un clic, s'ils y ont accès.
Messagerie d'équipe intégréeDiscussions directes et de groupe entre employés avec remise en temps réel, présence en ligne, non-lus et notifications de messages manqués — les appels arrivent bientôt. Désormais avec accusés de lecture (✓✓). Les messages sont modifiables (avec la mention « modifié »). Transfert de messages et pièces jointes (fichiers et images).
Routage BPM des tâches vers les équipesLors d'un changement de statut, le BPM affecte la tâche à la bonne équipe et choisit un membre au hasard — ex. nouvelle→managers, à payer→comptabilité, payée→direction.
Graphiques de solde de compte & tableaux plus lisiblesChaque compte dispose d'un graphique de solde dans le temps avec journal des mouvements ; les arbres budgétaires ont désormais des en-têtes de colonnes, des chiffres alignés et des lignes alternées. Les flux d'argent s'affichent avec +/− et couleur.
Budget : virements, réévaluation et répartition autoTransférez de l'argent entre comptes (conversion automatique), historique des taux avec réévaluation, répartition automatique d'un paiement sur les nœuds du plan et export CSV.
Budgets prévu/réelBudgets arborescents avec cumul prévu/réel, statut des paiements, autocorrection et suivi par client.
Navigation entre formulairesTransmettez une valeur sélectionnée à un autre formulaire et ouvrez-le en fenêtre modale — configuré visuellement dans le concepteur.
Tests d'UI automatisés intégrésCréez ou enregistrez des cas de test, exécutez-les et vérifiez les valeurs des champs — sans outils externes.
Visibilité des lignes en profondeurStructure organisationnelle, hiérarchies de postes et accès par catalogues — au-delà du propriétaire et du manager.
Assignment Manager intelligentRoutez le travail par compétences, territoires, disponibilité et capacité avec équilibrage pondéré.
API REST d'intégration v1Clés API à scopes, OpenAPI automatique et une surface d'intégration en libre-service.
Coupe-circuit des scriptsLes automatisations en échec sont désactivées automatiquement et présentées avec un diagnostic complet pour une reprise en un clic.
Import massif (EIM)Chargez des millions de lignes à ~50k lignes/seconde avec résolution des clés étrangères.
Améliorations BPM visuelCouloirs, heatmap en direct, versionnage, branches parallèles et escalade.
Filtrage des tableauxFiltres par colonne avec opérateurs sur toutes les grilles.