Автор | Сообщение | ||
---|---|---|---|
Удалён Гость |
Добавлено: 16.05.2005 09:53 Заголовок сообщения: проблема "слипшихся" проводок Кто как решает проблему появления в журнале одной компании проводок из разных компаний? Кроме scaclear по всем компаниям и пользователям есть ли другой способ? |
||
Juri Заслуженный форумщик Зарегистрирован: 18.10.2004 |
Добавлено: 16.05.2005 09:59 Заголовок сообщения: А насколько часто это происходит? |
||
aav Администратор Зарегистрирован: 14.09.2004 |
Добавлено: 16.05.2005 10:22 Заголовок сообщения: Re: проблема "слипшихся" проводок Я знаю, что такое может происходить, если «вычищается» работающий пользователь, а на его место входит другой. Так как у них (в 5.1 по крайней мере) занят один номер сессии (кажется, в 5.1 это называется номером терминала), то используются временные файлы с одним и тем же идентификатором, что в итоге и приводит к подобного рода печальным результатам. В данном контексте один из способов борьбы состоит в профилактике, т.е. запрете (возможно, чисто административными НЕ техническими действиями) «выбрасывания» кого-либо для входа в систему на его место. Знаю, некоторые пользователи приспосабливаются так делать, когда их не пускают в Скалу из-за превышения разрешенного количества одновременно работающих пользователей. |
||
Удалён Гость |
Добавлено: 16.05.2005 14:04 Заголовок сообщения: Происходит это нечасто, но способ исправления очень неуклюжий — приходится выводить из скалы всех работающих без их желания, что приводит к порванным проводкам, если кто-то в этот момент заводит проводку в журнал. Дело в том, что пересекаются проводки даже людей, которые одновременно работают в данный момент и обе их сессии активны. А как пользователь может осознанно залогинится в чужую сессию? |
||
aav Администратор Зарегистрирован: 14.09.2004 |
Добавлено: 16.05.2005 15:11 Заголовок сообщения: Как попасть в чужую сессию в 5.1?
|
||
Juri Заслуженный форумщик Зарегистрирован: 18.10.2004 |
Добавлено: 16.05.2005 16:22 Заголовок сообщения: У нас такие истории случались в 5.1, в 2.2 не наблюдаются. Связаны были, по большей части, с «волевым» очищением работающего юзера. Еще случалось после форс-мажорных вылетов Scala. Один случай был совсем восхитительный, почти у всех пользователей в финансовых модулях появились части проводок друг друга из разных компаний, причем никакой scaclear не помогал, просто песня… Пришлось полностью остановить работу. Потом выяснилось, что в системе две одинаковые таблицы с инфо о пользователями (то ли SY03, то ли SY13 — уже не помню, 5.1 нигде не осталось), но с разными owner’ами. Как и почему так случилось, отдельная история , но было… Про профилактику согласен с aav, надо различными способами запретить любой лишний доступ к функциям администрирования пользователей и к соответствующим таблицам. |
||
Удалён Гость |
Добавлено: 16.05.2005 16:39 Заголовок сообщения: Так пользователи и не имеют доступа к таблицам. Это глюк самой скалы. |
||
Jugulator Главный форумщик Зарегистрирован: 08.10.2004 |
Добавлено: 16.05.2005 17:26 Заголовок сообщения: SQL: примеры просмотра информации о терминалах (demo) /* Scala 5.1 SR13, MS SQL 2000 SP4 */ declare @sy03 table (i int PRIMARY KEY, inuse int) declare @i int declare @sy03len int declare @sy03chr char(1) declare @sy03str varchar(255) declare @tab_name char(8) declare @sy13 table (compcode char(2), usercode char(8), i int) DECLARE @sqlstr nvarchar(1000) SET NOCOUNT ON SELECT SELECT @sy03len = len(SY03003) from SY030000 WHILE @i <= @sy03len select * from @sy03 order by i DECLARE sy13_cursor CURSOR FAST_FORWARD FOR OPEN sy13_cursor FETCH NEXT FROM sy13_cursor INTO @tab_name WHILE @@FETCH_STATUS = 0 PRINT @sqlstr INSERT INTO @sy13 (compcode, usercode, i) SELECT SY13000, SY13001, SY13024 FROM ##sy13 FETCH NEXT FROM sy13_cursor INTO @tab_name CLOSE sy13_cursor SELECT a.compcode, a.usercode, a.i, b.inuse FROM @sy13 a INNER JOIN @sy03 b on a.i = b.i ORDER BY a.i SET NOCOUNT OFF |
||
Удалён Гость |
Добавлено: 16.05.2005 17:33 Заголовок сообщения: Как этот скрипт поможет решить проблему? |
||
Jugulator Главный форумщик Зарегистрирован: 08.10.2004 |
Добавлено: 16.05.2005 17:47 Заголовок сообщения: На основе этого скрипта можно сделать запросы, показывающие логические ошибки при работе с терминалами в Скале, например, если два разных пользователя используют один и тот же номер терминала, если терминал назначен пользователю в SY13, а в SY03 терминал числится доступным и т.п. Можно дописать и анализ использования модулей (лицензии), если взять поле SY13027 и сравнить с общим количеством пользователей в модуле в SY03 и т.д. Этот скрипт — просто демонстрашка, но имея подобный код, можно алерты какие-нибудь повесить, когда ситуация заведомо ошибочная. Меня эти вопросы уже не интересуют, поскольку 2.2, а во времена 5.1 подобные запросы использовал, и «двойников» видел, потом принимал меры — выгонял конкретно их, чистил. Либо, если по какой-то причине в SY03 оставалась запись, что терминал занят, хотя пользователь уже вышел, то корректировал SY03, чтобы освободить лицензию. Скрипт — не догма, а руководство к действию. |
||
REBUS Заслуженный форумщик Зарегистрирован: 07.12.2005 |
Добавлено: 02.02.2012 08:30 Заголовок сообщения: Для чего нужны поля SY03004 — SY03021? Они должны быть с нулем, если все пользователи вышли из Scala 5.1? _________________ Rebus |
||
Jugulator Главный форумщик Зарегистрирован: 08.10.2004 |
Добавлено: 02.02.2012 09:11 Заголовок сообщения:
1 — GL (Главная Книга) 2 — SL (Книга Продаж) 4 — PL (Книга Закупок) 7 — SC (Управление Запасами) 8 — OR (Заказы на Продажу) 9 — PC (Заказы на Закупку) 10 — ST (Статистика) 11 — PA (Зарплата) Следуя этой логике, в поле SY03014 может быть общее количество пользователей, использующих модуль Зарплата. Проверить это предположение не могу, работающей системы у меня сейчас нет. |
||
REBUS Заслуженный форумщик Зарегистрирован: 07.12.2005 |
Добавлено: 02.03.2012 05:51 Заголовок сообщения: Jugulator, спасибо за разъяснение. _________________ Rebus |