Добрый день.
Хотелось бы уточнить, можно ли как нибудь организовать процесс автоматической отправки отчета из планировщика заданий, т.е. из со стороны сервера.
Есть некий скрипт, который формирует отчет в FastReport, сохраняет его в виде файла .xls и автоматически отправляет его адресату.
Запихал данную функцию в планировщик заданий, Задание выполнилось без ошибок, но ничего не произошло. Может ли сервер построить отчет, сохранить его и отправить?
Вот хотелось бы запихать данную функцию в планировщик, а не помнить и нажимать кнопку ежедневно в нужное время и жить без данного ежедневного рутинного действия.
Реализовал данный процесс через планировщик Windows, но хотелось бы через планировщик Terrasoft.
Нравится
Здравствуйте, Константин!
Уточните, пожалуйста, выполняются ли правильно другие скрипты планировщиком?
Нет ли в скрипте обращение к визуальным элементам?
Также даю ссылку на комментарий с прикрепленной информацией по планировщику, возможно найдете ответы там:
http://www.community.terrasoft.ru/forum/topic/10248#comment-46358
Да все хорошо выполняется. Строится FastReport и формируется Excel.
Уточнил про сервер, там нет office (из-за него видимо не формировался файл)и скорее всего не будет, поэтому все таки оставлю данный процесс на windows планировщике другого компьютера.
Все таки никак не получается, Может кто подскажет как настроить данный процесс чтобы он запускался в фоновом режиме работы компьютера? т.е. не в загруженном сеансе.
Процессы вроде бы запускаются, но нет письма(
TempFileName - сформированный excel документ
[javascript]
function SendMail(TempFileName, Dataset){
AddressListing = new Array();
Address1 = 'Когут Константин' + ' ';
AddressListing.push(Address1);
SendTaskEmailToAction(AddressListing, TempFileName, Dataset);
}
function SendTaskEmailToAction(AddressList, TempFileName, Dataset) {
var ID = Dataset.Values('ID');
var TemplateID = GetSystemParameterValueEx('ContactMarketingActionReport'); // шаблон
var Service = Services.GetSingleItemByUSI('scr_MailUtils');
Service.ScriptControl.CodeObject.SendEmailByTemplate( TemplateID,
{Attachments: [TempFileName], Dataset: Dataset, Address: AddressList, AutoSend: true,
SkipQueryAddresses: true, Silent: true});
}
[/javascript]
Причем есть еще загвоздка, если выполнять windows планировщиком с 7ки, то все ок, а например с server 2003, то аналогичный запуск застревает на входном окне Terrasoft (ждет нажатия OK)
Константин, правильно ли я понял, что Вы по планировщику запускаете свое окно? Если да, то уточните, указываете ли Вы параметр "-pwd" при запуске?
Пробовали отправлять письма вручную (по нажатию на кнопку, например)?
Поставьте отладчик в функцию SendEmailByTemplate и посмотрите, где есть проблема.
В планировщике все указано, еще раз повторюсь, на 7ке все выполняется корректно, а на servere 2003 застревает на входе.
Но даже на 7ке не выполняется в фоновом режиме например при выходе из сеанса, при указании в планировщике от кого запустить задачу. Процессы появляются в диспетчере, но нет оправки
Константин, повторюсь. Проверяли ли Вы, работает ли код по отправке письма, если выполнять его не по планировщику, а привязать к кнопке, например?
Да по кнопке работает, даже по планировщику работает, но на 7ке, а на servere застревает на входе
Константин, предоставьте, пожалуйста, листинг .bat файла, который запускает Terrasoft.
"C:\Program Files\Terrasoft\Bin\TSClient.exe" /wnd=wnd_AutoReport -сfg="Terrasoft" -usr="Supervisor" -pwd="***"
[xml]
<?xml version="1.0" encoding="UTF-16"?>
2014-02-06T13:19:24.8797741
USO\kogut
2014-02-06T10:20:23
true
1
USO\kogut
InteractiveToken
HighestAvailable
IgnoreNew
false
true
true
false
false
true
false
true
true
true
false
false
false
true
P3D
7
"C:\Program Files (x86)\Terrasoft\Bin\TSClient.exe"
/wnd=wnd_AutoReport -cfg=Terrasoft -usr=Supervisor -pwd=***
[/xml]
Константин, передал информацию в департамент разработки. Сообщу, когда будет ответ.
Добрый день, Константин!
Попробуйсте изменить строку запуска в командном файле на следующую:
start "TSClient" /d "C:\Program Files (x86)\Bin" TSClient.exe –wnd=wnd_AutoReport -cfg=Terrasoft -usr=Supervisor -pwd=***
При этом командный файл запуска должен быть не *.bat, а *.cmd.
Как изменить батник задачи?
Если просто создать батник и его запускать, то он игнорирует окно которое должно запуститься
Константин, Вы имеете ввиду задачу планировщика?
Как я писал выше, попробуйте создать *.cmd файл, а не *.bat.
все ок, проблема была как ни странно в "-wnd" у параметра wnd, вот рабочий cmd на windows servere
[xml]
start "TSClient" /d "C:\Program Files\Terrasoft\Bin" TSClient.exe /wnd=wnd_AutoReport -cfg=Terrasoft -usr=Supervisor -pwd=***
[/xml]