Как передать файл CSV из картотеки в NetSuite на FTP-сервер с помощью JavaScript? - PullRequest
0 голосов
/ 15 февраля 2019

Не могли бы вы помочь мне выполнить задачу с помощью JavaScript?

У меня есть задача, и если я делаю ее вручную, она выглядит следующим образом:

  1. Я создаю сохраненный поиск в NetSuite.
  2. Скачать результат созданного сохраненного поиска в CSV.
  3. Я поместил этот файл на FTP-сервер, используя FileZilla.(У меня было соединение с сервером ранее: напишите домен, имя пользователя и пароль - вот и все)

Теперь необходимость решить с помощью скрипта 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
                        });

Ответы [ 3 ]

0 голосов
/ 16 февраля 2019

NetSuite поддерживает SFTP, FTP и SFTP, работающие с разными номерами портов. Однако FTP передает данные в текстовом формате, что поставит под угрозу вашу безопасность, лучше использовать SFTP, поскольку он будет передавать ваши данные в зашифрованном формате и обеспечивать безопасность.уверен.

В вашем примере, я полагаю, вы вызываете FTP-запрос, который не будет работать в этом случае.

0 голосов
/ 17 февраля 2019

Oki,

Итак, упомянутая вами статья правильная: почему?Потому что первый обязательный шаг для использования SFTP - это создание GUID.Вы говорите о ручных методах, ну да, включая тот, который описан в этой статье, но это не проблема, потому что после того, как вы сгенерировали GUID, вам не нужно его менять, так что это одноразовое действие, если толькоизменение ваших учетных данных ftp.

Итак, первый шаг: используйте «ursuscode» для создания Suitelet.Разверните этот пакет и используйте его для генерации GUID (это форма, где вам нужно установить пароль ftp, хост ...).Используя ту же форму, вы можете сгенерировать ключ HOST (проверить видео).

Второй шаг, использовать сгенерированный 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 и обновить значение параметра скрипта без необходимости касаться вашего кода.

Надеюсь, это поможет!

0 голосов
/ 16 февраля 2019

NetSuite не поддерживает ftp, он поддерживает только sftp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...