阿仁's Blog

利用 PowerShell 匯出 Dynamics NAV Application.

| Comments

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

Import-Module 'C:\Program Files (x86)\Microsoft Dynamics NAV\90\RoleTailored Client\NavModelTools.ps1' | out-null

Step 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-null

Step 3.

這時候就可以快快樂樂來執行 NAV 所提供的 PowerShell 的指令拉。

#Export NAV App

Export-NAVApplicationObject bak_filename.txt -DatabaseName MyDB -ExportTxtSkipUnlicensed -Force -Verbose

指令的參考參數如下:

Export-NAVApplicationObject
      [-DatabaseName] <String>
      [-Path] <String>
      [-DatabaseServer <String>]
      [-LogPath <String>]
      [-Filter <String>]
      [-Force]
      [-ExportTxtSkipUnlicensed]
      [-ExportToNewSyntax]
      [-WhatIf]
      [-Confirm]

需注意的是這邊有一個參數 [-ExportTxtSkipUnlicensed]
主要是讓你匯出 App 時,自動幫你 Skip 掉那些沒有權限匯出的 App。

因為前面有提到 NAV 可以匯出兩種類型的檔案 .fob & .txt,(.fob 是編譯過的,.txt 是未編譯過的)
但是如果要匯出 .txt 必須要有相對應的 Licensed 才能匯出。

Reference

https://docs.microsoft.com/zh-tw/powershell/module/Microsoft.Dynamics.Nav.Ide/Export-NAVApplicationObject?view=dynamicsnav-ps-2018
https://forum.mibuso.com/discussion/66120/powershell-error-navide-was-not-correctly-set

釋放 jQuery 的 $ 變數

| Comments

正常我們在使用 jQuery 時,會很習慣使用他內建的快捷變數 $。
因為簡單方便,打一個字就好了,不用把整個 jQuery 都打出來。

但是 JS 有很多 Library,
假設其他 Library 也用到 $ 做為快捷變數,悲劇就發生了...

為此 jQuery 已經幫你設想到,只要使用 jQuery 的一個函式 jQuery.noConflict(); 就OK拉。

$.noConflict();                 //釋放 $ 變數

jQuery.noConflict();            //釋放 jQuery 變數

var $$ = jQuery.noConflict();   //釋放 $ 變數,並將 jQuery 移植至 $$


//Completely move jQuery to a new namespace in another object.

var dom = {};
dom.query = jQuery.noConflict( true );

Reference

https://api.jquery.com/jquery.noconflict/
https://www.w3schools.com/jquery/jquery_noconflict.asp

強制 SQL Server DB 跳出 (Restoring…) 狀態

| Comments

有時候 SQL Server 在做 DB Restore 的時候,
執行時間會超過預期,整個 Database 困在 (Restoring…) 的狀態中,
就算把整個 MS SQL Service 重啟,還是沒有辦法停止 DB 的 Restore 狀態。

感覺像是 Restore 程序已經當掉了的那總感覺…
SQL Server DB stuck in “Restoring…” stage.

要強制跳出 DB 的 Restoring 狀態,可以使用下面這段語法。

RESTORE DATABASE MyDatabase
FROM DISK = 'MyDatabase.bak'
WITH REPLACE, RECOVERY

強制用 MyDatabase.bak 備份檔恢復 DB,藉此跳出 Restoring… 狀態。

Reference

https://stackoverflow.com/questions/520967/sql-server-database-stuck-in-restoring-state

Hello World

| Comments

Hi, This a demo post of Logdown.

Logdown use Markdown as main syntax, you can find more example by reading this document on Wikipedia

Logdown also support drag & drop image uploading ( required Beta / Premium membership). The picture syntax is like this:

Bloging with code snippet:

inline code

Plain Code

puts "Hello World!"

Code with Language

puts "Hello World!"

Code with Title

hello_world.rb
puts "Hello World!"

MathJax Example

Mathjax

Inline Mathjax

The answser is .

Table Example

Tables Are Cool
col 1 Hello $1600
col 2 Hello $12
col 3 Hello $1