SuperAPI AI 工具集

script-include-patterns

编程与开发

查看项目

更新于 10-16 01:57

技能介绍

用途

Script Include 是 ServiceNow 中可复用的服务端 JavaScript 库,可被任意服务端脚本调用。本模式文档聚焦于如何按不同场景正确编写 Script Include,并给出可直接参考的 ES5 代码示例。

Script Include 类型

文档列出四种类型及其用途与是否可被客户端调用:

类型 使用场景 客户端可调用
Standard 服务端工具 否
Client Callable 客户端通过 GlideAjax 调用 是
On-Demand 懒加载 否
AbstractAjaxProcessor 客户端-服务端通信 是

主要能力与代码模式

标准 Script Include(ES5):使用 Class.create() 创建工具类,示例 IncidentUtils 提供按编号查询工单、依据影响度与紧急度计算优先级、查询用户未关闭工单等方法,并通过 type 属性声明类型。

客户端可调用 Script Include(ES5):通过 Object.extendsObject(AbstractAjaxProcessor, {...}) 扩展,示例 IncidentAjax 提供 getIncidentDetails、searchIncidents、canUserUpdate 等方法,使用 this.getParameter("sysparm_...") 读取参数,以 JSON 字符串返回结果,并演示了私有方法 _isUserInGroup。

客户端 GlideAjax 调用(ES5):示例展示 new GlideAjax("IncidentAjax")、addParam("sysparm_name", ...)、getXMLAnswer 回调以及 JSON.parse 解析的完整调用流程,并给出在客户端脚本中的使用方式。

继承模式(ES5):先定义基类 TaskUtils(构造时传入表名,提供 getByState 与 _toObject),再通过 Object.extendsObject(TaskUtils, {...}) 派生 IncidentUtilsExtended,在 initialize 中调用父类初始化并新增 getP1Incidents。

作用域 Script Include(ES5):示例 MyAppUtils 演示在 x_myapp 作用域内读取应用属性、带应用前缀记录日志、以及安全访问跨作用域表的方法。

使用方式:MCP 工具集成

文档列出可用工具:snow_create_script_include(创建新的 Script Include)、snow_artifact_manage(action='find' 查找现有、action='update' 修改代码)、snow_execute_script(测试 Script Include)。示例工作流为先调用 snow_create_script_include 创建 IncidentUtils,再用 snow_execute_script 实例化并测试查询方法。

最佳实践

单一职责(一个类一个用途);命名有意义(IncidentUtils 而非 Utils);方法使用 JSDoc 注释;错误处理配合日志;私有方法以下划线前缀;初始化不应修改数据(无副作用);方法应可单元测试;仅使用 ES5(不使用 const、let、箭头函数、模板字符串)。

限制

本技能文本仅提供上述编写模式与示例,未提供适用范围以外的平台版本、收费或价格等信息,相关内容暂未提供。