将 SQL 服务器视图保存到 Dynamics AX AOT
Saving an SQL Server view to the Dynamics AX AOT
我发现在 SQL Server Management Studio 中编写视图比在 AOT 中创建它们有明显的优势。然而,似乎
- 在 SQL 服务器中创建的视图无法从 X++ 代码访问并且不会出现在 AOT 中。
- 在 AOT 中创建然后在 SQL Server Management studio 中修改的视图可以从 X++ 代码访问,但在重新编译或同步 AOT 视图时会被覆盖。
有什么办法可以解决这个问题吗?理想情况下 SQL 视图可以重新设计以保存在 AOT 中,但这似乎不可能。
我们有一个无法在 AOT 中设计的视图需求。
我们的解决方法:
- AOT 中的设计视图仅包含字段(具有适当 EDT 的计算列)- 只需添加任何 table(主要)
- 使用 SQL DDL(来自 SSMS)创建静态服务器视图方法并执行 ddl with
Statement.executeQuery
- 在 DB Synchonize (
Application.dbSynchronize
) 调用此静态方法
您可以更改 X++ 中的同步过程来避免这种情况,但确实不推荐这样做。例如,手动创建或修改的视图存在避免 AOT 安全性的高风险。以防万一您遇到严重的性能问题,这可能值得冒险。
同步过程总是AOT->SQL,所以设计过程中可能会考虑到这一点。
我发现在 SQL Server Management Studio 中编写视图比在 AOT 中创建它们有明显的优势。然而,似乎
- 在 SQL 服务器中创建的视图无法从 X++ 代码访问并且不会出现在 AOT 中。
- 在 AOT 中创建然后在 SQL Server Management studio 中修改的视图可以从 X++ 代码访问,但在重新编译或同步 AOT 视图时会被覆盖。
有什么办法可以解决这个问题吗?理想情况下 SQL 视图可以重新设计以保存在 AOT 中,但这似乎不可能。
我们有一个无法在 AOT 中设计的视图需求。
我们的解决方法:
- AOT 中的设计视图仅包含字段(具有适当 EDT 的计算列)- 只需添加任何 table(主要)
- 使用 SQL DDL(来自 SSMS)创建静态服务器视图方法并执行 ddl with
Statement.executeQuery
- 在 DB Synchonize (
Application.dbSynchronize
) 调用此静态方法
您可以更改 X++ 中的同步过程来避免这种情况,但确实不推荐这样做。例如,手动创建或修改的视图存在避免 AOT 安全性的高风险。以防万一您遇到严重的性能问题,这可能值得冒险。
同步过程总是AOT->SQL,所以设计过程中可能会考虑到这一点。