VB скрипт не отрабатывает из-под Pli

Помощь пользователям в работе с программой E-Trade PriceList Importer
Ответить
SensoR
Сообщения: 174
Зарегистрирован: 19 авг 2012 23:17

Здравствуйте!
Есть VB скрипт, который удаляет колонку в прайс-листе и запускает .bat файлик, который отправляет прайс по ФТП.
Скрипт хорошо работает если лежит с .bat файликом в одной папке и его запустить вручную.
А вот если его запустить из-под Pli, т.е. прописать вот здесь:
Изображение
, то колонку он в файлике удаляет, а вот файлик не отправляет на сервер почему-то. Подскажите, как это может быть связано с тем, что VB-скрипт запускает Pli, а не вручную? Вот здесь скрипт и батник: https://www.dropbox.com/sh/gmfgk04ns7qy ... K_swa?dl=0
Аватара пользователя
support
Сообщения: 10563
Зарегистрирован: 09 ноя 2008 21:37

Что мешает настроить выгрузку по ftp через интерфейс программы?
C уважением, поддержка ElbuzGroup.
Документация E-Trade Jumper
SensoR
Сообщения: 174
Зарегистрирован: 19 авг 2012 23:17

То, что вначале прайс должен обработать vb-скрипт. Он удаляет там не нужный столбик. Если настроить выгрузку из Pli, на сервер будет уходить необработанный скриптом прайс.
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

Попробуйте прописать пути с кавычками, например в файле temp.txt вместо

Код: Выделить всё

put C:\Dropbox\0 SensoR\0 Работа\Автокеда\tyres_autokeda_ru.xls
так

Код: Выделить всё

put "C:\Dropbox\0 SensoR\0 Работа\Автокеда\tyres_autokeda_ru.xls"
В файле ftpputfile.bat
вместо

Код: Выделить всё

ftp -s:temp.txt 127.0.0.1
полный путь к файлу temp.txt

Код: Выделить всё

ftp -s:"e:\temp.txt" 127.0.0.1
С уважением, поддержка ElbuzGroup.
SensoR
Сообщения: 174
Зарегистрирован: 19 авг 2012 23:17

Стало лучше, по крайней мере создает файл на сервере. Правда он размером 0 байт и там естественно ничего нет.
В конце выдает ошибку 425.
Изображение

При запуске скрипта вручную по-прежнему все работает:
Изображение
SensoR
Сообщения: 174
Зарегистрирован: 19 авг 2012 23:17

Может быть есть еще идеи, почему батник может не отрабатывать при запуске из-под Pli ?
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

Батник изначально не работал из-за отсутствия полных путей, потому как данные находятся на разных дисках и папках.
С работой ПЛИ это не связано. Почему есть ошибка 425 или создаётся файл 0 байт вам нужно разобраться самостоятельно, потому как это относится к работе сервера FTP.
С уважением, поддержка ElbuzGroup.
SensoR
Сообщения: 174
Зарегистрирован: 19 авг 2012 23:17

Дак дело в том, что все хорошо работает, когда запускаешь скрипт вручную. При запуске вручную, он даже с путями без кавычек работал. Вряд ли это связано с работой сервера, так бы и вручную не работало, разве нет? Мне кажется, есть какая-то заковырка, связанная с тем, что запуск идет из-под Pli (либо какие-то возможности офисного движка этой программы, если я правильно выражаюсь, или самой Windows). Может быть подскажете строчку для VB-скрипта, которая бы отправляла сразу по ФТП без батника?
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

У нас ваш скрипт не работал без модификации путей. С учётом что программа находится в одной папке, а скрипт и доп. файлы скрипта в другой, то требуется указания точных путей.
Пример VB-скрипта:

Код: Выделить всё

On Error Resume Next 
'Создаем файл сценария для FTP.EXE 
set FSO = CreateObject("Scripting.FileSystemObject") 
Set WSHshell = WScript.CreateObject("WScript.Shell") 
Set sDir = WSHshell.Environment("Process")    ' - находим путь к папке Windows 
Set cScript = fso.CreateTextFile (sDir("windir") & "\FTp.scr")  '-Обозначаем место, где будет создан и сохранен файл сценария (в данном случае - папочка виндовз) 
cScript.WriteLine "Open ftp.narod.ru"       '- Открываем соединение с сайтом ftp.narod.ru на 21 порту 
cScript.WriteLine "Тут ваш логин"                     '- Имя пользователя 
cScript.WriteLine "Тут ваш пароль"                    '- Пароль 
cScript.WriteLine "PUT файл.txt"             '- А это файл который мы закачиваем (если скачиваем, тогда GET) 
cScript.WriteLine "bye"                             '-разрываем соединение с ftp.narod.ru 
cScript.Close                                             '- Конец записи в файл сценария 
' Запускаем FTP-сценарий 
WSHshell.Run sDir("windir") & "\system32" & "\FTP.ExE -s:" & sDir("windir") & "\FTp.scr", 0 
Set fso = Nothing 
Set WSHshell  = Nothing 
WScript.Echo "Done!"   '-можете удалить эту строчку, она просто сигнализирует о том, что всё кульно 
wscript.quit(0) ' -выход 
С уважением, поддержка ElbuzGroup.
SensoR
Сообщения: 174
Зарегистрирован: 19 авг 2012 23:17

Спасибо, сейчас получилось заставить работать и батник и запускать FTP из VB-скрипта. Похоже проблема была в том, что брандмауэр Виндоус блокировал ftp.exe, когда он запускался скриптами, запущенными из-под Pli, не блокируя почему-то при запуске вручную.
Ответить

Вернуться в «Техническая поддержка программы E-Trade PriceList Importer»