3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM Bob Premium Package for i v2.0.0 最新機能① Understand を使用してみる

3
Last updated at Posted at 2026-10-02

IBM Bob Premium Package for i v2.0.0 で Understand という機能が追加されていたので、実際にセットアップしてアプリケーションの分析を行ってみた内容を備忘録代わりに記載します。

日本語環境ではそのままではスキャンが失敗したため、その回避方法についてもあわせて記載しています。

サマリー

  • Understand は、IBM i のライブラリーをオブジェクト単位でスキャンし、オブジェクト同士の関係をメタデータとして登録しておく機能です(ソースは参照しません)
  • 日本語環境には未対応で、日本語を含むオブジェクトがあるとスキャンが失敗します。メタデータ格納用テーブルの CCSID を 1399 に変換することで回避できました(自己責任での対応になります)
  • Understand を利用すると、同じ分析でも Bob コインの消費量が 2.61 → 0.520(約 1/5) に抑えられました

はじめに

Understand とは

新しい Understand ダッシュボードを使用して IBM i アプリケーションライブラリーのオブジェクトレベルスキャンを実行し、コンパイル済みオブジェクトをインデックス化してそれらの関係をマッピングする機能です。Bob はオブジェクトスキャンのメタデータから直接、影響分析、アプリケーション概要、プログラム関係などの構造的なクエリーに回答できるようになります。

セットアップ手順

Understand ダッシュボードを開く

Workflow のボタンの横に Understand のボタンが追加されています。

1.png

ボタンを押下すると Overview が表示されます。すでに IBM i と接続済みのため、最初のステップは完了している状態です。

2.png

メタデータ格納用ライブラリーを作成する

Choose an install library を選択し、メタデータを格納するためのライブラリーを指定します。ここでは空のライブラリーを新規で作成する必要があります。

IBM Bob でライブラリーを作成するには、OBJECT BROWSER で New Library を選択します。

3.png

画面上部に入力欄が表示されるので、ライブラリー名を入力して Enter を押下します。今回は MYUNDLIB を作成しました。

4.png

インストールライブラリーを設定する

作成したら Set install library を選択し、メタデータを格納するライブラリー(今回は MYUNDLIB)を入力します。
下記画像のように表示されない場合はIBM Bob を再起動すると表示されることがあります。

5.png

入力が完了したら × ボタンを押下し、Overview 画面の Install Understand を選択します。MYUNDLIB が空になっているかの確認が表示されますが、今回はそのまま続行ボタンを押下します。

6.png

ここでは、クライアントの PC を経由して IBM i に必要なオブジェクトがインストールされます。

スキャン対象のアプリケーションを登録する

インストールが完了したら +Add application を押下して、スキャン対象のライブラリーを選択します。

7.png

下記の項目を入力して Add application を押下します。

項目 内容
Display name 表示名(任意)
Description 記述(任意)
Library スキャン対象のライブラリー名(複数選択可能)

Q から始まるライブラリー、名前に SYS が含まれるライブラリーはスキャン対象外となりますので注意してください。

8.png

下記のように表示されれば、アプリケーションの登録は完了です。この時点ではまだスキャンは行われていないので、Scan を押下してスキャンを開始します。

9.png

日本語環境でスキャンが失敗する

発生したエラー

スキャンを実行すると、下記のエラーメッセージが表示されてスキャンが失敗しました。

Scan error: [SQL0438] MYUNDLIB.SCAN_APP failure: SQLSTATE=22021, SQLCODE=-438, APP_ID=1: Step 1 (OBJECT_STATISTICS inventory) failed for library IMAO1399 ロSQLSTATE=22021, SQLCODE=-330ワ: MEMOBJ, 22021, -438

SQLCODE=-330 は文字変換ができなかったことを示すエラーです。原因は恐らく、MYUNDLIB に作成されたメタデータ格納用テーブルの CCSID が 37 になっており、日本語の文字を含むオブジェクトの情報を格納できずにスキャンが失敗しているものと考えられます。

そこで、テーブルの文字列列の CCSID を 1399 に変換します。

現時点では日本語環境への対応はされていないため、ここからの作業を実施される場合はご自身の責任の下で実施してください。

CCSID を変換する

CCSID 37 から 1399 への直接変換は、システムのデータ損失チェックで拒否されるため、37 → 65535 → 1399 の2段階で変換しています。

また、下記の列については対応を変えています。

  • CCSID 1399 での最小バイト長の制約があるため、サイズを拡張した列
    • OBJ_CMD_INFO.ALLOW_LIMITED_USER VARCHAR(3) → VARCHAR(6)
    • OBJ_EXPORTED_SYMBOLS.IS_DETERMINISTIC VARCHAR(3) → VARCHAR(6)
    • OBJ_TRIGGERS.OPERATIVE VARCHAR(1) → VARCHAR(4)
    • OBJ_TRIGGERS.ENABLED VARCHAR(1) → VARCHAR(4)
  • Y/N などの英数字フラグを格納する CHAR 列は、CCSID 65535 までの変換にとどめています(CHAR(1) は CCSID 1399 では最小バイト長の制約により定義できないため)

実行した SQL は下記になります。

実行した SQL(クリックで展開)
-- =============================================================
-- MYUNDLIB CCSID 1399 変換スクリプト 
-- 対象: MYUNDLIB ライブラリの全物理ファイルの文字列列
-- 手順: CCSID 37 -> 65535 -> 1399 の2段階変換
--       (37->1399 の直接変換はシステムのデータ損失チェックで拒否されるため)
-- 注意1: 以下の列はCCSID 1399 での最小バイト長制約のためサイズを拡張
--        OBJ_CMD_INFO.ALLOW_LIMITED_USER       VARCHAR(3)  -> VARCHAR(6)
--        OBJ_EXPORTED_SYMBOLS.IS_DETERMINISTIC VARCHAR(3)  -> VARCHAR(6)
--        OBJ_TRIGGERS.OPERATIVE                VARCHAR(1)  -> VARCHAR(4)
--        OBJ_TRIGGERS.ENABLED                  VARCHAR(1)  -> VARCHAR(4)
-- 注意2: 以下のCHAR列はY/N等の英数字フラグのため CCSID 65535 止まり
--        (CHAR(1) CCSID 1399 は最小バイト長制約で不正のため)
--        OBJ_CMD_INFO.TARGET_RELEASE
--        OBJ_COLUMNS.IS_NULLABLE
--        OBJ_COLUMNS.HAS_DEFAULT
--        OBJ_OBJECTS.ADOPTED_AUTHORITY
--        OBJ_OBJECTS.TERASPACE_ENABLED
--        OBJ_OBJECTS.HAS_DYNAMIC_SQL
--        OBJ_OBJECTS.OBJECT_CONTROL_LEVEL
--        OBJ_TRIGGERS.SECURE
-- =============================================================

-- -------------------------------------------------------------
-- APPS
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.APPS ALTER COLUMN DISPLAY_NAME   SET DATA TYPE VARCHAR(100) CCSID 65535;
ALTER TABLE MYUNDLIB.APPS ALTER COLUMN DISPLAY_NAME   SET DATA TYPE VARCHAR(100) CCSID 1399;
ALTER TABLE MYUNDLIB.APPS ALTER COLUMN DESCRIPTION    SET DATA TYPE VARCHAR(500) CCSID 65535;
ALTER TABLE MYUNDLIB.APPS ALTER COLUMN DESCRIPTION    SET DATA TYPE VARCHAR(500) CCSID 1399;
ALTER TABLE MYUNDLIB.APPS ALTER COLUMN STATUS         SET DATA TYPE VARCHAR(30)  CCSID 65535;
ALTER TABLE MYUNDLIB.APPS ALTER COLUMN STATUS         SET DATA TYPE VARCHAR(30)  CCSID 1399;

-- -------------------------------------------------------------
-- LIBRARIES
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.LIBRARIES ALTER COLUMN NAME SET DATA TYPE VARCHAR(10) CCSID 65535;
ALTER TABLE MYUNDLIB.LIBRARIES ALTER COLUMN NAME SET DATA TYPE VARCHAR(10) CCSID 1399;

-- -------------------------------------------------------------
-- OBJ_BNDDIR_ENTRIES
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.OBJ_BNDDIR_ENTRIES ALTER COLUMN ENTRY_LIBRARY    SET DATA TYPE VARCHAR(10) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_BNDDIR_ENTRIES ALTER COLUMN ENTRY_LIBRARY    SET DATA TYPE VARCHAR(10) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_BNDDIR_ENTRIES ALTER COLUMN ENTRY_ACTIVATION SET DATA TYPE VARCHAR(6)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_BNDDIR_ENTRIES ALTER COLUMN ENTRY_ACTIVATION SET DATA TYPE VARCHAR(6)  CCSID 1399;

-- -------------------------------------------------------------
-- OBJ_CMD_INFO
-- ALLOW_LIMITED_USER: VARCHAR(3)->VARCHAR(6) (CCSID 1399 最小長制約のため拡張)
-- TARGET_RELEASE: CHAR(6) - 英数字フラグのため CCSID 65535 止まり
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.OBJ_CMD_INFO ALTER COLUMN CPP_NAME_CHAR            SET DATA TYPE VARCHAR(10) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_CMD_INFO ALTER COLUMN CPP_NAME_CHAR            SET DATA TYPE VARCHAR(10) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_CMD_INFO ALTER COLUMN THREADSAFE               SET DATA TYPE VARCHAR(5)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_CMD_INFO ALTER COLUMN THREADSAFE               SET DATA TYPE VARCHAR(5)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_CMD_INFO ALTER COLUMN MULTITHREADED_JOB_ACTION SET DATA TYPE VARCHAR(10) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_CMD_INFO ALTER COLUMN MULTITHREADED_JOB_ACTION SET DATA TYPE VARCHAR(10) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_CMD_INFO ALTER COLUMN TARGET_RELEASE           SET DATA TYPE CHAR(6)     CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_CMD_INFO ALTER COLUMN SOURCE_FILE_LIBRARY      SET DATA TYPE VARCHAR(10) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_CMD_INFO ALTER COLUMN SOURCE_FILE_LIBRARY      SET DATA TYPE VARCHAR(10) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_CMD_INFO ALTER COLUMN SOURCE_FILE              SET DATA TYPE VARCHAR(10) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_CMD_INFO ALTER COLUMN SOURCE_FILE              SET DATA TYPE VARCHAR(10) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_CMD_INFO ALTER COLUMN SOURCE_FILE_MEMBER       SET DATA TYPE VARCHAR(10) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_CMD_INFO ALTER COLUMN SOURCE_FILE_MEMBER       SET DATA TYPE VARCHAR(10) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_CMD_INFO ALTER COLUMN ALLOW_LIMITED_USER       SET DATA TYPE VARCHAR(6)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_CMD_INFO ALTER COLUMN ALLOW_LIMITED_USER       SET DATA TYPE VARCHAR(6)  CCSID 1399;

-- -------------------------------------------------------------
-- OBJ_COLUMNS
-- IS_NULLABLE: CHAR(1) - 英数字フラグのため CCSID 65535 止まり
-- HAS_DEFAULT: CHAR(1) - 英数字フラグのため CCSID 65535 止まり
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.OBJ_COLUMNS ALTER COLUMN COLUMN_NAME  SET DATA TYPE VARCHAR(128) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_COLUMNS ALTER COLUMN COLUMN_NAME  SET DATA TYPE VARCHAR(128) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_COLUMNS ALTER COLUMN DATA_TYPE    SET DATA TYPE VARCHAR(50)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_COLUMNS ALTER COLUMN DATA_TYPE    SET DATA TYPE VARCHAR(50)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_COLUMNS ALTER COLUMN IS_NULLABLE  SET DATA TYPE CHAR(1)      CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_COLUMNS ALTER COLUMN HAS_DEFAULT  SET DATA TYPE CHAR(1)      CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_COLUMNS ALTER COLUMN COLUMN_TEXT  SET DATA TYPE VARCHAR(50)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_COLUMNS ALTER COLUMN COLUMN_TEXT  SET DATA TYPE VARCHAR(50)  CCSID 1399;

-- -------------------------------------------------------------
-- OBJ_CONSTRAINTS
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.OBJ_CONSTRAINTS ALTER COLUMN CONSTRAINT_NAME SET DATA TYPE VARCHAR(128) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_CONSTRAINTS ALTER COLUMN CONSTRAINT_NAME SET DATA TYPE VARCHAR(128) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_CONSTRAINTS ALTER COLUMN FK_COLUMN       SET DATA TYPE VARCHAR(128) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_CONSTRAINTS ALTER COLUMN FK_COLUMN       SET DATA TYPE VARCHAR(128) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_CONSTRAINTS ALTER COLUMN PK_COLUMN       SET DATA TYPE VARCHAR(128) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_CONSTRAINTS ALTER COLUMN PK_COLUMN       SET DATA TYPE VARCHAR(128) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_CONSTRAINTS ALTER COLUMN DELETE_RULE     SET DATA TYPE VARCHAR(20)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_CONSTRAINTS ALTER COLUMN DELETE_RULE     SET DATA TYPE VARCHAR(20)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_CONSTRAINTS ALTER COLUMN UPDATE_RULE     SET DATA TYPE VARCHAR(20)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_CONSTRAINTS ALTER COLUMN UPDATE_RULE     SET DATA TYPE VARCHAR(20)  CCSID 1399;

-- -------------------------------------------------------------
-- OBJ_DEPENDENCIES
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.OBJ_DEPENDENCIES ALTER COLUMN DEP_KIND        SET DATA TYPE VARCHAR(30)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_DEPENDENCIES ALTER COLUMN DEP_KIND        SET DATA TYPE VARCHAR(30)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_DEPENDENCIES ALTER COLUMN CONSTRAINT_NAME SET DATA TYPE VARCHAR(128) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_DEPENDENCIES ALTER COLUMN CONSTRAINT_NAME SET DATA TYPE VARCHAR(128) CCSID 1399;

-- -------------------------------------------------------------
-- OBJ_EXPORTED_SYMBOLS
-- IS_DETERMINISTIC: VARCHAR(3)->VARCHAR(6) (CCSID 1399 最小長制約のため拡張)
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.OBJ_EXPORTED_SYMBOLS ALTER COLUMN SYMBOL_NAME      SET DATA TYPE VARCHAR(128) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_EXPORTED_SYMBOLS ALTER COLUMN SYMBOL_NAME      SET DATA TYPE VARCHAR(128) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_EXPORTED_SYMBOLS ALTER COLUMN SPECIFIC_NAME    SET DATA TYPE VARCHAR(128) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_EXPORTED_SYMBOLS ALTER COLUMN SPECIFIC_NAME    SET DATA TYPE VARCHAR(128) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_EXPORTED_SYMBOLS ALTER COLUMN SYMBOL_KIND      SET DATA TYPE VARCHAR(20)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_EXPORTED_SYMBOLS ALTER COLUMN SYMBOL_KIND      SET DATA TYPE VARCHAR(20)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_EXPORTED_SYMBOLS ALTER COLUMN RETURN_TYPE      SET DATA TYPE VARCHAR(200) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_EXPORTED_SYMBOLS ALTER COLUMN RETURN_TYPE      SET DATA TYPE VARCHAR(200) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_EXPORTED_SYMBOLS ALTER COLUMN IS_DETERMINISTIC SET DATA TYPE VARCHAR(6)   CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_EXPORTED_SYMBOLS ALTER COLUMN IS_DETERMINISTIC SET DATA TYPE VARCHAR(6)   CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_EXPORTED_SYMBOLS ALTER COLUMN SQL_DATA_ACCESS  SET DATA TYPE VARCHAR(8)   CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_EXPORTED_SYMBOLS ALTER COLUMN SQL_DATA_ACCESS  SET DATA TYPE VARCHAR(8)   CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_EXPORTED_SYMBOLS ALTER COLUMN ROUTINE_DEFINER  SET DATA TYPE VARCHAR(128) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_EXPORTED_SYMBOLS ALTER COLUMN ROUTINE_DEFINER  SET DATA TYPE VARCHAR(128) CCSID 1399;

-- -------------------------------------------------------------
-- OBJ_JOURNAL_OBJECTS
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.OBJ_JOURNAL_OBJECTS ALTER COLUMN FILE_TYPE          SET DATA TYPE VARCHAR(10) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_JOURNAL_OBJECTS ALTER COLUMN FILE_TYPE          SET DATA TYPE VARCHAR(10) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_JOURNAL_OBJECTS ALTER COLUMN JOURNAL_IMAGES     SET DATA TYPE VARCHAR(6)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_JOURNAL_OBJECTS ALTER COLUMN JOURNAL_IMAGES     SET DATA TYPE VARCHAR(6)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_JOURNAL_OBJECTS ALTER COLUMN OMIT_JOURNAL_ENTRY SET DATA TYPE VARCHAR(10) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_JOURNAL_OBJECTS ALTER COLUMN OMIT_JOURNAL_ENTRY SET DATA TYPE VARCHAR(10) CCSID 1399;

-- -------------------------------------------------------------
-- OBJ_LIB_SUGGESTIONS
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.OBJ_LIB_SUGGESTIONS ALTER COLUMN LIB_NAME SET DATA TYPE VARCHAR(10) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_LIB_SUGGESTIONS ALTER COLUMN LIB_NAME SET DATA TYPE VARCHAR(10) CCSID 1399;

-- -------------------------------------------------------------
-- OBJ_MESSAGES
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.OBJ_MESSAGES ALTER COLUMN TEXT     SET DATA TYPE VARCHAR(1000) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_MESSAGES ALTER COLUMN TEXT     SET DATA TYPE VARCHAR(1000) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_MESSAGES ALTER COLUMN MSG_TYPE SET DATA TYPE VARCHAR(20)   CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_MESSAGES ALTER COLUMN MSG_TYPE SET DATA TYPE VARCHAR(20)   CCSID 1399;

-- -------------------------------------------------------------
-- OBJ_MODULE_BINDINGS
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.OBJ_MODULE_BINDINGS ALTER COLUMN SRVPGM_ACTIVATION SET DATA TYPE VARCHAR(8)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_MODULE_BINDINGS ALTER COLUMN SRVPGM_ACTIVATION SET DATA TYPE VARCHAR(8)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_MODULE_BINDINGS ALTER COLUMN MODULE_ATTRIBUTE  SET DATA TYPE VARCHAR(10) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_MODULE_BINDINGS ALTER COLUMN MODULE_ATTRIBUTE  SET DATA TYPE VARCHAR(10) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_MODULE_BINDINGS ALTER COLUMN LANGUAGE_ID       SET DATA TYPE VARCHAR(7)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_MODULE_BINDINGS ALTER COLUMN LANGUAGE_ID       SET DATA TYPE VARCHAR(7)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_MODULE_BINDINGS ALTER COLUMN STORAGE_MODEL     SET DATA TYPE VARCHAR(10) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_MODULE_BINDINGS ALTER COLUMN STORAGE_MODEL     SET DATA TYPE VARCHAR(10) CCSID 1399;

-- -------------------------------------------------------------
-- OBJ_OBJECTS
-- ADOPTED_AUTHORITY:    CHAR(1) - 英数字フラグのため CCSID 65535 止まり
-- TERASPACE_ENABLED:    CHAR(1) - 英数字フラグのため CCSID 65535 止まり
-- HAS_DYNAMIC_SQL:      CHAR(1) - 英数字フラグのため CCSID 65535 止まり
-- OBJECT_CONTROL_LEVEL: CHAR(8) - 英数字フラグのため CCSID 65535 止まり
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN SYSTEM_NAME            SET DATA TYPE VARCHAR(10)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN SYSTEM_NAME            SET DATA TYPE VARCHAR(10)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN LONG_NAME              SET DATA TYPE VARCHAR(128) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN LONG_NAME              SET DATA TYPE VARCHAR(128) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN OBJECT_TYPE            SET DATA TYPE VARCHAR(10)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN OBJECT_TYPE            SET DATA TYPE VARCHAR(10)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN SQL_OBJECT_TYPE        SET DATA TYPE VARCHAR(20)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN SQL_OBJECT_TYPE        SET DATA TYPE VARCHAR(20)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN SQL_PROGRAM_TYPE       SET DATA TYPE VARCHAR(20)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN SQL_PROGRAM_TYPE       SET DATA TYPE VARCHAR(20)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN TEXT_DESC              SET DATA TYPE VARCHAR(50)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN TEXT_DESC              SET DATA TYPE VARCHAR(50)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN RELATIVE_PATH          SET DATA TYPE VARCHAR(512) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN RELATIVE_PATH          SET DATA TYPE VARCHAR(512) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN EXTENSION              SET DATA TYPE VARCHAR(20)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN EXTENSION              SET DATA TYPE VARCHAR(20)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN FILE_SUBTYPE           SET DATA TYPE VARCHAR(20)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN FILE_SUBTYPE           SET DATA TYPE VARCHAR(20)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN OWNER                  SET DATA TYPE VARCHAR(10)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN OWNER                  SET DATA TYPE VARCHAR(10)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN DEFINER                SET DATA TYPE VARCHAR(10)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN DEFINER                SET DATA TYPE VARCHAR(10)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN ACTIVATION_GROUP       SET DATA TYPE VARCHAR(10)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN ACTIVATION_GROUP       SET DATA TYPE VARCHAR(10)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN ADOPTED_AUTHORITY      SET DATA TYPE CHAR(1)      CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN TERASPACE_ENABLED      SET DATA TYPE CHAR(1)      CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN LAST_USED_OBJECT       SET DATA TYPE VARCHAR(4)   CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN LAST_USED_OBJECT       SET DATA TYPE VARCHAR(4)   CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN COMPILER               SET DATA TYPE VARCHAR(7)   CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN COMPILER               SET DATA TYPE VARCHAR(7)   CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN COMPILER_VERSION       SET DATA TYPE VARCHAR(9)   CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN COMPILER_VERSION       SET DATA TYPE VARCHAR(9)   CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN OBJECT_CONTROL_LEVEL   SET DATA TYPE CHAR(8)      CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN CREATED_SYSTEM_VERSION SET DATA TYPE VARCHAR(9)   CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN CREATED_SYSTEM_VERSION SET DATA TYPE VARCHAR(9)   CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN HAS_DYNAMIC_SQL        SET DATA TYPE CHAR(1)      CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN DYNAMIC_SQL_PATS       SET DATA TYPE VARCHAR(200) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_OBJECTS ALTER COLUMN DYNAMIC_SQL_PATS       SET DATA TYPE VARCHAR(200) CCSID 1399;

-- -------------------------------------------------------------
-- OBJ_RESOLVED_IMPORTS
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.OBJ_RESOLVED_IMPORTS ALTER COLUMN BOUND_SERVICE_PROGRAM   SET DATA TYPE VARCHAR(10)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_RESOLVED_IMPORTS ALTER COLUMN BOUND_SERVICE_PROGRAM   SET DATA TYPE VARCHAR(10)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_RESOLVED_IMPORTS ALTER COLUMN BOUND_SRVPGM_LIBRARY    SET DATA TYPE VARCHAR(10)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_RESOLVED_IMPORTS ALTER COLUMN BOUND_SRVPGM_LIBRARY    SET DATA TYPE VARCHAR(10)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_RESOLVED_IMPORTS ALTER COLUMN RESOLVED_SRVPGM_LIBRARY SET DATA TYPE VARCHAR(10)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_RESOLVED_IMPORTS ALTER COLUMN RESOLVED_SRVPGM_LIBRARY SET DATA TYPE VARCHAR(10)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_RESOLVED_IMPORTS ALTER COLUMN RESOLVED_SYMBOL_NAME    SET DATA TYPE VARCHAR(256) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_RESOLVED_IMPORTS ALTER COLUMN RESOLVED_SYMBOL_NAME    SET DATA TYPE VARCHAR(256) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_RESOLVED_IMPORTS ALTER COLUMN RESOLVED_SYMBOL_USAGE   SET DATA TYPE VARCHAR(8)   CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_RESOLVED_IMPORTS ALTER COLUMN RESOLVED_SYMBOL_USAGE   SET DATA TYPE VARCHAR(8)   CCSID 1399;

-- -------------------------------------------------------------
-- OBJ_SCAN_TIMESTAMPS
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.OBJ_SCAN_TIMESTAMPS ALTER COLUMN STEP_COUNTS SET DATA TYPE VARCHAR(200) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_SCAN_TIMESTAMPS ALTER COLUMN STEP_COUNTS SET DATA TYPE VARCHAR(200) CCSID 1399;

-- -------------------------------------------------------------
-- OBJ_SYMBOL_PARAMETERS
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.OBJ_SYMBOL_PARAMETERS ALTER COLUMN PARAMETER_NAME SET DATA TYPE VARCHAR(128) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_SYMBOL_PARAMETERS ALTER COLUMN PARAMETER_NAME SET DATA TYPE VARCHAR(128) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_SYMBOL_PARAMETERS ALTER COLUMN DATA_TYPE      SET DATA TYPE VARCHAR(100) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_SYMBOL_PARAMETERS ALTER COLUMN DATA_TYPE      SET DATA TYPE VARCHAR(100) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_SYMBOL_PARAMETERS ALTER COLUMN PARAMETER_MODE SET DATA TYPE VARCHAR(10)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_SYMBOL_PARAMETERS ALTER COLUMN PARAMETER_MODE SET DATA TYPE VARCHAR(10)  CCSID 1399;

-- -------------------------------------------------------------
-- OBJ_TRIGGERS
-- OPERATIVE: VARCHAR(1)->VARCHAR(4) (CCSID 1399 最小長制約のため拡張)
-- ENABLED:   VARCHAR(1)->VARCHAR(4) (CCSID 1399 最小長制約のため拡張)
-- SECURE:    CHAR(1) - 英数字フラグのため CCSID 65535 止まり
-- -------------------------------------------------------------
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN TRIGGER_NAME       SET DATA TYPE VARCHAR(128) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN TRIGGER_NAME       SET DATA TYPE VARCHAR(128) CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN EVENT_MANIPULATION SET DATA TYPE VARCHAR(10)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN EVENT_MANIPULATION SET DATA TYPE VARCHAR(10)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN ACTION_TIMING      SET DATA TYPE VARCHAR(10)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN ACTION_TIMING      SET DATA TYPE VARCHAR(10)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN TRIGGER_MODE       SET DATA TYPE VARCHAR(10)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN TRIGGER_MODE       SET DATA TYPE VARCHAR(10)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN SECURE             SET DATA TYPE CHAR(1)      CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN TRIGGER_KIND       SET DATA TYPE VARCHAR(10)  CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN TRIGGER_KIND       SET DATA TYPE VARCHAR(10)  CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN OPERATIVE          SET DATA TYPE VARCHAR(4)   CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN OPERATIVE          SET DATA TYPE VARCHAR(4)   CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN ENABLED            SET DATA TYPE VARCHAR(4)   CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN ENABLED            SET DATA TYPE VARCHAR(4)   CCSID 1399;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN TRIGGER_DEFINER    SET DATA TYPE VARCHAR(128) CCSID 65535;
ALTER TABLE MYUNDLIB.OBJ_TRIGGERS ALTER COLUMN TRIGGER_DEFINER    SET DATA TYPE VARCHAR(128) CCSID 1399;

IBM Bob から SQL を実行する

IBM Bob のアプリケーションで Ctrl + Alt + N を押下すると SQL の実行画面が開きますので、上記の SQL をコピーして貼り付けます。

Ctrl + Shift + A を押下するか、画面上部の Run SQL statement を押下して実行します。

10.png

画面下部に下記のように表示されれば実行完了です。

Statement executed with no result set returned. Rows affected: 0

再度スキャンを実行する

テーブルの変換が完了したので、再度 Scan を押下してスキャンを実行します。

11.png

下記のように表示されればスキャン完了です。

12.png

以上でアプリケーションのメタデータの登録が完了しました。

Object のタブを選択して任意のオブジェクトを選択すると、そのオブジェクトの依存関係も確認できます。

13.png

Understand を使用してアプリケーションを分析する

追加された Tools と Skills

最新のアップデートで、Understand 用の Tools や Skills も追加されています。詳しくは下記を参照してください。

また、Bob のチャット欄の権限設定に、Understand の自動承認のボタンも追加されていました。

14.png

実際に使用してみる

IBM Bob に下記のように依頼してみました。

IMAO1399のアプリケーションの依存関係を分析してください

依頼した結果、分析が完了しました。

15.png

実行結果を見ると、新規で追加された Skills や Tools を使用して分析していることがわかります。

Bob コインの消費量

ここで注目したいのが、消費した Bob コインの量です。

今回使用したライブラリーのオブジェクトは合計 67 個でしたが、Understand を利用した場合と利用しなかった場合で、同様の操作の消費量を比較すると下記のようになりました。

条件 消費 Bob コイン
Understand を利用した場合 0.520
Understand を利用しない場合 2.61

Understand を使用することで、コインの消費量を約 1/5 に削減できました。

感想

事前にスキャンしたメタデータを参照して回答するため、AI が都度オブジェクトの情報を取得しに行く必要がなくなることが、コイン削減に効いているのだと思います。

Understand を使うことでアプリケーション全体の構造を事前に把握させておけるため、分析の精度だけでなく Bob コインの消費も大きく抑えられるのは便利だと感じました。

一方で、日本語環境にはまだ対応していないため、日本語を含むオブジェクトがあるライブラリーではそのままではスキャンが失敗します。今回の CCSID 変換はあくまで暫定的な回避策ですので、正式な対応を待つのが安全だと思います。

※注意:本記事の内容は検証時点(IBM Bob Premium Package for i v2.0.0)のもので、画面やテーブル構造は今後変更される可能性があります。

3
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?