用途
本技能是 Oracle NetSuite 提供的 SuiteScript 迁移助手,用于将 SuiteScript 1.0、2.0 及 2.x 脚本升级到 SuiteScript 2.1。它提供分析、转换、解释、校验四种工作模式,目标版本始终为 SuiteScript 2.1。
主要能力
- Analyze 模式:扫描 SS1.0、SS2.0、SS2.x 脚本,识别脚本类型、统计 nlapi*/nlobj* 使用情况、检测未映射 API 与破坏性变更,并按复杂度评分矩阵(行数、唯一 nlapi 调用数、子记录使用、日期时间时区、恢复点、自定义模块、子列表操作)生成迁移复杂度报告。
- Convert 模式:将 SS1.0、SS2.0、SS2.x 脚本转换为 SS2.1,包含完整 API 映射与 JavaScript 现代化(var→const/let、字符串拼接→模板字符串、indexOf→includes 等)。
- Explain 模式:深入解释特定 API 映射、对象或迁移概念。
- Validate 模式:检查转换后的脚本是否残留 1.0 模式、非 2.1 版本标签及常见转换错误。
内置参考数据:125+ API 函数映射(nlapi* → N/* 模块,覆盖 26 个模块)、34 个对象转换(nlobj* → SS2.1 类,含 331 个方法映射)、13 个未映射 API 的原生 JavaScript 或替代方案、所有脚本类型入口点变更(User Event、Client、Suitelet、RESTlet、Scheduled、Map/Reduce 等)、16 类破坏性行为变更的前后示例。
使用方式
手动调用(斜杠命令):
/netsuite-suitescript-upgrade
/netsuite-suitescript-upgrade analyze [file-path]
/netsuite-suitescript-upgrade convert [file-path]
/netsuite-suitescript-upgrade explain [api-or-concept]
/netsuite-suitescript-upgrade validate [file-path]
选项:--dry-run(仅显示变更不写文件)、--annotated(输出带编号变更注释)、--verbose(报告含详细迁移说明)。
自动激活:在项目的 .claude/settings.local.json 中添加权限:
{
"permissions": {
"allow": [
"Skill(netsuite-suitescript-upgrade)",
"Skill(netsuite-sdf-leading-practices)",
"Skill(netsuite-suitescript-reference)"
]
}
}
启用三个技能后,Claude 会自动检测 SS1.0、SS2.0、SS2.x 脚本并提供迁移协助,使用完整映射参考转换 API,通过 leading-practices 技能生成部署 XML,通过 suitescript-reference 技能查找正确字段 ID。
适用场景
- 打开或引用 SuiteScript 1.0 文件(含 nlapi* 调用、无 define())时。
- 打开或引用需要规范化为 SuiteScript 2.1 的 SS2.0 或 2.x 文件时。
- 询问迁移、升级或转换 SuiteScript 时。
- 遇到 nlapi* 或 nlobj* 函数并询问其 SS2.1 等价写法时。
- 处理混合 SS1.0、SS2.0、SS2.x、SS2.1 脚本的项目时。
版本识别与转换规则
版本特征:SS1.0 使用全局 nlapi*/nlobj*、无 define()、无 @NScriptType;SS2.0 使用 define() 包装、@NApiVersion 2.0、使用 var;SS2.1 使用 define() 包装、@NApiVersion 2.1、现代 JS(const/let、箭头函数、模板字符串、async/await)。
转换目标规则:SuiteScript 2.1 是唯一有效输出;将 @NApiVersion 2.0 及模糊的 2.x 升级为 2.1;不创建保留 nlapi*/nlobj* 调用语义的兼容层、适配层、包装器、外观或 polyfill;每个 SS1.0 API 用法必须直接替换为 SS2.1 API、原生 JavaScript 或文档化的 SS2.1 架构变更;不将共存、RESTlet 桥接、Suitelet 桥接或并排模式作为迁移结果。
限制
资料未提供该技能的收费、价格、平台支持范围、性能指标或效果保证等信息。