Règles e-Asy
Ce document décrit les règles implicites d'e-Asy et son moteur.
Elles guident la conception et l'utilisation des projets. C'est en quelque sorte les contraintes techniques du logiciel.
Tables d'associations
- Dans une table d'Association, les champs pivot ne doivent pas être obligatoires : pas de required=”true” OU required=”true” avec une valeur par défaut (ex: default_value=”0”).
- Une table d’association doit définir tous les JOINS vers toutes les tables dont on va avoir besoin ex: CSME | clients -> recapitulatifs -> equipements -> type_equipements : type_équipements est utilisé dans le desccriptor d’equipements donc il faut déclarer la table type_equipements dans recapitulatifs
Multi requête et création dans les tables jointes
Dans un multi requête où on peut faire des créations sur plusieurs tables, les clés étrangères des tables référencées doivent être nullable => pas de required=”true” Ex: projet PLH item Projet LLS : table principale projets + tables satellites programmes, ratios ...
Jointures explicites
Dans les jointures, les attributs column et other_column ne sont pas obligatoires. Cependant, il est fortement conseillé de les déclarer car l'interprétation automatique e-ASY peut être différente du résultat attendu. L’attribut other_column doit contenir la clé étrangère, donc column est toujours égal à id Ex: Projet DPS - table validation_exploitant jointure vers la table DPS (validation_exploitant.dps_id)
<join table="dps" other_table="validations_exploitant" column="id" other_column="dps_id"/> FONCTIONNE
<join table="validations_exploitant" other_table="dps" column="dps_id" other_column="id"/> NE FONCTIONNE PAS CAR other_column NE CONTIENT PAS LA CLÉ ÉTRANGÈRE
<join table="validations_exploitant" other_table="dps"/> NE FONCTIONNE PAS CAR L’AUTOMATE GENERE column="dps_id" other_column="id"
Agenda
En mode calendar dans l’item de menu multi requête qui affiche le mode agenda:
- Les jointures doivent être effectuées jusqu’à la table qui contient le champ colorpicker.
- Les champs colorpicker, date de début et date de fin doivent être déclarés dans la page quitte à être cachés.
Exemple GMAO : dans la table standard “maintenances”

Champs Link Readonly
En mode création dans un formulaire, si je définis un champ link NON readonly, une ligne va être créée dans la table correspondante à la création de l’enregistrement. Ex : Projet PLH, tables projets et proprietaires => à la création du projet je renseigne le propriétaire => cela va créer un propriétaire et lier le projet à ce propriétaire. ATTENTION dans le cas de la règle 5. concernant calendar, cela peut avoir un effet de bord : dans ma table intervention j’ai un link vers techniciens.couleur. Je dois mettre ce champ READONLY sinon un technicien vide est créé à chaque création d’intervention. Par défaut mettre les champs LINK en readonly, sauf cas exceptionnel voulu.
Champ link et mobile
Les champs link en mobile ET offline ne sont pas calculés par le mobile mais bien par le serveur. Si le champ link en question existe dans la formulaire principal (ex: relation manager) alors il sera affiché en 1-N et N-N. S’il n’existe pas dans la page, il ne sera pas affiché (seulement en OFFLINE)
