关于 script-sync
面向 ServiceNow 脚本记录的手动拉取、编辑和推送工作流,适用于需要审查本地改动并避免覆盖远程更新的开发者。它以显式的版本检查和推送验证取代自动同步。
主要功能
- 01查询并拉取脚本记录
- 02在本地编辑并审查差异
- 03推送前检查远程版本
- 04仅更新指定脚本字段
- 05推送后验证记录与更新集
适用场景
- 01修改 Business Rule 或 Script Include
- 02合并远程脚本的并发改动
- 03检查脚本是否记录到当前更新集
MCP 相关
使用 Happy Platform MCP 的 SN-Query-Table、SN-Get-Record 和 SN-Update-Record 管理脚本记录,并逐次指定实例;该工作流不提供自动同步或监视工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ happy-technologies-llc/ happy-platform-skills --skill script-sync安装后在 Claude Code 中输入/script-sync确认已加载。
详细介绍
脚本拉取、编辑与推送工作流
概述
Happy Platform MCP 5.1 没有自动脚本同步或监视工具。
请使用此明确工作流拉取当前记录、编辑本地副本、检查远程记录是否发生变化,并使用
SN-Update-Record 推送目标脚本字段。
此工作流优先考虑便于审查的更改和冲突检测,而非后台自动化。它适用于业务规则、脚本包含项、客户端脚本、UI 脚本、UI 操作、计划作业,以及其他将脚本存储在表字段中的记录。
前提条件
- 对目标脚本表具有读写权限
- 目标 ServiceNow 实例名称
- 安装的 npm 包之外的本地目录
- Git 或其他本地版本控制系统
- 表名、记录
sys_id和脚本字段名称 - 推送前已选择正确的应用程序范围和更新集
操作步骤
1. 查找记录
使用包含明确字段的有界查询。始终将请求路由到目标实例。
Tool: SN-Query-Table
Parameters:
table_name: sys_script_include
query: name=IncidentUtils
fields: sys_id,name,script,sys_updated_on,sys_mod_count,sys_scope
limit: 5
instance: dev
如果查询结果不明确,请停止。选择一个 sys_id;不要想当然地更新多个同名脚本。
2. 拉取权威记录
Tool: SN-Get-Record
Parameters:
table_name: sys_script_include
sys_id: <script_sys_id>
fields: sys_id,name,script,sys_updated_on,sys_mod_count,sys_scope
instance: dev
仅将返回的 script 值写入本地 .js 文件。在相邻的本地元数据中,记录此次拉取返回的表、sys_id、实例、sys_updated_on 和
sys_mod_count。不要将 ServiceNow 凭据放入文件或代码仓库。
目录结构示例:
scripts/servicenow/script_includes/IncidentUtils.js
scripts/servicenow/script_includes/IncidentUtils.metadata.json
3. 在本地编辑并审查
在 IDE 中编辑 JavaScript,运行适用的静态检查或测试,并检查 Git 差异。将更改限定在你打算部署的脚本字段内。
4. 推送前检查远程记录是否为最新
紧接更新之前,再次检索记录:
Tool: SN-Get-Record
Parameters:
table_name: sys_script_include
sys_id: <script_sys_id>
fields: sys_id,script,sys_updated_on,sys_mod_count
instance: dev
将 sys_updated_on 和 sys_mod_count 与已保存的拉取元数据进行比较。
还要将返回的脚本与本地原始版本进行比较。如果任何值发生变化,请停止:拉取新版本、审查远程更改,并在本地合并。切勿自动覆盖较新的远程编辑。
5. 推送经审查的脚本字段
通过最新状态检查后,仅更新目标字段:
Tool: SN-Update-Record
Parameters:
table_name: sys_script_include
sys_id: <script_sys_id>
data:
script: <reviewed_local_script>
instance: dev
对于常规记录更新,请勿使用后台脚本。通用 MCP 更新是主要操作,并且会保留每次调用的实例路由。
6. 验证推送
使用 SN-Get-Record 再次读取记录。确认远程 script
与经审查的本地内容一致,并记录新的 sys_updated_on 和
sys_mod_count。然后使用有界的 SN-Query-Table 查询,验证当前更新集中的关联 sys_update_xml 捕获记录。
7. 明确重复后续编辑流程
Happy Platform MCP 5.1 没有监视模式。每次更改都要重复执行最新状态检查、更新和验证。可以使用本地文件监视程序运行 lint 或测试,但未经上述明确的冲突检查和更新流程,不得推送 ServiceNow 更改。
支持的记录模式
| 脚本类型 | 表 | 常见脚本字段 |
|---|---|---|
| 业务规则 | sys_script | script |
| 脚本包含项 | sys_script_include | script |
| 客户端脚本 | sys_script_client | script |
| UI 脚本 | sys_ui_script | script |
| UI 操作 | sys_ui_action | script |
| 计划作业 | sysauto_script | script |
| 修复脚本 | sys_script_fix | script |
采用此工作流前,请使用 SN-Get-Table-Schema 确认不熟悉的表名和字段名。
最佳实践
- 推送配置前,设置应用程序范围和更新集。
- 对每次实时记录调用都显式设置
instance,尤其是在并发工作或关键环境中。 - 编辑前立即拉取,并在推送前立即检查新鲜度。
- 仅选择脚本和并发元数据所需的字段。
- 保留最初拉取的版本,直至验证成功。
- 审查差异并完成远程验证后,再提交本地更改。
- 切勿将实例凭据或访问令牌与本地脚本文件一同存储。
故障排除
拉取后远程记录发生了更改
不要推送。保存本地编辑内容,获取新的远程脚本,并以最初拉取的版本为基准进行三方合并。解决合并冲突后,重新检查新鲜度。
更新成功,但未出现更新集记录
确认应用程序范围和当前更新集是否正确,然后检查 sys_update_xml。不要盲目重试:先确定该表或字段是否会被更新集捕获。
更新后本地脚本与远程脚本不同
重新获取记录并比较确切内容。检查业务规则、格式化程序或范围应用策略是否转换了该值。在弄清差异之前,以远程记录为准。
需要持续同步
Happy Platform MCP 5.1 不提供自动拉取、推送或监视工具。请遵循显式工作流,或构建经过单独审查的部署流水线,并采用同等的新鲜度与验证关卡。
相关技能
admin/update-set-managementdevelopment/business-rulesdevelopment/script-includes