用途:面向 ServiceNow 经典 Workflow 引擎(非 Flow Designer),用于读取和变更 wf_workflow、wf_workflow_version、wf_activity、wf_transition、wf_context。工具描述中带 LEGACY 标记,表示不建议用它构建新行为,但可用于理解既有流程。
版本模型:wf_workflow 是流程身份,几乎不含内容;wf_workflow_version 才是真正的流程,每次签出产生一个版本,含 published 字段;wf_activity 与 wf_transition 属于版本而非流程;wf_context 是已发布版本针对某条记录的一次运行实例。流程不是就地编辑:签出生成 published=false 的新版本,编辑后发布翻转为 true 并淘汰旧版本;已在运行的记录继续执行原版本。因此先要确定版本,例如按 workflow.name 与 published=true 查询 wf_workflow_version。
读取:snow_workflow_manage 负责除创建外的操作。action="list", table 可查某表上运行什么;action="get", workflow_id 返回流程及其活动与转移;action="get_history", context_id 查执行历史。
运行实例:查询 wf_context 可按 workflow_version.workflow.name 与 state 过滤当前执行;stop 取消执行但不撤回已生成审批、不回滚记录状态;retry 重跑失败活动;snow_workflow_analyze 按时间窗口聚合 context 的错误与耗时模式。
启动:snow_start_workflow 插入 wf_context 后返回,实际异步执行,需轮询 state。写入工具的陷阱:snow_create_workflow_activity 与 snow_start_workflow 的 workflow_version 字段引用 wf_workflow_version,若传名称会按 wf_workflow 解析出 workflow sys_id 而非 version sys_id;只有传 32 位十六进制 sys_id 才跳过查找,应先自行解析版本再传其 sys_id。
限制:即使正确调用,向已发布版本添加活动也是改动运行中的流程;安全顺序是签出→编辑未发布版本→发布,而签出是 UI 操作,无法签出则不应写入。取消 context 不等于撤销 workflow。剩余细节暂未提供。