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 Script Includes au lieu de Business Rules globales.
- N’utilisez un scripting que lorsque cela est nécessaire.
- Stocker la logique de script réutilisable dans un 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 les clients pour améliorer l’efficacité lors de l’exécution des scripts clients.
- Utilisez toujours une condition avec Business Rules 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. Il est rare que les règles métier s’exécutent sans conditions.
Vous pouvez configurer les règles métier pour qu’elles s’exécutent 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, ainsi qu’avant l’affichage d’un formulaire ou l’exécution d’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 les enregistrements connexes autres que la table de base mise à jour pour accéder à l’objet précédent ou pour exécuter un événement dans l’ordre. | Un développeur souhaite mettre en cascade les valeurs de l’enregistrement actuel jusqu’aux 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 d’actions spécifique n’est pas nécessaire. | 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 Script Includes 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 peut avoir besoin d’être utilisé ailleurs dans un script include. Appelez le script include à partir d’une règle métier, d’une action d’interface utilisateur, d’un script de workflow, d’une Scripted REST API, etc. 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 Scripted REST API, placez le code dans un script include et appelez le script include à partir des deux emplacements.
Conserver les 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 de développement et de test global.
Pour plus d’informations, reportez-vous à la section Règles métier.