mcpField
A
approval-workflows

approval-workflows

github.com/happy-technologies-llc生产力4141 次安装3 天前更新
代码仓库

关于 approval-workflows

用于配置和管理 ServiceNow 服务目录审批的技能,面向目录管理员。内容包括审批规则、顺序或并行路由、委派、升级及审批监控。

主要功能

  1. 01配置审批规则和条件
  2. 02设置顺序或并行审批
  3. 03管理群组与审批委派
  4. 04设置截止日期和升级
  5. 05查询并处理审批请求

适用场景

  1. 01为高价值目录请求设置审批路由
  2. 02在审批人缺席时安排代理
  3. 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-Tablesysapproval_approver
处理审批SN-Update-Recordsysapproval_approver
创建审批类型SN-Create-Recordsc_ic_aprvl_type_defn
创建审批定义SN-Create-Recordsc_ic_aprvl_defn
配置委派SN-Create-Recordsys_user_delegate
查询组审批SN-Query-Tablesysapproval_group

最佳实践

  • 尽量减少审批级别: 每增加一级都会延迟处理;适当时使用条件跳过
  • 优先使用组,而非个人: 即使人员变动,组也能继续使用
  • 设置到期日期: 确保审批不会无限期停滞
  • 配置升级处理: 自动升级处理逾期审批
  • 记录条件: 确保审批条件清晰且可审计
  • 测试所有流程: 测试审批、拒绝和取消流程
  • 监控指标: 跟踪审批时间和瓶颈
  • 启用委派: 允许在带薪休假期间安排代理

故障排除

未生成审批

症状: 请求已提交,但未创建审批记录
原因:

  1. 未满足审批规则条件
  2. 审批类型未激活
  3. 工作流未触发审批活动 解决方案:
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”状态

症状: 审批仍在等待处理,但审批人声称已采取操作
原因:

  1. 存在多条审批记录(一条已批准,一条仍待处理)
  2. 审批人操作了错误的记录
  3. 多级审批正在等待上一级完成 解决方案:
Tool: SN-Query-Table
Parameters:
  table_name: sysapproval_approver
  query: sysapproval=[ritm_sys_id]
  fields: sys_id,approver,state,order,sys_updated_on
请求已被拒绝,但仍在处理中

症状: 请求在被拒绝后仍继续处理
原因: 业务规则或工作流未遵循拒绝结果
解决方案: 检查工作流是否正确处理拒绝结果

委派未生效

症状: 代理人未收到审批请求
原因:

  1. 委派记录未激活
  2. 日期范围已过期
  3. 未设置 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 - 配置审批通知

参考资料

评论

支持 Markdown