繁体   English   中英

通过电子邮件发送Javascript附件

[英]Javascript attachment via email

我需要JavaScript函数方面的帮助。 我正在使用ServiceNow平台。

我有要求:

  • 使用电子邮件客户端发送时,自动将附件添加到事件记录中(Works,但是一次更新将附件添加到记录中两次,每次都重新添加所有附件)
  • 在活动日志中跟踪更改(我正在执行此操作)这些链接中发布的解决方案使我接近,但存在问题。 https://community.servicenow.com/thread/163398

我正在使用“ 精英”页面上发布的代码。

问题:

  • 通过电子邮件客户端添加的单个附件被添加到记录TWICE中
  • 当以后通过电子邮件客户端添加另一个附件时,所有先前的附件都将再次重新附加

为什么将附件两次添加到记录中? 如何仅通过电子邮件客户端获取最新更新中添加的附件?

//Table: Email [sys_email]
//When: after 
//Insert: true
//Update: true
//Condition: !current.instance.nil() && current.type == 'received'
//Script:
addAttachmentAudit();
function addAttachmentAudit() {
    var instance = current.instance;
    var targetTable = current.target_table;
    var grAttachment = new GlideRecord('sys_attachment');
    grAttachment.addQuery('table_sys_id',current.sys_id);
    grAttachment.query();
    while(grAttachment.next()){
        grAttachment.table_name = targetTable;
        grAttachment.table_sys_id = instance;
        grAttachment.update();
        var grTargetTable = new GlideRecord(targetTable);
        grTargetTable.addQuery('sys_id',instance);
        grTargetTable.query();
        while (grTargetTable.next()) { 
            grTargetTable.work_notes = 
                "Attachment added: " + grAttachment.file_name + 
                " by email from " + current.sys_created_by;
            grTargetTable.update();
        }
    } 
}

您是否考虑过消除while(grTargetTable.next())块? 只需一次手动对grTargetTable.next()进行操作,因为您是通过sys_id查询的,因此应该只有一个。

我想知道是否有任何效果。 抱歉,我无法直接评论您的问题,我的代表还不够。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM