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 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 au lieu de règles métier globales.
- Utilisez le scripting uniquement lorsque cela est nécessaire.
- Stocker la logique de script réutilisable dans un include de script.
- 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 pour 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 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 dans 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 que quelque chose se produise dans l’ordre. | Un développeur souhaite transférer en cascade 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 du temps ou mettre à jour un grand nombre d’enregistrements. |
| Affichage | Exécuté à chaque fois que le formulaire correspondant est affiché | 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 les Includes de script pour stocker les fonctions et les classes JavaScript à utiliser par les scripts serveurs. Chaque Include de script définit une classe d’objet ou une fonction qui peut être réutilisée parmi n’importe quel script côté serveur. Pour plus d'informations, consultez Script includes.
Stocke tout code qui pourrait avoir besoin d’être utilisé ailleurs dans une inclusion 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 chiffré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.
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 Classic Business rules.