Premium packagesIBM Bob Premium Package for i

Understand

Map IBM i application objects and dependencies with the Understand Dashboard, and use Bob answer structural questions directly from scan data.

Understand is a code intelligence component included with IBM Bob Premium Package for i. It scans the IBM i application libraries you select and builds a comprehensive model of the application by cataloging all discovered objects, including programs, service programs, modules, files, commands, data areas, and data queues. Understand also maps the relationships between these objects, capturing dependencies such as program calls, file access patterns, service program bindings, SQL references, triggers, foreign key relationships, journaling configurations, and database constraints.

Once scanned, Bob can answer structural questions directly from scan data without reading every source member, and the Understand Dashboard provides a visual interface to explore objects, dependencies, and insights.

Note:

All scan data is derived from the objects themselves. Understand does not read or parse source code. If source members are out of sync with the compiled objects on the system, the scan reflects the objects, not the source.

Prerequisites

  • An active IBM i connection through Code for IBM i.
  • The vscode-ibmi-bob.understand.installLibrary setting must be configured before Understand can be installed. Select a dedicated library that is not an existing user library. Restrict access to the library to authorized users only.
Note:

The scanned application data is stored in a private library. If you grant other users access to this library, they may be able to see data from objects they do not have direct authority to.

Getting started walkthrough

The built-in Understand walkthrough is the quickest way to get started. Open it from the command palette by running the Get Started with Understand command, or open the Get Started tab in VS Code and select the Understand your IBM i applications tour.

The walkthrough guides you through the following steps:

  1. Connecting to IBM i
  2. Installing the Understand component
  3. Creating your first application
  4. Scanning it
  5. Exploring the results with Bob

Opening the Understand walkthrough from the Get Started tab

The Understand Dashboard

The Understand Dashboard is the central interface for managing applications and exploring scan results. Open it with the Open Understand Dashboard command from the command palette, or by clicking the understand dashboard icon in the Bob chat view title bar.

Opening the Understand Dashboard from the Bob chat view title bar

The dashboard is organized into the following tabs:

TabPurpose
OverviewInstall, update, and monitor the status of the Understand component.
ApplicationsCreate, scan, and manage your IBM i applications.
LibrariesAdd or remove libraries from the selected application.
ObjectsSearch and filter every scanned object; select one to see what it uses and what uses it.
InsightsObject and dependency counts, most-referenced objects, dynamic SQL risks, triggers, foreign keys, and journaled objects.
MessagesDiagnostics and status information for each scan step.
SettingsQuick access to the install library setting.

Installing the Understand component

Before scanning any application, you must install the Understand component on IBM i.

Open the Understand Dashboard and go to the Overview tab.

If no install library is set, select Set install library on the component card and enter the library name in the settings editor.

Return to the dashboard and select Install Understand.

When a newer version ships with an extension update, the same card on the Overview tab offers an Update Understand action.

Installing the Understand component from the Overview tab

Creating an application

An application consists of an ordered list of related libraries that represent a single IBM i application, such as PAYLIB and PAYDTA for a payroll system.

In the Applications tab, select New application:

  1. Enter a display name and an optional description.
  2. Start typing a library name. The list displays user libraries available on the connected system and excludes system libraries (Q*, SYS*, and #*).
  3. Select a suggested library, or press Enter to add a library name. Libraries are scanned in the order they are added.

You can add or remove libraries at any time from the Libraries tab.

Creating a new application in the Applications tab

Scanning an application

A scan analyses every object in the application's libraries and records the dependencies between them. Select Scan next to an application on the Applications tab to start a scan.

  • Scan progress is displayed in the lower section of the dashboard. Scans run in a dedicated SQL job, allowing you to continue using other dashboard tabs while the scan is in progress.
  • When the scan completes, it may identify additional libraries referenced by application objects that are not yet included in the application. Review these recommendations in the Libraries tab.
  • Check the Messages tab for any objects, dependencies, or references that the scanner was unable to resolve.
Object scan only:

Understand reads compiled objects on the system, not source members. Dependency relationships such as dynamic calls (where a program name is stored in a variable) and dynamic SQL table references are not visible to an object scan and are not captured. Objects flagged with dynamic SQL are highlighted in the dashboard and in Bob's responses as areas that require manual review.

Scanning an application in progress

Tip: Incremental library scans

When making changes to a specific library, you do not need to rescan the entire application. You can scan individual libraries from the Libraries tab to keep your index up to date quickly.

Scanning a library

Exploring objects and insights

After a scan completes, you can explore the results in two ways.

In the dashboard, use the Objects tab to search and filter every indexed object. Select an object to see what it uses (outbound dependencies) and what is used by it (inbound dependencies), along with columns for files and exported symbols.

Exploring objects in the Understand Dashboard

The Insights tab gives you aggregate statistics: object and dependency counts, the most referenced objects, dynamic SQL risks, triggers, foreign keys, and journaled objects.

Exploring insights in the Understand Dashboard

With Bob, select the Explore the Application with Bob button in the Insights tab to open a task in IBM i Developer mode that starts with a summary of the scanned application. From there, you can continue asking questions in plain language — what a program uses, what would break if a file changes, where dynamic SQL is used, which programs are OPM, and much more. See Using Bob with Understand for details.

Using Bob with Understand

When Understand is installed and an application has been scanned, Bob automatically gets access to six Understand tools and three Understand skills in both IBM i Developer and IBM i Database modes.

Bob automatically uses Understand tools as its first source of information whenever a question involves application structure, object relationships, or dependency analysis. This includes tasks such as:

  • What calls program ORDPROC? What does it depend on?
  • Is it safe to delete file CUSTMST? What would break?
  • Which programs are OPM? Which use dynamic SQL?
  • Give me an overview of the PAYLIB application and its modernization readiness.
  • What does service program DBSRV export, and who uses those procedures?

Bob answers these questions from the object scan data. It does not read source members for structural analysis unless you explicitly ask it to open a specific source file.

To control whether Bob can use Understand tools for a specific task, configure the Understand permission group when starting or editing a task.

Note:

Understand tools are only enabled when the component is installed. If these tools are not visible or cannot be used, Understand has not yet been installed. To enable them, complete the installation process described in Installing the Understand component.

Exploring with Bob

Keeping data current

Understand data represents the state of your application at the time of the most recent scan. If objects are added, modified, or removed after the scan, run a new scan to refresh the data and keep it current. Bob and the Understand Dashboard automatically indicate when scan results may be outdated, helping you identify when a rescan is required.

How is this topic?