Страница 1 из 1

Проблема с многократной записью в атрибут

Добавлено: 26 май 2014, 09:43
rax
Добрый день.

У меня возникла след. проблема: есть некоторый переменная-массив (отделы организации). Для каждого из них мне нужно сделать оповещение о выпущенном задании (запустить шаблон работы). Для начала названия (строку) каждого добавленного в массив отдела я передаю в действие, в кот. название записывается в атрибут и вызывается шаблон работ с оповещением для этого отдела (название соответственно берется из атрибута). Таким образом я пытаюсь решить проблему множественного оповещения отделов. Так вот, проблема заключается в том, что действие могу предположить записывает наименования отделов в атрибут моментально, а шаблоны запускаются дольше. Получается что атрибут много раз перезаписывается а все шаблоны берут из этого атрибута одинаковое значение. Это мое предположение. Хотел узнать, можно ли как-то решить эту проблему - сделать интервал между каждым выполнением записи в атрибут или как-то по-другому решить проблему. Прилагаю скрины.

Re: Проблема с многократной записью в атрибут

Добавлено: 26 май 2014, 11:08
Старик Крупский
Мало что понятно по причине сложной реализации простой вещи, имхо. Если бы описать вопрос попроще и другими словами...

Re: Проблема с многократной записью в атрибут

Добавлено: 26 май 2014, 14:13
Старик Крупский
И что-то мне кажется, что атрибут тут совсем не нужен.

Re: Проблема с многократной записью в атрибут

Добавлено: 26 май 2014, 14:57
Александр
Я конечно завис на версии 4.40... но в ней для оповещения используем функцию действия MailSend.

Re: Проблема с многократной записью в атрибут

Добавлено: 27 май 2014, 10:21
rax
Ну, постараюсь попроще: вызывается действие, которое записывает некоторое значение в атрибут. Затем в том же действии вызывается шаблон работ, кот. использует записанное значение. Проблема: таких действий вызывается сразу много (как бы для каждого значения массива вызывается такое действие), поэтому, как мне кажется, идет перезапись атрибута много раз, и в итоге все шаблоны берут одно значение.

Re: Проблема с многократной записью в атрибут

Добавлено: 27 май 2014, 10:23
rax
Почему все так сложно: вызываемый шаблон кидает напоминание пользователям с определенной периодичностью, проверяя некоторые другие атрибуты, потому так и реализовано.

Re: Проблема с многократной записью в атрибут

Добавлено: 27 май 2014, 16:07
Старик Крупский
Как-то странно все. Из того, что я понял, получается так: пошла первая итерация цикла. Записали атрибут, запустили работу ВИЗУАЛЬНО. То есть кто-то должен нажать Ok. К моменту окончания циклического действия окон с началами работ может открыться немало. Ну, хорошо, допускаю, что в запускаемых работах предусмотрена функция нажатия на кнопку Ok и работа продвигается дальше сама (экран только подергался малость). Но ведь действие, запускающее работу, завершается ДО нажатия Ok в работе. Оно завершается открытием окна старта работы. Это же функция не запуска работы, а открытия окна начала работы. Две огромные разницы. Что там дальше будет, действие уже не волнует, оно начинает делать следующую итерацию цикла. Здесь дело не в скорости, а в принципиально неверном подходе. Не надо делать такие вещи через атрибуты одного объекта.
Я бы сделал так:
1. Запускал бы работу невизуальной функцией WorkStart (в старых версиях ее может не быть).
2. Передавал бы аргумент в работу напрямую, через строковый параметр функции запуска работы (см. help по функции), а не через объект. Например:

WndWorkStart (S, a_Object, 'Naim_otdel', Naim_otdel)

Первый Naim_otdel, который в кавычках - это имя переменной запускаемой работы S.
Второй Naim_otdel - значение, которое эта переменная должна принять в работе.
При этом, если a_Object нужен только для того, чтобы считать с него этот злополучный атрибут, то выкинуть его и запустить работу вот так:

WndWorkStart (S, 'Naim_otdel', Naim_otdel)

Re: Проблема с многократной записью в атрибут

Добавлено: 28 май 2014, 10:25
rax
Спасибо, действительно помогло :D Вы уж извиняйте за столь глупые вопросы - я самоучка, учусь по принципам, что до меня написали, потому много не знаю)
Проблема со множеством окон действительно присутствует, но насколько я понимаю, при запуске работы подтверждение на первом этапе обязательно. Или как-то можно обойти эту проблему?

Re: Проблема с многократной записью в атрибут

Добавлено: 28 май 2014, 10:37
Старик Крупский
Можно. Подтверждение отключается в настройках профиля - отправка - подтверждать переход к следующему этапу работы.
Но лучше использовать не WndWorkStart, а WorkStart

Re: Проблема с многократной записью в атрибут

Добавлено: 28 май 2014, 11:24
rax
Ну насколько я понимаю, тогда во всех запусках отключается данное подтверждение, что, к сожалению, не приемлемо - часть логики уже написано с его использованием.
На данный момент стоит версия Лоции 5.10, в ней что-то не могу найти WorkStart.

Re: Проблема с многократной записью в атрибут

Добавлено: 28 май 2014, 11:53
Старик Крупский
Да, подтверждение перехода будет отключено везде для пользователей профиля. WorkStart в группе функций "Док-оборот".
13 ноября 2012 года:
5.10 Сборка 121113
[+] В действии над объектами добавлена функция WorkStart, позволяющая создать и запустить новую работу без открытия окна задачи.

Re: Проблема с многократной записью в атрибут

Добавлено: 29 май 2014, 11:07
rax
К сожалению, версия 5.00 сборка 111125.1, а функции такой очень не хватает( Но все равно еще раз спасибо за помощь :)

Re: Проблема с многократной записью в атрибут

Добавлено: 29 май 2014, 14:26
LTH
rax писал(а):К сожалению, версия 5.00 сборка 111125.1
Жесть. Она ведь уже больше года как вообще с поддержки снята.
Не проще ли обновиться?

Re: Проблема с многократной записью в атрибут

Добавлено: 29 май 2014, 21:32
Admin_PLM_Board
LTH писал(а):Жесть. Она ведь уже больше года как вообще с поддержки снята.
Не проще ли обновиться?
Вы ошибаетесь.
Техническая поддержка по версии 5.00 ещё оказывается. Она будет прекращена только 1 июня 2014 года. :)

Re: Проблема с многократной записью в атрибут

Добавлено: 30 май 2014, 14:41
LTH
Admin_PLM_Board писал(а):Вы ошибаетесь.
Техническая поддержка по версии 5.00 ещё оказывается. Она будет прекращена только 1 июня 2014 года. :)
Признаю, погорячился, с 4.30 перепутал. Но тем более есть повод перейти на 5.50, пока не поздно. :)