Obchodní aplikace se neustále vyvíjejí a často je zapotřebí nová logika i po jejich nasazení. V některých případech aplikace ukládají obchodní pravidla jako text do databáze nebo úložiště a provádějí je za běhu. K jejich aktualizaci mohou vývojáři potřebovat spustit kód, který nebyl původně při vývoji plánován, zejména v kompilovaných nebo nasazených prostředích. Díky 4D.Method vám 4D 21 R3 umožňuje bezpečně a efektivně dynamicky vytvářet a provádět metody z textu.
Spuštění metody uložené v textovém souboru
Třída 4D.Method vám umožňuje dynamicky vytvářet metody z textu. Pokud například potřebujete aktualizovat atributy úložiště novými hodnotami, zatímco aplikace již běží, můžete definovat logiku v souboru BusinessRules.4dm obsahujícím požadovaný kód:
// 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
a poté spustit kód obsažený v tomto souboru pomocí:
var $myFile:=File("/DATA/BusinessRules.4dm")
var $myMethod:=4D.Method.new($myFile.getText())
// Syntax errors verification
If ($myMethod.checkSyntax().success)
$myMethod.call()
End if
Bez ohledu na to, jak váš projekt běží, zda je interpretován nebo kompilován, generovaná metoda se spouští v interpretovaném režimu.
Ladění
Protože je dynamický kód interpretován, můžete jej ladit stejně jako klasickou metodu projektu, i když je vaše aplikace zkompilována. Pokud během provádění dojde k chybě, lze ladicí program otevřít z okna chyb a můžete také vložit příkaz TRACE do zdrojového kódu, abyste v případě potřeby ladicí program explicitně spustili:
// 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
Během provádění se ladicí program otevře automaticky:

Závěr
4DMethod přináší vašim aplikacím skutečnou flexibilitu běhu při zachování bezpečnosti a struktury jazyka 4D. Můžete dynamicky generovat, ověřovat, ladit a provádět logiku, a to i v kompilovaných nebo nasazených prostředích. To otevírá dveře k chytřejší údržbě, přizpůsobitelným obchodním pravidlům a adaptivnějším aplikacím.
K tomuto příspěvku zatím nelze přidávat komentáře.