axapta - 如何在 D365 FO 上通过 x++ 代码添加 AOT 对象
问题描述
我有一个关于在 D365 FO 上通过 X++ 代码添加 AOT 对象的问题。目标是通过 x++ 代码自动创建安全职责,而不是手动创建
我实际上正在尝试使用以下代码,
public static void main (Args _args)
{
#AOT
str objectName = 'MySpecTable' ;
TreeNode nodePath = TreeNode::findNode(#TablesPath);
TreeNode nodePath1;
nodePath1 = nodePath.AOTfindChild(objectName);
if(nodePath)
{
nodePath.AOTadd(objectName);
//nodePath.AOTsave();
info("Sec privilege well added");
}
else
{
nodePath.AOTadd(objectName);
nodePath.AOTsave();
info("Table well added");
}
}
但我收到以下错误,
有什么方法可以实现这个目标。能够通过代码添加它们。
谢谢
解决方案
这是不可能的,因为与以前的 AX 版本相比,代码和元数据在运行时动态解释,F&O 只执行预编译的程序集(就像任何其他 .NET 应用程序一样)。同样,您无法在正在运行的 .NET 程序集上创建 C# 类,您也无法在 Finance and Operations 应用程序中执行此操作。
必需的安全工件必须在 Visual Studio 中正确创建、编译并部署到运行时环境(UAT、PROD 或其他),然后安全配置本身(在它们之间或与用户之间链接这些工件)现在存储在数据库中,所以它可以直接在安全设置表单中完成。它也可以与标准表单中的数据实体一起导出和导入。
您可以做的是创建一个 Visual Studio 扩展来自动创建此类对象,以便可以正确编译和部署它们。
推荐阅读
- node.js - TypeError Passport JS 用户名属性未定义
- python - 将函数并行并等待它完成
- javascript - 无法获取 HTML 元素的更新值
- html - 有没有办法在不覆盖它们的情况下将 div 居中到列之间?
- python - 有什么方法可以计算 DataFrame 中特定模式出现的次数?
- redis - 如何获得额外的客户端连接 (nestjs-ioredis)
- ios - 使用 Swift 5 生成 XML 到 Alamofire
- python - 鸢尾花数据集的 KNN 和 SVM GridsearchCV
- spring - 如何防止redis中的缓存覆盖到期时间
- flex-lexer - Flex查找子字符串直到字符