Отзовитесь... специалисты по WorkFlow
- Старик Крупский
- Активный участник
- Сообщения: 803
- Зарегистрирован: 27 июл 2006, 22:17
- Откуда: Москва
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Вопрос - как реализовать функцию Дочитать в WorkFlow
проблема в том что в начале работы мне нужно прочитать достаточно большой объем информации в массив
- виды ускорили выборку - но все равно медленно
как реализовать следующую весчь
сначала запросом вывести первые 50 значений в массив, а потом если юзер будет крутить полосу прокрутки - дочитывать инфу в массив, причем дочитывать не всю а еще порцию еще допустим 50 значений???
или если спросить другими словами - как ускорить выборку значений из базы помимо использования видов?
у меня работа 1й раз на клиенте открывается 20 секунд (на 10й раз конечно всего пару секунд) как скрыть это обстоятельство не нервируя юзера как размазать эту задержку - чтобы время пролетело незаметно
проблема в том что в начале работы мне нужно прочитать достаточно большой объем информации в массив
- виды ускорили выборку - но все равно медленно
как реализовать следующую весчь
сначала запросом вывести первые 50 значений в массив, а потом если юзер будет крутить полосу прокрутки - дочитывать инфу в массив, причем дочитывать не всю а еще порцию еще допустим 50 значений???
или если спросить другими словами - как ускорить выборку значений из базы помимо использования видов?
у меня работа 1й раз на клиенте открывается 20 секунд (на 10й раз конечно всего пару секунд) как скрыть это обстоятельство не нервируя юзера как размазать эту задержку - чтобы время пролетело незаметно
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Старик Крупский
- Активный участник
- Сообщения: 803
- Зарегистрирован: 27 июл 2006, 22:17
- Откуда: Москва
- Старик Крупский
- Активный участник
- Сообщения: 803
- Зарегистрирован: 27 июл 2006, 22:17
- Откуда: Москва
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
Вопрос Как запретить неоднократный запуск работы по одному объекту
Есть объект, Есть Работа, Есть кнопка запускающая работу по объекту
Как сделать так чтобы работа могла быть запущена в одно время только с одного рабочего места?
или более гибко
как сделать так чтобы первый запущенный сеанс был доступен на редактирование а все остальные только на просмотр?
Есть объект, Есть Работа, Есть кнопка запускающая работу по объекту
Как сделать так чтобы работа могла быть запущена в одно время только с одного рабочего места?
или более гибко
как сделать так чтобы первый запущенный сеанс был доступен на редактирование а все остальные только на просмотр?
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Disillusioned
- Активный участник
- Сообщения: 420
- Зарегистрирован: 15 июл 2004, 15:12
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Подольск
- Контактная информация:
При старте работы можно установить значение служебного атрибута, при завершении (закрытии окна) удалить его. В действии, запускающем работу установить соответствующие условия отбора для a_Object или же поставить свойства контролов формы в зависимость от наличия значения атрибута.
Ах и с ними невозможно
И без них никак нельзя
И без них никак нельзя
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
с запуском и флагом занят свободен понятно
а вот как всетаки сделать - первый на редактирование - остальные на чтение
т.е.
- первый стартует и ставит - допустим 10 - работа запущена
- работа сразу переводит атрибут в 11 - работа для всех кроме первого на чтение
пойдет?
или между первым стартом и установкой на чтение - может влезть еще кто-то?
а вот как всетаки сделать - первый на редактирование - остальные на чтение
т.е.
- первый стартует и ставит - допустим 10 - работа запущена
- работа сразу переводит атрибут в 11 - работа для всех кроме первого на чтение
пойдет?
или между первым стартом и установкой на чтение - может влезть еще кто-то?
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Disillusioned
- Активный участник
- Сообщения: 420
- Зарегистрирован: 15 июл 2004, 15:12
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Подольск
- Контактная информация:
Вот, например:
В шаблоне заводим дополнительный документ-объект. Если он существует, считаем, что режим только для чтения, если нет, то можно редактировать.
В действии по запуску работы:
1. Значение атрибута уже установлено.
Запускаем работу с двумя параметрами (можно продублировать один и тот же объект)
2. Значение атрибута не установлено
Устанавливаем значение атрибута и запускаем работу с одним параметром.
При завершении работы, запущенной с одним параметром, удаляем значение атрибута.
P.S. Документы в шаблоне сортируются по описанию и чтобы достичь однозначности в присвоении значений разным документам работы лучше к описанию добавить порядковый номер.
В шаблоне заводим дополнительный документ-объект. Если он существует, считаем, что режим только для чтения, если нет, то можно редактировать.
В действии по запуску работы:
1. Значение атрибута уже установлено.
Запускаем работу с двумя параметрами (можно продублировать один и тот же объект)
2. Значение атрибута не установлено
Устанавливаем значение атрибута и запускаем работу с одним параметром.
При завершении работы, запущенной с одним параметром, удаляем значение атрибута.
P.S. Документы в шаблоне сортируются по описанию и чтобы достичь однозначности в присвоении значений разным документам работы лучше к описанию добавить порядковый номер.
Ах и с ними невозможно
И без них никак нельзя
И без них никак нельзя
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
>Disillusioned
слушай я вот тут все сижу и думаю над этим вопросом
ведь было бы вполне логично в какихто глобальных системных переменных хранить информацию о том кто в настоящее время использует то или иное действие ту или иную работу
мне даже кажется что должна быть какя-то системная таблица типа
id юзера-id работы/действия
ничего не знаешь по этому поводу?
слушай я вот тут все сижу и думаю над этим вопросом

ведь было бы вполне логично в какихто глобальных системных переменных хранить информацию о том кто в настоящее время использует то или иное действие ту или иную работу
мне даже кажется что должна быть какя-то системная таблица типа
id юзера-id работы/действия
ничего не знаешь по этому поводу?
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный
- Disillusioned
- Активный участник
- Сообщения: 420
- Зарегистрирован: 15 июл 2004, 15:12
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Подольск
- Контактная информация:
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
по поводу системных переменных..
есть возможность увидеть в БД, есть ли какие либо работы (с какими либо признаками) по текущему объекту.
такая информация пригодилась бы при попытке запуска работы?
то есть хранить атрибут даже не надо, можно на лету обращаться в БД и смотреть..
запрос непростой, но работает быстро, так как смотрит на небольшие таблицы. мы это оформили в виде ХП, поэтому вам, Александр, как любителю ХП, должно понравиться
на вход подается ИД объекта, например вот так:
причем процедура берет только те карты, которые НЕ завершены, в том числе и те, которые находятся на завершающем этапе, который у нас почти всегда называется "Окончание работы". то есть если даже этот этап еще не выполнен, и карта является НЕ завершенной, то запрос ее не выдает.
может быть, пригодится?..
есть возможность увидеть в БД, есть ли какие либо работы (с какими либо признаками) по текущему объекту.
такая информация пригодилась бы при попытке запуска работы?
то есть хранить атрибут даже не надо, можно на лету обращаться в БД и смотреть..
запрос непростой, но работает быстро, так как смотрит на небольшие таблицы. мы это оформили в виде ХП, поэтому вам, Александр, как любителю ХП, должно понравиться

Код: Выделить всё
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE lsdbo.custom_proc_get_active_maps_desc
@@obj_id numeric
as
select maps.description
from
lsdbo.wf_maps_view maps
where id in
(
SELECT DISTINCT lsdbo.wf_mail_v.map_id
FROM lsdbo.wf_attachments_view
,lsdbo.wf_mail_docs_v
,lsdbo.wf_mail_v
WHERE
lsdbo.wf_attachments_view.id = lsdbo.wf_mail_docs_v.attachment_id
and
lsdbo.wf_mail_docs_v.mail_id = lsdbo.wf_mail_v.id
and
lsdbo.wf_mail_v.map_id is not NULL
and
lsdbo.wf_attachments_view.app_id = 'P'
and
lsdbo.wf_attachments_view.object_id = 'OBJ'
and
lsdbo.wf_attachments_view.doc_id = @@obj_id
and
maps.state = 'B'
And
maps.id not in
(
select pos.map_id from
lsdbo.wf_map_cur_pos_v pos
,lsdbo.wf_map_nodes_view nodes
where pos.map_object_id = nodes.map_object_id
and
nodes.text = 'Окончание работы'
)
)
order by maps.cd
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
Код: Выделить всё
lsdbo.custom_proc_get_active_maps_desc 100000944800071
может быть, пригодится?..
лучше день потерять, потом за пять минут долететь!
- Александр
- Активный участник
- Сообщения: 1658
- Зарегистрирован: 24 авг 2006, 08:06
- Используемое ПО: Lotsia PDM PLUS
- Откуда: 55.745578,37.665825
кстати техподдержка мне тоже выложила запросец на эту тему
щас буду разбираться
Код: Выделить всё
Этот запрос выводит список работ, в которых используется объект с Id = <ID>:
--------
select *
from lsdbo.wf_Maps
where id in (select m.map_id
from lsdbo.wf_Attachments a, lsdbo.wf_Mail_Docs md, lsdbo.wf_Mail m
where a.doc_id = <ID> and a.object_id = 'OBJ' and
md.attachment_id = a.id and m.id = md.mail_id)
Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный