新增转码模式支持转到核心以及sql语法转换
This commit is contained in:
+38
-15
@@ -86,9 +86,11 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
|
||||
|
||||
**说明**:全量转码仅支持 **LS_ 开头**的功能("内存交易"改造范围),按清单对功能进行整体转码。清单保存在 `cust.json` 的 `convert.dir` 节点(见 §6.1)。
|
||||
|
||||
**表格列**:`UF20函数名` | `是否存在` | `操作`(行尾编辑按钮)。
|
||||
**表格列**:`UF20函数名` | `是否存在` | `核心` | `是否柜面接口`(**双击函数名所在行**可在弹窗中修改函数名)。
|
||||
|
||||
- "是否存在"显示 **否**:说明元数据未更新或该功能在 UF20 元数据中检索不到(见 §7 FAQ);
|
||||
- **核心**:下拉选择该功能转码后归属的核心,可选 **ucbp**(默认)/ **uses** / **uarg** / **usms**;SQL 方言由核心自动派生——ucbp/uses 对应 mdb,uarg/usms 对应 db;
|
||||
- **是否柜面接口**:下拉选择 **否**(默认)/ **是**,标识该功能是否为柜面接口;
|
||||
- 每次显示页面时自动刷新"是否存在"列。
|
||||
|
||||
**操作步骤:**
|
||||
@@ -96,7 +98,7 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
|
||||
1. 切到 **全量转码** Tab;
|
||||
2. 点击 **添加**,弹窗内**每行输入一个** LS_ 函数名(支持批量粘贴);输入非 LS 函数将被拒绝,并提示切换到"按需转码";
|
||||
3. 也可在 **UF20功能查询** 中双击或右键选中 LS_ 功能直接加入(见 §5.3.1);
|
||||
4. 点击行尾编辑按钮可修改函数名;**删除选中** / **清空列表**(二次确认)维护清单;
|
||||
4. **双击函数名所在行**可在弹窗中修改函数名;**删除选中** / **清空列表**(二次确认)维护清单;
|
||||
5. 点击 **开始转换**,进度条与状态文字显示转换进度;转换中按钮变为 **停止转换**,可随时点击终止任务。
|
||||
|
||||
**清单同步**:手工编辑 `cust.json` 保存后约 0.3 秒内界面自动刷新(文件监视 + 防抖),程序与手工编辑双向同步。
|
||||
@@ -114,14 +116,15 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
|
||||
- **方式二**:按需转码 Tab 点击 **添加**,弹窗内每行输入一个函数短名(如 `AS_xxx`);误带 `.service_design` 等后缀会自动剥离;新增功能递归模式默认 **否**;若输入 LS_ 开头函数仅给出提示(建议放入全量转码),不会拦截;
|
||||
- **方式三**:手工编辑配置文件 `cust_nonls.json`(见 §6.2),保存后程序自动检测并刷新界面。
|
||||
|
||||
**表格列**:`UF20函数名` | `是否存在` | `是否递归` | `操作`(行尾编辑按钮)。
|
||||
**表格列**:`UF20函数名` | `是否存在` | `是否递归` | `db模式`(**双击函数名所在行**可在弹窗中修改函数名)。
|
||||
|
||||
- LS_ 开头的函数名以橙色字体显示提醒(不拦截)。
|
||||
|
||||
**设置递归模式:**
|
||||
**设置递归模式与 db 模式:**
|
||||
|
||||
1. 在目标行的 **是否递归** 下拉框选择 **否**(单文件)或 **是**(递归);
|
||||
2. 选择后立即写入 `cust_nonls.json` 并生效,无需额外点击。
|
||||
2. 在 **db模式** 下拉框选择 SQL 语法转换方言:**否** = mdb(默认)、**是** = db;
|
||||
3. 选择后立即写入 `cust_nonls.json` 并生效,无需额外点击。
|
||||
|
||||
**执行转码:** 点击 **开始转换**,进度显示与停止方式同全量转码;任务互斥规则相同。
|
||||
|
||||
@@ -256,19 +259,38 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
|
||||
|
||||
| 节点 | 结构 | 用途 |
|
||||
| --- | --- | --- |
|
||||
| `convert.dir` | 数组,元素为 `"函数名.service_design"` | 全量转码清单 |
|
||||
| `convert.dir` | 对象数组,元素 `{name, core, viaUmgr, dialect}` | 全量转码清单(含核心、柜面接口配置) |
|
||||
| `tableCompareUf2_Uf3` | 对象 `{UF20表名: UFT3表名}` | 表替换映射 |
|
||||
| `functionReplace` | 对象 `{UF20函数名: UFT3函数名}` | 函数替换映射 |
|
||||
| `noChangeFullNameCode` | 字符串数组 | 不转码功能函数清单,转码时跳过这些函数名的替换 |
|
||||
|
||||
`convert.dir` 元素字段说明(详见 `docs/转码配置格式契约.md`):
|
||||
|
||||
| 字段 | 说明 |
|
||||
| --- | --- |
|
||||
| `name` | 功能名(含 `.service_design` 后缀) |
|
||||
| `core` | 归属核心:`ucbp`(默认)/ `uses` / `uarg` / `usms` |
|
||||
| `viaUmgr` | 是否柜面接口:`false`(默认)/ `true` |
|
||||
| `dialect` | SQL 方言,由 core 派生:`ucbp`/`uses` → `mdb`,`uarg`/`usms` → `db`(程序保存时自动生成,无需手工填写) |
|
||||
|
||||
**手工编辑示例(以实际文件结构为准):**
|
||||
|
||||
```json
|
||||
{
|
||||
"convert": {
|
||||
"dir": [
|
||||
"LS_CustQry.service_design",
|
||||
"LS_AcctChk.service_design"
|
||||
{
|
||||
"name": "LS_CustQry.service_design",
|
||||
"core": "ucbp",
|
||||
"viaUmgr": false,
|
||||
"dialect": "mdb"
|
||||
},
|
||||
{
|
||||
"name": "LS_AcctChk.service_design",
|
||||
"core": "uarg",
|
||||
"viaUmgr": true,
|
||||
"dialect": "db"
|
||||
}
|
||||
]
|
||||
},
|
||||
"tableCompareUf2_Uf3": {
|
||||
@@ -288,17 +310,18 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
|
||||
|
||||
- 程序内修改(全量转码 / 表替换 / 函数替换 / 不转码功能函数页)会自动写回该文件;
|
||||
- 手工编辑保存后各页面自动检测并刷新;
|
||||
- 全量转码清单函数名可省略 `.service_design` 后缀展示,`dir` 为数组结构,程序保存时保留文件其余内容与格式。
|
||||
- 全量转码清单函数名可省略 `.service_design` 后缀展示,`dir` 为对象数组结构,程序保存时保留文件其余内容与格式;
|
||||
- 兼容旧版 `dir` 为字符串数组(仅函数名)的格式,旧条目按 core=ucbp、viaUmgr=false、dialect=mdb 加载。
|
||||
|
||||
### 6.2 cust_nonls.json(按需转码清单)
|
||||
|
||||
- **路径**:`bin\uf2touft3\config\cust_nonls.json`
|
||||
- **作用**:保存按需转码功能清单及每项的递归标志,供界面与转码引擎共用。
|
||||
- **作用**:保存按需转码功能清单及每项的递归标志与 SQL 方言(db 模式),供界面与转码引擎共用。
|
||||
|
||||
| 节点 | 结构 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `convert.dir` | 对象 `{功能名: 0 或 -1}` | `0` = 否(单文件转码),`-1` = 是(递归转码) |
|
||||
| `convert.dir["*"]` | 引擎兜底键 | 非清单功能,界面不展示、保存时自动保留 |
|
||||
| `convert.dir[功能名]` | 对象 `{depth, dialect}` | `depth`: `0` = 否(单文件转码)、`-1` = 是(递归转码);`dialect`: `mdb` = 否(默认)、`db` = 是 |
|
||||
| `convert.dir["*"]` | 引擎兜底键(数值) | 非清单功能,界面不展示、保存时原样保留 |
|
||||
| `convert.ext` | 后缀数组 | 引擎识别的功能文件后缀,程序保存时自动维护 |
|
||||
|
||||
**手工编辑示例(以实际文件结构为准):**
|
||||
@@ -308,8 +331,8 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
|
||||
"convert": {
|
||||
"dir": {
|
||||
"*": -1,
|
||||
"AS_CustQry": 0,
|
||||
"LF_AcctChk": -1
|
||||
"AS_CustQry": { "depth": 0, "dialect": "mdb" },
|
||||
"LF_AcctChk": { "depth": -1, "dialect": "db" }
|
||||
},
|
||||
"ext": [
|
||||
".service_design",
|
||||
@@ -325,7 +348,7 @@ Uft30ChangeCode 是一款桌面端 UF20 → UFT3 代码转码工具,主要提
|
||||
**编辑注意:**
|
||||
|
||||
- 保持 JSON 格式合法(逗号、引号完整);若格式非法,程序将保留内存中的现有清单并在日志中记录警告;
|
||||
- 兼容旧版 `dir` 为数组的格式(无递归标志,一律按"否"加载);
|
||||
- 兼容旧版格式:`dir` 值为数值(`0`/`-1`,无方言,按"否/mdb"加载)或为数组(无递归标志,一律按"否/mdb"加载);
|
||||
- 外部编辑保存后约 0.3 秒内界面自动刷新;程序自身写入该文件时不会触发重复刷新,可放心与手工编辑混用。
|
||||
|
||||
### 6.3 config.ini 与 change_code.ini
|
||||
|
||||
Reference in New Issue
Block a user