SuperAPI AI 工具集

rpg-migration-analyzer

编程与开发

查看项目

更新于 10-15 20:33

技能介绍

用途:分析 AS/400、IBM i 上的遗留 RPG 程序(.rpg、.rpgle、.RPGLE),为迁移到 Java 应用提供结构化分析与迁移规划,覆盖业务逻辑、数据结构、文件操作和依赖关系。

主要能力:解析 H/F/D/C/P 规格、数据结构和文件定义;将 RPG 数据类型映射为 Java 类型,如压缩十进制(P)与带符号十进制(S)映射为 BigDecimal,字符映射为 String,日期时间映射为 LocalDate/LocalTime/LocalDateTime,指示器映射为 boolean,数组映射为 List 或数组;将文件操作映射到 JPA/JDBC,如 CHAIN 对应 findById、READ 对应查询方法、WRITE/UPDATE/DELETE 对应持久化操作;生成 POJO、JPA 实体、Repository、Service、校验与异常处理结构;分析 CALLB/CALLP、/COPY、服务程序等依赖并生成依赖图;评估迁移复杂度与工作量。

使用方式:先定位 RPG 源文件,再运行脚本提取结构、生成 Java 类、分析依赖和估算复杂度,例如: find . -name ".rpg" -o -name ".rpgle" -o -name "*.RPGLE" python scripts/extract-structure.py PROGRAM.rpgle --output structure.json python scripts/generate-java-classes.py structure.json --output-dir ./src/main/java ./scripts/analyze-dependencies.sh /path/to/rpg/source python scripts/estimate-complexity.py structure.json --report complexity-report.md 随后按模板生成迁移报告并验证。

适用场景:RPG 现代化评估、AS/400 或 IBM i 迁移到 Java、数据结构与文件操作转换、依赖梳理、迁移文档与复杂度估算。

限制与注意:压缩和带符号十进制必须使用 BigDecimal,避免 float/double;RPG 数组和字符串为 1 基索引,Java 为 0 基,需调整;指示器应替换为具名布尔变量;需处理 EBCDIC 到 Unicode 编码、两位年份、外部数据结构缺少 DDL 等情况;迁移结果需用实际 AS/400 数据测试验证。具体收费、价格与平台支持情况暂未提供。