Understand
使用 Understand Dashboard 對應 IBM i 應用程式物件和相依性,並使用 Bob 直接從掃描資料回答結構性問題。
Understand 是 IBM Bob Premium Package for i 隨附的程式碼智慧元件。它掃描你選擇的 IBM i 應用程式程式庫,並透過建立所有已發現物件的目錄(包括程式、服務程式、模組、檔案、命令、資料區域及資料佇列),建構應用程式的全面模型。Understand 也對應這些物件之間的關係,擷取相依性,例如程式呼叫、檔案存取模式、服務程式繫結、SQL 參考、觸發程序、外鍵關係、日誌設定及資料庫限制條件。
掃描完成後,Bob 可直接從掃描資料回答結構性問題,無需讀取每個原始成員,而 Understand Dashboard 提供視覺化介面以探索物件、相依性及洞察。
所有掃描資料均來自物件本身。Understand 不會讀取或解析原始碼。若原始成員與系統上已編譯的物件不同步,掃描結果反映的是物件狀態,而非原始碼。
必要條件
- 透過 Code for IBM i 建立的有效 IBM i 連線。
- 安裝 Understand 前,必須先設定
vscode-ibmi-bob.understand.installLibrary設定。請選擇一個非現有使用者程式庫的專用程式庫,並限制存取權限給授權使用者。
掃描的應用程式資料存放在私人程式庫中。若你授予其他使用者存取此程式庫的權限,他們可能能夠看到他們並無直接授權存取的物件資料。
快速入門逐步說明
內建的 Understand 逐步說明是最快速的入門方式。從命令面板執行 Get Started with Understand 命令以開啟,或開啟 VS Code 中的 Get Started 索引標籤,並選取 Understand your IBM i applications 導覽。
逐步說明會引導你完成以下步驟:
- 連線至 IBM i
- 安裝 Understand 元件
- 建立第一個應用程式
- 掃描應用程式
- 使用 Bob 探索結果

Understand Dashboard
Understand Dashboard 是管理應用程式和探索掃描結果的核心介面。從命令面板執行 Open Understand Dashboard 命令,或按一下 Bob 聊天檢視標題列中的 understand dashboard 圖示以開啟。

Dashboard 分為以下索引標籤:
| 索引標籤 | 用途 |
|---|---|
| Overview | 安裝、更新及監控 Understand 元件的狀態。 |
| Applications | 建立、掃描及管理 IBM i 應用程式。 |
| Libraries | 在選取的應用程式中新增或移除程式庫。 |
| Objects | 搜尋並篩選每個已掃描的物件;選取一個物件以查看它使用哪些項目,以及哪些項目使用它。 |
| Insights | 物件和相依性計數、最常被參照的物件、動態 SQL 風險、觸發程序、外鍵及已日誌記錄的物件。 |
| Messages | 每個掃描步驟的診斷和狀態資訊。 |
| Settings | 快速存取安裝程式庫設定。 |
安裝 Understand 元件
掃描任何應用程式前,必須先在 IBM i 上安裝 Understand 元件。
開啟 Understand Dashboard,並前往 Overview 索引標籤。
若未設定安裝程式庫,請在元件卡片上選取 Set install library,並在設定編輯器中輸入程式庫名稱。
返回 dashboard,然後選取 Install Understand。
當擴充功能更新隨附較新版本時,Overview 索引標籤上的同一張卡片會提供 Update Understand 動作。

建立應用程式
應用程式由一個有序的相關程式庫清單組成,代表單一 IBM i 應用程式,例如薪資系統的 PAYLIB 和 PAYDTA。
在 Applications 索引標籤中,選取 New application:
- 輸入顯示名稱和選填說明。
- 開始輸入程式庫名稱。清單會顯示已連線系統上可用的使用者程式庫,並排除系統程式庫(
Q*、SYS*及#*)。 - 選取建議的程式庫,或按 Enter 新增程式庫名稱。程式庫會依新增順序進行掃描。
你可以隨時從 Libraries 索引標籤新增或移除程式庫。

掃描應用程式
掃描會分析應用程式程式庫中的每個物件,並記錄它們之間的相依性。在 Applications 索引標籤中,選取應用程式旁的 Scan 以開始掃描。
- 掃描進度顯示在 dashboard 的下方區段。掃描在專用 SQL 工作中執行,讓你在掃描進行時仍可繼續使用其他 dashboard 索引標籤。
- 掃描完成後,可能會識別出應用程式物件參照的其他程式庫,但這些程式庫尚未包含在應用程式中。請在 Libraries 索引標籤中檢視這些建議。
- 查看 Messages 索引標籤,了解掃描器無法解析的物件、相依性或參照。
Understand 讀取系統上已編譯的物件,而非原始成員。相依性關係(例如動態呼叫(程式名稱存儲在變數中)和動態 SQL 資料表參照)對物件掃描不可見,因此不會被擷取。標示有動態 SQL 的物件會在 dashboard 和 Bob 的回應中以醒目方式標記,作為需要手動審查的區域。

對特定程式庫進行變更時,不需要重新掃描整個應用程式。你可以從 Libraries 索引標籤掃描個別程式庫,以快速保持索引資料的即時性。

探索物件和洞察
掃描完成後,你可以用兩種方式探索結果。
在 dashboard 中,使用 Objects 索引標籤搜尋並篩選每個已索引的物件。選取物件以查看它使用哪些項目(輸出相依性)以及哪些項目使用它(輸入相依性),以及檔案和已匯出符號的欄位。

Insights 索引標籤提供彙整統計資料:物件和相依性計數、最常被參照的物件、動態 SQL 風險、觸發程序、外鍵及已日誌記錄的物件。

透過 Bob,在 Insights 索引標籤中選取 Explore the Application with Bob 按鈕,以 IBM i Developer 模式開啟任務,並以已掃描應用程式的摘要作為起點。從那裡,你可以繼續以自然語言提問——程式使用哪些內容、變更檔案會造成什麼影響、動態 SQL 在哪裡使用、哪些程式是 OPM 等。詳情請參閱使用 Bob 與 Understand。
使用 Bob 與 Understand
Understand 安裝且應用程式已掃描後,Bob 在 IBM i Developer 和 IBM i Database 模式中均可自動存取六個 Understand 工具和三個 Understand 技能。
每當問題涉及應用程式結構、物件關係或相依性分析時,Bob 會自動將 Understand 工具作為第一個資訊來源。這包括以下類型的任務:
- 哪些程式呼叫
ORDPROC?它依賴哪些項目? - 刪除檔案
CUSTMST是否安全?哪些項目會受到影響? - 哪些程式是 OPM?哪些使用動態 SQL?
- 給我
PAYLIB應用程式的概觀及其現代化準備情況。 - 服務程式
DBSRV匯出哪些內容,哪些程式使用那些程序?
Bob 從物件掃描資料回答這些問題。除非你明確要求開啟特定原始碼檔案,否則它不會讀取原始成員進行結構分析。
若要控制 Bob 是否可以對特定任務使用 Understand 工具,請在開始或編輯任務時設定 Understand 權限群組。
只有在元件已安裝時,Understand 工具才會啟用。若這些工具不可見或無法使用,表示 Understand 尚未安裝。若要啟用它們,請完成安裝 Understand 元件中所述的安裝程序。

保持資料即時
Understand 資料代表最近一次掃描時應用程式的狀態。若掃描後新增、修改或移除了物件,請執行新的掃描以重新整理資料並保持其即時性。Bob 和 Understand Dashboard 會自動指出掃描結果可能已過時,協助你識別何時需要重新掃描。