【问题标题】:ServiceNow renaming attachment not getting SysIdServiceNow 重命名附件未获取 SysId
【发布时间】:2017-11-13 21:28:37
【问题描述】:

在 ServiceNow 中,我在业务登录中编写了脚本 - 脚本操作。 在添加和删除时,我得到了 sysId,但是在重命名附件时,我无法得到 sys_id。

sendnotification();
function sendnotification()
{
    try
    {
        var r = new sn_ws.RESTMessageV2('IqtrackTest', 'AttachmentPost');

        r.setStringParameterNoEscape('sys_id',current.sys_id);        
        r.setStringParameterNoEscape('sysparm_TableName',current.getTableName());
        r.setStringParameterNoEscape('Action',"Attachment_Renamed");

        var response = r.execute();
        var responseBody = response.getBody();
        var httpStatus = response.getStatusCode();
    }
    catch(ex) 
    {
        var message = ex.getMessage();
    }
}

【问题讨论】:

  • 在这种情况下current 是什么?另外,这是一个脚本操作,所以我猜是由事件触发的。这将有助于了解事件是什么以及触发它的原因(例如,更新后业务规则中的 eventQueue)。
  • 附件重命名时是什么事件?在脚本操作中有一个带有 attachment.rename 的事件,我添加了上面的代码。我可以插入的任何其他事件。
  • @Joey 重命名附件时发生了什么?在脚本操作中有一个带有 attachment.rename 的事件,我添加了上面的代码。我可以插入的任何其他事件
  • 我看到一个名为attachment.renamed 的事件,你是这个意思吗?当通过 UI 更改附件文件名时触发。

标签: servicenow servicenow-rest-api


【解决方案1】:

试试这个

  var record = new GlideRecord('sys_attachment');
  record.addQuery('user_name',gs.getUserName());
  record.orderByDesc('sys_updated_on');
  record.setLimit(1);
  record.query();
  if (record.next())
  {
    gs.print(record.getValue("sys_id"));
    gs.print(record.getDisplayValue("file_name"));
    gs.error("file name"+record.getDisplayValue("file_name"));
  }

【讨论】:

    【解决方案2】:

    只需在后台脚本中运行此代码

    var temp= new GlideRecord('sys_attachment');
    temp.addQuery('user_name',gs.getUserName());
    temp.orderByDesc('sys_updated_on');
    temp.setLimit(1);
    temp.query();
    
    if (temp.next()){
        gs.print(temp.getValue("sys_id"));
    }
    

    【讨论】:

      猜你喜欢
      • 2017-08-09
      • 1970-01-01
      • 2012-03-06
      • 1970-01-01
      • 2019-05-12
      • 1970-01-01
      • 1970-01-01
      • 2020-02-20
      • 1970-01-01
      相关资源
      最近更新 更多