[PowerShell] 利用 PowerShell 匯出 Dynamics NAV Application.
Microsoft Dynamics NAV 系統,預設可以從 Development environment 畫面中,By Manu 手動將 Application 也就是你的程式匯出。
位置在 File > Export 並可以選擇要匯出成 .fob 或 .txt 的格式。
不過其實 NAV 可以利用 PowerShell 來做到自動匯出 Application Object 的功能。
作法其實很簡單,主要使用 NAV 所提供的 Export-NAVApplicationObject 指令來達成。
Step 1.
先載入指令 Export-NAVApplicationObject 對應的 Model,
這邊用到的是 Microsoft.Dynamics.Nav.Model.Tools。
Step 2.
設定 NavIde 的 Path,讓他指到 NAV 的 finsql.exe
這段感覺像是 NAV 本身的問題。
但如果不做這段的話,PowerShell 執行指令時,會報出 $NavIde was not correctly set. 的錯誤訊息。
Step 3.
這時候就可以快快樂樂來執行 NAV 所提供的 PowerShell 的指令拉。
指令的參考參數如下:
需注意的是這邊有一個參數 [-ExportTxtSkipUnlicensed]
主要是讓你匯出 App 時,自動幫你 Skip 掉那些沒有權限匯出的 App。
因為前面有提到 NAV 可以匯出兩種類型的檔案 .fob & .txt,(.fob 是編譯過的,.txt 是未編譯過的)
但是如果要匯出 .txt 必須要有相對應的 Licensed 才能匯出。
位置在 File > Export 並可以選擇要匯出成 .fob 或 .txt 的格式。
作法其實很簡單,主要使用 NAV 所提供的 Export-NAVApplicationObject 指令來達成。
Step 1.
先載入指令 Export-NAVApplicationObject 對應的 Model,
這邊用到的是 Microsoft.Dynamics.Nav.Model.Tools。
Import-Module 'C:\Program Files (x86)\Microsoft Dynamics NAV\90\RoleTailored Client\NavModelTools.ps1' | out-nullStep 2.
設定 NavIde 的 Path,讓他指到 NAV 的 finsql.exe
這段感覺像是 NAV 本身的問題。
但如果不做這段的話,PowerShell 執行指令時,會報出 $NavIde was not correctly set. 的錯誤訊息。
. 'C:\Program Files (x86)\Microsoft Dynamics NAV\90\RoleTailored Client\NavModelTools.ps1' -NavIde
'C:\Program Files (x86)\Microsoft Dynamics NAV\90\RoleTailored Client\finsql.exe' | out-nullStep 3.
這時候就可以快快樂樂來執行 NAV 所提供的 PowerShell 的指令拉。
#Export NAV App
Export-NAVApplicationObject bak_filename.txt -DatabaseName MyDB -ExportTxtSkipUnlicensed -Force -Verbose
Export-NAVApplicationObject
[-DatabaseName]
[-Path]
[-DatabaseServer]
[-LogPath]
[-Filter]
[-Force]
[-ExportTxtSkipUnlicensed]
[-ExportToNewSyntax]
[-WhatIf]
[-Confirm]
需注意的是這邊有一個參數 [-ExportTxtSkipUnlicensed]
主要是讓你匯出 App 時,自動幫你 Skip 掉那些沒有權限匯出的 App。
因為前面有提到 NAV 可以匯出兩種類型的檔案 .fob & .txt,(.fob 是編譯過的,.txt 是未編譯過的)
但是如果要匯出 .txt 必須要有相對應的 Licensed 才能匯出。
留言
張貼留言