mcpField
S
script-sync

script-sync

github.com/happy-technologies-llc开发4142 次安装2 天前更新
代码仓库

关于 script-sync

面向 ServiceNow 脚本记录的手动拉取、编辑和推送工作流,适用于需要审查本地改动并避免覆盖远程更新的开发者。它以显式的版本检查和推送验证取代自动同步。

主要功能

  1. 01查询并拉取脚本记录
  2. 02在本地编辑并审查差异
  3. 03推送前检查远程版本
  4. 04仅更新指定脚本字段
  5. 05推送后验证记录与更新集

适用场景

  1. 01修改 Business Rule 或 Script Include
  2. 02合并远程脚本的并发改动
  3. 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_scriptscript
脚本包含项sys_script_includescript
客户端脚本sys_script_clientscript
UI 脚本sys_ui_scriptscript
UI 操作sys_ui_actionscript
计划作业sysauto_scriptscript
修复脚本sys_script_fixscript

采用此工作流前,请使用 SN-Get-Table-Schema 确认不熟悉的表名和字段名。

最佳实践

  • 推送配置前,设置应用程序范围和更新集。
  • 对每次实时记录调用都显式设置 instance,尤其是在并发工作或关键环境中。
  • 编辑前立即拉取,并在推送前立即检查新鲜度。
  • 仅选择脚本和并发元数据所需的字段。
  • 保留最初拉取的版本,直至验证成功。
  • 审查差异并完成远程验证后,再提交本地更改。
  • 切勿将实例凭据或访问令牌与本地脚本文件一同存储。

故障排除

拉取后远程记录发生了更改

不要推送。保存本地编辑内容,获取新的远程脚本,并以最初拉取的版本为基准进行三方合并。解决合并冲突后,重新检查新鲜度。

更新成功,但未出现更新集记录

确认应用程序范围和当前更新集是否正确,然后检查 sys_update_xml。不要盲目重试:先确定该表或字段是否会被更新集捕获。

更新后本地脚本与远程脚本不同

重新获取记录并比较确切内容。检查业务规则、格式化程序或范围应用策略是否转换了该值。在弄清差异之前,以远程记录为准。

需要持续同步

Happy Platform MCP 5.1 不提供自动拉取、推送或监视工具。请遵循显式工作流,或构建经过单独审查的部署流水线,并采用同等的新鲜度与验证关卡。

相关技能

  • admin/update-set-management
  • development/business-rules
  • development/script-includes

评论

支持 Markdown