Formulaires
Gestion des formulaires et conception dans Process Studio.
Vue d'ensemble
Un formulaire est l'entité centrale qui représente un objet métier manipulé par les utilisateurs finaux de l'application. Il définit à la fois :
- La structure des données (champs, types, contraintes)
- La présentation (composants, pages, règles d'affichage)
- La référence (numérotation unique)
- Le schéma de base de données (tables FRM_xxx)
Exemples de formulaires
- Réclamation client
- Demande de changement
- Facture
- Demande de congés
- Fiche produit
- Bon de commande
Accès aux formulaires
Dans Process Studio :
- Ouvrir Process Studio
- Cliquer sur Formulaires dans le menu de gauche
- La liste des formulaires s'affiche
Depuis la ligne de commande :
aps form list
Structure d'un formulaire
Composants principaux
Formulaire :
- Conteneur principal
- Définit les champs et leur structure
- Génère les tables de base de données
- Gère la référence
Champs (Fields) :
- Définition des données à collecter
- Types : Text, Number, Date, RichText, File
- Options et contraintes
Composants (Components) :
- Sous-parties du formulaire
- Définissent l'affichage d'un ensemble de champs
- Réutilisables dans plusieurs pages
Pages :
- Affichage complet du formulaire
- Composition de plusieurs composants
- Règles d'affichage conditionnelles
- Ordre des composants
Schéma :
- Structure SQL des tables
- Table principale (FRM_xxx)
- Tables de détails (tableaux multivalués)
- Colonnes et types
Hiérarchie
Formulaire
├── Champs
│ ├── Champ 1 (type: Text)
│ ├── Champ 2 (type: Number)
│ └── Champ 3 (type: Date)
├── Composants
│ ├── Composant_Principal
│ └── Composant_Détails
├── Pages
│ ├── Page_Création
│ └── Page_Consultation
├── Schéma
│ ├── Table principale FRM_FORMULAIRE
│ └── Table détails FRM_FORMULAIRE_DETAILS
└── Référence
Création d'un formulaire
Procédure
- Dans Process Studio, Formulaires → Nouveau
- Renseigner les informations :
- Nom du formulaire : Identifiant unique
- Label : Nom d'affichage
- Description : Description du formulaire
- Valider
Le formulaire est créé avec :
- Une structure vide
- Aucun champ
- Un schéma par défaut (table avec id_document)
Après création
- Ajouter des champs : Définir les données à collecter
- Créer des composants : Organiser l'affichage des champs
- Créer des pages : Définir les vues du formulaire
- Générer le schéma : Créer les tables en base de données
- Publier : Rendre le formulaire disponible
Liste des formulaires
Affichage
La liste affiche pour chaque formulaire :
- Nom : Identifiant technique
- Label : Nom d'affichage
- Description : Description
- Nombre de champs
- Nombre de pages
- Processus associés
Filtrage
Filtres disponibles :
- Par nom
- Par processus
- Formulaires avec/sans pages
- Formulaires déployés/non déployés
Actions sur un formulaire
- Ouvrir : Éditer le formulaire
- Dupliquer : Créer une copie
- Publier : Régénérer les pages
- Supprimer : Supprimer le formulaire et ses données
Édition d'un formulaire
Designer de formulaire
Double-clic sur un formulaire pour ouvrir le designer :
Onglet Champs :
- Liste des champs du formulaire
- Ajout/modification/suppression de champs
- Configuration des options par champ
Onglet Composants :
- Liste des composants
- Éditeur visuel
- Glisser-déposer des champs
Onglet Pages :
- Liste des pages
- Éditeur de pages
- Composition de composants
- Règles d'affichage
Onglet Schéma :
- Visualisation du schéma SQL
- Tables et colonnes
- Vérification et mise à jour
Onglet Référence :
- Configuration de la numérotation
- Formule de calcul
Champs disponibles
Le panneau Champs disponibles affiche :
- Tous les champs du formulaire
- Leur type
- Leur statut (utilisé/non utilisé dans les composants)
Drag & drop vers les composants pour les ajouter.
Schéma de base de données
Génération automatique
Le schéma est généré automatiquement depuis les champs :
APSSchema schema = SchemaDataSource.GenerateDefaultSchema(form);
Table principale
Table nommée FRM_NomDuFormulaire :
- Colonne
id_document(CHAR 36) : Clé primaire - Une colonne par champ du formulaire
- Types SQL correspondants aux types de champs
Exemple :
CREATE TABLE FRM_RECLAMATION (
id_document CHAR(36) PRIMARY KEY,
titre VARCHAR(255),
description TEXT,
date_creation DATETIME,
montant DECIMAL(10,2),
statut VARCHAR(50)
)
Tables de détails
Pour les champs multivalués (tableaux de détails) :
- Table séparée
FRM_FORMULAIRE_DETAIL - Colonne
id_document: Lien vers la table principale - Colonnes du tableau de détails
Mise à jour du schéma
Lors de l'ajout/modification de champs :
- Le schéma est mis à jour automatiquement
- Process Studio propose de déployer les changements
- Requêtes SQL
ALTER TABLEgénérées et exécutées
⚠️ Attention : La modification de champs existants peut impacter les données.
Publication des pages
Qu'est-ce que la publication ?
La publication régénère les fichiers HTML/JavaScript des pages qui utilisent le formulaire. Elle est nécessaire après :
- Modification de champs
- Modification de composants
- Modification de pages
- Mise à jour de règles
Publication manuelle
Un formulaire :
- Sélectionner le formulaire dans la liste
- Clic droit → Publier
- Les pages sont régénérées
Tous les formulaires :
- Dans la liste des formulaires
- Bouton Publier toutes les pages
- Tous les formulaires sont publiés
Publication en ligne de commande
# Publier un formulaire spécifique
aps form publish --name NomDuFormulaire
# Publier tous les formulaires
aps form publish
# Simulation (dry-run)
aps form publish --dry-run
Temps de publication
La publication peut prendre du temps selon :
- Nombre de pages à régénérer
- Complexité des formulaires
- Taille de la base de données
Types de champs
Text (FieldType.Text)
Champs texte simple :
- Input text
- Text area
- Liste déroulante
- Radio button
- Checkbox
Number (FieldType.Number)
Champs numériques :
- Entiers
- Décimaux
- Monnaie
Date (FieldType.Date)
Champs de date et heure :
- Date seule
- Heure seule
- Date et heure
RichText (FieldType.RichText)
Éditeur de texte enrichi :
- Formatage (gras, italique, souligné)
- Listes
- Tableaux
- Images
File (FieldType.File)
Champs virtuels liés aux fichiers attachés :
- Liste des fichiers
- Upload/download
- Métadonnées
Champs système
Certains champs sont créés automatiquement :
created_by : Créateur du document modified_by : Dernier modificateur created_date : Date de création modified_date : Date de modification reference : Référence calculée status : Statut du document
Ces champs ont SystemFlag = System et ne peuvent pas être supprimés.
Référence
La référence est un identifiant unique généré automatiquement.
Configuration
- Ouvrir le formulaire
- Onglet Référence
- Définir la formule de calcul
Exemple de formule :
"REC-" + DateTime.Now.Year + "-" + sequence.NextValue("RECLAMATION")
Résultat : REC-2024-00001
Composants de la référence
- Préfixe : Code fixe (ex: REC-)
- Année : Année courante
- Séquence : Numéro incrémental
- Attributs : Valeurs de champs du formulaire
Processus associés
Un formulaire peut être associé à un ou plusieurs processus (workflows).
Association
Dans Process Studio :
- Workflows → Ouvrir un processus
- Paramètres du processus
- Formulaire : Sélectionner le formulaire
Implications
Lorsqu'un formulaire est associé à un processus :
- Les documents créés suivent le workflow
- Les tâches s'affichent dans les listes de travail
- Les validations sont gérées par le processus
Suppression d'un formulaire
Procédure
- Sélectionner le formulaire
- Clic droit → Supprimer
- Confirmer la suppression
Éléments supprimés
La suppression entraîne la suppression de :
- La définition du formulaire
- Tous les champs
- Tous les composants
- Toutes les pages
- Le schéma (si déployé, les tables restent)
- Les processus associés (liaison uniquement)
⚠️ Les documents créés avec ce formulaire ne sont pas supprimés automatiquement.
Nettoyage complet
Pour supprimer également les tables :
DROP TABLE FRM_NomDuFormulaire;
DROP TABLE FRM_NomDuFormulaire_Details;
Duplication d'un formulaire
Utilité
Créer un nouveau formulaire basé sur un existant :
- Même structure de champs
- Mêmes composants
- Nouveau nom et nouvelles tables
Procédure
- Sélectionner le formulaire à dupliquer
- Clic droit → Dupliquer
- Renseigner le nouveau nom
- Valider
Le formulaire dupliqué est créé avec :
- Tous les champs (copie)
- Tous les composants (copie)
- Toutes les pages (copie)
- Nouveau schéma (nouvelles tables)
Bonnes pratiques
Nommage
- Nom du formulaire : Majuscules, underscores (ex: RECLAMATION_CLIENT)
- Nom des champs : snake_case ou camelCase
- Tables : Préfixe FRM_ automatique
Structure
- Limiter le nombre de champs par formulaire (< 100)
- Utiliser des composants réutilisables
- Créer plusieurs pages selon les besoins (création, consultation, modification)
- Documenter les champs complexes
Performance
- Éviter les champs RichText en grande quantité
- Indexer les colonnes fréquemment recherchées
- Limiter les tableaux de détails (< 10 lignes attendues)
Maintenance
- Publier après chaque modification
- Tester sur environnement de développement
- Versionner les formulaires critiques
- Documenter les modifications