如何使用JavaScript将csv文件从NetSuite的文件柜传递到ftp服务器?

时间:2019-02-15 10:31:02

标签: javascript ftp netsuite

您能帮助我使用JavaScript来完成任务吗?

我有一个任务,如果我手动完成,它看起来像这样:

  1. 我在NetSuite中创建了保存的搜索。
  2. 在csv中下载创建的已保存搜索的结果。
  3. 我使用FileZilla将文件放在ftp服务器上。 (我之前与服务器建立了连接:只需输入域,用户名和密码即可)

现在,它需要通过sutlet脚本解决。 1.创建保存的搜索-完成 2.使用保存的内容搜索结果创建csv,并将其放入NetSuite的文件柜中-完成 3.好的,现在我有一个需要我的文件,但是我不明白如何在ftp上传递它。

* i我尝试研究几篇文章,但坦白地说无法解决我的问题。而且,他们的文章似乎是关于手动方法而不是自动方法

这个阿里伯尔-https://ursuscode.com/netsuite-tips/suitescript-2-0-sftp-tool/ *

var searchResult = Contacts.run().getRange(0,999);
                log.debug('Contacts', searchResult);
                var Header = 'INTERNAL ID' + ';' + 'FIRST NAME' + ';' + 'LAST NAME';
                var Content = "";

                for (var i = 0; i < searchResult.length; i++) {

                    var internalid = searchResult[i].getValue('internalid');
                    var FirstName = searchResult[i].getValue('firstname');
                    var LastName = searchResult[i].getValue('lastname');

                    Content = Content + internalid + ';' 
                                + FirstName + ';'
                                + LastName; 
                    Content = Content + '\n';
                }

                var fileObj = file.create({
                    name: 'test.csv',
                    fileType: file.Type.CSV,
                    contents: Header + '\n' + Content
                    });
                    fileObj.folder = 45434;
                    var fileId = fileObj.save();

                    var savedFileObj = file.load({
                        id: fileId
                    });

                    var myPwGuid = '';
                    var myHostKey = ''
                    var objConnection = sftp.createConnection({
                        username: '',
                        passwordGuid: myPwGuid,
                        url: 'ftp.expertsender.com',
                        hostKey: myHostKey
                        });

3 个答案:

答案 0 :(得分:1)

NetSuite不支持ftp,它仅支持sftp。

答案 1 :(得分:0)

NetSuite支持SFTP,FTP和SFTP在不同的端口号上运行,但是FTP以纯文本格式传输数据,这会损害您的安全性,使用SFTP是更好的选择,因为它将以加密格式和安全性传输数据有把握。

在您的示例中,我认为您正在调用FTP请求,在这种情况下将无法使用。

答案 2 :(得分:0)

好吧

现在,您提到的文章是正确的:为什么?因为能够使用SFTP的第一步是生成GUID。您正在谈论手动方法,是的,包括该文章中的方法,但这不是问题,因为一旦生成了GUID,就无需更改它,因此这是一次性的操作,除非您的ftp凭据更改。

因此,第一步:使用“ ursuscode”创建一个Suitelet。部署该套件并使用它生成GUID(这是您需要设置ftp密码host的一种形式)。然后,您可以使用相同的表格生成HOST密钥(检查视频)。

第二步,在代码中使用Generated GUID和HOST密钥。

第三步,添加代码以从netsuite帮助页面上传文件:,这是一个示例:

connection.upload({
            directory: 'relative/path/to/remote/dir',
            filename: 'newFileNameOnServer.js',
            file: myFileToUpload,
            replaceExisting: true
        });

通过这种方式,您可以上传文件而无需再次保存并重新加载(https://system.na2.netsuite.com/app/help/helpcenter.nl?fid=section_4617004932.html)。

注意:请记住,这是一个SFTP,因此可能仅支持SFTP,而不支持FTP。

建议:关于GUID(以及连接所需的其他数据),我建议您使用脚本参数为脚本代码提供GUID,因此,如果更改密码,则您无需触摸代码即可重新生成GUID和更新脚本参数值。

希望这会有所帮助!