Las aplicaciones profesionales están en constante evolución y, a menudo, se requiere una nueva lógica incluso después de su despliegue. En algunos casos, las aplicaciones almacenan las reglas de negocio como texto en la base de datos o en el almacenamiento y las ejecutan en tiempo de ejecución. Para actualizarlas, es posible que los desarrolladores tengan que ejecutar código que no se había previsto inicialmente durante el desarrollo, especialmente en entornos compilados o desplegados. Con 4D.Method, 4D 21 R3 le permite crear y ejecutar métodos de forma dinámica a partir de texto, de manera segura y eficiente.
Ejecutar un método almacenado en un archivo texto
La clase `4D.Method ` le permite crear un método dinámicamente a partir de texto. Por ejemplo, si necesita actualizar los atributos de Storage con nuevos valores mientras una aplicación ya está en ejecución, puede definir la lógica en un archivo `BusinessRules.4dm` que contenga el código necesario:
// 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
y, a continuación, ejecutar el código contenido en ese archivo utilizando:
var $myFile:=File("/DATA/BusinessRules.4dm")
var $myMethod:=4D.Method.new($myFile.getText())
// Syntax errors verification
If ($myMethod.checkSyntax().success)
$myMethod.call()
End if
Independientemente de cómo se ejecute el proyecto, ya sea en modo interpretado o compilado, el método generado se ejecuta en modo interpretado.
Depuración
Dado que el código dinámico se interpreta, puede depurarlo igual que un método de proyecto clásico, incluso si su aplicación está compilada. Si se produce un error durante la ejecución, el depurador se puede abrir desde la ventana de errores, y también puede insertar un comando ` TRACE ` en el código fuente para activar explícitamente el depurador cuando sea necesario:
// 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
Durante la ejecución, el depurador se abrirá automáticamente:

Conclusión
4DMethod aporta una verdadera flexibilidad en tiempo de ejecución a sus aplicaciones, al tiempo que mantiene la seguridad y la estructura del lenguaje 4D. Puede generar, validar, depurar y ejecutar lógica de forma dinámica, incluso en entornos compilados o desplegados. Esto abre la puerta a un mantenimiento más inteligente, reglas de negocio personalizables y aplicaciones más adaptables.
Por el momento, no se pueden publicar comentarios en esta entrada.