关于 purchase-order-summarization
面向采购人员的 ServiceNow Sourcing and Procurement Operations 采购订单汇总技能,帮助查看订单状态、预算和交付风险。它整合 PO 主记录、明细、收货记录与供应商信息。
主要功能
- 01获取 PO 主记录和明细
- 02跟踪收货进度
- 03比较 PO 支出与预算
- 04识别交付延迟风险
- 05关联订单与采购申请
适用场景
- 01查看采购订单的完整状态
- 02跟踪承诺交付情况
- 03评估预算消耗
- 04查找可能延迟交付的订单
MCP 相关
该技能说明如何使用 SN-Get-Record 和 SN-Query-Table 等 MCP 工具获取采购订单、明细、收货记录及供应商记录。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill purchase-order-summarization安装后在 Claude Code 中输入/purchase-order-summarization确认已加载。
详细介绍
采购订单摘要
概述
此技能提供了一种结构化方法,用于汇总 ServiceNow Sourcing and Procurement Operations 中的采购订单。它可以帮助你:
- 从
proc_po和proc_po_item获取完整的 PO 详情,包括所有行项目 - 通过
proc_rec_slip_item跟踪交付状态和收货进度 - 将 PO 支出与计划预算进行比较,评估预算影响
- 根据预期交付日期和收货缺口,识别存在延迟交付风险的订单
- 将 PO 关联回最初的请购单和申请的项目
适用场景: 采购人员需要查看 PO 状态汇总、根据承诺跟踪交付情况,或评估预算消耗和交付风险时。
前提条件
- 角色:
sn_procurement.manager、sn_procurement.analyst或procurement_user - 插件: 已激活
com.sn_procurement(Sourcing and Procurement Operations) - 访问权限: 对
proc_po、proc_po_item、proc_rec_slip_item、core_company、sc_req_item的读取权限 - 知识: 了解所在组织的 PO 生命周期状态和交付 SLA
操作步骤
步骤 1:获取采购订单抬头信息
获取供应商、金额和日期等 PO 核心详情。
使用 MCP(Claude Code/Desktop):
Tool: SN-Get-Record
Parameters:
table_name: proc_po
sys_id: [po_sys_id]
fields: sys_id,number,vendor,total_cost,state,ordered_date,expected_delivery,currency,ship_to,bill_to,requested_by,purchase_order_type,payment_terms,contract,description,short_description
按 PO 编号搜索:
Tool: SN-Query-Table
Parameters:
table_name: proc_po
query: number=PO0012345
fields: sys_id,number,vendor,total_cost,state,ordered_date,expected_delivery,currency,ship_to,bill_to,requested_by,purchase_order_type,payment_terms,contract
limit: 1
使用 REST API:
GET /api/now/table/proc_po?sysparm_query=number=PO0012345&sysparm_fields=sys_id,number,vendor,total_cost,state,ordered_date,expected_delivery,currency,ship_to,bill_to,requested_by,purchase_order_type,payment_terms,contract&sysparm_limit=1&sysparm_display_value=true
步骤 2:获取行项目
获取采购订单中的所有行项目。
使用 MCP:
Tool: SN-Query-Table
Parameters:
table_name: proc_po_item
query: purchase_order=[po_sys_id]^ORDERBYline_number
fields: sys_id,line_number,item_description,model,part_number,quantity,unit_price,total_cost,received_quantity,state,expected_delivery,cat_item,requested_item
limit: 100
使用 REST API:
GET /api/now/table/proc_po_item?sysparm_query=purchase_order=[po_sys_id]^ORDERBYline_number&sysparm_fields=sys_id,line_number,item_description,model,part_number,quantity,unit_price,total_cost,received_quantity,state,expected_delivery,cat_item,requested_item&sysparm_limit=100&sysparm_display_value=true
步骤 3:检查收货状态
查询收货单项目,确定已交付的内容。
使用 MCP:
Tool: SN-Query-Table
Parameters:
table_name: proc_rec_slip_item
query: purchase_order=[po_sys_id]^ORDERBYreceived_date
fields: sys_id,po_item,quantity_received,received_date,receiving_slip,condition,notes,accepted_quantity,rejected_quantity
limit: 100
使用 REST API:
GET /api/now/table/proc_rec_slip_item?sysparm_query=purchase_order=[po_sys_id]^ORDERBYreceived_date&sysparm_fields=sys_id,po_item,quantity_received,received_date,receiving_slip,condition,notes,accepted_quantity,rejected_quantity&sysparm_limit=100&sysparm_display_value=true
步骤 4:获取供应商详情
获取供应商信息作为参考。
使用 MCP:
Tool: SN-Query-Table
Parameters:
table_name: core_company
query: sys_id=[vendor_sys_id]
fields: sys_id,name,stock_symbol,vendor_type,city,state,country,phone,contact,vendor_rating
limit: 1
使用 REST API:
GET /api/now/table/core_company/[vendor_sys_id]?sysparm_fields=sys_id,name,vendor_type,city,state,country,phone,contact,vendor_rating&sysparm_display_value=true
步骤 5:识别延迟交付风险
查询预期交付日期已过但项目仍未收货的 PO。
使用 MCP:
Tool: SN-Query-Table
Parameters:
table_name: proc_po
query: expected_delivery<javascript:gs.nowDateTime()^state=ordered^ORstate=partially_received
fields: sys_id,number,vendor,total_cost,expected_delivery,ordered_date,state
limit: 50
order_by: expected_delivery
进行行项目级别的风险评估:
Tool: SN-Query-Table
Parameters:
table_name: proc_po_item
query: expected_delivery<javascript:gs.nowDateTime()^received_quantity<quantity^stateNOT INcancelled,received
fields: sys_id,purchase_order,item_description,quantity,received_quantity,expected_delivery,state
limit: 50
order_by: expected_delivery
使用 REST API:
# POs past expected delivery
GET /api/now/table/proc_po?sysparm_query=expected_delivery<javascript:gs.nowDateTime()^state=ordered^ORstate=partially_received&sysparm_fields=sys_id,number,vendor,total_cost,expected_delivery,ordered_date,state&sysparm_limit=50&sysparm_display_value=true
# Line items past expected delivery with outstanding quantities
GET /api/now/table/proc_po_item?sysparm_query=expected_delivery<javascript:gs.nowDateTime()^received_quantityLESSTHANquantity^stateNOT INcancelled,received&sysparm_fields=sys_id,purchase_order,item_description,quantity,received_quantity,expected_delivery,state&sysparm_limit=50&sysparm_display_value=true
步骤 6:关联最初的申请
追踪 PO 行项目对应的申请项目和请购单。
使用 MCP:
Tool: SN-Query-Table
Parameters:
table_name: sc_req_item
query: sys_id=[requested_item_sys_id]
fields: sys_id,number,short_description,request,requested_for,state,stage,price,quantity
limit: 1
使用 REST API:
GET /api/now/table/sc_req_item/[requested_item_sys_id]?sysparm_fields=sys_id,number,short_description,request,requested_for,state,stage,price,quantity&sysparm_display_value=true
步骤 7:编写 PO 摘要
汇总收集到的数据:
=== PURCHASE ORDER SUMMARY ===
PO Number: PO0012345
State: [state] | Type: [purchase_order_type]
Vendor: [vendor_name] ([city], [country])
Ordered: [ordered_date] | Expected Delivery: [expected_delivery]
Total Cost: [currency] [total_cost]
LINE ITEMS: [count] items
| # | Description | Qty | Unit Price | Total | Received | Status |
|---|------------|-----|-----------|-------|----------|--------|
| 1 | [desc] | 100 | $10.00 | $1,000| 100 | Received |
| 2 | [desc] | 50 | $25.00 | $1,250| 30 | Partial |
| 3 | [desc] | 25 | $50.00 | $1,250| 0 | Ordered |
RECEIPT STATUS:
Total Items: [total_qty] | Received: [received_qty] ([pct]%)
Fully Received Lines: [count] of [total_lines]
Last Receipt Date: [date]
DELIVERY RISK:
- Line 2: 20 units outstanding, [days] days past expected delivery
- Line 3: 25 units not yet shipped, delivery due in [days] days
BUDGET IMPACT:
Requisition: REQ0009876 | Requested By: [name]
Original Estimate: $[est] | PO Total: $[actual] | Variance: $[diff] ([pct]%)
RELATED INVOICES:
- INV-2024-0456: $[amount] - [state]
工具使用
MCP 工具参考
| 工具 | 使用场景 |
|---|---|
SN-Query-Table | 查询 PO、行项目、收货记录、供应商和请购单 |
SN-Natural-Language-Search | 使用自然语言搜索(例如,“查找 Dell 的逾期采购订单”) |
SN-Get-Record | 获取包含所有字段的单条 PO 记录 |
REST API 参考
| 端点 | 方法 | 用途 |
|---|---|---|
/api/now/table/proc_po | GET | 查询采购订单 |
/api/now/table/proc_po_item | GET | 获取 PO 行项目 |
/api/now/table/proc_rec_slip_item | GET | 检查收货状态 |
/api/now/table/core_company | GET | 供应商详情 |
/api/now/table/sc_req_item | GET | 最初申请的项目 |
/api/now/table/sn_spo_requisition | GET | 请购单详情 |
/api/now/table/sn_proc_invoice | GET | 相关发票 |
最佳实践
- 跟踪部分收货: 始终在行项目级别比较
received_quantity和quantity,而不仅仅是比较 PO 总量 - 尽早标记逾期项目: 设置风险阈值(例如,预期交付日期前 3 天仍未收货)
- 结合供应商背景信息: 供应商评级和历史记录可为风险评估提供重要背景信息
- 与预算进行比较: 始终将 PO 支出关联回最初的请购单,以跟踪预算偏差
- 使用显示值: 添加
sysparm_display_value=true,以获取易读的供应商名称和状态 - 检查变更: 查找 PO 修订历史记录或相关 PO,确认是否存在变更单
故障排除
“未找到 PO 行项目”
原因: PO 可能是在未包含行项目的情况下创建的,或者项目位于关联表中
解决方案: 验证 proc_po_item 上的 purchase_order 引用字段是否与 PO sys_id 匹配;检查项目是否使用自定义行项目表
“已接收数量超过订购数量”
原因: 供应商超量发货,或收货单条目重复
解决方案: 按 po_item 查询 proc_rec_slip_item,检查是否存在重复项;与仓库收货团队核实
“预计交付日期为空”
原因: 创建 PO 时未填充此字段
解决方案: 检查各行项目的 expected_delivery 字段,这些字段可能单独设置;联系供应商获取最新交付时间预估
“无法将 PO 关联到申请”
原因: PO 可能是在未关联申请的情况下直接创建的
解决方案: 检查 PO 行项目上的 requested_item 字段;或者按供应商和日期范围搜索 sn_spo_requisition
示例
示例 1:单个 PO 摘要
场景: 为状态会议总结 PO0023456。
Tool: SN-Query-Table
Parameters:
table_name: proc_po
query: number=PO0023456
fields: sys_id,number,vendor,total_cost,state,ordered_date,expected_delivery,currency
limit: 1
Tool: SN-Query-Table
Parameters:
table_name: proc_po_item
query: purchase_order.number=PO0023456
fields: line_number,item_description,quantity,unit_price,total_cost,received_quantity,state
limit: 50
输出:
PO0023456 - SUMMARY
Vendor: TechSupply Inc | State: Partially Received
Ordered: Feb 28, 2026 | Expected: Mar 15, 2026 (4 DAYS OVERDUE)
Total: $47,500.00
LINE ITEMS:
1. Laptop Dell Latitude 5540 x20 @ $1,200 = $24,000 - RECEIVED (20/20)
2. Docking Station WD22TB4 x20 @ $350 = $7,000 - RECEIVED (20/20)
3. Monitor Dell U2723QE x40 @ $412.50 = $16,500 - PARTIAL (25/40)
RISK: Line 3 has 15 monitors outstanding, 4 days past expected delivery.
ACTION: Contact TechSupply for updated ETA on remaining monitors.
示例 2:延迟交付风险报告
场景: 生成所有存在延迟交付风险的 PO 报告。
Tool: SN-Query-Table
Parameters:
table_name: proc_po
query: expected_delivery<javascript:gs.nowDateTime()^stateINordered,partially_received^ORDERBYexpected_delivery
fields: number,vendor,total_cost,expected_delivery,state
limit: 25
输出:
LATE DELIVERY RISK REPORT - Mar 19, 2026
OVERDUE (past expected delivery):
1. PO0023456 - TechSupply Inc - $16,500 remaining - 4 days overdue
2. PO0023401 - Office Depot - $3,200 remaining - 7 days overdue
3. PO0023389 - Cisco Systems - $142,000 remaining - 12 days overdue
AT RISK (delivery within 3 days, no receipt activity):
4. PO0023501 - AWS Corp - $28,000 - due Mar 21
5. PO0023498 - Grainger - $5,600 - due Mar 22
TOTAL AT RISK: $195,300 across 5 POs
RECOMMENDED: Escalate PO0023389 (Cisco) - 12 days overdue, high value.
示例 3:预算影响分析
场景: 将 Q1 的 PO 实际金额与申请预估金额进行比较。
Tool: SN-Query-Table
Parameters:
table_name: proc_po
query: ordered_date>=2026-01-01^ordered_date<2026-04-01^state!=cancelled
fields: number,vendor,total_cost,ordered_date,state
limit: 200
输出:
Q1 2026 BUDGET IMPACT
Total POs Issued: 67
Total Committed: $1,245,600
Total Received/Invoiced: $892,300
Outstanding Commitments: $353,300
BY CATEGORY:
IT Hardware: $456,000 (37% of total)
Software Licenses: $312,000 (25%)
Office Supplies: $98,600 (8%)
Professional Services: $379,000 (30%)
VARIANCE FROM BUDGET:
Allocated: $1,400,000
Committed: $1,245,600
Remaining: $154,400 (11% under budget)
相关技能
procurement/invoice-management- 三方匹配和发票处理procurement/procurement-summarization- 采购案例和管道概览procurement/sourcing-summarization- 寻源活动和投标分析procurement/supplier-recommendation- 供应商绩效和评分catalog/request-fulfillment- 跟踪目录请求的履行情况