补充BOS单据取号及编号定义规则

This commit is contained in:
chen qiang
2026-09-30 10:17:51 +08:00
parent 1bce6fa48c
commit a314c64b0b
8 changed files with 70 additions and 8 deletions
+5 -2
View File
@@ -5,7 +5,7 @@ description: Oracle 跳板查询技能。通过中转服务查询远程 Oracle
# Oracle 跳板查询
> **版本:v1.5.48** · [更新日志](./CHANGELOG.md)
> **版本:v1.5.50** · [更新日志](./CHANGELOG.md)
## 使用原则
@@ -15,6 +15,8 @@ description: Oracle 跳板查询技能。通过中转服务查询远程 Oracle
生产环境查询必须带明确 `WHERE` 条件和行数限制。不要为了“先看看数据”查询整表;涉及库存视图、业务大表、统计查询时尤其要先限定门店、日期、单号、状态、款号、条码或主键范围。
品小二环境存在已知字符集兼容问题:中文条件直接写成 `LIKE '%中文%'`(或直接把中文写入等值条件)可能返回 0 行。查询该环境的中文值时,优先将中文转换为 Oracle `UNISTR` Unicode 转义,例如“零售单”使用 `LIKE '%' || UNISTR('\96F6\552E\5355') || '%'`;直接返回 0 行时先用该写法重试,不要据此判断没有数据。该规则是品小二的客户级差异;其他 client 若直接中文字面量已验证可用,不必强制改写,但可将 `UNISTR` 作为避免传输编码转换的通用兜底。
## 参考文档
详细规则已经拆分到 `references/`,处理对应任务时必须读取相关文件:
@@ -125,7 +127,8 @@ AD_SUBSYSTEM
- `M_ATTRIBUTESETINSTANCE` 是商品色码属性表:`VALUE1`/`VALUE1_CODE`/`VALUE1_ID` 对应颜色名称、颜色编号、颜色表 `M_COLOR.ID`;`VALUE2`/`VALUE2_CODE`/`VALUE2_ID` 对应尺码名称、尺码编号、尺码表 `M_SIZE.ID`。
- 库存通常查 `V_FA_STORAGE`,必须同时带店仓条件和款号/条码条件,并加行数限制。
- 新增业务记录 SQL 示例中,主键 `ID` 使用 `get_sequences('<表名称>')`。
- 如表存在 `DOCNO`,先查 `AD_COLUMN.SEQUENCENAME`;有值时用 `Get_SequenceNo('<SEQUENCENAME>', 37)` 取单据编号。
- 取单号函数为 `Get_SequenceNo('<CODE>', AD_CLIENT_ID)`;默认约定是 `CODE` 取该单据 `DOCNO` 字段对应的 `AD_COLUMN.SEQUENCENAME` 值,第二个参数取单据实际的 `AD_CLIENT_ID`。先核实元数据;配置为空时不猜测 `CODE`,实际业务有特殊规则时按核实结果处理。只生成 SQL 示例,不通过查询通道调用取号函数。
- 取号 `CODE` 的定义在 `AD_SEQUENCE` 表;分析编号规则时,沿 `DOCNO -> AD_COLUMN.SEQUENCENAME -> AD_SEQUENCE` 核实对应定义。
- 如表存在 `AD_CLIENT_ID`,默认值 `37`;如存在 `AD_ORG_ID`,默认值 `27`。
- 子表的 `AD_CLIENT_ID`、`AD_ORG_ID` 默认继承父表。
- 新增表单若存在 `STATUS`、`STATUSERID`、`STATUSTIME`,通常只设置 `STATUS='1'`,不设置提交人和提交时间。