簡體   English   中英

如何使用JavaScript將csv文件從NetSuite的文件櫃傳遞到ftp服務器?

[英]How to pass the csv file from file cabinet in NetSuite to ftp server using JavaScript?

您能幫我使用JavaScript完成任務嗎?

我有一個任務,如果我手動執行,則如下所示:

  1. 我在NetSuite中創建了“保存的搜索”。
  2. 在CSV中下載創建的已保存搜索的結果。
  3. 我使用FileZilla將文件放在ftp服務器上。 (我以前與服務器建立了連接:輸入域,用戶名和密碼-僅此而已)

現在,它需要通過sutlet腳本解決。 1.創建保存的搜索-完成2.創建帶有保存內容搜索結果的csv,並將其放入NetSuite的文件櫃中-完成3.好的,現在我需要一個文件,但是我不知道如何傳遞FTP。

*我試圖研究幾篇文章,但坦率地說無法解決我的問題。 而且,他們的文章似乎是關於手動方法而不是自動方法

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

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

NetSuite支持在不同端口號上運行的SFTP,FTP和SFTP,但是FTP以純文本格式傳輸數據會損害您的安全性,使用SFTP是更好的選擇,因為它將以加密格式傳輸數據並確保安全性。

在您的示例中,我相信您正在調用FTP請求,在這種情況下將無法使用。

好吧

現在,您提到的文章是正確的:為什么? 因為能夠使用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並更新腳本參數值無需觸摸您的代碼。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM