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, FormulairesNouveau
  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