状态:本页是可修订的通用文档契约。B1-VIEW 的初始设计输入按 D01—D08 主档采用(代理依授权采用),复杂筛选的显式应用、URL 表达等仍为候选,C1-OUTPUT 是独立反审后的首期通用组合候选;均不新增色值、服务能力或实现承诺。API、设计资产、实际平台支持与真实业务能力均未验收,也不代表已与 SAP 对等覆盖;全部文档夹具与真实运行均未执行。 所属章节:复杂数据工作模式
本篇定义查询和执行的交互契约;成员解析、权限、快照、事务、幂等与后台调度由产品和实现提供。
按下列目录进入本章主节;共同设计与验收边界见基础组件与交互契约,本章特殊条件与来源限制就近说明。
- FT-COMMON 查询、结果与执行的共同状态
- FIL-BAR 查询条件、逻辑与筛选条
- 已应用条件与保存视图
- B1-VIEW:视图设置与个人配置
- 三类选择范围必须可辨
- 跨页、筛选变化和排除项
- B1-EXPORT:范围、格式、生成与下载
- C1-OUTPUT:输出交付扩展
- 批量动作预览与校验
- 执行状态与并发控制
- 部分结果、重试与结果待确认
- 键盘、辅助技术与内容增长
- 端到端业务例与验收
- 尚需确认的产品输入
- 查询、分页与批次对账夹具
1. FT-COMMON 查询、结果与执行的共同状态
1.1 身份与状态的归属
下表的字母只帮助审阅状态,不规定序列化字段、请求参数或服务接口。事件日志分开记录主结果查询意图、候选检索、资格/条件校验、详情读取、偏好写入和业务记录写入;“一次意图”不假定底层只能有一个网络请求。下文筛选动作表和夹具中的“查询 0”指未应用主结果查询,不禁止明确发起的候选检索或只读校验。
| 状态 | 所属及必须可核对的事实 | 不得混同 |
|---|---|---|
| D:查询草稿 | 当前正在编辑的搜索、字段条件和逻辑;允许暂时无效,保留必要原始输入 | 不冒充已用于结果的条件,不因失焦自动应用 |
| A:最近明确应用的查询 | 已接受的查询意图及实际安全范围、条件解析基准、排序、查询代次 | 已应用不等于请求成功;D 后续变化不回写 A |
| R:当前显示结果 | 真实返回的查询身份、范围、排序、页/游标、结果版本/时间、计数可信度 | 旧 R 不贴新 A 标签;行、总数、分面计数、汇总必须能分别核对来源 |
| S:已选范围 | 显式 ID 集合,或被服务真实支持的查询范围引用及排除项 | 不等于焦点、当前页、当前视口或一个无版本的全选布尔值 |
| W:已经提交的写任务 | 原对象/成员、动作参数、基准版本和真实请求/任务身份 | 不随 D/A/R 变化,不采用旧读取淘汰规则丢弃回执 |
| V:展示偏好 | 列顺序、可见性、宽度、密度等当前本地值,以及可能存在的远端确认状态 | 本地变化不声称已跨设备保存;V 不能解除安全限制 |
只读请求与回调绑定账户/工作区、允许范围、查询/排序/页身份、数据及授权代次;计数、字段选项和展开详情也有各自的对应身份。接受结果前核对当前意图与权限。D 改成新草稿但尚未应用时,A 对应的合法结果仍可完成,且不能覆盖 D;A 已换代后,旧回包不得覆盖 R、计数、错误或待发通告。相同查询文字不证明同一授权、范围或数据版本。
状态至少独立表达:未查询、初次读取中、已有结果刷新中、成功有结果、成功零结果、部分数据、读取失败、结果过期/待核实、无权;查询草稿另有未改/已改、有效/无效、子编辑器打开状态。表格中的编辑/写入状态另归对象和字段。不能用空白表、骨架或一个 loading 布尔值替代以上事实。
撤权优先阻断新的读取、选择和写入意图,清理应用可控的受限单元格、条件标签、已选清单、标题、可访问名称、tooltip、复制输出、缓存及待发通告;合法可读但不可编辑的数据可以保留。是否允许披露受限项数量和原因由产品决定。已发出的 W 仍按原身份保留获准的核查,清理视图不等于撤销写入。不承诺追回此前合法复制或外部保存的副本。
1.2 固定的视觉与任务边界
公共颜色继续使用 primary、neutral、focused、success、warning、failure、general 七角色 × 已批准固定职责 step 的两维方式,不增加 filter/table/pager 颜色别名。排版仍为 label/prose/heading 各九档,不新增字号、固定行高、列宽、断点或候选数量上限。当前排序、焦点、已选、错误、过期各保留独立可读信号,不能靠同一个底色混为一态。
一个独立任务最多一个突出主操作。筛选、表格工具、行入口、分页并排出现,不意味着每处各有一个主操作;按当前任务目标选择强调层级。值帮助若是独立选择任务,“应用选择”承担该任务的主操作;其内部筛选只是查询工具,不再新增另一个同级主操作。明确的子确认任务按既有浮层边界处理,关闭子层不能提交外层。
工作区包含查询入口、查询草稿、已应用条件摘要、结果及其快照、范围选择、批量动作、影响预览、执行状态和逐项结果。搜索文本、筛选组、排序、分页、列偏好不能合成一个不透明的“筛选”对象。
建议分开维护五类状态:
- 正在编辑、尚未应用的条件。
- 已应用并用于当前请求的条件。
- 当前显示结果对应的条件与时间。
- 用户选中的范围。
- 已提交后台任务的冻结输入。
修改查询条件不会改变旧任务的范围。
2. FIL-BAR 查询条件、逻辑与筛选条
2.1 用途、非用途、结构
用途是解释并调整一个已明确范围的数据查询:从少量直接字段到可展开的复杂条件组。可用于列表、普通表、交互网格及值帮助的检索区,但不会因为嵌在表格上方就获得记录修改权。它不是批量编辑、保存业务记录、改变权限、切换工作区或任意表达式执行器。简单关键词检索沿用 QRY-SEARCH(见输入组件:文本、结构化编辑与专用输入);字段选值沿用 SEL-SINGLE、SEL-MULTI、SEL-HELP(见选择组件:值、范围与层级);少量条件无需强制使用复杂条件生成器。
结构包含范围标题/说明、搜索或条件入口、字段与运算符/值编辑、条件逻辑摘要、未应用提示、明确的应用/清除/恢复入口、结果状态及必要的错误定位。高级条件可折叠,但已生效的排除、时间基准和影响结果的条件必须有完整可达的摘要;仅显示“有三项筛选”不足以解释数据。搜索文字、条件组、排序、分页和列偏好分别管理,不能用一个“重置”清掉全部。
必须区分用户可清除的条件、来自当前上下文的条件、产品默认条件与不可变安全边界。上下文变化使查询身份失效,不通过删除一个 chip 退出工作区。允许移除的上下文约束应写明具体后果;不可变约束用范围说明表达,不伪装成禁用的普通可删 chip。没有权限的字段不能靠 URL、历史视图或恢复默认重新启用。
2.2 条件值与逻辑
每个条件绑定稳定的条件/字段身份、允许的运算符、值类型、单位或时间基准;名称翻译、字段位置及可见标签都不是身份。类型包括文本、数量、枚举 ID、日期/时刻等,具体合法运算符由产品提供。未输入、明确筛“空值”、不加此条件和未加载不是同一状态;不把空字符串自动解释成不限。范围端点和包含/排除关系须可理解,日期基准继承日期输入合同。
同字段多值的“任一”、跨字段的“全部”,以及复杂分组的 AND/OR 要可读;删除组中最后一个条件后的含义必须已声明。候选基线为移除空的可选组;有必需条件则报未完成,不把缺失值当恒真。替换字段/运算符后只携带类型兼容且仍合法的值;无法兼容时保留可解释的待修正草稿,不静默转换为另一实体,也不带隐藏旧值查询。
分面数量、选项可用性属于带查询上下文的读取结果。须说明计数是按当前其他条件、当前完整条件还是独立全集计算;未取得时显示未知,不能把未知写成零而禁掉选项。已有合法条件因当前查询零结果而暂时没有候选时,不自动删除该条件来扩大结果。选项真正失效或失权时按失效条件处理,而不是同名替换。
2.3 编辑、应用、清除和撤销
复杂筛选采用显式应用(候选);即时筛选可作为另行声明的实例,二者在关闭、清除和子编辑器行为上不能混用。
| 意图 | 显式应用候选的状态转换 | 查询/业务写入边界 |
|---|---|---|
| 打开单条件编辑器 | 捕获本次打开时该条件的原始 D 快照,包括允许持有的未解析/无效原文及校验状态;子层临时值独立 | 打开、浏览候选不应用整条查询 |
| 接受单条件 | 校验字段/运算符/值及目标条件/外层 D 版本;无冲突才把临时值并入 D 一次,标为尚未应用 | 查询 0,业务写入 0;值帮助的“应用选择”也仅到此层 |
| 取消单条件 | 丢弃本子层临时值,保留打开前的 D;D 若被外部更新,则保留最新外部值并提示冲突,不用旧快照覆盖 | 取消不重新查询,不取消整份筛选草稿 |
| 应用筛选 | 验证整份 D 和当前范围;接受为新 A,建立新查询代次/真实首段请求 | 一次明确激活最多一个查询意图;业务记录写入 0 |
| 清除某条件/全部可清除条件 | 仅更新 D,标为待应用;不移除安全范围,不顺带清搜索、排序、列设置或 S,除非标签明确包含该项 | 不因原生表单默认按钮类型误提交;应用前查询 0 |
| 恢复默认 | 将当前有权、当前版本的产品默认值放入 D,并说明与空条件不同 | 不悄悄重新查询、不复活旧权限字段 |
| 撤销本次草稿编辑/清除 | 只恢复该本地修改的原始前态,仍保留未解析/无效状态,但不恢复失权内容;有后续修改时须保留非冲突部分或解释冲突,不能覆盖整份新 D | 查询 0;撤销栈不含已提交的业务写入 |
| 重新应用上次条件 | 用户明确接受历史条件为新 D/A,并重新查询、核权 | 是新的读取意图,不能声称恢复历史数据快照 |
单条件子编辑器同时记录目标条件身份、打开时的条件/外层 D 修订、字段定义/约束及范围/授权版本。打开后若外部改变了同一条件、删除了目标、换了范围或更改了字段定义,旧临时值不能覆盖当前 D,也不能新建同索引的替代条件;接受受阻并要求重新审阅。取消只丢弃本子层变化,不回写打开时的整份 D。若接受含异步校验,另绑定发起时的子草稿修订;继续修改子草稿后,旧的成功或失败都不得应用或污染新值。无冲突的其他条件能否合并由实例声明,不默认整份快照覆盖。
若已应用条件摘要提供直接删除,须明确二选一:标“移除到草稿”并等待应用,或提供结果清楚的“移除并应用”命令。不能让编辑器里的叉号只改 D、摘要里同形且无说明的叉号却立即查询。即时筛选实例可以在明确的值接受/清除后读取,但输入法候选确认、菜单关闭、Tab、布局重排和条件控件渲染都不能作为额外的应用意图;查询与数据写入仍然分开。
应用失败时,保留当前允许持有的 D(包括待纠正的未解析/无效原文)和 A 的失败身份,R 仍标旧查询、旧时间,不能把新 chip、页码和旧行拼成一次成功结果。校验失败不发出无效查询;错误关联具体条件并有完整的逻辑定位。若没有旧结果,展示读取失败,不展示“无匹配项”。成功零结果才提供修改/清除条件的路径。重复点击应用、键盘合成 click 不形成重复的查询意图;明确的“刷新”可产生新读取代次,但不谎称条件值发生了变化。
若应用前包含异步资格/条件校验,校验绑定发起时的 D 修订、完整值/逻辑、约束及授权版本。校验中继续编辑成 D2 后,D1 的旧成功不能应用未经检查的 D2,不能覆盖回 D1,旧错误也不污染新草稿;下一次明确应用时重新核验。只允许当前仍匹配的校验结果被接受为 A。
若 A=Q2 正在读取而 D 已改成 Q3,Q2 的合法成功可成为 R=Q2,D=Q3 仍待应用。若用户随后明确应用 Q3,Q2 晚到的错误或成功都不得改变 Q3 的状态。取消一条子条件编辑不取消 Q2;要停止当前查询必须另有明确的读取取消合同,且只读取消不说明任何写操作的状态。
2.4 URL、历史与保存视图
只有产品已决定可分享/可持久化的非受限查询状态才进入 URL 或保存视图;不直接序列化敏感输入、权限令牌、临时游标、选中全量凭据、字段草稿或 W。删除条件仅移除该条件拥有的参数,不清掉无关的页面状态。URL 不是权限证明,外部链接打开后重新解析范围、字段、类型及权限;非法或失效条件不静默忽略而扩大结果。
候选规则为:URL 表达已应用的 A,页面另标 R 的实际来源和 D 的未应用状态;浏览器历史恢复仍发出新的合法读取,不能只改地址与 chip 而留下错误结果。若离开会丢失 D,沿用 NAV 的单一离开保护(见导航、深链接与上下文保留)。共享/个人保存视图继续沿用原主档的范围绑定合同,不扩大为完整的个性化服务。系统建议或 AI 生成的条件只是待审建议,不覆盖明确选择,不自动查询或执行批量动作。
2.5 键盘、触控、平台与增长
Web 筛选区默认是有名称的表单/分组与自然 Tab 路径,不因横排就赋予 toolbar、menubar 或 listbox 角色。字段内的左右方向键、Home、End、Space 和组合输入归字段;方向导航属于真实的子选择器。子候选上的 Enter 只接受候选,未消费的 Enter 是否应用查询必须由查询表单声明;不得冒泡提交数据编辑表单。Escape 先交给输入法,再交给最高子层;同一次按键即使在处理过程中结束了组字,也不得重新解释为父层的关闭或应用;取消条件仅取消该层,不连带撤销整个 D。移除聚焦的条件后,焦点到相邻的合法条件或新增入口;若用户已离开,不抢焦点。每个移除入口都读出字段、运算和可披露的值。
条件多时用换行、摘要展开或独立筛选面板,保留全部/任一、否定、单位、时间基准和应用/取消入口;不能只截掉条件尾部。RTL 采用逻辑排列,混合编号、数字及区间保持数据含义,不能视觉翻转后改变比较方向。软键盘遮挡时仍能到达应用、取消、错误和已生效范围。隐藏高级区不解除条件,也不接受未完成的子编辑。
iOS/iPadOS、Android、HarmonyOS 及桌面原生共享 D/A/R 身份、提交边界与范围规则;原生字段接受、系统返回、辅助操作、输入法和焦点分别记录,不强套 DOM/ARIA 或 Web Escape。目前没有已核读的这些平台专用筛选条正文或运行证据,不能宣布原生等价。
2.6 FIL-BAR 文档夹具(全部未执行)
| ID/类别 | 固定前置与事件 | 可观察预期与失败判据 |
|---|---|---|
| FIL-BAR-N 正常 | R=A=Q1(类别甲),D 改为类别乙;打开条件值帮助,选 R-003 后取消,再明确应用 D | 取消后保留此前的类别乙草稿;应用前主结果读取 0/业务写入 0,候选检索另计;应用后 A=Q2,一次查询意图,成功后 R=Q2,结果归属与摘要一致 |
| FIL-BAR-F 失败/乱序 | Q1 有旧结果;应用 Q2 失败,旧 Q1 的计数/错误后到 | Q2 失败可修复,旧 R 保留 Q1 标记;旧计数不能冒充 Q2 总数,失败不是零结果 |
| FIL-BAR-R 撤权 | D/A/R 曾含可披露字段 f;撤销读权后返回旧候选、旧结果,再撤销清除 | f 的值、标签、缓存输出不复活,旧授权读取不得更新;不能用撤销恢复受限条件或扩大查询;安全说明可达 |
| FIL-BAR-G 内容增长 | 长否定条件、多层全部/任一、混合 RTL 标识;窄屏/放大后折叠高级区并重新展开 | 条件逻辑不变,否定与基准可获取,只有一个有效编辑实例;布局读取 0/写入 0,应用/取消可达 |
| FIL-BAR-C 清除/撤销 | D 已有未应用修改;清除一个条件、再改另一字段、撤销清除;随后点击恢复默认 | 无关的新修改不被整份旧快照覆盖;若进入前原文 q 未解析,进入后改为 r 再取消,必须回到 q 并仍待修正,不回到确认值或空;各动作只改 D,A/R/S 不变;默认与无条件可区别 |
| FIL-BAR-I 输入/子层 | 条件输入中文组字,Enter 确认;组合框建议打开后再按 Enter/Escape/Tab | 候选确认不同时应用查询;Escape 不穿透多层,Tab 不应用;业务写入始终 0,输入的原始内容不丢失 |
| FIL-BAR-D 草稿与回包 | A=Q2 在途,D 改为 Q3 但未应用;Q2 成功,然后明确应用 Q3 | 第一次成功只更新 R=Q2,D 仍为 Q3;应用 Q3 后,Q2 的晚到回包不再改变当前结果/状态。分支:应用前校验 D1 时改为 D2,D1 晚到成功的接受次数为 0,D2 仍需明确重新核验 |
| FIL-BAR-V 子编辑并发 | 子条件打开时外层 D1 为 x,临时改为 y 且核验在途;外部把目标改为 z,或临时再改为 w → 旧核验成功、接受、取消 | 不用旧结果接受 w 或覆盖外部的 z,接受 0;需重新审阅/核验,取消保留当前外部 D;目标不存在时不按位置重建,失权值不恢复 |
| FIL-BAR-U 历史/外链 | URL 带有权条件 x、失效条件 y 及无关页面参数 z;删除 x 或打开旧保存视图 | 不抹掉 z;y 需修复,不静默删除 y 来扩大结果;URL 不携带 S/W/临时草稿,打开时重新核权 |
来源界限:Carbon Filtering 的直接正文区分批量应用与即时更新;其将清除返回默认的表达不照搬,YUDS 明确区分清除与默认。Geist Filter Params 支持可解释标签、参数所有权以及建议不替换已选值的参照;URL 暴露范围、D/A/R、取消与竞态均为 YUDS 推导,不是供应商 API 承诺。
来源与证据边界见本组来源。
每个条件至少含字段、运算符、类型正确的值、单位或时间基准;空值、未设置和“不限”是不同含义。日期区间、包含端点、时区和相对日期在摘要中可解释。输入组件见输入组件:文本、结构化编辑与专用输入。
简单筛选优先用明确字段;复杂条件组展示“满足全部/满足任一”和嵌套边界,避免只靠缩进表达 AND/OR。删除某条件后的逻辑变化可预测;空组是移除、恒真还是无效由产品明确,不允许实现任意推断。
应用行为可选即时或显式提交。复杂、多字段及远程高成本查询建议显式“应用”;条件草稿修改时保留“尚未应用”标记。查询中显示当前结果的来源;失败时保留原结果与旧条件说明,不把新条件标签贴到旧数据上。
清除单个条件、清除全部和恢复默认必须有不同含义。默认租户、权限及系统安全范围不因“清除全部”被移除,也不暴露给用户任意修改。筛选栏只表达有权查询的字段。
需要声明式公式/条件树编辑时,见输入组件:文本、结构化编辑与专用输入的 B3-EXPR;本篇筛选的类型、逻辑、范围与授权仍是查询主档,EXPR-P1 不替代后端查询语言,也不扩大执行范围。
3. 已应用条件与保存视图
条件摘要要足以解释结果,至少能看到搜索范围、时间、状态和关键排除条件;长条件可展开查看完整逻辑。零结果提供修改条件的入口;查询失败不能说成零结果。
打开前显示本次实际范围;固定范围不可访问时停止应用或提供明确的修复入口,不静默换成当前组织。可复用条件若引用了不适用于目标范围的字段或对象,先解释并修复,不以同名项目/人员替换。所谓“全局搜索”也须说明“全局”指当前安全域、当前组织,还是明确获准的跨范围搜索。
保存定义的组成、原始 D 保护、接受/存储分界、默认/修复和版本回执,统一见下节「B1-VIEW:视图设置与个人配置」。
4. B1-VIEW:视图设置与个人配置
状态:通用契约可修订;初始设计输入按 D01—D08 主档采用,API、设计资产、实际平台支持与全部真实运行仍未验收。七个 role × 固定 step、三个文字角色各九档,以及独立任务至多一个主操作,均保持不变;本族不新增另一套色值或服务能力。
4.1 B1-VIEW-USE:用途、非用途和组合结构
本族只组织已有的筛选、排序、分组、列设置和展示偏好,以及在真实存储能力存在时保存/恢复这些定义。设置视图不改变字段授权,不编辑记录,不生成批量选择凭据,不建立新的查询引擎、共享服务或用户账户系统。复杂条件仍归 FIL-BAR;单一排序的直接入口足够时,不再堆一个设置管理器。临时展示调整无需硬配命名视图。
保存视图与搜索还应声明范围绑定:固定于指定安全域/组织/项目,还是在使用时显式解析当前范围;具体选哪种由产品决定。
先登记实例的视图范围:仅某列表/树表的展示、某数据区的查询与展示,或明确的整页范围。列出所含字段、排序优先级、分组、筛选定义、密度和实际支持的布局偏好;不含的状态也要说明。S、记录草稿、W、游标、认证信息、临时子层草稿默认不在视图定义里。树展开路径能否保存是另一项真实能力,必须按稳定身份与授权恢复,不默认把整个展开树或结果数据写入偏好。
结构:当前视图的名称/来源/范围与修改状态、设置入口、分类分区及必要的搜索、可读的当前有效条件/排序摘要、临时更改与冲突说明、一个接受操作和取消、必要的保存状态/恢复入口。命名视图的选择、另存、管理是独立的次任务;没有实际服务时不展示伪“云端个人视图”。共享视图仅复用既有授权合同,本文不新增分享/权限管理能力。作用域和共享对象不是同一件事:有权使用视图不等于有权读取其数据,数据也不能因视图可分享而被跨域传递。
分区可以是排序、分组、筛选、列等实际支持的子集,使用已规范的标签页/列表/表单。标题不能因为视觉页签而隐藏无效条件。内部搜索只搜索“可配置字段”,不能悄悄执行记录查询。字段显示复选框、待重排的活动项、键盘焦点是三种状态;移列不切换可见性,勾选显示也不让排序跳动。
4.2 B1-VIEW-STATE:临时设置、已接受视图、结果和已保存定义
继续沿用 D/A/R/S/W/V,不新立一套同名状态机。此处的视图定义是范围明确的 A 中查询/排序/分组部分,加上 V 中的展示部分;它不是当前 R,也不是一个 UI 标题。
| 对象/状态 | 证明什么 | 不能用它证明什么 |
|---|---|---|
| 设置会话临时稿 | 本次会话欲改变的定义及原始未解析输入,可预览 | 已应用、已保存、记录已改变 |
| 当前已接受定义 | 用户已确认的实际查询/展示意图,各部分仍有修订身份 | 新查询成功、远端偏好持久化成功 |
| R 当前结果 | 当前可见数据实际来自哪个查询/排序/读取版本 | 当前设置临时稿已经生效 |
| 已保存定义/修订 | 有真实保存回执的某个具体定义,可在获准范围恢复 | 当前又改后的定义已保存、每台设备已同步 |
| 默认视图引用/收藏等元数据 | 仅在真实支持时,记录未来入口的选择或可发现性 | 立即应用该视图、改变数据权限 |
界面需分别表达:无更改、临时已改、核验中、冲突、无效、已接受但新结果待取或失败;个人保存另有:未保存、保存中、已确认、明确失败、结果未知、版本冲突。用户打开共享视图时按当前权限重新查询,数量可能不同;同名范围对象不能替代失效对象。名称相同不等于定义相同,星号不是唯一说明;应给出可读的状态,如“当前设置有未保存更改”。已保存修订与当前接受定义比较后才可标为未改,不能因为收到某次成功就清掉所有未保存标记。
例:“本月待审批合同”若是滚动期间,打开时展示本次解析出的具体起止日;若是月末审查快照,则固定期间与快照。不能仅凭同一个视图名判断两次结果相同。
4.3 B1-VIEW-ACCEPT:多入口和整个设置会话的接受边界
打开设置时捕获:当前允许持有的 D 原始查询稿及修订、A/V 已接受定义及修订、作用范围、字段 schema/约束、授权和会话身份。只含列等 V 设置的会话,不读取 D 来替换 A,也不改 D;可以记录 D 修订用于说明并发,但不因此阻止无关联的 V-only 接受。含查询编辑的设置会话默认从当前 D 原始稿建立临时副本,A 另作“已应用”参照;D 有未解析/无效 q 时,不能用 A 的合法值初始化后假称保留了 q。临时稿保留合法的和尚未解析/无效的原始输入;不拿“上次合法值”冒充取消基线而丢弃草稿。外部筛选条、表头菜单或另一个合法入口与当前会话共享同一语义归属,不能各有一份互不相干的“已应用”状态。
- 默认以“应用设置”一次接受本任务内全部已核验的修改;分区切换、勾显、重排、重置、关闭搜索都只改临时稿。若采用即时模式,须明确哪些已即时接受、哪些仅为预览以及取消的范围,不能沿用暂存式的“取消全部”文案。
- 异步核验绑定:会话实例+临时修订和完整值+schema/约束+当前 A/V/scope/auth 版本;含查询编辑时另绑定原 D 修订及其值/归属。核验 T1 期间用户改为 T2,旧结果不能应用 T2、恢复 T1 或关闭本层;保留当前稿并重新核验。字段内容相同但目标/权限版本已变化,也不能靠值碰巧相同而通过。
- 当前外部 A/V 被改动,或含查询会话的外部 D 被另一入口改动后,应用前先比较目标,标出冲突并重新审阅;不得静默用旧临时稿覆盖。取消只丢弃本层变化,保留当前(而非打开时)的外部 D,并恢复当前外部已接受的 A/V;即时预览只撤销本操作仍拥有的预览,不回写打开时的旧快照。子设置层取消遵循 LP-COMMON,只丢子稿,不盲目还原已更新的父稿。
- 含查询的整套接受,须先把从 D 带入的未解析项修正到可接受状态;成功时才把同一份已核验查询稿接受到 A,并把仍属本次基准的 D 同步为该已接受查询,V 按同次已核验设置接受。接收结果前又改过的 D 不得被同步覆盖。此候选不静默保留一个名字相同但内容不同的 D;如产品另选保留未应用 D 的模型,需明确其可见状态与归属并另行审阅。V-only 接受始终不改 D/A,即使 D 仍无效;整体任务若实际包含查询更改,不能伪称 V-only 来绕过核验。一项必需条件失效时,不能部分接受展示列却静默丢失查询限制。允许部分适用时,需先逐项说明并取得明确接受。此要求是本地视图意图的一致接受,不宣称后端拥有跨服务事务。
- 接受后由既有读取策略取得新 R;读取失败时可保留仍获准的旧 R,并标明其原查询/版本与失败,不假称新设置已经产生新结果,也不自动撤回用户之后的设置。A/V 已接受状态和结果请求失败分别可见。
- 若临时改变仅涉及 V,不重复发送不必要的数据查询;若改变 A 中的过滤/排序范围,查询身份整体换代,S 仍按原范围合同处理,不能因套用视图而把新结果全选。记录草稿可安全保留时,保持其身份与可找到的入口;否则先走既有 NAV 单一离开保护,不自动保存或丢弃。
过滤条 D 有未应用草稿时,载入已保存视图不能悄悄覆盖 D。先按现有草稿保留/离开合同解决;可以提供“保留草稿再切换”或“明确丢弃”的实际路径,不能假设有自动备份。相对时间保持其定义及应用时基准的说明,不把“最近一段时间”暗中固化为日期,也不把固定日期改成动态范围。固定范围失效需要修复,不替换成“当前全部”。读取保存定义同样绑定载入意图、目标视图 ID/修订、主体/范围/schema/auth;选择另一视图或当前接受定义已变化后,旧读取不能改变当前标题、A/V、R 或默认引用。载入列表的高亮、待接受定义和实际已接受视图要分开,不能出现标题指 p1、内容却属于 p2 的混合状态。
4.4 B1-VIEW-EDIT:字段列表、重排、重置与错误恢复
列名/分组名使用稳定的 schema 身份和类型说明,不靠本地化标签匹配。长名称/同名字段提供可达的消歧。可配置不代表可读:安全撤权时立即隐藏受限内容并禁止新的应用/保存,不能等到设置层关闭;受限字段名和原值能否显示按披露策略处理。
列列表搜索不改变完整顺序。重排动作要说明“在完整列顺序中移到某字段之前/之后”,或明确仅在所示集合内移动,并展示可理解的结果。本候选默认按完整顺序操作、用稳定字段锚点确定目标;若筛选后无法说明隐藏项如何保留位置,先退出筛选或显示完整顺序再操作,不默默把隐藏列挤到末尾。拖动之外须有键盘路径及无需拖动的点击路径;边界、固定区域、任务必需列的组合错误能被解释。
重置必须命名目标:本分区的本次进入值、整个设置会话的进入值、当前已保存视图修订,或产品默认定义。只提供产品真实存在的目标;“重置”不能同时意味着清空筛选、切换默认项、删除个人存储和恢复布局。暂存模式中重置只写临时稿,仍需应用;恢复视图定义不撤销已提交的记录,也不恢复已撤回的权限。跨分区重置要在动作前说明范围;已保存视图在会话期间被更新时,旧重置目标须标明修订并重新核验,不混成最新值。
删除/改名字段、类型变化、排序能力消失、分组不再支持时,以 schema 修订检测。可确定无损的展示迁移可在说明后恢复;查询条件失效不得静默丢弃而扩大结果,必要时停止应用并引导修复。不能按旧字段位置把设置套到新字段;未知/不支持的偏好不能写成已验证兼容。恢复默认也要按当前 schema 与权限核验。
4.5 B1-VIEW-STORE:个人配置持久化只在真实能力存在时
| 能力级别 | 可承诺范围 | 失败/限制必须可见 |
|---|---|---|
| 仅本会话 | 当前会话已接受设置可用 | 刷新/离开后是否保留未获保证;不显示“已保存到个人账户” |
| 实际设备存储 | 已验证的浏览器/设备/应用范围和保存内容 | 存储拒绝、容量、清理、私密会话/退出限制;不承诺跨设备 |
| 实际账户远端配置 | 当前主体、空间、视图 ID/修订及服务确认的范围 | 离线、权限、版本冲突、未知回执;跨端同步仅按真实能力说明 |
界面先登记真实的持久化范围、保存动作与回执、读取失败和恢复方式。即使“自动记住”有真实能力,也须明确对象范围和失败状态;不能因为用户改过列就默认允许后台保存、跨设备同步或永久保留。保存的查询值可能敏感,持久化内容遵循已有隐私/披露策略;不把认证 token、原结果值、对象草稿、选中凭据或 W 塞进视图定义、URL、遥测。登出/切换主体后,不把上一主体的配置错套给下一主体;可以保留什么依真实安全策略决定,不承诺能收回先前的外部副本。
应用与保存分开
默认保存当前已接受定义;设置层尚有临时稿时,保存不能偷读临时稿并称之为已应用。产品若确有“应用并保存”组合动作,必须分别表达接受结果、查询结果和保存结果,任何部分失败都不能假称全部成功。没有存储能力时可以继续本次应用,不提供必然失败的保存按钮。
命名视图只在存在可用实现时提供:载入指定修订、保存到自己有写权的目标、另存为新的目标、按权限改名/删除/设默认。名称合法性/重名规则由真实服务提供,本稿不定字符数,也不自动覆盖同名项。公共/预置视图不可写时要说明原因;只有确有另存能力才提供个人副本。能看到定义不代表能读取其所有字段/数据,载入和保存都要重新核验当前资格。
每次保存捕获:主体/空间、目标视图 ID 或创建意图、基准修订、已接受定义的具体修订和值、schema/约束/授权与请求身份。发出后定义又被修改时,回执仅确认原提交版本;不得把新版本标为已保存,也不得覆盖回旧版。服务规范化若改变了语义,应展示已保存内容与当前不同,需用户核对,不把规范化回包悄悄应用到当前视图。
- 明确失败:保持当前允许的已接受设置和未保存标记;错误归原目标,可按实际能力重试、改名或保留本次使用。不要滚回远端旧定义而导致本地改动丢失。
- 未知结果:记录原保存身份。仅在真实服务支持查询或幂等识别时核查/安全重试;不反复“另存”制造多份,也不宣称失败/撤销。没有核查能力时说明结果未知,并提供服务真实允许的恢复途径,不虚构后台任务服务。
- 版本冲突:保留当前稿及允许查看的远端版本,明确选择重新加载或另存(能力存在时);不自动让最后写入者覆盖。不能因文本名称相同而合并两个视图。
- 撤权/切换主体:禁止新的保存,并按当前策略清理受限定义;旧写回执仍归原主体/原目标,不污染新主体状态,不据旧成功恢复受限字段。
设置默认视图是独立的偏好元数据更新,不自动等于“现在应用”。只有真实支持并说明了自动加载/自动执行策略时,后续入口才按其行为;默认指向失效或无权的定义时给出合法入口,不静默扩大条件、自动取全部数据。删除保存定义也不默认删除当前记录/草稿;当前已接受定义能否在本会话继续使用需明确说明。没有管理能力时只提供实际可用的操作。
4.6 B1-VIEW-KEY:键盘、弹层、平台与增长
设置容器沿用 LP-DIALOG/LP-POPOVER/LP-PANEL 选择真实的模态,关闭、子层、焦点返回、异步关闭和未解析稿保护不另写一套。Tab 不保存;Enter 由当前字段/选择器/IME/明确按钮拥有,不能从列搜索、命名输入或子选择器一路冒泡去应用整套设置。内部列表仅在符合相应选择器模型时使用复合方向键;混合了搜索、勾显、移动与错误的设置面板不硬套 listbox。
分区切换不丢临时稿。应用出错时保持会话,聚焦可定位的错误摘要/首个相关字段;用户已移走焦点或有更高层输入时不抢焦点;错误可读,且不靠无限拦截 Tab。关闭非模态设置时,不把已合法的外点/Tab 目的地拉回触发器。重排后焦点仍归被移动的字段/操作,不能跳到同一索引的另一项。宽度调整仅在支持时引用 LP-RESIZE 的开始基线、取消、中断和真实偏好保存合同。
窄屏可全屏展示同一设置任务,不因断点变化开启新会话、新主操作或自动应用。在长视图名、长字段名、很多分区、无效条件、辅助说明和大字体下,范围、错误、应用/取消均可达,固定底栏不遮挡内容。原生端用真实的表单/列表/sheet 导航,保留同样的临时/已接受/已保存含义,并验证触控、读屏、外接键盘、输入法及系统返回。Web 测试不证明原生;设备上保存成功不证明账户保存或跨设备保存成功。
依据:SAP 历史 View Settings/Table Personalization/Variant Management 支撑把排序筛选分组、列设置、命名定义区分开;本稿的多入口版本核验、未知回执、存储分级与权限合同为 YUDS 自身推导,不是其现行实现承诺。View Settings 1.108、历史 Table Personalization、Views 1.96
4.7 B1-VIEW 文档夹具(全部未执行)
以下是文档验收定义,实际运行全部未执行。运行时须记录实际 OS/浏览器/辅助技术/输入法及版本、实现修订、D/A/R/S/W/V、主体/schema/auth/请求身份、焦点/活动后代,以及读取/选择/接受/偏好写入/业务写入的次数;中性数据不包含真实敏感内容。原有底层夹具只引用,不重复计数。
| ID/类别 | 精确前置与动作 | 可观察预期与禁止事件 |
|---|---|---|
| B1-VIEW-F01 正常 | 暂存整套设置再接受。前置:D=A=Q1、V=V1、R=Q1;打开会话 t1,全部字段/范围/权限有效;存储能力关闭。动作:临时把排序改为 Q2、列顺序改为 V2,切换分区;点击应用一次;核验成功;新查询成功。 | 应用前 A/V/R 不变,主结果读取 0;临时稿完整保留。核验后整套接受一次,A=Q2、V=V2,查询意图 1;成功后 R=Q2。偏好持久化写入 0、记录业务写入 0;不显示远端已保存。禁止:切分区即接受、临时重排即保存记录、无能力却写个人配置。 |
| B1-VIEW-F02 取消/并发 | 取消不回滚外部版本及原始稿。前置:t1 基于 A1/V1 打开;外层未解析稿 q 允许保留;子设置层临时改为 r;之后另一合法入口已接受 A2/V2,并把相应父稿改为 z。动作:取消子层,再取消 t1。 | 只丢弃各层拥有的临时变化;当前 A2/V2 与父稿 z 保留,不能回到 A1/V1 或 q。对照(无外部更新)分支:取消后回到允许保留的原始 q,而非上次合法值。接受/持久化/业务写入均为 0。禁止:旧快照覆盖 A2/V2、子层取消覆盖父稿 z、用合法基线清掉未解析原文。 |
| B1-VIEW-F03 异步版本 | 核验 T1 时改为 T2。前置:t1 临时稿 T1,基于 A1/V1/schema1/auth1;异步核验 c1 在途。动作:把临时稿改为 T2;c1 返回通过;再明确应用当前 T2,发出新核验 c2。 | c1 接受 0、关闭 0;T2 保留且仍待核验,不能回到 T1。c2 须绑定 t1/T2 完整值及当前约束/目标/auth;只有仍匹配才接受一次。禁止:旧通过应用 T2、旧通过恢复 T1、旧通过关闭本层、隐式持久化。 |
| B1-VIEW-F04 失败/整套边界 | 失效查询条件不可静默部分应用。前置:临时定义包含限制性条件 f=x 及隐藏列 c,当前 A1/V1 有效;f 不再支持查询,c 的隐藏单独可行。动作:点击应用;尝试重置到含同样失效 f 的保存定义。 | 两次都指出 f 需修复;未经明确的部分适用说明与接受,不更新 A/V。当前 R 仍是原身份;不静默丢掉 f 去执行更宽的查询。禁止:只接受 V 而丢掉 f、扩大结果读取、重置绕过 schema/auth 校验。 |
| B1-VIEW-F05 失败 | 已接受但新查询失败。前置:R=Q1 为合法旧结果;Q2/V2 已整套接受,新查询 q2 在途;当前定义尚未保存。动作:q2 明确失败后,用户明确重试 Q2,读取 q2r 在途;用户继续改为 Q3/V3,完成核验并明确接受;q2r 随后成功到达。对照分支:用户只把临时稿改为 Q3/V3 而未接受,此时仍有效的 q2r 成功到达。 | Q2 接受与 q2 失败分开表达,旧 R 标为 Q1 及其状态,不称为新 Q2 结果。已接受 Q3/V3 后,q2r 不得替换当前结果身份,Q3/V3 和未保存状态不被回滚。对照分支只改临时稿时,仍有效的 q2r 可把 R 更新为 Q2,但临时 Q3/V3 保留不被覆盖,也不称其已接受。禁止:把失败改成零结果、把旧 R 标为 Q2、回滚用户后续定义、偏好写入。 |
| B1-VIEW-F06 重排/事件 | 搜索后的列移动。前置:完整列顺序 a,b,c,d;搜索只显示 b,d;a/c 隐藏于设置搜索结果,但不是表列隐藏;当前只改 V。动作:选择 d 作为待移动项,执行明确的“在完整顺序中移到 b 之前”;切换 b 的展示可见性,再清除搜索,应用。 | 完整次序为 a,d,b,c;a/c 的相对位置不被随意丢弃或归到末尾。d 的待移动状态与 b 的可见性相互独立;焦点仍归被操作的字段。接受 V 一次;A/R/S 不变,数据查询 0、记录写入 0。禁止:移动的同时勾显 d、搜索过滤记录数据、隐藏列全部挤到末尾、改变 S。 |
| B1-VIEW-F07 重置 | 重置目标与暂存范围。前置:t1 含排序和列两个分区;进入值 E 不同于保存修订 p1,p1 不同于产品默认;已有临时改变。动作:点“恢复本分区进入值”;再点“恢复保存视图 p1 的全部设置”;最后取消。 | 第一步只有该分区的临时稿变为 E 的对应部分;第二步明确全范围,且只改临时稿。取消后当前外部 A/V 不变,保存定义/默认引用未改。p1 若已失效须重新核验/说明,不混成最新的 p2。禁止:重置立即发查询、删除个人定义、改变默认引用、恢复撤权字段。 |
| B1-VIEW-F08 草稿/载入 | 载入视图时已有未应用稿。前置:D 含未解析条件 q;记录 A.f 另有允许的草稿 y;命名视图 p1 包含固定范围 U,U 现已失效。动作:选择载入 p1;用户决定保留现稿并返回。 | 不覆盖 D=q 或 A.f=y;固定范围 U 失效需修复,不替换为当前全部。返回后草稿可找到,A/V/R 仍是原身份;载入意图不是业务保存。禁止:静默清空 D、自动保存 A.f、把失效固定范围改为全部、假称有自动备份。 |
| B1-VIEW-F09 真实能力/失败 | 仅会话与设备保存限制。前置:分支甲只有会话设置;分支乙有明确的设备存储,但写入被拒绝;两个分支的 A/V 均已接受。动作:甲分支用户查找保存范围说明;乙分支明确保存当前配置,设备存储返回拒绝,刷新前检查状态。 | 甲只承诺本次使用,不展示云端成功,也不隐含跨会话保留。乙当前 A/V 保持,状态为本设备保存失败并给出可理解的限制;不称账户已保存。两个分支均无远端配置写入。禁止:伪个人云保存、失败时回滚已接受设置、承诺跨设备同步。 |
| B1-VIEW-F10 异步写回执 | 旧保存成功不能把新定义标为已保存。前置:当前已接受定义 v1;真实账户存储,目标 p1 基准 r1;保存 w1 捕获 v1 并在途。动作:用户明确接受 v2;w1 返回保存成功 p1/r2,内容为 v1。 | 保存记录只确认 v1→p1/r2;当前仍为 v2,且与保存定义有差异。状态可解释为旧提交已保存、当前仍有未保存更改;不自动应用 v1。后续保存须捕获 v2 及最新目标基准。禁止:把当前 v2 标为已保存、v1 回包覆盖 v2、用同一回执确认其他目标。 |
| B1-VIEW-F11 未知结果 | 另存超时不重复创建。前置:真实远端另存的创建意图 c1 已发出,服务超时,未确认是否已生成;当前设置仍为 v1。动作:用户再次点保存;分别测试服务有查询/幂等能力与没有此能力两种情况。 | 有能力时仅按 c1 核查/安全重试,结果未知时不另造 c2。无能力时明确说明未知及真实恢复限制,不假称失败/已取消,不承诺后台继续核查。当前设置保留,结果只归原创建意图。禁止:盲目重复另存、把未知当失败自动重发、虚构核查 API 或后台服务。 |
| B1-VIEW-F12 冲突 | 远端修订冲突与保存失败。前置:p1 基准 r1,本地已接受 v2;另一设备把 p1 更新为 r2;当前保存 w1 以 r1 提交。动作:w1 返回冲突;用户查看允许的远端差异,然后选择保留本次使用。 | v2 与未保存标记保留,不被 r2 自动覆盖。只有真实支持时才能另存/重新加载;冲突不按名称自动合并。没有用户新意图时不再次提交。禁止:最后写入者自动覆盖、失败时清掉本地设置、未经意图再次写入。 |
| B1-VIEW-F13 撤权/schema | 字段更替及主体切换。前置:保存定义引用字段 f;f 在 schema2 中被删除,新字段 g 占据原位置;w1 属主体 U 且在途;随后切换到主体 V,f 的读权被撤回。动作:载入旧定义;随后 w1 成功回执与旧字段候选到达。 | f 不按位置映射到 g;失效查询停止/修复,受限内容按策略清理。w1 仅归 U 的原目标,不把 V 标为已保存,不恢复 f。V 不能自动继承 U 的配置或数据范围。禁止:用列序号替代稳定 ID、旧回执污染新主体、静默删除限制条件而扩大查询、受限值复活。 |
| B1-VIEW-F14 元数据/能力 | 默认项、改名和删除不等于数据任务。前置:真实服务仅支持设置默认和删除本人定义;当前已接受 v1 并有记录稿 y;默认 p1 可用,目标 p2 无数据读取权。动作:请求把 p2 设为默认;另一分支对合法的 p1 设默认成功;删除一个非活动的个人定义。 | p2 资格不足,按真实策略拒绝/说明,不自动读取全部结果。设默认只改变元数据,不立即应用/查询;删除只改相应的保存对象,y 和记录不变。没有改名能力时不显示可成功改名的入口;无权限时不假设存在另存。禁止:设默认时自动扩大查询、删除视图时删除记录草稿、提供不存在的管理能力。 |
| B1-VIEW-F15 键盘/嵌套 | 输入与非模态关闭的事件归属。前置:非模态设置层 t1,列搜索正在组字;内部子选择器 c 打开;外部按钮 b 可点击。动作:IME Enter 确认候选;之后 Escape 关闭 c;点击 b,使 t1 按已声明的安全规则关闭。 | 确认候选不应用设置;Escape 只关闭 c,不再关闭 t1。外点关闭后焦点留在合法目的地 b,不拉回触发器。未接受的临时变化依当前会话规则处理,未解析的允许稿不被合法基线抹掉。禁止:Enter 穿透应用整套设置、Escape 一键关闭父子层、外点后抢焦点、Tab/失焦即保存。 |
| B1-VIEW-F16 增长/平台 | 长视图与大字体下的同一任务。前置:长混排视图名、需要消歧的同名字段、多个分区含无效条件;t1 临时稿已改;无运行证据。动作:窄屏/大字体下转为全屏,用键盘和触控定位错误、重排、取消;在原生目标检查同一任务入口及系统返回。 | 仍是 t1 同一临时稿,不因断点重新应用或保存。范围、错误、字段消歧及应用/取消完整可达,底栏不遮挡,最多一个主操作。各平台各自记为未执行;Web 静态检查不证明原生或存储成功。禁止:断点自动接受、第二个主操作竞争、只靠 hover 消歧、把静态检查标为运行通过。 |
| B1-VIEW-F17 读取乱序 | 旧视图载入不能接管新选择。前置:当前已接受 v0;用户请求载入 p1/r1,读取 q1 在途;随后请求 p2/r3,读取 q2 在途。动作:q2 返回并由用户明确接受为 v2;q1 随后成功返回 p1/r1。 | q1 只归已失效的载入意图,不替换当前名称、A/V、R 或默认引用。当前 v2 与 p2 身份一致;任何需要读取的字段/授权仍按当前版本核验。载入保存定义不自动保存当前的临时修改。禁止:旧回包应用 p1、标题为 p1 而设置为 v2、自动改默认、记录写入。 |
| B1-VIEW-F18 D 归属/并发 | 原始 D 与列设置、查询设置分流。前置:D=未解析原文 q,A=Q1,V=V1;q 允许保留;两个分支分别测试 V-only 会话和含查询会话。动作:V-only 会话仅把列改为 V2 并应用,再打开后取消;含查询会话从 q 进入,先尝试未修正就应用,然后把临时稿修正为 Q2 并发起核验;核验期间外部入口把 D 改为 q3,旧核验成功到达;取消会话。 | V-only 接受 V2 一次,D 仍为 q、A 仍为 Q1;取消也不把 q 替换为 Q1。含查询会话在 q 未修正时接受 0;修正稿的核验必须绑定原 D 修订。D 已变为 q3 时,旧成功接受 0、关闭 0,不回写 Q2;取消后保留 q3。无并发对照中,修正为 Q2 且核验通过后才同步 D=A=Q2 及当次 V,之后新的 D 仍不被读取回包覆盖。禁止:打开时用 A 抹掉无效 D、V-only 覆盖 D/A、旧核验覆盖 q3、无效查询静默部分接受、记录业务写入。 |
来源:读取范围及限制见本组来源;精确夹具见本组夹具;冻结稿独立反审只证明文档反例闭合,不证明实现或运行。
证据限制:本族的 SAP 1.151 View Settings/Views 直接页只有外壳;1.108/1.96 及历史 Table Personalization 为官方索引正文节选,不冒充当前完整正文。Geist Fieldset 仅作分组参考,OUDS 未取得本族专门正文;Stripe Apps 不是 Sail,本组没有 Sail 专门证据。个人存储和核查能力不默认存在。
5. 三类选择范围必须可辨
- 当前页:仅当前页中符合可操作规则的稳定记录 ID。建议由表头复选框承担此范围;显示“已选当前页 20 项”。
- 已加载/显式选择:已加入集合的记录,可能来自不同页或视图。显示总数,并指出其中有多少不在当前显示范围,提供完整清单或可查询的摘要。
- 全部查询结果:由服务端解析某一明确的查询、权限和快照语义得到的成员集合。必须有独立的升级动作,如“选择符合当前条件的全部 1,240 项”;不能只因点了表头就默认跨页。
“当前可见 20 项”“本页 50 项”“已加载 200 项”“查询总计 1,240 项”“可执行 1,180 项”不能互换。总量未知时不得显示精确的全选数量;应先解析范围,或明确“按该查询执行,数量待确认”;高风险执行前必须获得足够准确的影响预览。
选择建议用稳定 ID 集合表达,或用服务端范围引用加明确的排除项表达。名称与实现字段未在本稿定案。全部查询范围是选取时的快照、执行时的实时结果,还是持续集合,必须由产品明确;建议高后果批量操作优先冻结范围,或重新预览后再确认,避免新加入的记录被悄悄处理。
6. 跨页、筛选变化和排除项
分页不清空显式已选记录,但始终显示跨页数量。排序只改展示,不改基于 ID 的选择。更换业务对象、租户、版本或权限上下文时,选择不得直接带入新上下文。
改变筛选时的建议策略:普通显式选择可以保留,但要明确“有 X 项不在当前筛选”;全量查询选择应绑定原查询,修改条件后要求用户明确保留原范围或重新选择,不能把原选择静默变成新结果。产品如选择清空策略,应立即说明并提供适当的撤销选择机会,不清掉已在执行的任务范围。
全量选择后取消一项即形成排除项;取消一页要明示排除的是该页的实际成员,不把翻页后同一位置误当作同一记录。查询成员或权限变化后重新解析,报告新增、失效、受限与排除的差异。不可访问成员的计数能否披露仍由产品决定。
7. B1-EXPORT:范围、格式、生成与下载
本节只补组合规则,其余沿用既有主档:查询范围沿本页前文;原始草稿与提交快照沿 FORM-SNAPSHOT(表单校验、草稿与提交);未知恢复沿异步执行、结果核查与恢复;权限沿权限变化、并发修改与保存冲突;离开沿 NAV(导航、深链接与上下文保留);临时层沿 CMP-LAYER(浮层组件:对话框、抽屉与提示)。七角色 × 固定职责 step、label/prose/heading 各九档,以及一个独立任务只有一个主操作的约定保持不变。本节均为可调整的文档契约,不新增实现或服务能力承诺;全部运行未执行。
7.1 B1-EXPORT-01 用途、不适用与解剖
导出用于把明确获准的数据范围生成可离开当前应用使用的文件;它不等于当前表格截图、全库备份、分享权限授予、订阅邮件或业务写入。用户只需少量查看/复制时,无需强制生成任务;没有能力生成全查询结果时,不能用“导出全部”包装已加载数据。
结构按需要组合:导出入口、范围摘要、字段/顺序选择、格式及内容转换说明、确认生成、生成状态、产物摘要、明确的下载入口、失败/过期/安全限制。轻量固定格式可省去配置层,但入口名称或近邻说明仍要交代真实范围。配置页中“生成文件”为主操作;文件就绪后主操作可变为“下载”;多文件批次的统一下载只有能力真实支持时才提供,不能为每行同时铺主强调。
7.2 B1-EXPORT-02 范围与版本冻结
导出捕获一个独立的导出意图快照:安全域、对象类型、范围模式、稳定 ID 或真实可解析的查询引用及排除项、筛选与相对日期的解析语义、字段身份/次序/格式、排序、数据基准和授权代次。这些均为概念记录,不指定数据结构或函数名。
- 当前页:导出当次确认的稳定成员,不因翻页换成新页,不以虚拟滚动视口冒充整页。
- 显式选择:沿用 S 的稳定身份,说明跨页及当前筛选外的成员;不自动加入未选对象。
- 全查询:必须有实际的范围解析能力,并说明是确认时快照还是执行时查询;列表计数不证明生成服务能取得同一成员或同一数据版本。
- 已加载:只在确实仅有本地数据能力时提供,明确数量与局限;不是全查询的静默降级。
D 尚未应用时,导出不能默认用 D 替代 A,也不能把 R 仍属 Q1 的内容标成 Q2。入口要明确“按已应用条件导出”,或明确选择显示结果快照;实例若允许先应用 D 再导出,应是清楚的独立意图和结果关联,不由打开导出框自动应用。点击确认后,页面筛选/排序/选择的改变不改变原导出快照;按新条件重新生成是新意图。
导出配置草稿与确认后的导出快照分离。预检绑定配置修订、字段定义/格式规则、范围及授权版本和本次确认意图;预检中继续修改、取消确认或外部配置更新后,旧成功不得生成新配置,旧失败不得污染新配置或抢焦点。确认只能接受仍然匹配的预检依据;数据/权限的最终检查仍归执行层。
配置子编辑器取消时只丢弃本层修改,保留进入前获准的原始配置草稿(含未解析/无效文本),而不是回到服务端默认值或已确认值。进入后父配置已被其他合法入口更新时,取消不把打开时的整份快照写回,而是保留最新父配置并丢弃本层变化。接受旧的子候选需检查目标身份和父修订,冲突则重新审阅。无外部更新时恢复本层进入前的原文;若编辑直接作用于共享草稿,撤销只在能证明不覆盖后续更新时逆转本层差量,否则保留当前值并提示冲突。
“快照”须有实现证据;若服务只能边读边取实时数据,应披露生成期间数据变化的实际语义,不能宣称完整的同一时点。跨页读取期间发生记录插入/删除而导致遗漏或重复时,不能只靠最终行数声称完整;实现需有适配的一致性策略,否则限制为可保证的范围。数量未知时显示未知,不捏造总计。
7.3 B1-EXPORT-03 字段与格式契约
显示列偏好不自动等于导出字段权限或字段集合。导出前列出实际包含的字段;产品可定义默认跟随可见列,但隐藏列、分组汇总、计算列、脱敏值、展开详情是否包含必须明确。只读不代表允许导出,字段权限在生成和交付时按服务策略再次核验。
格式应说明用途与损失:保留原始机器值还是本地化展示值;日期是业务日期还是时刻及其时区;数字精度、前导零、空值与空字符串、单位、编码、分隔符、换行和多值结构如何表达。不能因表格显示两位小数而悄悄截断业务精度,不能把编号当数值去掉前导零。排序不是唯一标识。CSV 不承诺保存样式、公式类型或多工作表;可访问阅读文件与机器交换文件可以是不同选项,只有已实现的格式才可选。
生成失败、数据截断、字段略去或仅部分记录可导出时,分别说明实际范围与原因(受披露限制)。若产品允许部分产物,文件本身或伴随说明也须能识别“不完整”,不能只在短暂通知中提示。超过限额时不自动只取前 N 行还叫“全部”;可建议用户缩小范围,拆分仅在实际支持并说明各分片范围时提供。
7.4 B1-EXPORT-04 生成、产物与下载是不同状态
独立状态轴:
| 状态轴 | 取值 |
|---|---|
| 配置 | 配置草稿/已确认快照 |
| 权限 | 权限可用性 |
| 生成 | 未开始/进行中/已生成/明确失败/结果未知/取消请求中/确认取消 |
| 产物 | 不可用/可用/过期/撤回 |
| 交付 | 尚未请求/已交平台/平台可证实的完成或失败 |
生成完成不等于已保存到用户设备;点击下载或创建链接不证明下载成功,更不证明用户已打开或读完。
公开 HTML 标准把下载意图、响应、建议文件名和浏览器执行分开;浏览器可因安全或沙箱条件不下载。因此 Web 端没有可靠的落盘证据时,只说“文件已生成”或“已请求下载”,不说“已保存至下载文件夹”。依据:WHATWG HTML:Downloading resources。
后台生成只在实际服务支持时提供:记录真实的任务身份、可查询状态、保留期和可恢复范围。仅在当前会话生成时,明示离开/刷新可能中断或无法核查,沿 NAV/CMP-LAYER 允许用户理解限制后安全退出;不虚构“稍后到任务中心领取”。生成任务的开始回执不是完成;结果未知时先核查原任务,重复点击不自动创建多个任务。产品若证明纯本地确定性重算是安全的,可明确重新生成本地文件,但不把这一能力推及后台任务。
取消生成、关闭进度、撤回产物、取消系统下载分别命名,不能相互替代。取消与完成的竞态采用可信回执:已生成的文件是否仍可领取由真实策略决定;本地关闭不能承诺停止服务器。进度总量不可靠时不报精确百分比。
7.5 B1-EXPORT-05 交付安全与撤权
导出将数据移出应用,需要明确接收方式;“下载给本人”不授权自动发送到邮箱、共享空间或第三方。生成入口与获取产物都要验证相应权限;应用内撤权优先阻止新的输出,并清理可控制的预览、隐藏文字、可访问名称、临时文件引用及待播报内容。任务仍归原范围,仅展示允许披露的状态;切换工作区不能把原产物挂进新工作区。
产物访问应采用与数据敏感度相符的真实鉴权/有效期/撤回机制。若直链或已签发的地址在有效期内无法即时撤回,必须登记这一限制;不能只隐藏下载按钮就宣称文件已不可访问。地址中的访问凭据不应暴露到显示名称、普通日志、可共享的查询状态或通知正文;文件名也不得泄露未经许可的对象信息。文件名、扩展名、媒体类型须与内容匹配,不凭扩展名证明安全;未经验证不生成可执行内容、宏或外链行为。已合法交付到设备或外部的副本不在应用撤权的自动追回承诺内,不扫描/清空用户设备来伪造撤回。
CSV 中的不可信文本可能被表格软件解释为公式;引用与分隔符转义属于语法正确性,不能单独证明公式注入安全。OWASP 明确指出,不同消费者、保存后重开及地区差异都会影响缓解效果,不存在覆盖所有表格软件和下游处理的通用策略。依据:OWASP CSV Injection。
YUDS 建议按目标消费路径制定并实测策略:供人阅读的表格输出需保持不可信内容为文本;机器交换需披露安全转换是否改变原值,不能未经说明加前缀破坏数据。样例至少覆盖等号等公式起始、分隔符/引号/换行形成新单元格、全角变体、负数与正常文本、保存后重开;验证时不执行危险公式。无法证明目标输出安全时,阻止该输出或提供已验证的替代,并说明具体限制;不得把“CSV 已加引号”“用了另一格式”说成无限安全。
7.6 B1-EXPORT-06 键盘、辅助技术、增长与平台
导出配置是普通的有名表单;字段选择沿用既有选择组件,生成是按钮,获取已有文件按实际的链接/按钮语义,不造专有的导出角色。Tab 按范围 → 格式 → 选项 → 执行的逻辑顺序;子选择器的 Enter/Escape 先由子选择器消费,不穿透到生成/关闭。进度更新节流播报,不抢其他任务的焦点;失败摘要可定位到配置项,下载错误与生成错误的位置分开。长文件名可完整获取,多个文件的操作名能消歧;用文本标明格式、实际范围、大小(已知时)、有效期及其时区,不只靠图标。
窄屏、大字下可分步,但最终生成前仍有完整摘要;RTL 不反转扩展名、标识和数字原值。手机交给系统文件/分享界面时,选择目的地是用户动作,关闭系统界面不等于生成失败。Web 浏览器、内嵌 WebView、原生桌面/移动端的保存/分享权限、回执和后台限制各自登记;不能从 Web 点击事件推断原生保存完成,也不宣称已验证任何 OS 后台能力。外部查看器的无障碍和 CSV 解释需要在目标软件中测试,不能由应用页面通过来推断。
7.7 B1-EXPORT 精确文档夹具(全部未执行)
B1-EXPORT-F01
- 关联规则:B1-EXPORT-02
- 前置:域 O1,A=Q1,R=Q1,D=未应用的 Q2;当前页 ID [R1,R2];仅本页导出
- 动作:打开导出并明确确认本页;随后翻到 [R3,R4]
- 预期:生成快照只含 R1/R2 与 Q1;D 仍为 Q2;页面翻页与生成分账
- 禁止事件:打开导出触发应用 Q2;将 R3/R4 加入原快照
B1-EXPORT-F02
- 关联规则:B1-EXPORT-02
- 前置:S=[R1,R3];R3 不在当前筛选内;两个对象当前均有导出权
- 动作:确认导出显式选择
- 预期:摘要说明跨筛选成员;范围为 R1/R3,不补入当前页其他记录
- 禁止事件:按 DOM 可见行替换 S;无提示移除 R3
B1-EXPORT-F03
- 关联规则:B1-EXPORT-02、B1-EXPORT-04
- 前置:仅有已加载的 20 行;显示总数未知;无全查询解析、后台任务、持久查询能力
- 动作:用户打开导出
- 预期:仅提供明确的已加载 20 行等实际可保证范围;说明会话限制
- 禁止事件:“导出全部查询”入口可执行;伪造任务中心;把未知总数写成 20
B1-EXPORT-F04
- 关联规则:B1-EXPORT-02
- 前置:全查询 Q1 范围引用 X1,排除 R2;配置 v1;用户改成 Q2 但未重新确认
- 动作:v1 的生成预检晚到
- 预期:旧结果只归 v1;新配置不被覆盖或自动生成;需重新明确范围
- 禁止事件:将旧的通过结果用于 Q2;按行索引排除另一对象
B1-EXPORT-F05
- 关联规则:B1-EXPORT-03
- 前置:字段编号原值 0007;金额原值 1.2345,页面显示 1.23;导出约定为原始值
- 动作:生成测试文件并以指定解析器检查
- 预期:编号仍为 0007,金额仍为 1.2345;字段类型/单位可解释
- 禁止事件:自动删除前导零;用展示舍入值替换原始值
B1-EXPORT-F06
- 关联规则:B1-EXPORT-03
- 前置:请求全部 100 行,生成器可靠上限 50 行且无分片能力
- 动作:点击生成
- 预期:明确超限并要求缩小范围;不返回假的完整产物
- 禁止事件:静默截取前 50 行并标为全部;伪造分片入口
B1-EXPORT-F07
- 关联规则:B1-EXPORT-04
- 前置:生成请求 E1 已发送;超时;当前会话可查,退出后不可查;无人工渠道
- 动作:关闭进度,并在明确理解限制后离开
- 预期:显示未知与实际限制;允许退出;E1 未被重复发送
- 禁止事件:标为取消成功;自动创建 E2;提供不存在的人工渠道
B1-EXPORT-F08
- 关联规则:B1-EXPORT-04
- 前置:后台任务 E1 存在且可查;用户请求取消;可信的完成回执先确认已生成 F1;当前授权仍允许领取,且产品策略允许保留产物
- 动作:接收完成/取消竞态结果
- 预期:显示已生成且 F1 可用;取消请求未成功停止生成,不标为已取消
- 禁止事件:无条件丢弃完成回执;把关闭视图等同于取消
B1-EXPORT-F09
- 关联规则:B1-EXPORT-04、B1-EXPORT-06
- 前置:F1 已生成可用;Web 仅能观测下载意图,浏览器取消了下载
- 动作:激活下载,再取消系统下载
- 预期:F1 仍可用;应用只报告已请求下载;取消仅由测试操作者从系统界面得知,不伪造应用回执
- 禁止事件:显示已保存至下载文件夹;重新生成 F2
B1-EXPORT-F10
- 关联规则:B1-EXPORT-05
- 前置:E1 正在 O1 中生成;用户切到 O2 后 O1 读权撤回;旧 F1 链接的响应到达
- 动作:接收旧响应;通过应用入口尝试新的获取(0 次新输出),旧直链能力另由 F11 测试
- 预期:O2 不展示 O1 信息;应用入口阻止新的获取与输出,次数为 0;仅保留获准的原任务状态;不据此推断此前签发的直链即时失效
- 禁止事件:旧链接/文件名/AT 说明复活受限内容;宣称外部已下载的副本均已删除
B1-EXPORT-F11
- 关联规则:B1-EXPORT-05
- 前置:F1 曾合法下载;服务直链在有效期内不支持即时撤回;之后撤权
- 动作:查看产物状态
- 预期:停止应用新输出,并如实披露受控范围的限制;不得承诺旧直链立即失效或设备副本追回
- 禁止事件:仅隐藏按钮即标为文件撤回完成;扫描或清空用户设备
B1-EXPORT-F12
- 关联规则:B1-EXPORT-05
- 前置:测试文本集合含
=1+1、+1、-1、@x、全角=、引号/分隔符/换行;约定机器原值模式;目标消费者策略尚未验证 - 动作:要求输出 CSV
- 预期:阻止未验证路径,或提供已验证的替代并说明转换;负数/文本不被无说明地更改;安全测试只用静态/隔离的无害样例
- 禁止事件:声称加引号保证所有软件安全;执行恶意公式;不披露加前缀改变了原值
B1-EXPORT-F13
- 关联规则:B1-EXPORT-06
- 前置:导出配置子选择器打开;IME 组字中;长文件名;两个独立子轮:A 在默认缩放时实际 CSS viewport 宽 320px;B 在真实浏览器 Zoom 200% 下,并记录缩放后的实际 CSS viewport 宽度
- 动作:确认 IME,再按 Escape 关闭子选择器,Tab 到生成
- 预期:第一事件只处理组字;Escape 只关子层;名称完整可获取;主生成按钮未被遮住
- 禁止事件:额外的生成事件;关闭整个任务;高频进度夺焦
B1-EXPORT-F14
- 关联规则:B1-EXPORT-02
- 前置:父导出配置 D1 含未解析的配置原文 b(实例支持该配置手输);子编辑器打开后改为 c;父未更新
- 动作:取消子编辑器
- 预期:父仍为 D1,原文 b/无效状态完整保留;子 c 丢弃;生成 0 次、查询应用 0 次
- 禁止事件:恢复服务端旧有效值 a;取消整份父配置;自动生成
B1-EXPORT-F15
- 关联规则:B1-EXPORT-02
- 前置:子配置基于父 D1;确认预检 C1 进行中;另一合法入口把父改为 D2;随后取消子层
- 动作:对 C1 先后分别注入成功及失败回包(两次独立测试)
- 预期:取消仅丢子层;父 D2 保留;C1 成功不生成,失败不污染 D2;接受旧候选需重新审阅
- 禁止事件:以 D1 覆盖 D2;生成 D2 未经检查的内容;将旧错误附到 D2
来源:原始完整夹具 JSON · 来源登记 · 独立反审。冻结源稿仅作存证(同目录 source-drafts JSON),不构成第二份现行正文。SAP403 路线未请求,未宣称与供应商全文等价;公开正文支持的范围及组合推导边界以来源登记为准。
8. C1-OUTPUT:输出交付扩展
本节是首期通用组合候选(已经过独立反审);不批准服务、平台实现或真实业务能力。全部运行未执行。
共同边界见AI 辅助与用户控制的「C1-COMMON 四类组合共同边界」,仅引用其中输入/异步/权限主档,不要求启用 AI 能力。
8.1 C1-OUTPUT-01 复用边界与首期能力
生成范围、字段/格式、配置草稿、生成任务、产物身份、下载及安全完整复用 B1-EXPORT,不再定义第二套。首期新增的只有“将已核对的产物交给实际可用的系统打印流程”;发送他人、传真、邮件、订阅、定时生成、渠道路由与行业模板留待后续,不能由“输出管理”这一名称授权。
结构可包括产物名称/版本/范围/格式、生成状态、产物可用性、下载与适用的打印入口、交付状态和限制。当前任务的主操作按阶段唯一;下载与打印不同时各用主强调。输出计划、生成任务、产物,以及每次交付的意图/渠道/目的地及可知回执分开记录。屏幕上当前筛选的变化不改变已生成的产物;重新生成须明确为新意图。
8.2 C1-OUTPUT-02 打印交接与可信状态
打印预览是针对明确产物/呈现版本的只读视图,标出实际范围、分页及不支持的内容;它不是再次查询全部数据的隐式入口。需要另行生成打印呈现时,这是一个明确的生成步骤,继续沿用 B1-EXPORT,不把旧产物的标题装入新范围。
只有真实的系统打印能力存在时才提供可用入口;没有能力时说明限制,并保留产物及实际的下载入口。激活后若没有可靠的设备回执,只记“已请求打印/已交系统”,不说已打印、已送达或用户已收到。应用知道系统对话框已关闭,也不能由此判断打印成功。只有声明并验证了真实队列/设备回执的扩展,才可显示其准确支持的完成含义。
关闭系统界面不取消生成、不删除产物、不自动重打。打印请求结果未知时,保留原交付记录并防止重复;只有用户明确确认重新请求且理解可能重复,才形成新的交付意图。查询/取消打印只在平台实际支持且身份可关联时提供,不把取消本地预览说成取消已入队的作业。
8.3 C1-OUTPUT-03 权限、目的地与失效
请求交付前,复核产物身份/版本、可用性、输出权限和可知的目的地约束;授权或产物状态的改变会使旧预检失效。若系统面板内选择的目的地对应用不可见,须说明应用无法核验该细节;如任务政策要求严格验证目的地而平台做不到,则不提供该打印路径,不能假设用户的选择符合政策。
撤销读权或输出权时,优先阻止新的交付并清除应用可控的预览;已交系统或设备的副本不承诺追回。过期/撤回的产物不能继续经缓存输出;系统打印面板打开后的阻止/撤回只按真实能力说明,不把应用按钮消失当作取消成功。切换账户后,回执只归原操作并按其允许披露的状态呈现,不出现在新账户的同名产物上。
8.4 C1-OUTPUT-04 内容、失败与后续渠道
打印呈现保留范围、单位、时间与限制,灰度下仍可理解状态;交互中隐藏的内容、受限字段、临时编辑控件不能被随意包含。实际页尺寸、边距、分页、字体、截断及设备外观需要真实输出验证;设计图不保证任意打印机输出一致。
生成失败、产物失效、打印能力不可用、系统拒绝、结果未知、实际可信的失败各自归位,不用一个“输出失败”清空全部事实。恢复只作用于确实失败的层,不重新生成已可用的文件,也不自动再次打印。
以后若纳入外发渠道,必须另补接收方/地址及内容快照、明确的发送授权、逐项结果、未知时防重、取消/撤回能力、保留与隐私限制;不能用“下载给本人”批准发送给他人。C 输出管理仍保留这些未纳入的子范围及 SAP 专属框架边界,首期打印合同不宣称整套输出系统已完成。
8.5 精确夹具(全部未执行)
C1-OUTPUT-F01 已生成产物交系统打印
- 关联规则:C1-OUTPUT-01、C1-OUTPUT-02
- 前置:P1/V1 已生成可用且权限有效;实际存在系统打印能力,但无队列/设备回执;打印无需再生成
- 动作:明确点击打印一次;系统接收交接
- 预期:交付意图 1 个,生成新任务 0 个;状态仅为已请求打印/已交系统;P1 仍可用
- 禁止事件:声称已打印/已送达;重复生成文件;隐式外发邮件
C1-OUTPUT-F02 系统关闭不删产物
- 关联规则:C1-OUTPUT-02
- 前置:P1 可用;已请求系统打印 D1;平台只能报告面板已关闭,无法证明用户的选择或设备结果
- 动作:关闭系统面板并返回应用
- 预期:P1 仍可用;D1 只记录可证的交接与关闭事实,结果未核实;不说打印成功或取消成功;不自动重打
- 禁止事件:面板关闭等于用户已取消设备作业;删除 P1;重发打印
C1-OUTPUT-F03 缺打印能力保下载
- 关联规则:C1-OUTPUT-01、C1-OUTPUT-02
- 前置:P1 可用且下载能力真实;目标平台无打印能力;无外部转换服务授权
- 动作:查看打印入口/限制,明确请求下载
- 预期:打印说明不可用,打印调用 0 次;下载沿 B1-EXPORT 只报告实际可证的阶段;P1 不失效
- 禁止事件:禁止全部输出;自动上传到转换站;把下载成功称为打印完成
C1-OUTPUT-F04 未知再打印需新明确意图
- 关联规则:C1-OUTPUT-02
- 前置:P1 曾交系统 D1,且无可靠结果/查询;可能已打印;没有平台防重保证
- 动作:再次点打印;先取消“可能重复”提示;随后再主动请求并明确确认可能重复
- 预期:首次新交付 0 次;最终才产生 D2 一次并独立记录;不把 D2 当作 D1 的安全重试;D1 仍为未知
- 禁止事件:未知时自动重打;提示被取消仍交系统;伪造查询
C1-OUTPUT-F05 打印呈现与生成快照
- 关联规则:C1-OUTPUT-01、C1-OUTPUT-02
- 前置:已核对 P1 属于范围 A/R1;当前页面筛选变为 B/R2;P1 的打印呈现也为 V1,无重新生成意图
- 动作:打开 P1 打印预览
- 预期:只预览 A/R1 的 P1/V1 且范围可见;B/R2 不潜入;页面查询/生成/交付均为 0
- 禁止事件:新范围配旧文件标题;打开预览时暗中全量查询
C1-OUTPUT-F06 产物或权限变化废旧交付资格
- 关联规则:C1-OUTPUT-03
- 前置:独立轮 A:P1/V1 预检后产物变为过期;独立轮 B:预检后输出权被撤销(A2);两轮均尚未交系统
- 动作:激活旧打印入口
- 预期:两轮交付均为 0,并说明允许披露的限制;旧预检不沿用;清除受限预览,不承诺追回历史上已交的副本
- 禁止事件:仅按钮禁用但快捷键仍能打印;经缓存绕过过期;旧资格忽略 A2
C1-OUTPUT-F07 目的地不可核验的严格政策
- 关联规则:C1-OUTPUT-03
- 前置:任务政策只允许已核验的目的地 X;系统面板内的目的地对应用不可见,平台无约束能力;产物 P1 可读
- 动作:尝试启用系统打印路径
- 预期:该路径不可用,并说明目的地无法按政策核验;不交系统;不擅自选其他外发方式
- 禁止事件:假定用户选择合规;先外发再提示;把下载权限当作打印权限
C1-OUTPUT-F08 换账户后回执归原操作
- 关联规则:C1-OUTPUT-03、C1-OUTPUT-04
- 前置:账户 A 的产物 P1 交付 D1;扩展平台确实提供可信的任务失败回执;用户切到账户 B,B 有同名但 ID 不同的 P2
- 动作:D1 的失败回执到达
- 预期:不污染 P2/B 的界面,不泄露 A 的内容;D1 按 A 允许披露的策略归原操作;“已生成 P1”这一事实保持不变
- 禁止事件:按同名匹配更新 P2;跨账户播报 A 的标题;丢弃所有已发写入的事实
C1-OUTPUT-F09 系统拒绝与生成成功分层
- 关联规则:C1-OUTPUT-02、C1-OUTPUT-04
- 前置:P1 生成成功可用;打印交接 D1 被平台可信拒绝且明确未入队;没有自动重试配置
- 动作:接收 D1 拒绝;用户返回产物摘要
- 预期:生成仍为成功,打印 D1 为已知失败;保留 P1 及真实的下载入口;不自动重新生成或打印
- 禁止事件:通用“输出失败”清掉 P1;以重新生成作为打印重试;失败时无证据就猜测未打印
C1-OUTPUT-F10 灰度分页与未知设备外观
- 关联规则:C1-OUTPUT-04
- 前置:已生成的打印呈现 P1 含 100 条记录,序号 001 至 100;每条正文“输出”重复 30 次;状态值“正常”“受限”各有文本,而非仅靠颜色;模拟页尺寸仅为设计输入,尚无设备测试
- 动作:审阅打印预览的范围与页标;明确请求系统打印;另记后续真实灰度/分页测试待执行
- 预期:预览能定位完整的 100 条与实际限制,不把缺页视为成功;请求只报告可证的交接;灰度/字体/设备分页未执行的仍记为未执行
- 禁止事件:用截图好看证明任意打印机输出完整;隐藏字段进入输出;仅用红绿表达状态
来源:完整夹具 · 来源与边界 · 独立源稿反审 · 冻结原稿。冻结原稿仅作存证,不是第二份现行规范。
9. 批量动作预览与校验
预览至少包含动作、对象类型、选中总量、可执行数量、跳过/不允许数量、拟改字段与新值、业务影响、可撤销性、必要期限和副作用。作用于全部查询结果时,显示查询摘要及快照/解析时间。不同成员后果不同时,按类别或逐项呈现。
选中不等于有权执行;相同字段也可能有不同的状态限制。服务端预检返回资格与原因,执行时仍重新验证。预览不是锁,也不能保证之后权限和数据不变化;差异达到产品定义的风险门槛时重新确认。
批量编辑需要区分“不修改此字段”“设为空值”“设为某值”。混合原值显示“多个不同值”,不能当作一个空字符串回写。用户没有明确修改的字段不进入更改集。
业务事务模型必须说明:全部成功才提交,还是逐项独立提交。若允许部分成功,预览就要让用户知道可能出现逐项结果;若要求原子性,不能用前端顺序请求伪装事务。
10. 执行状态与并发控制
批次生命周期与逐项结果独立建模。建议生命周期包括已创建、排队、执行中、等待外部条件、取消请求中、已确认结束及状态待确认;只有已确认全部成员均停止执行且所有结果均已核实后,才汇总最终的成功、部分成功、失败或已取消结局。执行中显示“正在处理,已有 n 项完成”,不能因已有部分成功项就把批次标为部分成功并暗示结束。仅在已验证任务查询身份、存储位置、保留期及离开/刷新后的恢复能力时,才承诺离开后仍可查询;否则离开前说明本会话的查询限制,只提供真实可用的下一步,见浮层组件:对话框、抽屉与提示 CMP-LAYER。任务身份、提交时间、范围引用和执行参数保留用于核查。
一个批量任务内部可以并行执行,但结果按稳定的成员身份汇总,完成顺序不影响对象映射。重复点击、刷新和网络重试需要服务端支持的幂等/请求身份;界面禁用按钮只是辅助,不能保证无重复。
多个批量任务若同时影响同一记录,应有产品定义的版本冲突、排队、拒绝或事务策略;不能默认后到的响应覆盖先到的状态。一个任务提交后用户改变筛选,不改变该任务的冻结输入。每个写操作的结果都归属其原任务,不能套用读取请求“只采用最新响应”的策略而丢弃写入回执。
取消是请求,而非立即发生的事实。展示哪些已执行、尚未开始、正在执行及最终确认取消;正在执行的项可能在取消后成功。关闭进度界面与取消任务是不同动作。对不可取消的步骤说明原因并提供安全离开;“稍后查看”只在上述能力已验证的范围内提供。没有持久查询能力时,不能虚构任务中心、宣称退出即取消或自动重发写入。
11. 部分结果、重试与结果待确认
本节说明批量场景;请求、取消与恢复的共同契约见异步执行、结果核查与恢复。
逐项结果采用互斥且可核查的分类:成功、明确失败、未执行/跳过、已取消和结果待确认;执行中的成员另有排队/处理中状态。
后台已确认所有成员均已停止执行、但部分结果尚未核实时,摘要可以明确“执行已结束,结果仍待核实”,此时不汇总最终的成功/部分成功/失败。仅停止接收新工作不能证明在途成员已停止;仍有运行中的成员则保持执行中,无法核实是否仍在运行则显示状态待确认。待确认不能当作失败。
总量与分类数应能对账;资格受限的成员在执行前被排除时,说明它是否计入任务总量,避免报表把选中数和执行数混用。
逐项结果保留对象身份、实际动作、结果、可披露的原因、确认时间及下一步。不能只给一个失败数量或一条很快消失的通知。成功项如果已经改变,应在列表中标出真实状态;失败项保留未完成的意图。
安全重试的条件:已确认原操作未成功,或具备幂等保证;资格和版本重新校验;仅针对需要重试的成员;重新预览变化。待确认项先查原请求或业务结果,不直接重复提交。重试产生的新任务与原任务关联,既保留历史,又不重复累计成功数。
恢复:产品支持原任务查询时,断网后继续查询原任务;只有任务记录及恢复协议支持时,刷新后才通过任务记录恢复。能力不足或记录已过保留期时,说明证据限制并提供获准的核查路径,不能凭本地缓存宣布成功或直接重发。自动重试和重试频率由执行协议明确,并非所有错误都重试。
12. 键盘、辅助技术与内容增长
筛选控件、已应用条件的移除、范围升级、批量预览与逐项结果都可用键盘操作。条件删除后,焦点移到相邻条件或新增入口;批量工具栏出现时不夺焦点。全选范围的变化和结果摘要适度播报,任务的高频进度合并后再播报。
范围、数量、错误原因与单位不能只依赖颜色。窄空间可分步呈现预览和结果,但最终确认前仍能读到完整影响。长查询保留完整的逻辑入口;嵌套的条件组不以无法理解的缩进代替文字说明。
13. 端到端业务例与验收
样例:筛选 1,240 份合同,选择全部后排除 40 份,预览 1,200 项;服务端确认其中 1,180 项可执行、20 项不允许。用户确认对 1,180 项更新负责人。后台已确认所有成员均已停止执行、但部分结果未核实时,界面显示“执行已结束,结果仍待核实”:1,160 成功、10 版本冲突、5 明确失败、5 待确认;20 项预检排除另列,不混入执行结果。
恢复时先查询 5 项待确认;若其中 3 项成功、2 项确认未执行,则实际成功变为 1,163,待确认归零。对 10 个冲突项先审阅新版本,对 5 个失败项和 2 个未执行项按资格与幂等协议决定重试。不能重发 1,180 项,也不能把 20 项预检排除说成执行失败。
全部验收未执行:远程多页全选、排除项、未知总量、筛选变化、共享视图失效条件、删除末页记录、执行前权限变化、两个任务冲突、重复提交、乱序写回执、取消竞态、部分结果对账、未知状态查询及键盘完成全流程。
13.1 FT-COMB 文档夹具(全部未执行)
| ID | 中性记录任务与事件 | 需同时成立的断言 |
|---|---|---|
| FT-COMB-01 | Q1 页 1 选择 R-001,页 2 选择 R-002;编辑未应用的 Q2;从已应用 chip 移除条件到草稿;取消该编辑,再明确应用 Q2 | 原 S 按 ID 仍可查,未应用阶段不换查询;Q2 真实页父 E 重建,S 不随 Q2 新成员扩张;读取/选择/写入事件分账 |
| FT-COMB-02 | Q1 全查询范围 S 已选并排除 R-002;Q2 应用成功且同位置为 R-003;点击批量预览 | 先明确保留 Q1 原范围或重新选 Q2;排除始终是 R-002 身份,不能排除 R-003;服务无范围解析能力则阻止伪全量执行 |
| FT-COMB-03 | 值帮助内普通表筛选、排序、分页、列设置;外层字段已有草稿;最后取消值帮助 | 内部只是查询/临时选择,外层当前允许持有的原始草稿(含未解析/无效原文)不回退为远端旧值;只有“应用选择”可接受到字段,任何分页/清除/排序的业务保存为 0 |
| FT-COMB-04 | 编辑网格 R-001 组字中,另收到排序/分页结果、列设置隐藏提案与撤读权;其后旧输入结束及保存回执到达 | 继承 GEN-GRID-02 和权限优先:无受限复活、无替位串写;原写回执不丢弃但只呈现获准信息;焦点到安全目标,未知任务不假称失败/取消 |
以上组合补充现有 GEN-F09 普通表及 GEN-GRID-01/02 的证据边界。普通表测试不证明网格;筛选文档完整不证明后端可解析全量范围;静态扫描、链接有效、供应商示例和文档走查都不能填“运行通过”。不新增批量事务、公式、分析引擎、任务服务或行业规则。
交付时每族至少记录:任务/非任务、语义与查询策略、允许状态、事件和取消边界、稳定对象/字段/查询/页/授权身份、计数来源、焦点去向、平台映射、内容增长及实际运行证据。夹具运行记录需包含前后 D/A/R/S/W/V、输入上下文、意图/读取/写入次数、旧回包处理、可访问名称/通告及撤权清理结果;受限测试数据用中性夹具,不在日志散布真实敏感值。
仍须产品/服务确认的能力:字段类型与比较规则、默认/可清除/上下文条件、精确/估算总量、分页定位及游标寿命、稳定快照/同值次序、全查询选择解析、权限披露、偏好保存范围、草稿保留以及原任务核查。没有证据时呈现真实限制、选择可完成的安全路径;不以规范措辞宣布这些能力存在。
13.2 官方证据的边界
- SAP 1.151 Filter Bar、Grid Table、Responsive Table:直接读取官方页面时仅取得标题、组件名与 Usage 外壳,没有取得行为正文;目录中的 D 级/部分覆盖保留,待补。Table Web Component、Contextual Filter、Analytical Table、View Settings/P13n 等仅继承目录定位,不用于行为结论,不推定弃用替代。
- Geist、Carbon、W3C 的采用范围见相邻来源 JSON。供应商的示例、API、大小写、尺寸、阈值与保存默认不是 YUDS 已批准值。Carbon 是辅助通用参照,不替换 SAP 的覆盖目标或 Geist 的视觉方向。
- WCAG Reflow Understanding 明确区分二维表体与单元格/外围筛选和分页的适用范围;Status Messages Understanding 区分结果列表与搜索进度/数量短消息。说明文档不是本实现认证。
- UI Events:所读为 2026-02-21 Working Draft 中组合事件相关段落,说明组字上下文与设备差异;不作为所有浏览器/原生事件顺序已验证的证据,业务不误提交的规则仍属 YUDS。
- OUDS 没有核读本组三族的专门正文,Stripe Apps 也不作为 Stripe Sail 的完整规范;不从名称或其它组件片段外推这三族的覆盖。
本页共 31 条新文档夹具:筛选 9、表格 10、分页 8、组合 4。另引用既有 GEN-GRID-01/02 而不重计。所有运行均未执行,不给整体分数,不升级为 SAP 对等覆盖。
来源与证据边界见本组来源。
14. 尚需确认的产品输入
以下业务事实需要产品输入:查询快照支持、总量准确性、执行事务边界、选择有效期、预览差异重新确认门槛、幂等与任务查询能力、取消语义、结果保留期限、可披露原因和字段权限。YUDS 不自行决定这些业务事实;不足时应明确能力限制并缩小安全可交付范围。
15. 查询、分页与批次对账夹具
规则 YUDS-090300-01(查询代次)
请求绑定已应用条件、实际安全范围、排序与分页标识。新查询尚未成功时,旧结果保留旧条件标记;新查询失败不改成“无结果”。显式 ID 选择跨页保留且可查看范围;全量查询选择绑定原查询,条件变化必须明确保留原范围或重新选择。删除末页最后记录后,仅在确认删除与新页读取成功后迁移位置,不能先显示不存在的页已成功。
规则 YUDS-090300-02(批次集合)
「部分结果、重试与结果待确认」的分类按稳定成员身份互斥对账。对总量已知的批次,已成功+明确失败+未执行/跳过+已取消+排队/处理中+待确认之和等于实际任务成员数;预检排除项在批次外单列。若缺少分类证据,余项记待确认,不从总量减法猜成失败。回执按原任务归档,读取代次淘汰规则不得用于写回执。
规则夹具(运行未执行)
| 规则 | 输入与动作 | 可验预期 | 反例 |
|---|---|---|---|
| YUDS-090300-01 | 查询 Q1 选 A、B;应用 Q2 后失败,随后 Q1 旧请求返回 | Q2 显示查询失败;保留的 Q1 结果明确标旧条件;选择 A、B 及其中不在当前范围的项可查 | 新标签覆盖旧数据;晚到 Q1 冒充 Q2 成功 |
| YUDS-090300-01 | 全量 Q1 选择后改为 Q2,点击批量预览 | 要求确定执行 Q1 原范围或重新选择 Q2,再显示真实预览 | 一个“全选=true”让 Q2 新记录自动加入 |
| YUDS-090300-02 | 已停止的 5 项批次:A/B 成功、C 冲突、D 未执行、E 待确认;请求重试 | 先查 E;A/B 排除,C 先解冲突,D 重新验证;只有安全且当前获准的集合可重试,关联原批次 | 把 E 算失败并全量重发;合计重复累计 A/B |
批次恢复的共同规则主档为异步执行、结果核查与恢复;这里不指定幂等键或任务 API。上述运行验证未执行。