在Netsuite中,未定义ReferenceError nlapiCreateFile和nlapicreatecsvimport

时间:2017-12-01 09:53:52

标签: javascript netsuite suitescript

在netsuite中,我编写了这些代码但是我遇到了一个问题

ReferenceError nlapiCreateFile is not defined

代码:

function creatingFile() {
    var file = "xxxxx";
    var fileObj = nlapiCreateFile('mycsv.csv','CSV',file); // Error !!!
    nlapiSendEmail(15,'epost@xx.com,"subject" ,fileObj, null, null, null, null);
}

2 个答案:

答案 0 :(得分:0)

我有一些类似的旧1.0代码可以正常工作。从快速浏览可能由于未定义“文件”变量而失败,并且您在nlapiSendEmail函数中有一个额外的撇号。是否在您的脚本中早先将其定义为全局变量,将“x”定义为电子邮件地址或内部ID?

尝试使用一些try catch语句运行它以获取更具体的错误信息。这应该为您提供足够的信息来调试问题所在。

function creatingFile(){
  var fileContents='ASDFASDf,asdfgasfasdf';
  var folderID='12345'; //replace with a valid folder internal ID.
  try{
    var fileObj=nlapiCreateFile('mycsv.csv','CSV',fileContents);
    fileObj.setFolder(folderID);
    var fID=nlapiSubmitFile(fileObj);
  }catch(err01){
    nlapiLogExecution('DEBUG','ERROR 01',JSON.stringify(err01));
  }

  try{
    nlapiSendEmail(15,x,"asd",fID,null,null,null,null);
  }catch(err02){
    nlapiLogExecution('DEBUG','ERROR 02',JSON.stringify(err02));
  }
}

答案 1 :(得分:0)

我相信您遇到了我认为的“错误”,但是NetSuite可能不同意。如果您是通过用户事件(例如Suitelet表单上的按钮等)调用creatingFile()函数,则该函数似乎属于NetSuite逻辑中的“客户端脚本”类别,而nlapiCreateFile功能在客户端脚本上下文中不可用。这一点都不直观,因为从我的角度来看,这是Suitelet的全部内容,该功能支持该功能。我发现解决此问题的唯一方法是在脚本加载时创建文件,而不是在用户操作时创建文件。但是,这导致了其他我尚未发现的问题,例如一旦客户单击按钮,我如何在客户端上下文中使用新创建的文件对象(我正在尝试将文件作为电子邮件附件发送)