Règles métier et script includes
Les règles métier sont des actions côté serveur qui peuvent être exécutées pendant les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) sur les enregistrements d’instance.
Voici quelques bonnes pratiques lors de l’utilisation des règles métier :
- Veillez à ce que les règles métier soient petites et précises.
- Évitez de modifier les règles métier du système de base.
- Utilisez des includes de script plutôt que des règles métier globales.
- N’utilisez un scripting que lorsque cela est nécessaire.
- Stockez la logique de script réutilisable dans des Script Includes.
- Utilisez des requêtes pour limiter les enregistrements traités dans une règle métier.
- Évitez les règles métier appelables par le client afin d’améliorer l’efficacité lors de l’exécution de scripts clients.
- Utilisez toujours une condition avec des règles métier pour contrôler le moment d’exécution de la règle métier. L’exécution de règles métier avec des conditions peut également faciliter le débogage. Les règles métier s’exécutent rarement sans conditions.
Les règles métier peuvent être configurées pour s’exécuter avant ou après une opération de base de données. Ils peuvent également être configurés pour s’exécuter de manière asynchrone et également avant d’afficher un formulaire ou d’exécuter une requête.
| Valeur | Exécutions | Quand l’utiliser ? | Exemple |
|---|---|---|---|
| Avant | De façon synchrone avant l’opération de base de données | Définissez ou mettez à jour des valeurs sur l’objet actuel dans le cadre de l’opération d’enregistrement. Validez et abandonnez l’exécution si nécessaire. | Un développeur souhaite définir l’état de l’enregistrement actuel en fonction d’une autre entrée de cet enregistrement. |
| Après | De façon synchrone après l’opération de base de données | Déclenchez des événements et des notifications après la mise à jour de la base de données pour accéder à l’objet précédent ou pour que quelque chose se produise dans l’ordre. Mettez à jour des enregistrements connexes autres que la table de base en cours de mise à jour pour accéder à l’objet précédent ou pour exécuter un événement en séquence. | Un développeur souhaite diffuser en cascade les valeurs de l’enregistrement actuel vers les enregistrements enfants. |
| Async | Exécuté de manière asynchrone en tant que processus distinct une fois l’opération de base de données terminée | L’exécution du processus déclenché par la règle peut prendre du temps. Lorsque l’utilisateur qui a déclenché l’opération n’a pas besoin de la sortie tout de suite. Déclenchez des événements, des notifications ou des mises à jour d’enregistrements connexes lorsque l’accès aux valeurs précédentes de l’enregistrement ou à une séquence spécifique d’actions n’est pas requis. | Un développeur doit déclencher un processus externe qui peut prendre un certain temps ou mettre à jour un grand nombre d’enregistrements. |
| Affichage | Exécuté à chaque affichage du formulaire correspondant | Utilisé pour rendre les objets côté serveur disponibles pour les scripts côté client. | Un développeur souhaite écrire des informations sur un utilisateur associé à l’enregistrement actuel dans l’objet g_scratchpad à utiliser dans un script côté client. |
Utilisez les Includes de script pour stocker des fonctions et des classes JavaScript afin qu’elles soient utilisées par les scripts serveur. Chaque script include définit soit une classe d’objet, soit une fonction qui peut être réutilisée parmi n’importe quel script côté serveur.
Stockez tout code qui pourrait avoir besoin d’être utilisé ailleurs dans un script include. Appeler l’include de script à partir d’une règle métier, d’une action d’interface utilisateur, d’un script de workflow, d’une API REST scriptée... Au lieu d’appeler une règle métier à partir d’une action d’interface utilisateur ou une action d’interface utilisateur à partir d’une API REST scriptée, placez le code dans un include de script et appelez l’include de script à partir des deux emplacements.
Le maintien des fonctions dans un script include permet de tester la fonction avant de la déployer dans d’autres zones scriptées, réduisant ainsi le temps global de développement et de test.
Pour plus d’informations, consultez Règles métier.