NetSuite - 将文件写入 Suitelet 响应以直接下载文件

Ari*_* WB 3 javascript csv httpresponse netsuite suitescript2.0

希望你能帮忙。一些看似很小的东西却让我心烦意乱!

我在 SuiteScript 2.0 中想要做的就是在 Suitelet 上点击“提交”按钮后立即将 CSV 文件直接下载到客户端。我的代码下载到客户端,但文件中的内容不正确。

以下代码创建文件(成功):

    //creating CSV file
    var fileObj = FILEMODULE.create({
        name: 'ThreePLreport.csv',
        fileType: FILEMODULE.Type.CSV,
        contents: contents
    });  
Run Code Online (Sandbox Code Playgroud)

最后一段代码将文件写入客户端:

   context.response.writeFile(fileObj,true);
Run Code Online (Sandbox Code Playgroud)

现在 - 当我打开文件时,它看起来像这样:

suitelet 的 CSV 文件输出

当我将相同的文件保存在文件柜上时,它看起来是正确的:

在此输入图像描述

我尝试在代码中添加标头,例如:

context.response.addHeader({
        name: 'Content-Type:',
        value: 'text/csv' //text/csv
        });
context.response.addHeader({
        name: 'Content-Disposition',
        value: 'attachment; filename="report1.csv"'
        });
Run Code Online (Sandbox Code Playgroud)

这似乎无助于纠正 CSV 文件内的内容。仍然显示 HTML 代码,如您在上面看到的那样。

有任何想法吗?

提前致谢!

bkn*_*hts 7

我已经做过很多次几乎完全一样的事情了。看起来你写完文件后就没有返回。例如:

context.response.writeFile({
    file:fileObj,
    isInline:false
});
return; 
Run Code Online (Sandbox Code Playgroud)