阿仁's Blog

追蹤 Nav 程式

| Comments

最近在 Debug Nav 程式時,遇到一個問題。
我在 Codeunit 中發現了某一個 Gobal 函式是個關鍵,
但是我不知道這個函式究竟被那些其他物件或是其他程式所呼叫使用到?

Who is Calling the Function ?
到底有哪些地方用到這個函式?

簡單講,我必需要能夠 tracing Nav 的程式。
But!但是!人生就是這個 But。
光要在 Nav 的 IDE 中做搜尋都不容易了,還想做 Tracing ? 作夢...

冷靜之後思考了一會兒,
這麼大的一個系統,不可能大家都不會遇到類似的問題吧?
於是 Goolge 了一下,發現了這個可行方案。

其實步驟蠻簡單的。
原理一句話就可以講完。(自己Google... 開玩笑的 哈哈~)
1.將所有的物件程式匯出成 .txt 檔
2.運用 Split-NAVApplicationObject 這個函式,將檔案 By 物件類別各別切割成小檔案
3.使用檔案搜尋工具(NotePad++等...),來做搜尋追蹤即可。

整體程式片段如下:

Export-NAVApplicationObject D:\Aaron_test\MyAppSrc.txt -DatabaseName MyApp -ExportTxtSkipUnlicensed | Split-NAVApplicationObject -Destination D:\Aaron_test\App_Bak

上述程式範例指的是,

1.將所有的物件程式匯出成 .txt 檔

將 MyAPP DB 中的物件匯出至檔案 MyAppSrc.txt,並自動略過那些沒有授權的物件。

2.運用 Split-NAVApplicationObject 這個函式,將檔案 By 物件類別各別切割成小檔案

|(Pipe) 後面那段,則是重點,
意思是將匯出的 MyAppSrc.txt 檔,By 物件類別各別切割成小檔案,並放置在 D:\Aaron_test\App_Bak 資料夾中。

3.使用檔案搜尋工具(NotePad++等...),來做搜尋追蹤即可。

Reference

https://docs.microsoft.com/en-us/powershell/module/microsoft.dynamics.nav.ide/export-navapplicationobject?view=businesscentral-ps

Comments

comments powered by Disqus