From 7c660980d8c5f2656f87277a23bc862dd4545673 Mon Sep 17 00:00:00 2001 From: chen qiang <343005560@qq.com> Date: Wed, 30 Sep 2026 14:21:52 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85BOS=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E5=8D=95=E6=8D=AE=E8=A1=A8=E5=8D=95=E9=BB=98=E8=AE=A4=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 2 ++ CHANGELOG.md | 6 ++++++ README.md | 2 ++ SKILL.md | 5 +++-- VERSION | 2 +- references/bos-metadata.md | 2 ++ references/query-and-business-rules.md | 22 ++++++++++++++++++++++ 7 files changed, 38 insertions(+), 3 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index ff1f52c..691a9c1 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,5 +1,7 @@ # oracle-jump-query Skill Release Standard +Release 1.5.52: 补充新建 BOS 业务单据表单的 DOCNO 生成器、STATUS/ISACTIVE 翻译器和选项组、字段读写打印规则、默认值、提交人和提交时间,以及表级 MDQSV 默认规则。ISACTIVE 默认 Y,STATUS 默认 1;仅生成方案。本次仅更新业务文档,不修改 Agent、transit-server、CLI/HTTP 接口、配置或审计 action、字段及保存策略,命令数保持 32。发布时同步私有主库、安装目录和无私有历史公共镜像。 + Release 1.5.51: CLI 每次启动记录最后使用时间,按本机日期每日首次使用自动抓取 origin/main 并仅快进安装,成功后重新启动当前命令;本机状态与并发锁不提交 Git。保留本机配置,源码修改、暂存修改、分支分叉或配置冲突时暂停安装;失败不阻止业务命令。本次新增本机更新逻辑,不修改 Agent、transit-server、HTTP 接口、登录配置或审计 action、字段及保存策略,命令数保持 32。发布时同步私有主库、安装目录和无私有历史公共镜像。 取号 CODE 定义在 `AD_SEQUENCE` 表;1.5.50 的编号规则分析路径为 `DOCNO -> AD_COLUMN.SEQUENCENAME -> AD_SEQUENCE`。 diff --git a/CHANGELOG.md b/CHANGELOG.md index 7180568..04cf9af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.5.52 (2026-09-30) + +- 补充新建 BOS 业务单据表单默认配置:DOCNO 编号生成器和单据编号读写方式,STATUS/ISACTIVE 下拉框、选项组、字段翻译器、默认值和读写打印规则,以及提交人、提交时间。 +- 明确表级读写规则 `MDQSV` 与字段级规则 `0010111111` 分开维护,ISACTIVE 默认 `Y`,STATUS 默认 `1`;仅生成方案,不通过查询通道维护 BOS 元数据。 +- 本次仅更新 Skill 业务文档,不修改 Agent、transit-server、CLI/HTTP 接口、配置格式或审计 action、字段及保存策略;命令数保持 32。 + ## 1.5.51 (2026-09-30) - CLI 每次启动记录最后使用时间;按本机日期,每个使用日首次启动自动抓取 `origin/main`,仅快进安装更新并重新启动当前命令,同日不重复检测。 diff --git a/README.md b/README.md index cb0c125..5e98f00 100644 --- a/README.md +++ b/README.md @@ -300,6 +300,8 @@ python scripts/oracle_skill.py ops_report HENLO ## 新增业务记录 SQL 生成规则 +新建 BOS 业务单据表单时,在八个基础字段和主键之上通常还需 `DOCNO`、`STATUS`、提交时间、提交人;`ISACTIVE` 已在基础字段中。表级读写规则默认 `MDQSV`。`DOCNO` 维护编号生成器,读写方式为“单据编号”;`STATUS`、`ISACTIVE` 使用“下拉框选项”,选项名称分别为 `STATUS`、`YESNO`,字段翻译器均为 `nds.web.alert.LimitValueAlerter`,默认值分别为 `1`、`Y`。三个字段的读写打印规则均为 `0010111111`,保留前导零。提交人和提交时间由提交动作维护;详细规则见 [业务单据表单默认配置](./references/query-and-business-rules.md#bos-新建业务单据表单默认配置)。 + 本 skill 默认只读,不直接执行写库操作;当需要分析或生成新增业务记录 SQL 示例时,遵守以下 BOS 默认取值规则: - 新增记录主键 `ID` 使用 `get_sequences('<表名称>')`。 diff --git a/SKILL.md b/SKILL.md index 9df481f..064fd9a 100644 --- a/SKILL.md +++ b/SKILL.md @@ -5,7 +5,7 @@ description: Oracle 跳板查询技能。通过中转服务查询远程 Oracle # Oracle 跳板查询 -> **版本:v1.5.51** · [更新日志](./CHANGELOG.md) +> **版本:v1.5.52** · [更新日志](./CHANGELOG.md) ## 使用原则 @@ -26,7 +26,7 @@ description: Oracle 跳板查询技能。通过中转服务查询远程 Oracle - [命令、登录与调用方式](./references/commands-and-auth.md) 登录、client 切换、CLI 命令、HTTP action、故障排查。 - [生产查询限制与常用业务规则](./references/query-and-business-rules.md) - 生产查询限制、商品/款号/条码/库存规则、BOS 新建表最小结构、新增业务记录 SQL 生成规则、字段值域映射。 + 生产查询限制、商品/款号/条码/库存规则、BOS 新建表最小结构、业务单据表单默认配置、新增业务记录 SQL 生成规则、字段值域映射。 - [BOS 数据字典与系统地图](./references/bos-metadata.md) `AD_TABLE`、`AD_COLUMN`、`AD_REFBYTABLE`、`AD_TABLE_TEXT`、BOS 系统菜单和表结构地图、数据权限模型。 - [通用接口业务逻辑](./references/generic-interface.md) @@ -121,6 +121,7 @@ AD_SUBSYSTEM ## 业务规则速记 - 为 BOS 新建表生成 DDL 时,至少保留 `ID`、`AD_CLIENT_ID`、`AD_ORG_ID`、`OWNERID`、`CREATIONDATE`、`MODIFIERID`、`MODIFIEDDATE`、`ISACTIVE` 八个基础字段及 `ID` 主键;类型、可空性和默认值按 [BOS 新建表最小结构](./references/query-and-business-rules.md#bos-新建表最小结构仅生成-ddl) 模板生成。DDL 只供人工确认执行,不通过 Skill 查询通道执行。 +- 新建 BOS 业务单据表单通常包含 `DOCNO`、`STATUS`、`ISACTIVE`、提交时间和提交人,所在表读写规则默认 `AD_TABLE.MASK='MDQSV'`。`DOCNO` 维护单据编号生成器,读写方式为“单据编号”;`STATUS`、`ISACTIVE` 读写方式为“下拉框选项”,选项名称分别为 `STATUS`、`YESNO`,字段翻译器均为 `nds.web.alert.LimitValueAlerter`,默认值分别为 `1`、`Y`。三个字段读写打印规则均为 `0010111111`。完整配置与元数据核实要求见 [业务单据表单默认配置](./references/query-and-business-rules.md#bos-新建业务单据表单默认配置)。 - 用户提到“通用接口”“接口指令”“接口方”“推送日志”“接收日志”“数据接口任务”“数据队列封装/推送”,或要求分析 `H_INTERFACE`、`H_INSTRUCTION`、`PUSH_LOG`、`INF_LOG`、`AD_PROCESS`、`H_INSTRUCTION_TASK`、`H_INTERFACE_DATA_TASK`、`H_INTERFACE_TASK01`、`BOS_INF_PUSH`、`INF_PUSH_DEAL`、`GET_HYJINF1` 时,先读取 [通用接口业务逻辑](./references/generic-interface.md)。这些对象是常见模型而不是固定契约;不同服务器可能缺表、增表、增减字段、改变值域、请求头合并规则或处理过程,必须先查目标环境再下结论。 - 商品、款号通常指 `M_PRODUCT`。 - 条码、SKU 通常指 `M_PRODUCT_ALIAS`;查询条码时首查 `M_PRODUCT_ALIAS.NO`。 diff --git a/VERSION b/VERSION index 99f37f6..87a4e43 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.5.51 +1.5.52 diff --git a/references/bos-metadata.md b/references/bos-metadata.md index e179d57..64b8ac3 100644 --- a/references/bos-metadata.md +++ b/references/bos-metadata.md @@ -6,6 +6,8 @@ ### 单据编号定义(AD_SEQUENCE) +新建业务单据的表级 `MASK='MDQSV'`、`DOCNO` 生成器、字段级读写打印规则、`STATUS`/`ISACTIVE` 翻译器及选项组、提交人和提交时间配置,见 [BOS 新建业务单据表单默认配置](./query-and-business-rules.md#bos-新建业务单据表单默认配置)。表级规则与字段级规则分开维护;中文配置项对应的 `AD_COLUMN` 实际列名先查目标环境确认。 + 取单号函数为 `Get_SequenceNo('', AD_CLIENT_ID)`。默认约定是 `CODE` 取单据 `DOCNO` 字段对应的 `AD_COLUMN.SEQUENCENAME` 值,CODE 的定义在 `AD_SEQUENCE` 表中;第二个参数取单据实际的 `AD_CLIENT_ID`。分析编号规则时,先定位单据及其 `DOCNO` 字段配置,再到 `AD_SEQUENCE` 核实对应定义,特殊业务按目标环境的实际配置和过程逻辑处理。查询 `AD_SEQUENCE` 前先确认表结构和字段含义,不假定关联字段或编号格式。取号只生成 SQL 示例,不通过查询通道调用函数。 ### 通用查询规则 diff --git a/references/query-and-business-rules.md b/references/query-and-business-rules.md index 334dad0..fa72406 100644 --- a/references/query-and-business-rules.md +++ b/references/query-and-business-rules.md @@ -110,6 +110,28 @@ CREATE TABLE TableName ( - 不要把新增业务记录时的 `AD_CLIENT_ID=37`、`AD_ORG_ID=27` 或主键取号规则自动写成建表 `DEFAULT`;本最小模板只为 `ISACTIVE` 指定默认值,日期字段也不自动增加 `DEFAULT SYSDATE`。 - 这是新建表结构规则,不表示可以自动修改既有表。Skill 仅生成 DDL 并明确“未执行”,由用户或 DBA 确认后人工执行;不通过 `query` / `qperm` 建表,也不隐式写入 BOS 元数据。 +## BOS 新建业务单据表单默认配置 + +新增 BOS 表单时,先判断是否为业务单据。通常包含 `DOCNO` 的表单可按业务单据理解,并结合实际用途核实;新建业务单据表单通常应包含 `DOCNO`、`STATUS`、`ISACTIVE`、提交时间和提交人。这些业务字段在上面的八个基础字段及 `ID` 主键之上补充,其中 `ISACTIVE` 已属于基础字段,不重复创建。本节是业务单据的默认约定,不要求所有基础资料表都增加单号或提交字段。 + +字段及 BOS 元数据配置: + +| 字段 | 业务含义 | 读写方式 | 下拉框选项名称 | 字段翻译器 | 读写打印规则 | 默认值 | +| --- | --- | --- | --- | --- | --- | --- | +| `DOCNO` | 单据编号 | 单据编号 | 不适用 | 按目标环境单据编号配置核实 | `0010111111` | 按维护的单据编号生成器取号 | +| `STATUS` | 单据状态 | 下拉框选项 | `STATUS` | `nds.web.alert.LimitValueAlerter` | `0010111111` | `1` | +| `ISACTIVE` | 可用 | 下拉框选项 | `YESNO` | `nds.web.alert.LimitValueAlerter` | `0010111111` | `Y` | +| 提交时间 | 提交时间,常用字段名 `STATUSTIME` | 按目标表单配置核实 | 不适用 | 按实际配置核实 | 按实际配置核实 | 新增草稿时不赋值,由提交动作维护 | +| 提交人 | 提交人,常用字段名 `STATUSERID` | 按目标表单配置核实 | 不适用 | 按实际配置核实 | 按实际配置核实 | 新增草稿时不赋值,由提交动作维护 | + +- `DOCNO` 必须维护单据编号生成器:`AD_COLUMN` 中该字段的 `SEQUENCENAME` 保存取号 CODE,CODE 的定义在 `AD_SEQUENCE`,取号表达式为 `Get_SequenceNo('', AD_CLIENT_ID)`。生成器 CODE 按业务维护,不猜测具体名称,也不通过查询通道调用取号函数。 +- `STATUS` 和 `ISACTIVE` 的字段翻译器配置位于 `AD_COLUMN`,值为 `nds.web.alert.LimitValueAlerter`。`ISACTIVE` 除选项名称为 `YESNO`、默认值为 `Y` 外,其余上述配置与 `STATUS` 相同;保留最小建表模板中的 `ISACTIVE CHAR(1) DEFAULT 'Y' NOT NULL`。 +- 下拉框选项名称 `STATUS`、`YESNO` 是对应选项组名称,不是数据库实际值。生成具体元数据方案时,先定位目标环境的选项组,再用 `AD_COLUMN.AD_LIMITVALUE_GROUP_ID` 核实 `AD_LIMITVALUE` 的显示值与实际值,不猜测选项组 ID。读写方式为下拉框选项时,按目标环境核实 `OBTAINMANNER='select'` 等实际存储值。 +- 所在表的读写规则默认是 `AD_TABLE.MASK='MDQSV'`,按该字符串维护:`M` 修改、`D` 删除、`Q` 查询、`S` 提交、`V` 作废。此默认值用于新建业务单据方案;分析既有表时仍以实际 `MASK` 为准。 +- 表级读写规则 `MDQSV` 与字段级读写打印规则 `0010111111` 是不同配置。字段规则保留完整十位字符串及前导零,不转成整数,也不凭经验解释各位含义。 +- 需要提交的业务单据必须包含提交时间和提交人,并核实 `AD_TABLE.PROC_SUBMIT` 对应提交逻辑。上述常用字段名、字段类型、关联方式和可空性需按目标环境或用户确认的方案确定;新增草稿只设 `STATUS='1'`,提交时由提交动作维护提交人和时间。 +- 生成 BOS 元数据 SQL 时,先确认目标环境 `AD_COLUMN` 中“字段翻译器”“读写方式”“读写打印规则”“默认值”等配置项对应的实际列名,不凭中文标签猜测物理列名。建表 DDL 与表单元数据配置分别说明;这里仅记录默认规则并生成待人工确认的方案,不通过 Skill 查询通道创建表、维护生成器或写入 BOS 元数据。 + ## 新增业务记录 SQL 生成规则 当用户要求分析或生成新增业务表记录的 SQL 示例时,仍然保持只读安全边界:skill 可以生成 SQL 和说明,但不能直接通过查询通道执行 INSERT、UPDATE、DELETE、MERGE、DDL 等写操作。