本页所列数量均来自当前版本的源码与文档口径,可作为评估与逐项走查的依据。 数值代表已实现的规格上限或枚举数量,不代表任何客户现场的性能承诺或商务授权。
| 维度 | 数量 | 说明 |
|---|---|---|
| 后端 Python 模块 / 行 | 185 / 22,089 | 模块化单体,生产 FastAPI + Uvicorn |
| 前端文件 / 行 | 308 / 82,659 | React 19.3 + Vite 6.4,仅 lucide-react 一个运行时依赖 |
| 文档 | 142 篇 | 其中 P0–P63 实施规格 70 篇 |
| 自动化测试 | 109 + 45 + 19 | 后端 pytest / 前端逻辑 / Playwright spec |
| CLI / MCP 登记操作 | 242 | 覆盖 48 个前缀域 |
| BML 内置函数 | 109 | 12 类,库容量 200 项,每函数最多 30 个参数 |
| AI 助手类型 | 9 | 按作用域挂载在不同界面 |
| 数据库表 / 索引 | 38 / 23 | SQLite 单机,PostgreSQL 17 生产 |
配置引擎
配置引擎把产品知识表达为属性、规则、查表与零件映射,输出的是一份可被复核、可被重新生成的配置结果。
属性与菜单
| 能力 | 规格 | 要点 |
|---|---|---|
| 产品属性类型 | 10 | text / integer / decimal / currency / html / boolean / date / enum / multiEnum / picklist |
| 显示控件 | 按类型独立 | 每种属性类型绑定自己的显示控件,不复用通用输入框 |
| 菜单显示方式 | 10 | 菜单型属性可分别指定展示形态;选项值支持数值型,用于参与计算与比较 |
| 数组属性与数组集 | 4 种布局 | 属性可声明为数组并由数组集承载重复结构;展示支持横向、纵向、页签等布局 |
动态配置规则
| 规则类型 | 代码 | 行为 |
|---|---|---|
| 约束 | constraint | 不满足条件时阻断选配结果,不允许带着冲突进入报价 |
| 隐藏 | hiding | 按条件隐藏属性或选项,避免把不适用的选择暴露给销售 |
| 推荐 | recommendation | 为属性赋值,含 set / force / recommend 三种赋值强度 |
| 消息 | message | 按条件给出提示文案,用于解释约束原因或交付限制 |
| 推荐项目 | items | 向配置结果推荐具体的产品或零件行,而不是只改属性值 |
| 条件与作用域 | 规格 | 要点 |
|---|---|---|
| 条件操作符 | 10 | eq / neq / gt / gte / lt / lte / contains / empty / notEmpty / in |
| 单规则条件数 | ≤ 30 | 支持 AND / OR 分组表达式 |
| 规则作用域 | 4 | global / family / line / model;低层级可覆盖高层级 |
| 查表 | 100 × 50 × 5,000 | 最多 100 个数据集、每集 50 列、5,000 行;支持批量查表推荐 |
零件号映射与多层 BOM
| 能力 | 规格 | 要点 |
|---|---|---|
| BOM 集合类 | 5 | 按集合类型组织零件行,支持多层结构 |
| 单位 | 10 | 行数量按单位表达,避免以"个"统一折算 |
| 实例路径 | 按路径寻址 | 多行同一零件按实例路径分别定位,不错误去重 |
| 属性关联零件 | 自动生成 | 属性命中映射后自动生成零件行并锁定,防止手工删除造成 BOM 与配置不一致 |
配置布局编辑器
| 能力 | 规格 | 要点 |
|---|---|---|
| 布局节点种类 | 15 | view / grid / row / column / attribute / array / section / action / bom / spacer / text / metadata / image / component / customUI |
| 独立元素组件 | 9 | 主机名称、方案名称、主机图片、方案标题、方案说明、配置说明、选项组、产品列表、Ad-hoc 入口 |
| 编辑能力 | 撤销 / 重做 | 编辑过程可回退,并以真实草稿运行验证,而不是只保存结构 |
| 条件化配置流程 | ≤ 200 条 | 流程按条件分支决定页签顺序与可见性 |
| 多配置实例 | 支持 | 同一报价内可放多个配置实例,并支持重配(Reconfigure) |
计算与签名传入
| 能力 | 规格 | 要点 |
|---|---|---|
| 属性计算器白名单函数 | 7 | min / max / abs / round / ceil / floor / len;仅允许算术、比较、条件、列表与白名单函数 |
| 签名传入属性(P18) | RSA 2048–4096 | PKCS#1 v1.5 / SHA-256;应用只保存公钥与证书并校验指纹与有效期,私钥仅保留在调用方,系统不生成也不存储私钥 |
首期 CMM 样例中,12 个组合缺失 BOM 映射(6.6.6 与 8.8.8 下 Scan + HH-5-T 各 6 个组合):原表允许选型但映射表无记录,
系统显式提示缺失并阻止报价,不借用相近编码或臆造零件号。当前只有测座具备动态零件映射,
主机、测头、软件、服务等继承固定清单,不能把这些固定行宣称为任一配置的真实完整 BOM。
模拟编码与真实型号没有对应关系。
定价引擎
定价引擎只做一件事:在给定的价格政策下,算出唯一、可复算、可追溯的金额。每一步都保留输入、输出与政策版本。
价目本
| 能力 | 要点 |
|---|---|
| 优先级 | 多价目本按优先级选择唯一基础价格;同一层级出现多个可取价格时,严格模式下阻断并交由价格维护方处理,不静默取最低价 |
| 币种 | 价目本按币种组织,报价币种由上下文确定 |
| 有效期 | 按日期区间生效;过期价格被筛选并提示补齐 |
| 产品线 / 地区通配 | 支持按产品线与地区通配匹配,未命中不放宽为任意价格 |
| 倍率 | 支持在价目本上叠加倍率,倍率与基础价格分开记录 |
收费、计价与单价来源
| 维度 | 数量 | 取值与要点 |
|---|---|---|
| 收费类型 | 3 | oneTime 一次性 / recurring 周期性 / usage 按用量 |
| 计价方式 | 3 | flat 单价 × 数量 / volume 整体阶梯(落在哪一档,全部数量按该档价) / tiered 分段阶梯(各段分别计价后累加) |
| 单价来源 | 4 | fixed 固定值 / base 基础价 / formula 价格公式 / matrix 矩阵定价 |
| 价格公式 | 4 个变量 | 受控求值,AST 节点数上限 80;超限直接拒绝保存,避免不可审计的复杂表达式 |
| 矩阵定价 | 1~6 条件列 | 区间左闭右开;矩阵单价须使用单价 × 数量方式 |
币种与日期汇率
| 能力 | 规格 | 要点 |
|---|---|---|
| 汇率表容量 | 1~10,000 条 | 单表条目上限 10,000 |
| Uplift 倍率 | 支持 | 在汇率之上叠加倍率,与汇率分开记录与审计 |
| 选表与快照 | 按报价日期 | 按报价日期选取生效的汇率表,并把所选汇率写入报价快照,事后复算使用同一口径 |
折扣、尾差与让利基数
| 规则 | 系统行为 |
|---|---|
| 整单优惠分摊 | 以分为单位按最大余数法分摊,并以固定行 ID 打破并列,保证 Σ分摊 = 优惠额,且同一份报价反复计算结果稳定一致 |
| 分摊下限 | 行分摊后金额不得小于零 |
| 不可折扣项 | discountable=false 的行与固定不可折扣额 chargeFixedAmount 排除在让利基数之外,只有可折扣项参与分摊 |
| 产品线折扣上限 | 命中产品线 maxDiscount 时拦截,不静默放行 |
| 缺价 | 显示为"待定价"并阻止审批,缺价不是零价;不以零成本计算虚高毛利 |
税务、毛利与价格类型
| 能力 | 要点 |
|---|---|
| 逐行税率 | 每行独立 taxRate,默认 13%;该初值是可修改的测试参数,由业务按计税组确认 |
| 税额与开票 | 系统输出税额与开票建议字段,实际开票与申报由下游财务系统负责 |
| 管理毛利 | 按未税净额与内部成本计算;赋能前受可见性管控——未授权时由后端移除相关字段,不是前端隐藏 |
| 价格类型 | 协议价、框架价、渠道价、内部传输价(transferPrice)分别维护与追踪 |
| 价格发布审批 | 价格本身的发布走独立审批流,区别于销售报价审批;发布后记录价格来源并进入审计 |
| 价格来源追踪 | 每行保留来源与试算轨迹,可回溯"这个价是谁、按哪个政策定出来的" |
金额使用十进制定点计算,人民币展示到分。税率初值 13% 不是税务结论,只是可修改的测试参数。 附件中没有 LP 与成本,初次初始化为"待定价",演示价目是显式启用的测试补充,不是任何企业的真实价格。 多币种汇率目前仅有 CNY 汇率表可用,Oracle 的完整定价平台能力未完整承接。
报价与商务流程
报价不是一张表,而是一条有状态、有责任人、有证据的流程。商务规则决定"谁能改什么",审批决定"谁能放行"。
报价场景与布局
| 能力 | 规格 | 要点 |
|---|---|---|
| 报价场景类型 | 3(上限 60) | 标准设备 / 多配置方案 / 软件服务期限新购 |
| 报价布局区块 | 10(7 必选) | customer / configurations / configuration / commerce / pricing / lines / totals / approval / documents / bom |
| 必选区块 | 7 | 客户、配置集合、商务、明细、合计、审批、文档——缺少任何一个都不能构成可提交报价 |
| 预置布局 | 3 套 | standard 标准工作台 / sales 销售编制 / review 审批评审,按角色与阶段命中 |
商务流程模型
| 维度 | 数量 | 说明 |
|---|---|---|
| 阶段 / 动作 / 角色 | 5 / 11 / 4 | 阶段约束状态迁移,动作驱动流转,角色决定可执行范围 |
| 默认步骤 | 5 | 新商务流程的默认步骤数 |
| Profile | 5 | 按 Profile 组织步骤与权限视图 |
| 转移 | 7 | 转移须落在合法动作集合内,不允许绕过审批或订单阶段 |
商务规则(7 类)
| 类别 | 能力 | 关键参数 |
|---|---|---|
| 自定义属性 | 在报价头与行上扩展字段,供规则、公式与文档引用 | 字段作用域(头 / 行)、类型、是否参与引用 |
| 修改动作 | 按事件改写字段值,替代手工逐行调整 | 5 种赋值模式:keep 保留 / value 指定值 / default 默认值 / function 函数 / form 表单输入 |
| 公式 | 受控表达式求值,用于派生金额、比例与判定值 | 白名单语法与求值预算,超限拒绝保存 |
| 校验规则 | 保存与提交前的强制校验,失败即阻断 | 条件、提示文案、阻断位置 |
| 访问规则 | 按条件收紧字段与动作的可操作性 | 3 级:可写 write / 只读 read / 隐藏 hidden;规则只能收紧,不能授予基线权限之外的能力 |
| 即时约束 | 在界面即时判定单字段取值是否允许 | 2 种模式:deny 禁止值 / allow 允许值列表(反向约束仅支持菜单固定允许值) |
| 行过滤 | 非破坏性地过滤明细行展示,不改变金额 | 3 种条件:always 恒真 / simple 简单条件 / advanced 绑定 BML 函数 |
审批
| 能力 | 要点 |
|---|---|
| 会签 / 或签 | mode=all 会签要求全部通过;mode=any 或签任一通过即可推进 |
| 委托 | 支持带起止日期的委托,委托信息在审批界面可见 |
| 催办 | 对当前阶段发起催办,并触发对应邮件模板 |
| 条件动作 | 按金额、折扣、产品线等条件决定路径与动作 |
| 审批组 | 按组指派审批人,避免依赖个人账号 |
| 职责分离 | 申请人不能最终批准自己的例外;管理员启用账号后也不能冒充其他审批人 |
| 状态机 | draft → pending → approved / rejected → ordered;审批中与已批准锁定,草稿 / 退回可编辑,确认订单锁定,克隆生成新编号 |
多产品线跨线拆单
| 能力 | 要点 |
|---|---|
| 独立计算与审批 | 各产品线独立计算与独立审批,全部完成后方可确认订单 |
| 订单编号 | 按产品线拆分为 报价号-01、报价号-02 等订单 |
| 金额一致性 | 每个订单直接使用已批准报价的行金额,净额、税额、含税额合计与总报价逐分一致,不再独立重算折扣 |
| ERP 传输 | 连接按拆单逐个生成传输任务;历史订单不自动补造拆单 |
资产与订阅
| 能力 | 要点 |
|---|---|
| 生命周期三态 | 续费 / 变更 / 取消;资产变更报价的客户、币种、归属与折算金额由资产台账确定,明细不可手工改价或增删 |
| 按日折算 | 权益区间为起日含、止日不含([start, end)),按日期精度计算 |
| 计费日对齐 | 周期按资产的月度计费日对齐,而不是按自然月首日 |
| 短月处理 | 目标月天数不足时取该月最后一天(如 01-31 加一个月为 02-28 / 02-29) |
| 日基数 | 可选实际天数或固定日基数 30 / 360,与取消规则(退未用 / 不退)分别配置 |
版本、锁定与快照
| 能力 | 要点 |
|---|---|
| 版本与修订 | 每次保存产生新版本;关键字段变更须撤回重提,旧批准不自动复用 |
| 乐观锁 | 写入必须携带最新 version,冲突时提示重读并合并,不静默覆盖 |
| 订单确认锁定 | 已批准且有效的报价由 COS 确认订单并锁定 |
| 报价快照 | 至少包含目录版本、规则版本、价格政策及特价依据、成本版本、税务版本、报价汇率、周期算法、舍入口径、审批矩阵、模板版本与输入上下文 |
原始审批阈值是 A / B / C / D / E / F 等字母占位符,本版提供五个数字上限配置; 演示值 5 / 10 / 15 / 20 / 30% 是本地验证策略,不代表任何企业的授权。 12% 减免按 A→B→C 逐级审批同样是本地验证路径。定价与审批口径须在实施阶段由业务与财务逐项签认。
文档与输出
客户看到的那份文件,与内部用于生产与交付的那份清单,是同一份数据的两种视图,不是两套维护。
| 能力 | 规格 | 要点 |
|---|---|---|
| 模板元素种类 | 14 | 覆盖封面、目录、章节、明细表、条款、签署区等结构 |
| 设计器 | 三面板 | 布局 / 元素 / 属性三个面板协同编辑,属性面板直接绑定业务字段 |
| 目录与版面 | 支持 | 自动生成 TOC;章节可设置分栏与版面参数 |
| PDF 嵌入 | 原位嵌入 | 数据页 PDF 按条件原位嵌入文档,不另做图片化转存 |
| 导出格式 | 4 | PDF / DOCX / XLSX / CSV |
| 能力 | 要点 |
|---|---|
| 中英双语 | 全部元素提供 Zh / En 双字段并具备回退策略:缺失时显式标注,不以中文充数 |
| 受众视图 | internal 内部全量 / customer 客户可见;客户版把内部零件明细合并为"方案包含项" |
| 描述层级 | 简短描述 / 详细描述可分别选择,适配报价单与技术协议的不同要求 |
| 未批准水印 | 未批准文件带 NOT APPROVED 水印,批准后自动移除 |
| 邮件模板 | 3 类:审批待办 / 状态通知 / 催办;支持循环、排序、过滤与语言回退 |
原始附件中英文描述未提供,英文输出会明确标注缺失并需逐行补充。 精度 PDF 数据页在原表中只有拼接文件名,没有实体文件,需由管理员上传 PDF 并设置加载条件。 产品图片取自截图素材,标注为"品类参考图",不冒充具体 SKU 图片。 按条件加载数据页一类能力在 Oracle 对照中属于部分覆盖,不是完整承接。
AI 能力
AI 的定位是缩短到达正确结果的时间,而不是代替规则做决策。 所有输出先预览,通过 CPQ 自身校验后由用户确认应用。
| 代码 ID | 助手名 | 作用域 | 入口 |
|---|---|---|---|
quote_summary | 报价摘要与下一步 | quote | 报价工作台 → 打开报价 → AI 助手 |
rule_explain | 规则解释 | rule | 规则中心 / 产品管理 → 规则与流程 → AI 解释(限管理员) |
price_advisor | 目标价格助手 | quote | 可编辑且已保存报价 → AI 助手 |
configure | 自然语言选配 | configuration | 产品配置 → AI 助手 |
extract_products | 客户清单提取 | configuration | 产品配置 → AI 助手 |
knowledge | 产品知识问答 | configuration | 产品配置 → AI 助手 |
rewrite | 文本改写 | text | 文档与条款 → 模板设计器 → AI 改写文字(限管理员) |
compare | 方案比较 | comparison | 报价 → AI 助手 → 方案比较 |
recommend | 产品推荐 | configuration | 产品配置 → AI 助手 |
业务上下文
按作用域组装上下文白名单,不含成本、毛利与客户联系人。
可选知识检索
命中知识库时附上来源;未命中不臆造。
模型生成
通过 OneKeyToken 调用 qwen3.7-plus,生成结构化建议。
校验与业务试算
回到 CPQ 规则与试算引擎验证,通过后才允许人工确认应用。
| 限制项 | 上限 |
|---|---|
| 知识库文件数 | ≤ 100 份 |
| 单份知识库大小 | ≤ 6 MB / 12 万字 |
| 一次对话补充追问 | ≤ 10 次 |
| 全局并发模型调用 | ≤ 3 |
| AI 运行记录保留 | 默认 30 天 |
一、建议先预览,通过 CPQ 校验后由用户显式确认才会应用;二、AI 不直接改价,也不绕过审批路由; 三、报价上下文白名单不包含成本、毛利与客户联系人,这类字段根本不会进入模型输入。 数据中的文本与自定义脚本被当作业务内容处理,不作为 Agent 指令执行。
集成与开放
对外提供三类可配置的 HTTP 契约、一套受控脚本函数库,以及面向 Agent 的标准 CLI 与 MCP 入口。
外部连接
| 能力 | 规格 | 要点 |
|---|---|---|
| 连接类型 | 3 | CloudCC / ERP / 电子签 |
| 可映射源字段 | 22 | 字段映射在连接配置中维护,不写死在代码里 |
| 任务状态机 | 11 态 | 覆盖创建、发送、重试、回执、失败与终止 |
| 回执校验 | HMAC-SHA256 | 回执带签名校验,防止伪造的到达确认 |
| 幂等键 | 必须支持 | 连接方必须支持幂等键,否则不能承诺"只执行一次" |
BML 函数库
| 分类 | 数量 | 分类 | 数量 |
|---|---|---|---|
| 数学 | 20 | 字典 | 6 |
| 字符串 | 20 | JSON Path | 5 |
| JSON | 16 | 其他函数 | 4 |
| 日期 | 12 | URL Access | 4 |
| 数组 | 11 | XML | 4 |
| 数据查询 | 6 | Commerce | 1 |
| 合计 | 109 | 库容量 / 参数上限 | 200 项 / 30 参数 |
CLI 与 MCP
| 能力 | 规格 | 要点 |
|---|---|---|
| 登记操作 | 242 | 覆盖 48 个前缀域,统一由操作目录发现与描述 |
| MCP 工具 | 9 | cpq_list_operations / cpq_describe_operation / cpq_read / cpq_call / cpq_request / cpq_ui_get / cpq_ui_save / cpq_ui_preview / cpq_ui_publish |
| 只读模式 | CPQ_READ_ONLY=1 | 开启后写入操作被拒绝,读取与预览仍可用 |
| 退出码 | 0 / 2 / 3 / 4 / 5 | 0 成功;2 参数或 IO 错误;3 认证或权限(401 / 403);4 HTTP 状态错误;5 其他服务端错误 |
| 能力 | 要点 |
|---|---|
| AI Agent 接入 | 内置两种客户端配置:--client codex 与 --client workbuddy;
生成的配置文件把会话与只读开关以环境变量注入,不把 CSRF 秘密写入导出文件 |
| 报告与图表 | 5 类图表:柱 / 条 / 折线 / 饼 / 仪表盘;21 个内置字段;支持导出与定时调度 |
| 传输限制 | CLI 本地编码文件最多 20 MiB,HTTP 请求体最多 30 MiB,响应最多 128 MiB |
CloudCC 未实连:已确认客户为 CloudCC One 中国区,组织网关发现返回 HTTP 200,
但连接应用的 clientId / secretKey 尚未配置,API 认证与会话验证未执行,CRM 业务写入未执行。
ERP 未实连:仅本机 HTTP 接收器验证报文、字段映射、幂等请求与响应回执,任务标记为 local_validated 且 externalDelivery: false。
电子签:出站与状态回执契约已实现,但没有内置特定厂商的签署人身份认证、短信、签章或多步骤信封流程,无真实厂商联调。
邮件与对象存储同样仅完成协议层验证,实际服务仍须联调。
权限与治理
权限的最小单位是字段与动作,不是页面。凡涉及成本与毛利,隔离发生在服务端返回之前。
系统角色(4 种)
| 角色 | 代码 | 能力 |
|---|---|---|
| 运营管理员 | admin | 管理端全部维护;可见全部报价;可调整报价所有人;启用账号后也不能冒充其他审批人 |
| 销售 | sales | 获授权产品线内选配与新建报价;编辑自己的草稿 / 退回报价;克隆可见报价 |
| 审批人 | approver | 查看归属本人 / 下属 / 共享 / 指派的报价;仅处理当前绑定节点 |
| COS | cos | 查看可见范围报价;确认已批准且有效的订单并锁定 |
系统只有上述 4 种角色。"配置管理员""价格管理员""应用工程师"不是系统角色: "应用工程师"仅出现在用户画像描述中,维护能力是通过授权管理端菜单实现的。 普通业务账号进入管理端会显示"此账号没有管理端权限"。完整角色权限能力在 Oracle 对照中未完整承接。
细粒度开关
| 开关 | 要点 |
|---|---|
| 产品线访问 | 按产品线授权选配与新建报价范围;不授权即不可见 |
| 三类审批授权 | 折扣商务 / Ad-hoc 技术 / 特殊零件,按产品线分别勾选;手工 Ad-hoc 项自动触发技术评审 |
| 成本毛利查看授权 | 未授权时由后端移除 cost / margin / totalCost / transferPrice 等字段,不是前端隐藏 |
| 组织上级 | 可查看下属报价,共享为只读,不放宽产品线权限 |
| 管理端菜单 | 21 项 / 6 组;销售端 6 项。菜单授权即能力授权 |
审计与安全基线
| 能力 | 要点 |
|---|---|
| 审计日志 | 操作日志 / 审批日志 / 错误日志三类分列;网关访问日志不记录 Cookie 与请求体 |
| 凭据保护 | 凭据以 AES-GCM 加密存储,密文绑定租户与凭据标识 |
| 会话 Cookie | 生产环境使用 __Host- 前缀,host-only、Secure、HttpOnly;默认会话最长 8 小时 |
| 传输与请求 | HTTPS 强制;CSRF 校验;请求体上限 30 MiB(响应 128 MiB) |
| 账号 | 密码 PBKDF2 + 独立盐;SSO 未实现,仅本机账号 |
租户隔离由应用请求上下文实施,未使用 PostgreSQL RLS;合同要求数据库级隔离的客户须使用独立数据库 + 独立应用实例。 SSO / 企业身份未实现;自助开通与 SaaS 计费未实现。 关于国产操作系统、数据库、芯片或"信创全栈"清单,当前不存在任何已完成的验证结论,须先明确逐项要求并做兼容矩阵验证。
下一站
看完规格,再看它在具体行业里怎么落地,以及我们明确不宣称的部分。