Резервное копирование и восстановление Navision DB/Company с использованием SQL/.NET

По своей работе мне приходится делать много резервных копий и восстанавливать компании NAV, чтобы создавать новые компании, похожие на предыдущую компанию. Я планирую создать приложение .net для выполнения этой работы. В основном автоматизируйте повторяющиеся действия, но проблема в том, что мы используем Navision 2009 R2, и я не могу найти способ резервного копирования и восстановления базы данных/компании NAV в 2009 R2 с использованием .Net/SQL. Есть ли способ сделать это?


person Yogeshwar Singh    schedule 17.03.2016    source источник


Ответы (2)


Как уже говорилось, нет возможности автоматизировать это с помощью скрипта. При выполнении резервного копирования/восстановления Nav делает много вещей, кроме создания еще одного набора таблиц. Он создает ключи/представления, добавляет записи в системные таблицы, такие как Company (где хранится список компаний).

Из вашего вопроса я не могу понять, зачем вам нужна резервная компания, чтобы создать аналогичную. Потому что после этого вам придется очистить все бухгалтерские книги и т. д. Зачем копировать данные только для того, чтобы их стереть?

Альтернативный подход, который вы можете использовать для быстрого решения проблемы создания новой компании, заключается в создании codeunit в Nav, который будет заполнять вновь созданную компанию всеми необходимыми данными. Взгляните на codeunit 2 Company-Initialize. При запуске он создает пустые записи во всех важных таблицах настройки и заполняет выборку отчета. Вы можете изменить его или создать аналогичный, который будет заполнять установочные таблицы вашими значениями по умолчанию или скопировать их из другой компании, которую вы указали в качестве параметра (используйте changecompany).

Вот еще одна вещь, которую я мы нашли:

В более ранних версиях Microsoft Dynamics NAV можно было создать таблицу, используя функцию INSERT (запись), чтобы добавить запись в таблицу 2000000006, таблицу Company. В Microsoft Dynamics NAV 2013 не поддерживается создание компании с помощью функции ВСТАВИТЬ. Вы должны создавать компании, используя окно New Company в среде разработки.

Это означает, что в вашей версии вы даже можете автоматически создать новую компанию из кода, о котором я упоминал.

Также начиная с Nav 2013 R2 появились новые возможности. Вы можете использовать параметры командной строки finsql.exe, чтобы создать компанию (или). А затем вызовите блок кода Nav из сценария PowerShell. чтобы заполнить его данными.

person Mak Sim    schedule 18.03.2016
comment
Мне нужно скопировать компании в новую базу данных, а не в ту же базу данных, и у меня есть отдельная единица кода, чтобы стереть все данные из записей бухгалтерской книги. Но мне нужны все данные таблицы установки. Я постараюсь следовать подходу, который вы предложили. - person Yogeshwar Singh; 18.03.2016

нет возможности сделать резервную копию компании NAV с помощью SQL. Вы можете сделать резервную копию только всей базы данных.

Если вы хотите сделать резервную копию отдельной компании, вам нужно использовать встроенную резервную копию с использованием файлов fbk (Инструменты -> Резервное копирование)

Начиная с NAV 2015, вы можете выполнять резервное копирование\восстановление компаний из RoleTailored\Windows Client.

Ваше здоровье!

person azatoth    schedule 17.03.2016
comment
Могу ли я написать сценарий, который будет создавать резервные копии только таблиц, связанных с компанией? Будет ли это работать? Я также слышал, что есть некоторая DLL, с помощью которой я могу взаимодействовать с NAV. Есть ли у вас какие-либо идеи? - person Yogeshwar Singh; 18.03.2016