Сначала я попробовал обновить NAV2018, используя файлы *.txt. Но для разработки требуется несколько пакетов. Итак, я попробовал обновить NAV2018 с экспортированным *.fob:

Import-Module "${env:ProgramFiles(x86)}\Microsoft Dynamics NAV\110\RoleTailored Client\NavModelTools.ps1" -WarningAction SilentlyContinue | Out-Null

Import-NAVApplicationObject -Path D:\work\namise.fob -DatabaseName NAV2018 -LogPath D:\work -SynchronizeSchemaChanges force -Confirm:$false

pause

Но были показаны ошибки , и команда не была обработана успешно. Является ли команда Import-NAVApplicationObject эквивалентной для ручного импорта? Можно использовать и для *.fob?

Откройте Среда разработки Microsoft Dynamics NAV -> Нажмите File -> Нажмите Import -> Выберите * .fob -> Отображаемое сообщение: {{X2 }} -> Нажмите OK -> Нажмите Replace All -> Нажмите OK -> Нажмите Synchronize Schema Force (Changed will be synchronized to the database table without validation. Data in table column that are affected by the changes will be deleted) -> Нажмите Synchronizate changes to the corresponding tables in SQL Server Yes -> Использовать из выбора {{X8 }} -> Показанная таблица, где находится Import completed (replaced XY) -> затем перезапустите службы NAV -> Готово

Если это команда Import-NAVApplicationObject, равная упомянутому ручному процессу. Что означают эти ошибки? Решаемы?

Большое спасибо!

С уважением

Lukas

0
ldrahnik 29 Ноя 2020 в 19:12

1 ответ

Лучший ответ
  1. Да, командлет - это полная копия ручного процесса. Это просто оболочка, которая использует finsql.exe (среду разработки) для запуска процесса.
  2. Вам необходимо использовать параметр ImportAction со значением Overwrite https://docs.microsoft.com/en-us/powershell/module/microsoft.dynamics.nav.ide/import-navapplicationobject?view=businesscentral-ps
  3. НЕ СИНХРОНИРУЙТЕ СХЕМУ С ПРИНУДИТЕЛЬНОСТЬЮ. Вы потеряете все данные в столбцах, которые претерпели деструктивные изменения.

Значение параметра можно найти в функции автозаполнения (Ctrl + Пробел) терминала PowerShell или в описание параметров finsql.exe (как я уже упоминал, командлет является только оболочкой для исполняемого файла среды разработки).

enter image description here

0
Mak Sim 2 Дек 2020 в 06:56