关于 business-app-insights
用于分析 ServiceNow CMDB 与企业架构中业务应用的技能,面向企业架构师和应用组合管理团队。它汇总应用健康、依赖关系、技术标准、生命周期及架构决策,形成应用洞察报告。
主要功能
- 01查询业务应用及组合信息
- 02映射上下游依赖关系
- 03对照技术标准与生命周期
- 04分析事件和变更数据
- 05关联架构决策与图表
适用场景
- 01评估应用健康与运行风险
- 02识别需要现代化或退役的应用
- 03为组合规划整理应用概况
- 04并购尽调时梳理应用依赖
MCP 相关
工作流使用 ServiceNow MCP 工具查询业务应用、CMDB 关系、技术标准、事件、变更、架构决策记录和图表。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill business-app-insights安装后在 Claude Code 中输入/business-app-insights确认已加载。
详细介绍
业务应用洞察
概述
此技能涵盖如何为 ServiceNow CMDB 和企业架构模块中注册的业务应用生成全面洞察:
- 通过事件、变更和中断数据评估应用健康状况
- 通过 CMDB 关系映射上游和下游依赖项
- 分析技术栈与企业标准的契合度
- 根据生命周期阶段、风险和成本识别现代化候选对象
- 为高管仪表板生成应用组合摘要
- 将应用与架构决策记录相关联
适用场景: 应用组合合理化、技术更新规划、并购尽职调查、风险评估期间,或架构师需要全面了解应用现状时。
先决条件
- 角色:
ea_admin、ea_viewer、itil、cmdb_read或admin - 访问权限: cmdb_ci_business_app、cmdb_rel_ci、sn_ea_tech_standard、sn_ea_architecture_decision_record 表
- 知识: CMDB 数据模型、应用生命周期管理、企业架构概念
- 插件: 必须激活 Enterprise Architecture (com.sn_ea)、CMDB (com.snc.cmdb)
- 相关技能: 完成
ea/adr-summarization,以了解决策历史
操作步骤
步骤 1:了解业务应用数据模型
cmdb_ci_business_app (Business Application)
├── cmdb_rel_ci (Relationships) ── upstream/downstream CIs
├── sn_ea_tech_standard (Technology Standards)
├── sn_ea_architecture_decision_record (ADRs)
├── sn_ea_diagram (Architecture Diagrams)
├── incident (Related Incidents)
├── change_request (Related Changes)
└── sys_user / sys_user_group (Owners / Support Groups)
主要表:
| 表 | 用途 |
|---|---|
| cmdb_ci_business_app | 包含生命周期、关键性和所有权信息的业务应用记录 |
| cmdb_rel_ci | 用于依赖项映射的 CI 到 CI 关系 |
| sn_ea_tech_standard | 技术标准及其生命周期状态 |
| sn_ea_diagram | 与应用关联的架构图 |
| sn_ea_architecture_decision_record | 影响应用的架构决策 |
步骤 2:检索业务应用详情
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: cmdb_ci_business_app
query: name=[app_name]
fields: sys_id,name,short_description,owner,business_criticality,lifecycle_stage,operational_status,used_for,version,vendor,cost_center,support_group,managed_by
limit: 10
REST 替代方式:
curl -u "$SN_USER:$SN_PASS" \
"$SN_INSTANCE/api/now/table/cmdb_ci_business_app?sysparm_query=name=[app_name]&sysparm_fields=sys_id,name,short_description,owner,business_criticality,lifecycle_stage,operational_status,used_for,version,vendor&sysparm_limit=10" \
-H "Accept: application/json"
步骤 3:查询应用组合概览
检索包含关键指标的所有业务应用:
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: cmdb_ci_business_app
query: operational_status=1^ORoperational_status=2
fields: sys_id,name,business_criticality,lifecycle_stage,operational_status,owner,vendor,used_for
limit: 200
REST 替代方式:
curl -u "$SN_USER:$SN_PASS" \
"$SN_INSTANCE/api/now/table/cmdb_ci_business_app?sysparm_query=operational_status=1^ORoperational_status=2&sysparm_fields=sys_id,name,business_criticality,lifecycle_stage,operational_status,owner,vendor&sysparm_limit=200" \
-H "Accept: application/json"
步骤 4:映射应用依赖项
查询上游依赖项(此应用依赖的对象):
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: cmdb_rel_ci
query: child=[app_sys_id]
fields: sys_id,parent,child,type,connection_strength
limit: 100
查询下游依赖项(依赖此应用的对象):
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: cmdb_rel_ci
query: parent=[app_sys_id]
fields: sys_id,parent,child,type,connection_strength
limit: 100
REST 替代方式:
# Upstream
curl -u "$SN_USER:$SN_PASS" \
"$SN_INSTANCE/api/now/table/cmdb_rel_ci?sysparm_query=child=[app_sys_id]&sysparm_fields=sys_id,parent,child,type&sysparm_limit=100" \
-H "Accept: application/json"
# Downstream
curl -u "$SN_USER:$SN_PASS" \
"$SN_INSTANCE/api/now/table/cmdb_rel_ci?sysparm_query=parent=[app_sys_id]&sysparm_fields=sys_id,parent,child,type&sysparm_limit=100" \
-H "Accept: application/json"
步骤 5:分析技术栈与标准的契合度
检索技术标准:
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: sn_ea_tech_standard
query: active=true
fields: sys_id,name,description,status,lifecycle_stage,standard_type,category
limit: 200
检查应用符合哪些标准:
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: sn_ea_tech_standard
query: related_business_appLIKE[app_sys_id]
fields: sys_id,name,status,lifecycle_stage,standard_type
limit: 50
步骤 6:通过事件评估应用健康状况
查询应用的近期事件:
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: cmdb_ci=[app_sys_id]^sys_created_on>=javascript:gs.daysAgo(90)
fields: sys_id,number,short_description,priority,state,resolved_at,sys_created_on
limit: 100
REST 替代方式:
curl -u "$SN_USER:$SN_PASS" \
"$SN_INSTANCE/api/now/table/incident?sysparm_query=cmdb_ci=[app_sys_id]^sys_created_on>=javascript:gs.daysAgo(90)&sysparm_fields=sys_id,number,short_description,priority,state&sysparm_limit=100" \
-H "Accept: application/json"
步骤 7:评估变更频率
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: change_request
query: cmdb_ci=[app_sys_id]^sys_created_on>=javascript:gs.daysAgo(180)
fields: sys_id,number,short_description,type,state,risk,sys_created_on
limit: 100
步骤 8:检索相关架构决策
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: sn_ea_architecture_decision_record
query: business_application=[app_sys_id]
fields: sys_id,number,title,state,decision,consequences,sys_created_on
limit: 50
步骤 9:检索架构图
MCP 方式:
Tool: SN-Query-Table
Parameters:
table_name: sn_ea_diagram
query: related_record=[app_sys_id]
fields: sys_id,name,description,diagram_type,sys_updated_on
limit: 20
步骤 10:汇总应用洞察报告
使用此模板生成结构化报告:
Application Insight Report: [App Name]
================================================
Business Criticality: [Level]
Lifecycle Stage: [Stage]
Operational Status: [Status]
Owner: [Owner Name]
Vendor: [Vendor]
HEALTH SUMMARY:
- Incidents (last 90 days): [Count] ([P1]: X, [P2]: Y, [P3]: Z)
- Changes (last 180 days): [Count]
- Availability: [Derived metric]
DEPENDENCY MAP:
Upstream (depends on):
- [CI Name] (Type: [Rel Type])
Downstream (depended on by):
- [CI Name] (Type: [Rel Type])
TECHNOLOGY STACK:
- [Standard Name] - Status: [Approved/Retiring/Prohibited]
ARCHITECTURE DECISIONS:
- [ADR Number]: [Title] - [State]
MODERNIZATION ASSESSMENT:
- Lifecycle Risk: [Low/Medium/High]
- Technical Debt Indicators: [List]
- Recommended Actions: [List]
DIAGRAMS:
- [Diagram Name] (Type: [Type])
工具用法
| 操作 | MCP 工具 | REST 端点 |
|---|---|---|
| 获取应用详情 | SN-Get-Record | GET /api/now/table/cmdb_ci_business_app/{sys_id} |
| 查询应用 | SN-Query-Table | GET /api/now/table/cmdb_ci_business_app |
| 映射依赖项 | SN-Query-Table | GET /api/now/table/cmdb_rel_ci |
| 获取技术标准 | SN-Query-Table | GET /api/now/table/sn_ea_tech_standard |
| 获取事件 | SN-Query-Table | GET /api/now/table/incident |
| 获取变更 | SN-Query-Table | GET /api/now/table/change_request |
| 获取 ADR | SN-Query-Table | GET /api/now/table/sn_ea_architecture_decision_record |
| 获取架构图 | SN-Query-Table | GET /api/now/table/sn_ea_diagram |
最佳实践
- 从关键性入手: 优先分析业务关键型应用(关键性为 1 或 2)
- 利用生命周期阶段: 借助 lifecycle_stage 字段识别适合退役或现代化改造的候选对象
- 交叉比对事件与变更: 将高事件数量与近期变更关联起来,寻找根本原因模式
- 绘制完整依赖链: 沿依赖关系图深入 2-3 层,了解影响范围
- 纳入成本数据: 在数据可用时,结合 cost_center 和 TCO 数据获取财务洞察
- 对照标准进行比较: 标记使用生命周期阶段为“Retiring”或“Prohibited”的技术的应用
- 限定事件分析时间范围: 使用 90 天时间窗口分析健康指标,以捕捉当前趋势并减少噪声
- 汇总形成产品组合视图: 将单个应用的洞察汇总为域级或能力级摘要
- 与负责人确认: 发布前务必与应用负责人确认自动化洞察
故障排除
未找到依赖关系
症状: cmdb_rel_ci 未返回某个应用的任何结果 原因:
- CMDB 中未填充关系
- 应用注册为不同的 CI 类
- 关系方向相反 解决方案:
Tool: SN-Query-Table
Parameters:
table_name: cmdb_rel_ci
query: parent=[app_sys_id]^ORchild=[app_sys_id]
fields: sys_id,parent,child,type
limit: 50
未找到业务应用
症状: 按应用名称查询未返回任何结果 原因: 应用可能以不同名称或 CI 类注册 解决方案:
Tool: SN-Query-Table
Parameters:
table_name: cmdb_ci_business_app
query: nameLIKE[partial_name]^ORshort_descriptionLIKE[partial_name]
fields: sys_id,name,short_description,sys_class_name
limit: 20
缺少技术标准链接
症状: 未关联到应用的技术标准 原因: 标准可能通过其他关系或自定义表关联 解决方案: 检查数据字典中的关系字段:
Tool: SN-Query-Table
Parameters:
table_name: sys_dictionary
query: name=sn_ea_tech_standard^elementLIKEapplication
fields: element,column_label,internal_type
limit: 20
事件数量似乎过高
症状: 单个应用返回数百个事件 原因: 父 CI 可能通过 CMDB 层级关系捕获子 CI 事件 解决方案: 仅筛选直接 CI 关联:
Tool: SN-Query-Table
Parameters:
table_name: incident
query: cmdb_ci=[app_sys_id]^cmdb_ci.sys_class_name=cmdb_ci_business_app
fields: sys_id,number,priority
limit: 200
示例
示例 1:完整的应用健康评估
# Step 1: Get application details
Tool: SN-Query-Table
Parameters:
table_name: cmdb_ci_business_app
query: name=SAP ERP
fields: sys_id,name,business_criticality,lifecycle_stage,operational_status,owner,vendor
limit: 1
# Result: sys_id = "app123"
# Step 2: Get dependencies
Tool: SN-Query-Table
Parameters:
table_name: cmdb_rel_ci
query: parent=app123^ORchild=app123
fields: sys_id,parent,child,type
limit: 100
# Step 3: Get recent incidents
Tool: SN-Query-Table
Parameters:
table_name: incident
query: cmdb_ci=app123^sys_created_on>=javascript:gs.daysAgo(90)
fields: sys_id,number,priority,state
limit: 200
# Step 4: Get architecture decisions
Tool: SN-Query-Table
Parameters:
table_name: sn_ea_architecture_decision_record
query: business_application=app123
fields: sys_id,number,title,state,decision
limit: 20
示例 2:产品组合现代化改造候选对象
# Find applications in "End of Life" or "Retiring" lifecycle stages
Tool: SN-Query-Table
Parameters:
table_name: cmdb_ci_business_app
query: lifecycle_stage=end_of_life^ORlifecycle_stage=retiring^operational_status=1
fields: sys_id,name,business_criticality,lifecycle_stage,owner,vendor
limit: 100
示例 3:关键应用依赖关系报告
# Find all critical applications
Tool: SN-Query-Table
Parameters:
table_name: cmdb_ci_business_app
query: business_criticality=1^operational_status=1
fields: sys_id,name,owner,lifecycle_stage
limit: 50
# For each, query dependency count
Tool: SN-Query-Table
Parameters:
table_name: cmdb_rel_ci
query: parent=[each_app_sys_id]
fields: sys_id,child
limit: 500
相关技能
ea/adr-summarization- 架构决策记录摘要cmdb/ci-discovery- CMDB 配置项管理cmdb/relationship-mapping- 深度依赖关系分析reporting/analytics-generation- 创建用于产品组合视图的仪表板spm/project-insights- 项目和产品组合管理洞察
评论
支持 Markdown