AX宏似乎仍然在缓存中
我在AOT中定义了一个宏,并在classDeclaration
中声明因为我需要更改其中一个值 我想强制所有用户在重新打开AX时获得新值 但用户仍然获得宏的旧值
宏定义:TestMacro
#define.columnA(1)
//#define.columnC(3) // old value
#define.columnC(2) // new value
类声明:TestClass
class TestClass
{
#TestMacro // Remove/save and re-add/save this declaration apparently solved
}
其他一些想法如何在AX中刷新宏缓存?
答案 0 :(得分:2)
据我所知,没有专门用于宏的缓存,而是一个缓存所有AOT对象的对象缓存。您可以使用工具&gt;来刷新此缓存开发工具&gt; <应用对象>刷新字典/ AOD 。
但是你的问题不是这个对象缓存,而是TestClass
的编译版本。在编译期间,TestMacro
的引用将替换为实际的宏值。因此,即使您更改TestMacro
,TestClass
的编译版本仍将使用旧的宏值运行。您必须重新编译TestClass
,以便它会考虑TestMacro
中的更改。
如果您的宏值定期更改,您应该考虑使用参数表而不是宏。
答案 1 :(得分:1)
我不认为宏被缓存但在编译期间被替换。你只编译方法而不是整个类吗?