Skip to main content

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 :

  1. Ouvrir Process Studio
  2. Cliquer sur Formulaires dans le menu de gauche
  3. 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​

  1. Dans Process Studio, Formulaires → Nouveau
  2. Renseigner les informations :
    • Nom du formulaire : Identifiant unique
    • Label : Nom d'affichage
    • Description : Description du formulaire
  3. 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​

  1. Ajouter des champs : Définir les données à collecter
  2. Créer des composants : Organiser l'affichage des champs
  3. Créer des pages : Définir les vues du formulaire
  4. Générer le schéma : Créer les tables en base de données
  5. 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 :

  1. Le schéma est mis à jour automatiquement
  2. Process Studio propose de déployer les changements
  3. Requêtes SQL ALTER TABLE gé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 :

  1. Sélectionner le formulaire dans la liste
  2. Clic droit → Publier
  3. Les pages sont régénérées

Tous les formulaires :

  1. Dans la liste des formulaires
  2. Bouton Publier toutes les pages
  3. 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​

  1. Ouvrir le formulaire
  2. Onglet Référence
  3. 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 :

  1. Workflows → Ouvrir un processus
  2. Paramètres du processus
  3. 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​

  1. Sélectionner le formulaire
  2. Clic droit → Supprimer
  3. 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​

  1. Sélectionner le formulaire à dupliquer
  2. Clic droit → Dupliquer
  3. Renseigner le nouveau nom
  4. 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

Références​