You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过REST API在ServiceNow中发布出版物并触发通知邮件

问题原因

你直接通过REST API更新sn_publications_publication表stage字段后未触发邮件,核心原因是UI端的出版物推送操作不是单纯修改stage字段值:点击UI上的推送按钮时,除了修改stage字段,还会同步执行订阅用户匹配、通知规则触发、邮件队列生成的关联逻辑,这部分逻辑没有绑定在stage字段更新的数据库操作事件上,直接通过Table API修改字段值不会触发这部分执行链路,自然不会发邮件。

可落地的实现方案

优先选第一种方案,和UI操作逻辑完全一致,不会出现逻辑漏执行的问题:

  • 方案1:复用内置出版物服务逻辑,自定义REST接口实现推送
    1. 先定位UI端推送按钮的核心逻辑:打开sn_publications_publication表的表单配置,找到对应「推送至Review阶段/发送给订阅用户」的UI Action,查看其Script字段内的执行代码,找到内置的发送调用方法(一般出版物模块会调用sn_publications.PublicationService类下的阶段流转/发送方法,方法名、参数以你实例里的实际代码为准)
    2. 新建一个Scripted REST API,在接口脚本里直接复用UI Action里的核心发送逻辑,示例代码如下:
    (function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
        // 从请求路径里获取要推送的出版物Sys ID
        var pubId = request.pathParams.publication_sid;
        var pubGr = new GlideRecord('sn_publications_publication');
        if (!pubGr.get(pubId)) {
            response.setStatus(404);
            response.setBody({code:404, msg:"指定出版物不存在"});
            return;
        }
        // 以下调用和UI Action里的核心逻辑保持完全一致
        var pubService = new sn_publications.PublicationService();
        var execResult = pubService.moveToStage(pubGr, 'review');
        response.setBody({code:200, success:execResult, pub_id:pubId});
    })(request, response);
    
    1. 给这个自定义REST接口配置好权限后,直接调用该接口传入出版物ID即可完成推送,会自动触发邮件发送、订阅用户推送全链路逻辑,和UI手动操作效果完全一致。
  • 方案2:直接调用原生Table API(仅适用于发送逻辑绑定在字段更新业务规则上的场景)
    如果你确认发送通知的逻辑是绑定在stage字段更新的业务规则/Flow上,而非写在UI Action里,可以直接调用原生Table API更新记录,注意以下要求:
    • 请求地址格式:https://<你的实例域名>/api/now/table/sn_publications_publication/<出版物Sys ID>
    • 请求方法用PUT,请求体传{"stage":"Review"}即可
    • 不要在请求参数里加sysparm_execute_business_rules=false,不要加跳过业务规则、跳过审计的相关请求头,确保API调用时业务规则正常执行
    • 调用账号需要拥有sn_publications_publication表的写权限、出版物发送的对应操作权限
验证步骤
  • 调用接口后,先在UI端确认对应出版物的stage字段已正确更新为Review
  • 进入系统邮箱的已发送队列,检查对应出版物的通知邮件是否已正常生成
  • 用测试订阅账号登录,确认能正常收到通知、看到对应推送的出版物

内容的提问来源于stack exchange,提问作者toni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 07:51:24