Показать сообщение отдельно
Старый 10.01.2014, 11:26   #10  
someOne is offline
someOne
Участник
Аватар для someOne
 
173 / 423 (15) +++++++
Регистрация: 11.12.2008
Адрес: Москва
Цитата:
Сообщение от AnGor Посмотреть сообщение
Возникла задача - поменять пользователя, от имени которого запускается пакетное задание. Как это можно сделать?
Или надо удалить задание, зайти под нужным пользователем и создать новое пакетное задание?
Вот готовые коды методов, которые позволяют изменить имя от которого запускаются пакетные задания:

X++:
    global::executeSql(strFmt("update Batch set ExecutedBy = 'вася', CreatedBy = 'вася' where recId = %1", Batch.RecId));
    global::executeSql(strFmt("update BatchJob set CreatedBy = 'вася' where recId = %1", Batch.BatchJobId));
Batch и BatchJob - это журнал пакетных заданий и само пакетное задание.
где
X++:
static server void executeSql(str _sql)
{
    SqlSystem       sqlSystem       = new SqlSystem();
    Connection                      connection;
    Statement                       statement;
    SqlStatementExecutePermission   permission;
    ;

    connection  = new Connection();
    statement = connection.createStatement(ResultSetType::Dynamic, ResultSetConcurrency::Updatable);
    sqlSystem   = new SqlSystem();

    connection.ttsbegin();

    permission = new SqlStatementExecutePermission(_sql);
    permission.assert();

    statement.executeUpdate(_sql);
    CodeAccessPermission::revertAssert();

    connection.ttscommit();
}
За это сообщение автора поблагодарили: raz (1), AnGor (1).