跳到正文
定位、使用者与职责边界
定位、使用者与职责边界
搜索 YUDS 文档

YUDS 文档

版本、比较与并发差异

如何区分并呈现对象比较、版本差异与本地/服务端并发冲突,以及可比性、权限与失败边界。

状态:全篇为建议,可调整,未经实现验收。B2-COMPARE 是已经独立反审的通用深契约候选,具体 API、服务与平台实现须有真实证据,全部夹具运行未执行;规则 YUDS-090400-01 的真实并发与权限验证未执行,第 11 节验收全部未执行。 更新:2026-10-18 所属章节:复杂数据工作模式

本篇定义比较的表达和操作契约;版本生成、审计完整性、指标计算、合并规则与权限由产品负责。

阅读方式:比较集合与交互见本篇 B2-COMPARE;口径、权限、并发和版本恢复按后续同名主节核对。共同设计与验收边界见基础组件与交互契约。

1. 用途与基本区分

比较可以是同一对象不同版本、同一指标不同期间、不同对象相同口径,或本地草稿与服务端新版本。它们不能共用一个无说明的“对比”标题。

业务版本、数据快照、报表期间、配置版本和界面组件版本不是同一概念。业务没有版本管理时不人为增加版本号;有版本时应让用户识别当前查看、编辑、比较及提交的对象版本。

2. 比较结构与身份契约

完整结构、集合与版本接受规则见本篇 B2-COMPARE-01/02;以下保留记录/字段映射边界。

比较字段通过稳定字段 ID 及含义映射,而非翻译后的标题匹配。记录通过业务身份或明确对齐规则匹配,不能用显示行号;名称相同不等于同一对象。字段定义已变更时标记不可直接比较或提供解释,不制造假差异。

3. B2-COMPARE:比较模式

现行设计输入沿用 D01–D08。以下为已独立反审的通用深契约候选,具体 API、服务与平台实现须有真实证据,全部运行未执行。七 role × 固定 step、三文字角色各九档及每个独立任务至多一个主操作不变。

3.1 B2-COMPARE-01 用途、结构与变体

对象比较用于不同对象按相同字段含义并列理解;版本差异用于同一对象的明确版本之间理解变更。两者分开命名。不同对象的同名字段不自动成为版本差异;相同对象不同期间不自动成为历史版本。三方草稿冲突仍用本页既有的基线/本地/远端模型(第 8 节),不用两列遮掉基线。

组合结构包括:任务标题、比较类型、已接受比较集合与每项对象/版本/范围、基准标记(有方向时)、字段名称和口径、每侧加载/受限/错误、可比性及差异、选择比较项入口、移除/替换、原始依据和关闭/返回。

  • 仅看差异、同步滚动、字段分组是视图能力;没有实际差异计算或版本定位能力时,只提供标明来源的并列事实,不伪造差异标记。
  • 普通比较表优先用 table 及独立控件,只有真实编辑/二维复合操作才采用既有 grid。
  • 比较不是自动择优、合并、恢复、排名或审批;这些动作有独立合同/权限时才作为明确后续入口。

3.2 B2-COMPARE-02 集合、快照与可比性

分别持有比较项临时选择 D、当前接受集合 C、各项实际快照 R、字段映射/口径 K 和计算状态。D/C 仅是本族观察代号,不改查询、选择范围与批量执行中查询 D 的定义。集合成员以对象 ID+实际版本/期间/范围定位,显示序号与翻译名不作键。基准角色与视觉左右顺序分开;重排不悄悄换基准,不反转差额方向。

“最新”在接受比较时解析为具体版本并显示解析时间;来源不支持不可变快照时,说明各项读取时间与变化风险,不声称同一时点。新版本通知只提供明确刷新入口,不在阅读中替换任一侧。刷新须捕获整次比较意图;分侧可先显示获准的新原值,但旧差异不贴新版本标题,所有依赖就绪且身份相符后才出新差异。

依据本页第 2 节,按稳定字段 ID 及含义映射,检查范围、单位/倍率、币种、期间/时区、分母、采集/聚合及版本。

  • 不可比较、未知、缺失、受限、真实零、新增/删除互不相同;缺权不报删除。
  • 没有经产品提供并可解释的转换,就不计算差额或排名;转换保留原值/目标单位/依据/时间。
  • 字段定义变更使旧对齐失效,不能按列位置补值。
  • 近似相同/容差由实际规则声明,显示舍入相同不证明底层一致。
  • 排序/仅看差异不改变实际比较集合或全范围查询。

每侧读取及比较计算绑定主体/空间、比较实例与修订、完整对象版本集合、字段映射/规则版本、授权代次和请求身份。任一依赖变化立即令旧差异/摘要/输出失效;旧成功或旧失败不更新新集合。读权撤回时,同时清理受限值及可反推它的差额、数量、摘要、名称、缓存及新复制/导出路径,不把受限侧当 0;已合法外部副本不承诺追回。

3.3 B2-COMPARE-03 选择、取消、删除与焦点

增加/替换比较项先用独立选择会话;打开时记录 C 修订,子 D 只做临时修改。应用时须核验成员资格、完整 D 修订、C/字段/授权版本;等待期间改了 D 或外部改了 C,旧核验不得应用、覆盖或关闭。取消只丢弃子变化,保留当前 C;原稿允许无效/未解析时保留原文,不回到默认/远端旧值。若实例采用即时添加,须明示即时接受,关闭选择层不撤销已接受项。

移除某比较项是本地比较集合变化,不删除对象、不取消已发任务。基准被移除时,要求用户明确选新基准,或进入无基准的并列事实模式,不能默认重解释现有差额。移除焦点项时,先把焦点安排到仍存在的相邻项控制/比较标题;用户焦点在外部有效位置时不抢。集合不足以完成所声明比较任务时,显示所缺条件和添加入口,不展示伪差异;具体数量上限由实际能力决定。

比较本身只读,不新建远端写任务。已有合并/恢复/导出写任务沿原身份与真实查询能力处理,关闭比较不等于取消。只读计算失败可重试,计算未知不声称结果存在;重试不重放后续写动作。

3.4 B2-COMPARE-04 阅读、键盘、同步滚动与平台

字段及每项对象/版本有真实表头或分组关系;读屏能顺序理解字段、各值、状态及差异方向。Web 表结构依据 WAI Tables;表头关联不证明数据可比性。长文本可逐字段对照,不能缩字成窄条;窄屏可切换当前对象,但持续呈现正在与谁/何版本比较,并提供同字段另一侧值和返回路径。RTL 不反转基准/目标含义。颜色、删除线和位置不能单独表达差异。

添加/移除/仅看差异/同步滚动为具名按钮或已声明切换;Tab 自然经过控件,不给每个静态值加停靠。差异导航绑定稳定字段/比较修订;目标异步准备期间用户改目标、关闭或离开时,旧定位不得滚动或抢焦。仅看差异若隐藏当前聚焦操作,先处理其焦点/未完成子层,不能直接卸载。

同步滚动默认可关闭,保持明确开关状态;按字段/段落锚点对应,不要求两侧同像素高度。用户直接滚动一侧时只产生一次同步传播,不双向递归;关闭后各自独立。内容重排/更新时不追随末尾或自动回顶;锚点不存在则解释并用安全位置,不伪造对齐。触控不要求同时拖两列;所有任务都有单指针、键盘及无同步模式路径。

Web/原生端分别登记表/列表语义、跨区导航、字体放大和读屏关联;不把 Web table 或 grid 键位当作原生 API。比较/滚动/复制/导出能力和可访问替代均需实际测试。后台更新不抢焦,退出遵循当前任务/层的原因。全部未运行。

执行前冻结平台/浏览器或设备版本、实际视口、文字设置、方向、完整样本、真实能力前置与各子轮唯一预期。所有测试数值仅属夹具配置,不是全局组件默认;本文没有真实运行证据。

3.5 精确夹具(全部运行未执行)

B2-COMPARE-F01 同口径对象比较

  • 前置:对象 A/v1=10、B/v2=12,字段 f 含义/单位 u/范围相同,服务提供实际版本;无写入能力。
  • 动作:明确接受 A/B,读取两侧成功。
  • 预期:两对象版本分别可读;比较方向 A→B,差额 +2u;接受集合 1 次,业务写入 0。
  • 禁止事件:称不同对象为同一对象版本历史;自动择优。
  • 规则:B2-COMPARE-01、B2-COMPARE-02

B2-COMPARE-F02 版本最新冻结

  • 前置:同对象 A 旧 v1,最新在进入时解析为 v3;两侧已显示。
  • 动作:通知 v4 到达;不点击刷新;随后明确刷新并成功。
  • 预期:未刷新前仍为 v1/v3;刷新后为 v1/v4 与新比较身份;旧差异不贴 v4。
  • 禁止事件:后台自动换版本;旧差异冒充新结果。
  • 规则:B2-COMPARE-02

B2-COMPARE-F03 不可比不当缺失

  • 前置:A=10u,B=12v;无 u/v 转换;C.f 未知,D.f=0。
  • 动作:并列读取字段 f。
  • 预期:A/B 不可直接比较;未知与 0 分开;差额/排名不产生。
  • 禁止事件:差额 +2;把未知写 0。
  • 规则:B2-COMPARE-02

B2-COMPARE-F04 失败与旧计算

  • 前置:C1=A/v1+B/v1 的计算 c1 在途;用户接受 C2=A/v1+C/v2。
  • 动作:C2 一侧失败;c1 成功与失败分别在独立测试中迟到。
  • 预期:C2 显示自身未完成;允许另一侧原值可读;旧 c1 不改差异/错误/焦点。
  • 禁止事件:失败即无差异;旧通过替代新失败。
  • 规则:B2-COMPARE-02

B2-COMPARE-F05 撤权后的推导泄漏

  • 前置:A=10、B=12 且差额 +2 已显示,焦点在 A 来源;A 读权撤回。
  • 动作:撤权,旧 A 读取成功到达。
  • 预期:A 及可反推 A 的差额/摘要/输出清理,焦点安全迁移;B 按当前权限可读。
  • 禁止事件:只遮 A 保留 +2;旧回包复活 A。
  • 规则:B2-COMPARE-02、B2-COMPARE-03

B2-COMPARE-F06 选择子稿取消并发

  • 前置:C={A,B}/r1;打开子层 D 加 C;另一入口已接受 {A,D}/r2。
  • 动作:取消子选择层。
  • 预期:当前 C 仍为 {A,D}/r2;子变化丢弃;接受/写入 0。
  • 禁止事件:回写 r1;取消父任务。
  • 规则:B2-COMPARE-03

B2-COMPARE-F07 核验旧子稿

  • 前置:C/r1;子 D1={A,B} 发起核验 k1;等待时改为 D2={A,C}。
  • 动作:k1 成功但被拒收;再显式发起 D2 核验 k2,k2 成功且 D2 修订、C/r1、K 及 auth 均仍匹配。
  • 预期:k1 接受 0/关闭 0,D2 保留;k2 接受 D2 一次并关闭子层一次,当前 C 变为 {A,C}。
  • 禁止事件:应用未核验的 C;回写 D1。
  • 规则:B2-COMPARE-03

B2-COMPARE-F08 移除基准及焦点

  • 前置:比较 A 基准/B、C 目标,焦点在 A 移除按钮;B/C 仍可读,B 移除按钮有效;实例声明基准移除后进入无基准并列模式。
  • 动作:移除 A。
  • 预期:不删除 A 对象;进入无基准并列状态,旧方向差额失效;焦点到 B 移除按钮一次。
  • 禁止事件:默选 B 并沿用旧差额;业务删除。
  • 规则:B2-COMPARE-02、B2-COMPARE-03

B2-COMPARE-F09 同步滚动关闭

  • 前置:同字段 f 两侧高度不同,同步按字段锚点,焦点在外部有效按钮。
  • 动作:滚动左侧 f;关闭同步;只滚动右侧 g;后台插入内容。
  • 预期:首次单次传播,不递归;关闭后独立;后台不夺焦/追尾,不按像素伪对齐。
  • 禁止事件:双向滚动循环;关闭后仍强制同步。
  • 规则:B2-COMPARE-04

B2-COMPARE-F10 长文与窄屏

  • 前置:A/B 为长混排名称、字段长文本,底层 1.234/1.235 均显示为 1.23;允许查看完整精度。
  • 动作:默认 320 CSS px 及浏览器 200% 两个独立子轮;键盘/触控读同字段两侧。
  • 预期:对象/版本/差异方向始终可辨;完整精度可取得,所有退出可达;记录实际 viewport,仍未执行。
  • 禁止事件:缩字避让;说两值相等;仅用颜色表达差异。
  • 规则:B2-COMPARE-02、B2-COMPARE-04

B2-COMPARE-F11 迟到差异定位

  • 前置:C1 差异 f 的定位请求 p1 需挂载,用户改为定位 g 后离开比较。
  • 动作:p1 挂载晚到。
  • 预期:不滚动/聚焦/重开;新任务焦点保持;读取/定位不产生写入。
  • 禁止事件:焦点回到 f;按旧索引跳到别的字段。
  • 规则:B2-COMPARE-04

B2-COMPARE-F12 关闭不撤销后续写入

  • 前置:独立恢复动作 W1 已获准发出但回执未知;比较本身只读;无持久查询能力。
  • 动作:关闭比较,W1 迟到可信成功。
  • 预期:关闭不说已取消;原 W1 仅记录获准的真实结果;离开前说明核查限制,不自动重发。
  • 禁止事件:把写回执丢弃当作旧读取;承诺任务中心。
  • 规则:B2-COMPARE-03

B2-COMPARE-F13 字段口径独立更新

  • 前置:D 及已接受对象集合 C 不变;K1 差异请求 q1 在途;用户明确接受字段口径 K2,发起 q2。
  • 动作:q2 成功;q1 成功与失败分别在两个独立子轮迟到。
  • 预期:仅 K2 差异及状态保留;q1 不覆盖数值、单位、错误、标题或焦点;集合接受 0 次。
  • 禁止事件:只比对象身份就接收 K1;旧失败覆盖 K2 成功。
  • 规则:B2-COMPARE-02

来源:完整夹具 · 来源与适用边界 · 独立反审。原始草案仅以 b2冻结源稿 存证,不是第二份现行正文。来源语义范围不等于 SAP 对等或平台运行通过。

4. 比较前的可比性检查

至少检查:对象范围、期间长度及起止、时区、币种、数量单位、金额数量级、价格/税口径、实际/预算/预测性质、统计方法、分母、来源及更新时间。不是每个场景都需要全部,但不适用须有理由。

币种或单位不同且没有经过产品明确提供的转换,不显示直接差额或排名。转换后同时保留原值、目标单位、转换依据与日期;不能由界面自行找汇率、猜精度或制定估值方法。

期间不同(如本月进行中与上月完整月)时,应显示覆盖天数和限制;范围不同(如新增项目或权限减少)时,应区分同范围比较与总体变化。若产品提供同口径调整列,清楚标记调整依据,不把调整值冒充原始事实。

5. 差异类型与数值表达

差异至少区分新增、删除、值变化、格式变化、结构/定义变化、不可比较和未知。缺失或无权限不等于删除;尚未加载不等于新版本清空。字段仅改显示格式时,不应和实际数值改变混为同一类。

数值差异展示基准、目标、绝对差与必要的相对差;方向含义直接写明。相对变化的分母由产品定义。基准为 0 或符号变化时,不能直接套用除法;用“不适用/无法按该口径计算”及说明。增大是好是坏是业务判断,不能通用绿涨红跌。

百分比指标的百分点变化与百分比相对变化分别标示。示例:出租率从 80% 到 84%,差 4 个百分点;是否同时展示相对增幅 5% 由产品场景决定。此例只解释单位,未定义任何产品经营目标。

格式化不掩盖重要差异:两个值均四舍五入显示 1.23,但底层存在需关注差异时,提供完整精度或说明。容差、忽略空格、大小写等“视为相同”规则由产品提供并可查阅,不能在通用对比组件中偷偷设阈值。

6. 布局、定位与过滤

并排适合少量字段精确比较;行内适合文本修改;多对象表格适合同口径指标。选择形式依据任务,不能把全部长文塞进两列细窄区域。窄空间可逐字段展示前后值,但保持双方身份和差异方向。

“仅看差异”不删除比较背景,仍显示双方版本及被隐藏相同项的范围。按差异导航时报告当前位置与类型;展开某差异能看到必要上下文。同步滚动可帮助对齐,但高度不等时要保留字段对应关系,允许用户控制滚动。

键盘可切换双方、进入来源、跳到上一/下一差异及恢复全部字段;焦点不因结果重新排序而丢失。辅助技术能读到字段名、旧值、新值和变化类型,不只是两段颜色不同的文字。视觉删除线也不能成为删除状态的唯一表达。

7. 权限与受限比较

双方分别验证访问权限、字段权限及来源权限。用户能读当前版本不代表能读全部历史;有权读摘要不代表可读推导明细。受限值不送到前端再用样式遮盖,也不能残留在应用可控制的标题、隐藏列、可访问名称或后续复制/导出输出里;此前合法外部副本的边界按权限变化、并发修改与保存冲突的 YUDS-120200-01 处理。

如果一侧受限,按产品披露政策显示“无法查看此侧/不可比较”,不能写成“已删除”,也不能从另一侧及差额反推出受限值。是否允许显示“发生变化”、变化数量、更新时间或操作者也需要权限判断。

当前权限缩小后,已打开的比较和缓存立即按产品安全策略更新;已导出文件的撤回能力要如实说明,不承诺界面可删除外部副本。比较结果导出仅包含授权数据和可披露上下文。

7.1 跨范围比较不继承单一全局目标

跨组织、项目或资产比较是否开放由产品决定。若允许,双方分别绑定各自获准的安全范围、对象、版本/期间和来源,并持续可辨;不能因切换页面顶部组织就把其中一侧替换为同名对象。可读双方只是必要条件,不自动允许合并、复制、导出或写回另一范围。

比较中的处理动作应单独说明实际写入目标和依据;从比较切换到编辑前,按目标重新核验权限与基准。任一侧失效时停止依赖它的差异计算,按披露政策更新;不能把受限侧当零、删除或用其旧差额继续展示。

8. 本地草稿与服务端并发冲突

本节说明比较界面如何呈现冲突;授权、可用解决方式与重新提交要求见权限变化、并发修改与保存冲突。

基本三方模型:编辑起点的基线版本、本地草稿、服务端当前版本。保存带基线身份,由服务端判断是否冲突;界面不能凭响应返回的先后判断哪个版本正确。

未冲突字段与冲突字段分开,但自动合并仅限产品明确定义且安全的情况;未修改字段不能用陈旧值覆盖新版本。跨字段业务约束、权限或锁定状态变化时,即使两个编辑改的是不同字段,也可能不能自动合并。

冲突界面保留双方值、基线、变更说明及可选处理:保留我的更改、采用当前值、逐项决定、复制草稿后退出。这些是不同的处理意图。

  • 选择保留/采用/逐项取舍,先形成获准的本地解决草稿;仅在明确提交合并或覆盖时才产生新的写入意图,并核验最新版本与权限。
  • 复制草稿后退出遵守输出权限和离开规则,不产生对象保存。
  • 若实例选择即提交,须另行明确命名该提交动作及后果,不能默认为强制覆盖。

批量冲突支持逐项或按同类处理,但展示实际范围并允许预览。采用“全部保留我的”可能覆盖其他人已完成的工作,产品需定义是否允许及确认级别,YUDS 不自行授予权限。

9. 恢复旧版本与审计边界

查看历史、下载历史、复制为新草稿、恢复旧版本是不同动作。恢复通常产生新的当前状态,不自动抹去历史;具体产品是否如此实现需明示。操作前说明对象、目标版本、被覆盖内容、依赖影响和可撤销性。

审计界面展示产品提供的操作者、时间、事件、版本和相关任务;不能凭一个差异视图宣称审计完整、防篡改或法律有效。缺失记录、历史保留限制及不可访问项要有可理解的说明。

来源入口包含有权限的原记录、计算说明、数据快照或导入批次;若源文件已被替换或删除,不能给一个失效链接冒充可追溯,而应提供已知状态与可行的核查路径。

10. 异步状态与失败

左右侧独立加载,标题和版本身份先稳定;一侧失败时另一侧可保留,但差异区明确尚未完成比较。比较计算中不把旧差异标成新版本结果;绑定双方版本与参数生成比较身份。

用户切换基准后,过期的读取/比较结果不覆盖新意图。提交合并或恢复旧版本属于写操作,按任务身份保留回执;网络断开时先核查结果,不能因为比较画面还没更新就重复恢复。

11. 业务案例与验收

  • 合同金额比较:版本 V3 为人民币 100 万元,V4 为人民币 120 万元,可展示 +20 万元;若 V4 改为美元,未提供转换依据时标为不可直接比较。若 V3 金额无权限,不显示“增加 20 万元”泄露原值。
  • 月度经营比较:9 月包含 12 个项目,10 月包含 14 个项目,界面显示范围变化;可比较相同的 12 个项目或各月总体,但不能把总体差额全称为经营改善。新增项目的业务归因由产品分析确定。
  • 并发编辑:甲改金额、乙改付款方式,甲先保存;乙提交时服务端发现基线过期。若两字段存在规则依赖,必须重新校验,不能因为“字段不同”就直接自动合并。

全部验收未执行:异币种、单位数量级、基准 0、缺失与删除、动态最新版本、字段定义变化、权限差异、隐藏差额泄露、错行对齐、三方冲突、已生效写操作断网、复制导出、读屏差异路径、窄布局及来源失效。

12. 待确认输入

比较对象与首选任务、版本生命周期、口径字典、转换规则、容差、权限可披露范围、合并规则、恢复副作用与审计保留。此处例子不构成新的财务、估值、权限或合同业务规则。

13. 比较与并发的可验规则

规则 YUDS-090400-01(比较身份)

一次比较绑定双方实际范围、对象、版本、字段含义、口径和权限。任何一项变化使依赖的差额、自动摘要与导出预览失效;可保留获准原值,但标明原版本。处理动作总要单列写入目标,不能从左右布局推断要覆盖哪一侧。

输入与动作 可验预期 反例
左侧 CNY100、右侧 CNY120;把右侧切成 USD120 双方事实可并列,停止直接差额;需产品提供转换依据才能恢复比较 仍显示 +20 并称增长 20%
本地从 V3 修改金额,服务端为 V4;比较时又更新 V5,用户选保留本地值 最终提交重新验证 V5 及跨字段关系,冲突仍可返回;不自动覆盖 因比较页已打开而跳过新基准检查
查看 V3 与 V4 差额时撤回 V3 读取权 停止依赖受限侧的差额、导出及摘要,按披露政策反馈 只隐藏 V3,保留可反推它的差额

此规则细化既有数据可信和权限边界,不定义汇率、容差或自动合并算法。真实并发与权限验证未执行。