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

问题描述 投票:-1回答:3

你能帮我用JavaScript做任务吗?

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

  1. 我在NetSuite中创建了Saved Search。
  2. 在csv中下载已创建已保存搜索的结果。
  3. 我把这个文件放在ftp服务器上,使用FileZilla。 (我之前与服务器有过连接:写一个域名,用户名和密码 - 这就是全部)

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

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

这篇文章 - qazxsw poi *

https://ursuscode.com/netsuite-tips/suitescript-2-0-sftp-tool/
javascript ftp netsuite
3个回答
1
投票

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


0
投票

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

在您的示例中,我相信您正在调用FTP请求,在这种情况下无效。


0
投票

广场

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

所以,第一步:使用“ursuscode”创建一个Suitelet。部署该套件并使用它来生成GUID(它是您需要设置ftp密码的表单,主机...)。使用相同的表单,您可以生成HOST密钥(检查视频)。

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

第三步,添加代码上传文件:从netsuite帮助页面,这里有一个例子:

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
                        });

顺便说一句,您可以上传文件而无需再次保存和重新加载(connection.upload({ directory: 'relative/path/to/remote/dir', filename: 'newFileNameOnServer.js', file: myFileToUpload, replaceExisting: true }); )。

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

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

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.