Netsuite SuiteScript 2文件。文件参数类型错误

Netsuite SuiteScript 2文件。文件参数类型错误,netsuite,suitescript2.0,Netsuite,Suitescript2.0,我正在尝试将文件附加到电子邮件,文件已创建,我正在传入发票的内部id,但它引发了一个错误“错误的参数类型:options.attachments应为file.file[]”,我正在将file对象作为数组的单个元素传入。当我在调试器中查看变量时,它显示为file.file作为数组元素。所以它是正确的类型。有人知道会出什么问题吗。这是我正在调试的测试代码 var file = renderModule.transaction( { entityId : 479

我正在尝试将文件附加到电子邮件,文件已创建,我正在传入发票的内部id,但它引发了一个错误“错误的参数类型:options.attachments应为file.file[]”,我正在将file对象作为数组的单个元素传入。当我在调试器中查看变量时,它显示为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变量的调试器输出

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

您的relatedRecords属性应该是如下所示的对象:

relatedRecords = {transaction:479772}

您的relatedRecords属性应该是如下所示的对象:

relatedRecords = {transaction:479772}

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

原因之一是您向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
        }
Array.prototype.sum=函数(prop){
var总计=0
对于(变量i=0,_len=this.length;i<_len;i++){
总计+=本[i][prop]
}
返回总数
}

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

原因之一是您向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
        }
Array.prototype.sum=函数(prop){
var总计=0
对于(变量i=0,_len=this.length;i<_len;i++){
总计+=本[i][prop]
}
返回总数
}

谢谢,是的,我发现了,但它仍然给出了相同的错误,我非常感谢任何类型的帮助,因为我正处于紧要关头。当您记录文件名和/或正文时会发生什么?“file”在脚本中是否也用作变量名?您没有将N/file导入到名为“file”的变量中?谢谢,是的,我捕获到了,但它仍然给出了相同的错误,我非常感谢任何类型的帮助,因为我正处于紧急状态。当您记录文件名和/或文件体时会发生什么?“file”在脚本中是否也用作变量名?您没有将N/file导入名为“file”的变量?很有趣;我看不出这有什么不对。我有一些非常相似的代码,基本上做
options.attachments=[render.transaction(…)]并且它工作正常。唯一的区别是,我没有在
发送
调用之外声明
选项
,但我不明白为什么这会有什么不同。是的,我有点困惑,我在另一个项目中有类似的代码,工作得很好。正如你所看到的,我基本上把它做得尽可能简单,什么都没有。对于露齿而笑,我会像你那样尝试,因为我已经没有东西要检查了,谢谢你的帮助。不,没有帮助。:)有趣;我看不出这有什么不对。我有一些非常相似的代码,基本上做
options.attachments=[render.transaction(…)]并且它工作正常。唯一的区别是,我没有在
发送
调用之外声明
选项
,但我不明白为什么这会有什么不同。是的,我有点困惑,我在另一个项目中有类似的代码,工作得很好。正如你所看到的,我基本上把它做得尽可能简单,什么都没有。对于露齿而笑,我会像你那样尝试,因为我已经没有东西要检查了,谢谢你的帮助。不,没有帮助。:)它最终成为库模块中的字符串操作。但是很好的调用,我从来没有操作过原型,但是我猜仍然是这样。它最终在一个库模块中进行了字符串操作。但是好主意,我从来没有操纵过原型,但我猜还是不错的。