SuperAPI AI 工具集

fix-fiori-elements-extensions

通用与其它

查看项目

更新于 10-16 00:20

技能介绍

用途:在 UI5 现代化改造中处理 Fiori Elements V2 控制器扩展,仅适用于使用 sap.suite.ui.generic.template 的 V2 模板应用;V4(sap.fe.templates)扩展机制不同,不适用。

主要能力与判定: Case B(最常见):manifest.json 的 sap.ui5/extends/extensions/sap.ui.controllerExtensions 下已有简单键(键中不含 #)的 controllerName 注册,源文件使用 sap.ui.controller() 或 Controller.extend()。此时不修改控制器文件、不改 manifest、不加禁用注释,只向用户报告需人工现代化的文件路径,其余改造继续。 Case A(较少见):JS 中存在 registerControllerExtensions 调用且 manifest 无对应条目。需完整迁移:把注册移入 manifest,键格式为 <FLOORPLAN_CONTROLLER>#<STABLE_ID_OF_VIEW>;控制器改为 sap.ui.define 引入 sap/ui/core/mvc/ControllerExtension 并 ControllerExtension.extend(),生命周期与框架回调放入 override,自定义方法放在 override 外,通过 this.extensionAPI 访问扩展 API;处理器引用改为 .extension.<完整控制器名>.<方法名>;删除 Component.js 中的 registerControllerExtensions 调用,最后重跑 linter 验证。

检测命令:grep -B1 -A2 "controllerName" webapp/manifest.json;grep -rl "registerControllerExtensions" webapp/ --include="*.js"。

限制:Case B 的 linter 报错在人工现代化前会持续存在;稳定视图 ID 格式随 floorplan 与配置变化,需查运行应用 DOM 或文档;若使用 templateSpecific.json 的处理器引用,Case A 下也需更新;扩展控制器文件应放在与模块名匹配的路径下。其他技能仍可处理这些文件中与扩展模式无关的问题。