Understand

使用 Understand 仪表板映射 IBM i 应用程序对象及其依赖关系,并使用 Bob 直接从扫描数据中回答结构性问题。

Understand 是 IBM Bob Premium Package for i 附带的代码智能组件。它扫描您选定的 IBM i 应用程序库,通过对所有发现的对象(包括程序、服务程序、模块、文件、命令、数据区和数据队列)进行编目,构建应用程序的综合模型。Understand 还映射这些对象之间的关系,捕获程序调用、文件访问模式、服务程序绑定、SQL 引用、触发器、外键关系、日志配置和数据库约束等依赖关系。

扫描完成后,Bob 可以直接从扫描数据中回答结构性问题,无需读取每个源成员;Understand 仪表板则提供可视化界面,用于探索对象、依赖关系和洞察。

注意:

所有扫描数据均来自对象本身。Understand 不读取或解析源代码。如果源成员与系统上已编译的对象不同步,扫描结果反映的是对象,而非源代码。

前提条件

注意:

扫描的应用程序数据存储在私有库中。如果您授予其他用户对此库的访问权限,他们可能会看到其本身没有直接权限访问的对象数据。

入门指引

内置的 Understand 指引是快速入门的最佳途径。从命令面板运行 Get Started with Understand 命令打开指引,或在 VS Code 的 Get Started 标签页中选择 Understand your IBM i applications 之旅。

该指引将引导您完成以下步骤:

  1. 连接到 IBM i
  2. 安装 Understand 组件
  3. 创建第一个应用程序
  4. 扫描应用程序
  5. 使用 Bob 探索结果

从 Get Started 标签页打开 Understand 指引

Understand 仪表板

Understand 仪表板是管理应用程序和探索扫描结果的中央界面。从命令面板运行 Open Understand Dashboard 命令打开仪表板,或点击 Bob 聊天视图标题栏中的 Understand 仪表板图标。

Opening the Understand Dashboard from the Bob chat view title bar

仪表板按以下标签页组织:

标签页用途
概览安装、更新和监控 Understand 组件状态。
应用程序创建、扫描和管理您的 IBM i 应用程序。
库向所选应用程序添加或移除库。
对象搜索并筛选每个已扫描对象;选择某个对象可查看它使用了什么以及被什么使用。
洞察对象和依赖计数、被引用最多的对象、动态 SQL 风险、触发器、外键和已日志记录对象。
消息每个扫描步骤的诊断和状态信息。
设置快速访问安装库设置。

安装 Understand 组件

在扫描任何应用程序之前,您必须先在 IBM i 上安装 Understand 组件。

打开 Understand 仪表板,进入概览标签页。

如果尚未设置安装库,请在组件卡上选择设置安装库,并在设置编辑器中输入库名称。

返回仪表板,选择安装 Understand。

当扩展更新附带更新版本时,概览标签页上的同一卡片会提供更新 Understand 操作。

Installing the Understand component from the Overview tab

创建应用程序

应用程序由一个有序的相关库列表组成,代表单个 IBM i 应用程序,例如薪资系统的 PAYLIB 和 PAYDTA。

在应用程序标签页中,选择新建应用程序:

  1. 输入显示名称和可选描述。
  2. 开始输入库名称。列表显示已连接系统上可用的用户库,并排除系统库(Q*、SYS* 和 #*)。
  3. 选择建议的库,或按 Enter 添加库名称。库按添加顺序进行扫描。

您可以随时从库标签页添加或移除库。

在应用程序标签页创建新应用程序

扫描应用程序

扫描会分析应用程序库中的每个对象,并记录它们之间的依赖关系。在应用程序标签页中,点击应用程序旁边的扫描按钮即可开始扫描。

  • 扫描进度显示在仪表板下方区域。扫描在专用 SQL 作业中运行,允许您在扫描进行时继续使用其他仪表板标签页。
  • 扫描完成后,可能会识别出应用程序对象引用的其他库,而这些库尚未包含在应用程序中。请在库标签页中查看这些建议。
  • 检查消息标签页,了解扫描器无法解析的对象、依赖关系或引用。
仅扫描对象:

Understand 读取系统上的已编译对象,而非源成员。动态调用(程序名存储在变量中)和动态 SQL 表引用等依赖关系对象扫描不可见,因此不会被捕获。含有动态 SQL 的对象会在仪表板和 Bob 的响应中被高亮标记,提示需要人工审查。

Scanning an application in progress

提示:增量库扫描

在对特定库进行更改时,无需重新扫描整个应用程序。您可以从库标签页单独扫描各个库,以快速保持索引最新。

Scanning a library

探索对象和洞察

扫描完成后,您可以通过两种方式探索结果。

在仪表板中,使用对象标签页搜索并筛选每个已索引对象。选择某个对象可查看它使用了什么(出站依赖)以及被什么使用(入站依赖),以及文件列和导出符号的列。洞察标签页提供汇总统计数据:对象和依赖计数、被引用最多的对象、动态 SQL 风险、触发器、外键和已日志记录对象。

Exploring objects in the Understand Dashboard

Exploring insights in the Understand Dashboard

使用 Bob,在洞察标签页中选择使用 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 组件中描述的安装过程。

使用 Bob 探索

保持数据最新

Understand 数据代表最近一次扫描时应用程序的状态。如果在扫描后添加、修改或删除了对象,请运行新的扫描以刷新数据并保持其最新。Bob 和 Understand 仪表板会自动提示扫描结果可能已过期,帮助您识别何时需要重新扫描。

这个主题怎么样?