SuiteScript 2 file.File错误的参数类型

时间:2018-05-15 12:22:06

标签: netsuite suitescript2.0

我正在尝试将文件附加到电子邮件中,文件被创建,我传入发票的内部ID但是它引发了错误"参数类型错误:options.attachments需要作为文件。文件[]。 ",我将文件对象作为数组的单数元素传递。当我查看调试器中的变量时,它显示为file.File作为数组的元素。所以这是正确的类型。有谁知道什么可能是错的。这是我正在调试的测试代码。

        var file = renderModule.transaction( {
            entityId : 479772,//internal id of the transaction
            printMode: 'pdf',
            formId   : 111
        } );


        //noinspection AmdModulesDependencies
        var subject = "Test Subject"
        var options = {};
        options.author = 13136; //autoSendParams.senderId;
        options.recipients = 'jk@zognet.com';
        options.replyTo = 'ar@cbcbev.com';
        options.subject = 'test subject';
        options.body = "test";
        options.relatedRecords = {transaction:479772}
        options.attachments = [ file ]
        emailModule.send( options );

以下是我传递的附件变量的调试器输出

attachments = {array} length=1
[0] = {file.File}  
type = {string} file.File
id = {object} null
name = {string} Invoice_CBC:384463-IN.pdf
description = {object} null
path = {string} Invoice_CBC:384463-IN.pdf
url = {object} null
folder = {number} -1
fileType = {string} PDF
isText = {boolean} false
size = {number} 14191
encoding = {object} null
isInactive = {boolean} false
isOnline = {boolean} false

2 个答案:

答案 0 :(得分:1)

您的relatedRecords属性应该是这样的对象:

relatedRecords = {transaction:479772}

答案 1 :(得分:1)

不确定是否仍然需要解决方案。

1的原因是您向Javascript对象原型扩展/添加了一些方法(即使您没有在代码中调用此方法)

例如,在您的.js文件中包含此代码段将是根本原因

Array.prototype.sum = function (prop) {
            var total = 0
            for (var i = 0, _len = this.length; i < _len; i++) {
                total += this[i][prop]
            }
            return total
        }