关于 approval-workflows
用于配置和管理 ServiceNow 服务目录审批的技能,面向目录管理员。内容包括审批规则、顺序或并行路由、委派、升级及审批监控。
主要功能
- 01配置审批规则和条件
- 02设置顺序或并行审批
- 03管理群组与审批委派
- 04设置截止日期和升级
- 05查询并处理审批请求
适用场景
- 01为高价值目录请求设置审批路由
- 02在审批人缺席时安排代理
- 03查找停滞或逾期的审批
MCP 相关
使用 SN-Query-Table、SN-Create-Record 和 SN-Update-Record 等 ServiceNow MCP 工具检查、配置和处理审批记录。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill approval-workflows安装后在 Claude Code 中输入/approval-workflows确认已加载。
详细介绍
服务目录审批工作流
概述
此技能涵盖服务目录项目的审批管理:
- 了解审批架构
- 配置审批规则和条件
- 多级审批和并行审批
- 审批委派和代理
- 配置超时、提醒和升级
- 监控和管理审批请求
适用场景: 设置目录项目的审批流程、排查卡住的审批,或实现复杂的审批路由时。
前置条件
- 角色:
catalog_admin、approval_admin或admin - 访问权限: sysapproval_approver、sc_ic_aprvl_type_defn、sc_ic_aprvl_defn 表
- 知识: 服务目录结构、审批概念
- 相关技能: 应先完成
catalog/item-creation
操作步骤
步骤 1:了解审批架构
审批表:
| 表 | 用途 |
|---|---|
| sysapproval_approver | 单条审批记录(每位审批人一条) |
| sysapproval_group | 基于群组的审批 |
| sc_ic_aprvl_type_defn | 目录审批类型定义 |
| sc_ic_aprvl_defn | 目录专属审批定义 |
| sys_approval_rule | 系统级审批规则 |
审批流程:
Request Submitted
↓
Approval Rule Evaluated
↓
Approval Records Created (sysapproval_approver)
↓
Approvers Notified
↓
Approver Takes Action
↓
Next Level (if multi-level) OR Complete
审批状态:
| 状态 | 值 | 说明 |
|---|---|---|
| 尚未请求 | not yet requested | 尚未触发审批 |
| 已请求 | requested | 等待审批人处理 |
| 已批准 | approved | 审批人已批准 |
| 已拒绝 | rejected | 审批人已拒绝 |
| 已取消 | cancelled | 审批已取消 |
| 重复 | duplicate | 已跳过重复审批 |
| 不需要 | not_required | 已免除审批 |
步骤 2:查询现有审批
查找请求的待处理审批:
Tool: SN-Query-Table
Parameters:
table_name: sysapproval_approver
query: sysapproval=[ritm_sys_id]
fields: sys_id,approver,state,due_date,source_table,sys_created_on
limit: 50
查找某位用户的所有待处理审批:
Tool: SN-Query-Table
Parameters:
table_name: sysapproval_approver
query: approver=[user_sys_id]^state=requested
fields: sys_id,sysapproval,document_id,source_table,sys_created_on
limit: 100
查找逾期审批:
Tool: SN-Query-Table
Parameters:
table_name: sysapproval_approver
query: state=requested^due_date<javascript:gs.nowDateTime()
fields: sys_id,approver,sysapproval,due_date,source_table
limit: 100
步骤 3:创建审批规则(旧版方法)
注意: 此方法使用旧版审批规则系统。对于新实现,可考虑使用 Flow Designer 或 Catalog Builder 审批类型。
创建基本审批规则:
Tool: SN-Create-Record
Parameters:
table_name: sys_approval_rule
data:
name: "Manager Approval for Hardware > $1000"
active: true
table: sc_req_item
condition: cat_item.price>1000^cat_item.category.title=Hardware
approval_type: "single"
approver_field: "opened_by.manager"
order: 100
步骤 4:配置目录审批类型
目录审批类型用于定义可复用的审批模式。
查询现有审批类型:
Tool: SN-Query-Table
Parameters:
table_name: sc_ic_aprvl_type_defn
query: active=true
fields: sys_id,name,description,approval_type
limit: 50
创建审批类型定义:
Tool: SN-Create-Record
Parameters:
table_name: sc_ic_aprvl_type_defn
data:
name: "Manager Approval"
description: "Requires approval from requester's manager"
active: true
approval_type: "approver_user_field"
approver_user_field: "requested_for.manager"
wait_for: "everyone" # everyone, anyone
mandatory: true
审批类型选项:
| approval_type | 说明 |
|---|---|
| approver_user_field | 记录字段中的用户 |
| approver_group_field | 记录字段中的群组 |
| specific_user | 硬编码的用户 |
| specific_group | 硬编码的群组 |
| script | 由自定义脚本确定审批人 |
步骤 5:配置多级审批
多级审批按顺序依次执行。
创建第 1 级——经理审批:
Tool: SN-Create-Record
Parameters:
table_name: sc_ic_aprvl_defn
data:
catalog_item: [catalog_item_sys_id]
name: "Manager Approval"
approval_type_definition: [manager_approval_type_sys_id]
order: 100
active: true
condition: "" # Always apply
创建第 2 级——总监审批(适用于高价值请求):
Tool: SN-Create-Record
Parameters:
table_name: sc_ic_aprvl_defn
data:
catalog_item: [catalog_item_sys_id]
name: "Director Approval"
approval_type_definition: [director_approval_type_sys_id]
order: 200
active: true
condition: "price>5000" # Only for requests over $5000
创建第 3 级——财务审批(适用于超高价值请求):
Tool: SN-Create-Record
Parameters:
table_name: sc_ic_aprvl_defn
data:
catalog_item: [catalog_item_sys_id]
name: "Finance Approval"
approval_type_definition: [finance_approval_type_sys_id]
order: 300
active: true
condition: "price>10000"
步骤 6:配置并行审批
并行审批会在同一级别同时执行。
创建并行审批人(相同顺序 = 并行):
Tool: SN-Create-Record
Parameters:
table_name: sc_ic_aprvl_defn
data:
catalog_item: [catalog_item_sys_id]
name: "IT Security Review"
approval_type_definition: [security_approval_type_sys_id]
order: 100 # Same order as other parallel approval
active: true
Tool: SN-Create-Record
Parameters:
table_name: sc_ic_aprvl_defn
data:
catalog_item: [catalog_item_sys_id]
name: "Legal Review"
approval_type_definition: [legal_approval_type_sys_id]
order: 100 # Same order = parallel execution
active: true
等待选项:
everyone- 所有审批人都必须批准anyone- 首个批准即完成该级审批majority- 多数审批人必须批准
步骤 7:配置群组审批
创建基于群组的审批类型:
Tool: SN-Create-Record
Parameters:
table_name: sc_ic_aprvl_type_defn
data:
name: "Change Advisory Board"
description: "CAB approval required for major changes"
active: true
approval_type: "specific_group"
approver_group: [cab_group_sys_id]
wait_for: "everyone"
查询群组审批状态:
Tool: SN-Query-Table
Parameters:
table_name: sysapproval_group
query: parent=[ritm_sys_id]
fields: sys_id,group,approval,sys_created_on
步骤 8:配置审批委派
委派允许用户在缺席期间将审批权限交给他人。
查询现有委派:
Tool: SN-Query-Table
Parameters:
table_name: sys_user_delegate
query: delegate=[user_sys_id]^active=true
fields: sys_id,user,delegate,starts,ends,approval
limit: 50
创建委派记录:
Tool: SN-Create-Record
Parameters:
table_name: sys_user_delegate
data:
user: [original_approver_sys_id]
delegate: [delegate_user_sys_id]
starts: "2026-02-10"
ends: "2026-02-24"
approval: true # Delegate approvals
active: true
步骤 9:配置超时和升级
设置审批到期日期:
Tool: SN-Update-Record
Parameters:
table_name: sysapproval_approver
sys_id: [approval_sys_id]
data:
due_date: "2026-02-13 17:00:00"
通过 SLA 创建升级: 通过 SLA Definitions(sla)表进行配置:
Tool: SN-Create-Record
Parameters:
table_name: contract_sla
data:
name: "Approval Escalation - 48 Hours"
table: sysapproval_approver
condition: "state=requested"
duration: "2 00:00:00" # 48 hours
workflow: [escalation_workflow_sys_id]
active: true
步骤 10:以编程方式处理审批
批准请求:
Tool: SN-Update-Record
Parameters:
table_name: sysapproval_approver
sys_id: [approval_sys_id]
data:
state: "approved"
comments: "Approved - budget verified and manager confirmed need"
拒绝请求:
Tool: SN-Update-Record
Parameters:
table_name: sysapproval_approver
sys_id: [approval_sys_id]
data:
state: "rejected"
comments: "Rejected - request exceeds department budget. Please resubmit next quarter."
取消待处理审批:
Tool: SN-Update-Record
Parameters:
table_name: sysapproval_approver
sys_id: [approval_sys_id]
data:
state: "cancelled"
comments: "Approval cancelled - request withdrawn by user"
步骤 11:监控审批指标
按组统计待处理的审批:
Tool: SN-Query-Table
Parameters:
table_name: sysapproval_approver
query: state=requested^sys_created_on>=javascript:gs.beginningOfLastMonth()
fields: sys_id,approver.u_group,state
limit: 1000
查找审批瓶颈:
Tool: SN-Query-Table
Parameters:
table_name: sysapproval_approver
query: state=requested^sys_created_onRELATIVELE@dayofweek@ago@5
fields: sys_id,approver,sysapproval,sys_created_on
limit: 100
完整示例:多级硬件审批
# 1. Create Manager Approval Type
Tool: SN-Create-Record
Parameters:
table_name: sc_ic_aprvl_type_defn
data:
name: "Requester Manager"
description: "Approval from requester's direct manager"
active: true
approval_type: "approver_user_field"
approver_user_field: "requested_for.manager"
wait_for: "everyone"
mandatory: true
# Result: sys_id = "type_manager"
# 2. Create IT Director Approval Type
Tool: SN-Create-Record
Parameters:
table_name: sc_ic_aprvl_type_defn
data:
name: "IT Director"
description: "IT Director approval for large hardware purchases"
active: true
approval_type: "specific_user"
specific_user: [it_director_sys_id]
wait_for: "everyone"
mandatory: true
# Result: sys_id = "type_director"
# 3. Create Level 1 Approval Definition (always required)
Tool: SN-Create-Record
Parameters:
table_name: sc_ic_aprvl_defn
data:
catalog_item: [hardware_item_sys_id]
name: "Manager Approval"
approval_type_definition: "type_manager"
order: 100
active: true
condition: ""
# 4. Create Level 2 Approval Definition (only for > $2000)
Tool: SN-Create-Record
Parameters:
table_name: sc_ic_aprvl_defn
data:
catalog_item: [hardware_item_sys_id]
name: "IT Director Approval"
approval_type_definition: "type_director"
order: 200
active: true
condition: "price>2000"
# 5. Verify configuration
Tool: SN-Query-Table
Parameters:
table_name: sc_ic_aprvl_defn
query: catalog_item=[hardware_item_sys_id]
fields: name,approval_type_definition,order,condition,active
审批状态转换
┌──────────────────┐
│ not yet requested│
└─────────┬────────┘
│ Workflow triggers
┌─────────▼────────┐
│ requested │
└─────────┬────────┘
│
┌───────────────────────┼───────────────────────┐
│ │ │
┌─────────▼────────┐ ┌─────────▼────────┐ ┌─────────▼────────┐
│ approved │ │ rejected │ │ cancelled │
└──────────────────┘ └──────────────────┘ └──────────────────┘
│
│ All approvals approved
┌─────────▼──────────────────────┐
│ Request proceeds to fulfillment│
└────────────────────────────────┘
工具使用摘要
| 操作 | MCP 工具 | 表 |
|---|---|---|
| 查询审批 | SN-Query-Table | sysapproval_approver |
| 处理审批 | SN-Update-Record | sysapproval_approver |
| 创建审批类型 | SN-Create-Record | sc_ic_aprvl_type_defn |
| 创建审批定义 | SN-Create-Record | sc_ic_aprvl_defn |
| 配置委派 | SN-Create-Record | sys_user_delegate |
| 查询组审批 | SN-Query-Table | sysapproval_group |
最佳实践
- 尽量减少审批级别: 每增加一级都会延迟处理;适当时使用条件跳过
- 优先使用组,而非个人: 即使人员变动,组也能继续使用
- 设置到期日期: 确保审批不会无限期停滞
- 配置升级处理: 自动升级处理逾期审批
- 记录条件: 确保审批条件清晰且可审计
- 测试所有流程: 测试审批、拒绝和取消流程
- 监控指标: 跟踪审批时间和瓶颈
- 启用委派: 允许在带薪休假期间安排代理
故障排除
未生成审批
症状: 请求已提交,但未创建审批记录
原因:
- 未满足审批规则条件
- 审批类型未激活
- 工作流未触发审批活动 解决方案:
Tool: SN-Query-Table
Parameters:
table_name: sc_ic_aprvl_defn
query: catalog_item=[item_sys_id]^active=true
fields: name,condition,active,order
审批卡在“Requested”状态
症状: 审批仍在等待处理,但审批人声称已采取操作
原因:
- 存在多条审批记录(一条已批准,一条仍待处理)
- 审批人操作了错误的记录
- 多级审批正在等待上一级完成 解决方案:
Tool: SN-Query-Table
Parameters:
table_name: sysapproval_approver
query: sysapproval=[ritm_sys_id]
fields: sys_id,approver,state,order,sys_updated_on
请求已被拒绝,但仍在处理中
症状: 请求在被拒绝后仍继续处理
原因: 业务规则或工作流未遵循拒绝结果
解决方案: 检查工作流是否正确处理拒绝结果
委派未生效
症状: 代理人未收到审批请求
原因:
- 委派记录未激活
- 日期范围已过期
- 未设置 approval 标记 解决方案:
Tool: SN-Query-Table
Parameters:
table_name: sys_user_delegate
query: user=[original_user_sys_id]^active=true
fields: delegate,starts,ends,approval,active
相关技能
catalog/item-creation- 创建目录项(前置条件)catalog/request-fulfillment- 处理已批准的请求admin/workflow-creation- 构建审批工作流development/notifications- 配置审批通知