状态:全篇为通用设计契约候选,SCH 契约和时间选择是 YUDS 自行制定的有界方案;未实现,验收未运行,文档夹具全部未执行。覆盖 FAM-003 的日期/日程读取与显式选择、单次日程修改提案,以及 FAM-037 的只读依赖时间线;不代表与 SAP 全能力对齐,不提供排程引擎。 更新:2026-10-20(UTC) 所属章节:复杂数据工作模式
1. 用途、取舍与来源
SAP Planning Calendar 区分同类对象之间的时间比较与更复杂的 Gantt 场景;SAP Gantt 说明活动、资源、层级与依赖的表达,也允许只读应用。这里借鉴的是任务分工,不照搬 SAP 行数门槛、平台能力或控件 API。SAP Planning Calendar,v1.96、SAP Data Visualization:Gantt。以下 SCH 契约和时间选择为 YUDS 自行制定的有界方案。
来源依据(2026-10-20):两份 SAP 资料均只取得搜索索引中的正文摘录(Planning Calendar 为 v1.96 页,不代表完整页面或当前最新版本;Gantt 取自 Data Visualization 分类页,未明确绑定指南版本;旧版 Gantt v1.71 及旧 experience.sap.com 单篇地址未能读到正文),仅用于核对上述用途区分。本篇不据这些资料宣称现行 SAP 全量行为、行数能力或平台支持。
| 实际任务 | 本篇模式 | 不应借此承诺 |
|---|---|---|
| 选一个日历日期并读取该日条目 | SCH-CAL 日期+议程 | 工作日计算、会议邀请、空闲保证 |
| 在已提供的同类资源中核对时段、提出一次修改 | SCH-PROP 日程本地提案 | 资源锁定、预约成功、冲突已排除 |
| 看任务起止与已有依赖 | SCH-TIME 只读依赖时间线+表 | 自动排程、关键路径、依赖编辑 |
仅输入日期的普通表单沿输入组件:文本、结构化编辑与专用输入,不必加载资源规划界面;没有时间语义的关系用地点选择与只读关系探索。时间顺序不是流程状态;审批步骤沿流程推进与协作责任。没有稳定身份、可解释时间或依赖方向时,先显示带问题状态的列表,不制造精确图形。
2. SCH-BASE:公共输入、身份与时间
本节是消费协议,不是已批准的组件字段名。消费者必须提供:实例/主体或空间身份、当前授权代次、数据范围、快照或各项读取时间、覆盖完整性、允许的本地动作、条目稳定 ID、来源版本、可见名称、时间种类与值状态。日程另有资源 ID;依赖另有独立边 ID、起点/终点 ID、产品给出的类型/方向和解释。名称、行号、像素坐标不作键。
SCH-BASE-01 时间语义
本篇只支持公历日期和有明确时区的时间点。日期仅值(如 2026-10-20)不经 UTC 午夜转换;全天事项用日期起点和不包含的结束日期表示。定时事项由来源提供可定位的时间点,显示时区采用明确 IANA 名称;原始时区与显示时区不同时可查。区间统一为起点包含、终点不包含;里程碑是独立时间点类型,不拿零长度日程伪装。
显示窗口、选中日期、选中条目和“今天”是不同状态。“今天”按显示时区计算;跨午夜不自动跳视图或换选择。周起始日、日期格式与时间制是呈现设置;改变它们不改底层日期。跨日条目在各日的片段保留同一身份并有“始于/延续至”说明,不变成多个事项。
日程提案输入本地日期/时间时,必须明确对应的 IANA 时区。夏令时不存在的当地时间应报错;重复的当地时间须选择具体偏移/时间点,不静默选第一次。无法进行可靠时区解析的实现只支持只读与日期选择,不能启用定时修改。小时与日视图只是显示粒度,不自动舍入事实;不把显示重叠当资源冲突判定。未来非公历、重复规则、相对项目周、工作日历和跨时区持续时间算法均未纳入。
SCH-BASE-02 状态与接收门
分离已接受范围 Q、展示位置 V、实际数据 R、本地选择 S、提案 D、请求身份和权限。读请求绑定实例、主体、Q 修订、时区、来源快照要求、授权代次与请求序号;仅完整匹配的当前结果才能改变 R 或当前错误。旧成功、旧失败与关闭后的响应都不抢焦、不复活选择。
若消费者只提供静态数据,翻页只能在声明的已提供范围内进行;不能把导航按钮包装成已有远程查询。窗口外显示“此范围未提供”,不显示“没有事项”。刷新失败可保留仍获准的旧数据并标时效;部分数据不能称“空闲”。权限撤回清除相关标题、时间、资源、派生计数、缓存及新复制路径,必要时清空 S/D;不得借空白条块泄露受限事项的存在。已合法外部副本不承诺追回。
3. SCH-CAL:日期与日程读取/单选
3.1 解剖与模式声明
至少有任务标题、显示时区、可查看范围、前后/到日期/今天入口、日期区、当前日期议程、完整性/错误说明、单项详情及返回。资源比较模式另有资源名称和与时间轴关联的行标题。拥挤时使用“查看该时段条目”而非不可命中的色块;该按钮打开同一范围完整性受限的列表,不声称所有记录已加载。
消费者在实例开始时声明一个选择目标:日期单选或日程单选。日期单选只接受日期值;打开事项详情不顺便改日期字段。日程单选只接受稳定条目 ID+当前来源版本;切换日视图是浏览,不是更改已接受事项。范围多选、跨资源多选不在本次契约内。
3.2 可观察事件与取消
| 意图 | 状态转换与输出 | 禁止副作用 |
|---|---|---|
| 导航至某日/窗口 | 改 V;需要真实读取时请求新 Q,标记在途 | 不发选择接受、不创建事项 |
| 打开单选会话 | 记录调用方值 C 及其修订;建立临时 S | 不把今天设为默认已接受值 |
| 点击日期/条目 | 改临时 S,详情可读 | 不写回字段,不远端保存 |
| “使用此日期/事项” | 校验选择范围、当前来源与授权、C 修订;产生一次本地 selectionAccepted(语义名) | 不声称日程已预约 |
| 取消/Esc/返回 | 丢弃本次临时 S,调用方 C 保持;关闭子层 | 不清空原字段,不撤销其他会话动作 |
可直接嵌入只读议程,选择会话并非必须。若调用方在选择层打开期间改变 C,接受应停在层内说明“原值已变化,请重新核对”;不覆盖外部新值。待核验期间更改 S 会令旧核验失效,不能迟到应用旧项并关层。已失效/无权限的 S 不自动换成相邻项;说明后重新选择。
3.3 输入与可访问替代
默认提供普通日期输入+前后日期按钮+按时间排序的议程列表作为完整基本路径;用户不必操作二维网格。若 Web 实现日期网格,须按日期网格的实际语义落实单一进入点、方向键日期移动、月导航和明确选定,并记录键位;不能只有 grid 角色。键盘焦点移动不接受值。Tab 可离开日期区到议程与确认,Enter/Space 只按当前具名控件语义操作。
每个条目读出名称、资源、完整起止/时区、全天或时间点、状态、是否跨窗口及是否可选择;详情不能只在悬浮出现。触控可点日期和列表项,所有导航都有单指针按钮。取消详情按浮层组件:对话框、抽屉与提示 LP-G05 回有效触发位置;用户已转到有效外部焦点时不抢回。日期被过滤或授权撤回时先清理失效选择;仅当当前焦点目标也已失效/将被移除时,才按 LP-G05 修复到当前议程标题/说明。焦点仍在合法外部控件时保持原处,不因选择清理或后台响应抢焦。
4. SCH-PROP:一次日程修改的本地提案
4.1 有界能力与结构
仅针对一个已有、非重复定时日程,修改起点、终点和(消费者提供可选集合时)资源;不创建邀请、不通知他人、不创建新业务事项、不提交服务。必须具备稳定对象/来源版本、可解释时间、获准读取与提出修改的能力;缺任一项不显示可用修改入口。按钮文案为“提出修改”,最终为“使用此提案”,不能叫“保存日程”。
结构为原值摘要、目标资源、起止/时区输入、变化预览、可知校验结果及未知项、取消、使用提案。图上拖动只能作为可选快捷入口,落点进入同一个提案表单;拖动中只更新预览,取消/指针丢失丢弃该手势,不留下半改条目。无拖拽的表单是基本路径,键盘与单指针分别可完成。
4.2 提案状态机与接受条件
- 打开:冻结基线 B=对象 ID、来源版本、原资源、原时间及授权代次;D 从 B 初始化,状态为未修改。
- 修改:D 修订递增,之前校验失效;图中真实 R 不改变。起点必须早于终点,资源须属已提供允许集合,时区解析必须无歧义。验证不成功则保留输入原文与字段错误。
- 核对:展示原→新值、明确时间区间与时区。只声称实际完成的校验;本地格式/范围有效不等于资源可用。没有冲突服务时显示“未校验资源冲突”,不显示绿勾“可排期”。
- 使用:重新检查 B、D 修订及权限未失效;发出一次本地 proposalAccepted,内容含对象/基线版本、原/新值、提案 ID、未校验事项。调用方只得到未提交提案,不得到业务成功结果;R 继续显示原事实。
- 取消:丢弃 D,发出本地 proposalCancelled(如调用方需),不产生写入与通知。关闭前有草稿时沿宿主未保存更改约定;不可将“关闭”解释成已执行业务取消。
校验可在本地完成;仅当消费者明确提供验证服务时才异步调用,必须绑定 B/D/规则/授权/请求身份。等待中编辑、取消或授权变化均使结果失效。来源新版本到达时提案标为“基线已变化”,不得静默合并;允许查看差异,重新基于新事实开始提案,原草稿仅在仍有权的本地范围保留供核对。不自动重放已经接受的提案。
SCH-PROP-01 外接写入门
本篇到本地提案交付即止。若产品后来要提交,必须另交提交/幂等身份、并发校验、结果查询、权限、通知范围、业务确认、失败/未知和撤销能力契约,并沿异步执行、结果核查与恢复、权限变化、并发修改与保存冲突验收。未完成之前不开放远程提交,不把提案 ID 冒充服务任务 ID。
5. SCH-TIME:只读依赖时间线
5.1 输入与解剖
用途是沿已有任务和依赖理解起止、顺序及来源。主体包含共用标题/快照、时间轴、任务表、时间条/里程碑、关系图例、选中对象详情、依赖明细表和范围/质量状态。表与图同一对象 ID、过滤与快照;表至少含任务 ID/名称、起止及时间种类、资源(如有)、状态,依赖表含边 ID、起点、终点、类型及提供的解释。
来源必须声明有向或无向、依赖类型是否为产品定义,及覆盖范围。本篇不从箭头猜“完成后开始”,不推算时差、关键路径、最早/最晚日期。端点缺失分为当前范围外、数据不完整或受限;只有获准披露时才显示占位及原因,否则不暴露名称、ID 或数量。相同端点可存在不同边 ID;不能去重丢掉不同关系。
5.2 阅读行为
缩放/平移只改 V;有“到日期”“定位所选任务”“缩小/放大”和完整表格路径。点击条块/表行选择稳定任务 ID,详情显完整值;点击边或依赖表项选择稳定边 ID,显示方向和类型。焦点与选择分别表达;缩放不换任务、不改起止。多层级只在来源真有父子关系时显示,折叠不删除子任务,汇总时间须由来源提供并注明规则,不由子项极值擅自计算。
图的筛选需有已应用条件与覆盖说明;过滤隐藏当前选择时可保留“当前选择不在此视图”提示及清除入口,不伪造可见条块。重新布局或窗口调整不改业务身份,只有显式定位才把视图移到所选对象。刷新移除选中项时说明已不可用并清除失效选择,不随机选下一任务。选择清理与焦点修复独立:仅当前焦点目标已失效/将被移除时,按 LP-G05 修复到结果标题/仍存在的控件;若焦点在另一合法控件,保持原处,不被后台刷新或撤权抢走。
5.3 错误、替代与未来扩展
非法时间、端点无效、循环依赖和未知依赖类型均可作为来源/质量说明读取;循环不是自动排程错误结论。某任务不能绘图时仍在获准表中显示原值及原因,不默默删行。无依赖数据与已知没有依赖不同;图加载失败但表可用时保持读取/选择能力,单独说明图不可用。
Web 以普通表+具名详情按钮保证基本任务;非交互 SVG/画布不冒充可操作网格。图若提供键盘复合导航,必须另说明顺序和进出机制,并保留表路径。触控不用沿细线精确点选,可在关系表选边。移动端优先任务列表→时间详情→前驱/后继列表,不把大型 Gantt 缩成不可读缩略图;表仍可核对同样起止/依赖,不以截图替代。
本次明确不支持:拖条改期、拖线建边、边删除、自动传播日期、资源平衡、关键路径计算、基线计划回滚、批量日程修改、持续时间工作日算法、仿真以及远端写入。未来编辑族必须独立于本只读族制定事务边界、循环/约束规则、影响预览与并发恢复;不能通过启用拖拽选项自动升级。
6. 视觉、平台与验收
沿现行七 role×固定 step、27 文字尺度和每独立任务至多一个主操作;默认 primary 墨色、neutral 中性灰,不复制 SAP 蓝色或增加时间类别 UI role。类别沿独立数据字典,当前日期/选中/焦点/风险用名称与形状冗余区分。时间网格线不压过数据;文本截断有可打开完整详情,不用缩小字体挤条块。
四端目标沿平台适配、国际化与输入能力;Web 键位不直接当 iOS、Android、HarmonyOS API。原生以列表、日期/时间输入、系统读屏语义映射同一任务。字体放大、横竖屏和系统返回保持 S/D 身份;背景恢复须重新校验授权及来源,不自动交付提案。以下是精确文档夹具,全部运行未执行。
| 夹具 / 前置与操作 | 必须观察到的结果 | 禁止事件 |
|---|---|---|
| SCH-F01:C=10 月 20 日;临时选 21 日后取消 | C 仍 20 日;selectionAccepted=0;写入=0 | 取消清空/改成今天 |
| SCH-F02:日期选择层开于 C 修订 1;宿主改修订 2 后接受旧 S | 停留并提示原值变化,接受=0 | 覆盖宿主修订 2 |
| SCH-F03:2026-11-01 01:30 America/New_York,未选重复时刻的偏移 | 提案不可接受;需选择具体时间点 | 静默使用首个 01:30 |
| SCH-F04:2026-03-08 02:30 America/New_York | 非存在时间错误,输入保留 | 自动改 03:30 并接受 |
| SCH-F05:全天[10 月 20 日,22 日),切显示时区 | 仍覆盖 20/21 日,22 日不包含 | 经 UTC 转换平移日期 |
| SCH-F06:B=v1,D 改起止;无冲突服务;使用提案 | 原 R 仍 v1;一次本地提案,注明冲突未校验;写入/通知=0 | “已预约”“保存成功” |
| SCH-F07:D1 验证在途,改 D2 后 D1 成功/失败到达 | D1 结果均不应用、不关层;仅 D2 可用 | 晚到校验错误覆盖新稿 |
| SCH-F08:编辑时来源 v2 到达/权限撤回,分别运行 | v2 令基线失效;撤权清除受限草稿与派生值;均不接受 | 静默重基线或保留敏感预览 |
| SCH-F09:窗口 Q1 读取在途,导航 Q2 再取消查看,Q1 返回 | 不改变 Q2/已关闭会话,不抢焦 | 旧结果复活视图 |
| SCH-F10:任务 A→B 有两种不同边 ID;表/图选择边 2 | 保留两边并显示正确方向/类型;写入=0 | 合并成一边或自动改期 |
| SCH-F11:任务 C 时间未知、边端点受限、结果部分覆盖 | C 表中说明未知;按披露策略隐藏受限信息;说明部分 | C 消失、受限名称露出、“无冲突” |
| SCH-F12:仅键盘/仅单指触控/读屏,分别读取、选择、提案、取消及查依赖 | 可通过表单和列表完成;身份/时区一致,取消零写入 | 必须拖条、悬浮或精确点线 |
| SCH-F13:已选 A,焦点在另一合法筛选控件;分别刷新移除 A/撤回 A 权限 | 清理 A 选择及相应受限信息;焦点仍在原筛选控件,接受=0、写入=0 | 因选择失效强制聚焦标题或下一任务 |
消费实例冻结平台/构建/时区库版本、样例快照、授权、数据完整性、真实能力及日志后再执行。所有能力声明仍是候选契约,未以文档夹具代替运行证据。
相关:时间与格式见指标、数值与时间格式。