Les applications métier évoluent constamment, et de nouvelles logiques sont souvent nécessaires même après leur déploiement. Dans certains cas, les applications stockent les règles métier sous forme de texte dans la base de données ou dans un système de stockage, puis les exécutent au moment de l’exécution. Pour les mettre à jour, les développeurs peuvent être amenés à exécuter du code qui n’avait pas été prévu à l’origine lors du développement, en particulier dans des environnements compilés ou déployés. Grâce à 4D.Method, 4D 21 R3 vous permet de créer et d’exécuter des méthodes de manière dynamique à partir de texte, en toute sécurité et avec efficacité.
Exécuter une méthode stockée dans un fichier texte
La classe 4D.Method vous permet de créer une méthode de manière dynamique à partir de texte. Par exemple, si vous devez mettre à jour les attributs d’un objet Storage avec de nouvelles valeurs alors qu’une application est déjà en cours d’exécution, vous pouvez définir la logique dans un fichier BusinessRules.4dm contenant le code requis :
// BusinessRules.4dm file
var $newBusinessRules:=New shared object
Use ($newBusinessRules)
$newBusinessRules.taxRate:=0.2
$newBusinessRules.discountFormula:="price * quantity * discountRate"
$newBusinessRules.approvalThreshold:=10000
$newBusinessRules.freeShippingThreshold:=150
$newBusinessRules.defaultCurrency:="EUR"
End use
Use (Storage)
Storage.businessRules:=$newBusinessRules
End use
puis exécuter le code contenu dans ce fichier à l’aide de :
var $myFile:=File("/DATA/BusinessRules.4dm")
var $myMethod:=4D.Method.new($myFile.getText())
// Syntax errors verification
If ($myMethod.checkSyntax().success)
$myMethod.call()
End if
Quel que soit le mode d’exécution de votre projet (interprété ou compilé), la méthode générée est exécutée en mode interprété.
Débogage
Comme le code dynamique est interprété, vous pouvez le déboguer comme une méthode de projet classique, même si votre application est compilée. Si une erreur se produit pendant l’exécution, le débogueur peut être ouvert à partir de la fenêtre d’erreur, et vous pouvez également insérer une commande TRACE dans le code source pour déclencher explicitement le débogueur lorsque cela est nécessaire :
// BusinessRules.4dm file
var $newBusinessRules:=New shared object
Use ($newBusinessRules)
$newBusinessRules.taxRate:=0.2
$newBusinessRules.discountFormula:="price * quantity * discountRate"
$newBusinessRules.approvalThreshold:=10000
$newBusinessRules.freeShippingThreshold:=150
$newBusinessRules.defaultCurrency:="EUR"
End use
TRACE
Use (Storage)
Storage.businessRules:=$newBusinessRules
End use
Pendant l’exécution, le débogueur s’ouvrira automatiquement :

Conclusion
4DMethod apporte une véritable flexibilité d’exécution à vos applications tout en conservant la sécurité et la structure du langage 4D. Vous pouvez générer, valider, déboguer et exécuter de la logique de manière dynamique, même dans des environnements compilés ou déployés. Cela ouvre la voie à une maintenance plus intelligente, à des règles métier personnalisables et à des applications plus adaptatives.
Les commentaires ne sont pas disponibles pour cet article pour le moment.