Règles métier et includes de script
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 de règles métier :
- Gardez des règles métier 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 le scripting que lorsque cela est nécessaire.
- Stocker la logique de script réutilisable dans un script include.
- Utilisez des requêtes pour limiter les enregistrements traités dans une règle métier.
- Évitez les règles métier pouvant être appelées 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 où la règle métier s’exécute. 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, mais également avant d’afficher un formulaire ou d’exécuter une requête.
| Valeur | Exécutions | Quand l’utiliser | Exemple |
|---|---|---|---|
| Avant | De manière synchrone avant l’opération de base de données | Définissez ou mettez à jour les valeurs de 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 manière 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 en séquence. Mettez à jour les enregistrements connexes autres que la table de base en cours de mise à jour pour accéder à l’objet précédent ou pour faire en sorte que quelque chose se produise dans l’ordre. | Un développeur souhaite transférer les valeurs de l’enregistrement actuel vers les enregistrements enfants. |
| Async | Exécuté de façon 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 immédiatement. 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 fois que le formulaire correspondant s’affiche | Utilisée pour mettre des objets côté serveur à la disposition des 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 Includes de script pour stocker les fonctions et classes JavaScript à utiliser par les scripts serveur. Chaque Script Include définit une classe d’objet ou une fonction qui peut être réutilisée parmi n’importe quel script côté serveur.
Stocke tout code qui pourrait avoir besoin d’être utilisé ailleurs dans un include de script. 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 depuis les deux endroits.
Conserver les fonctions dans un include de script permet de tester la fonction avant de la déployer dans d’autres zones scriptées, ce qui réduit le temps global de développement et de test.
Pour plus d’informations, consultez Règles métier.