Navision DB/Company 使用 SQL/.NET 备份和恢复

Navision DB/Company backup and restore using SQL/.NET

在我的工作中,我必须对 NAV 公司进行大量备份和恢复,以便创建与以前公司类似的新公司。我打算构建一个 .net 应用程序来完成这项工作。基本上自动化重复的东西,但问题是我们使用的 Navision 是 2009 R2,我找不到使用 .Net/SQL 在 2009 R2 中备份和恢复 NAV database/company 的方法。有什么办法吗?

无法使用 SQL 备份 NAV 公司。 您只能备份整个数据库。

如果您想备份一个单独的公司,您需要使用内置的 fbk 文件备份(工具 -> 备份)

根据 NAV 2015,您可以 backup\restore 来自 RoleTailored\Windows 客户端的公司。

干杯!

如前所述,无法使用脚本使其自动化。在执行 backup/restore Nav 时,除了创建另一个 table 集之外,还会做很多事情。它创建 keys/views,将记录附加到系统 tables,例如公司(存储公司列表的地方)。

根据你的问题,我不明白为什么你需要后备公司来创建类似的公司。因为在那之后你将不得不清除所有分类账等。为什么复制数据只是为了擦除它呢?

您可以用来解决快速创建新公司问题的替代方法是在 Nav 中创建一个代码单元,它将用您需要的所有数据填充新创建的公司。看看 codeunit 2 Company-Initialize。当 运行 时,它会在所有重要设置 table 中创建空记录并填充报告选择。您可以修改它或创建类似的设置 tables 以您的默认值填充或从您作为参数提供的另一家公司复制它们(为此使用 changecompany)。

这是我找到的另一个 thing

In earlier versions of Microsoft Dynamics NAV, you could create a table by using the INSERT Function (Record) to add a record to table 2000000006, the Company table. In Microsoft Dynamics NAV 2013, it is not supported to create a company by using the INSERT function. You must create companies by using the New Company window in the development environment.

这意味着在您的版本中,您甚至可以从我提到的代码单元自动创建新公司。

此外,自 Nav 2013 R2 以来,PowerShell 脚本中有新的 capabilities. You can use comandline parameters of finsql.exe to create company (or). And then invoke Nav codeunit 用数据填充它。