Страница 2 из 2
Re: Вопрос по выбору типов блоков WorkFlow
Добавлено: 11 янв 2013, 13:02
Александр
не что то не то - на пустом поле открытого шаблона... это ведь id шаблона...
вот есть такая переменная шаблона

- 21.png (31.96 КБ) 41405 просмотров
в ней вроде как лежит id запущенной карты (которое отличается от id шаблона?)
не знаешь - вот это id карты можно использовать? чтобы добраться к значению переменной
запущенной карты через SQL запрос?
...
хотя стоп пока в этой таблице
lsdbo.wf_maps_view поле id одно и для шаблона и для карты
короче пойду пробовать

Re: Вопрос по выбору типов блоков WorkFlow
Добавлено: 11 янв 2013, 14:01
Anderyt
а, ну если программно - то да, это как раз Работа.ID

и да, ИД карты отличается от ИД шаблона, по которому эта карта создана. с точки зрения лоция, карта и шаблон - это одна и та же сущность, они хранятся в одних и и тех же таблицах. вся разница - в поле is_template

Re: Вопрос по выбору типов блоков WorkFlow
Добавлено: 11 янв 2013, 14:42
Александр
запрос типа, показать все переменные шаблона или карты
Код: Выделить всё
select * --lsdbo.wf_map_vars_v.var_value
from lsdbo.wf_map_vars_v
where lsdbo.wf_map_vars_v.map_id = 100007304500017
показывает только начальные (до старта работы) значения переменных шаблона
или карты после нажатия кнопки принять (т.е. когда карта записывается в бд)
но
все значения измененных в процессе переменных не отображаются в запросе хотя на формах этапов работы они есть...
ps
т.е. сделал работу два шага начало конец, присвоил значения по умолчанию, потом при открытии формы работы изменил их - но в запросе все равно только то что по умолчанию... без изменений
Re: Вопрос по выбору типов блоков WorkFlow
Добавлено: 11 янв 2013, 14:56
Anderyt
эээ.. видимо, значения переменных записываются в БД при выполнении задачи.. или при нажатии кнопки Применить..
тут я не скажу точно..
просто когда мы на форме изменили какую ту переменную, ее новое значение вряд ли сразу попадает в БД. можно нажать Применить.. может тогда сохранится (при выполнении задачи 99%, что сохранится). Применить можно программно нажимать, если нужно. хоть на автомате после изменения значения переменной, вроде бы
Александр писал(а):все значения измененных в процессе переменных не отображаются в запросе хотя на формах этапов работы они
а если эту форму закрыть, нажав Отмена, и снова открыть - какие будут значения?
Re: Вопрос по выбору типов блоков WorkFlow
Добавлено: 11 янв 2013, 15:01
Disillusioned
Значения записываются в БД при нажатии кнопки Применить и ОК (после подтверждения перехода к следующему этапу).
Также возможна запись в БД и по кнопке Отмена (если подтвердить запись изменений).
Re: Вопрос по выбору типов блоков WorkFlow
Добавлено: 11 янв 2013, 15:23
Александр
вот в профайлере нашел запрос на все текущие переменные карты работы
Код: Выделить всё
SELECT
mv.map_id,
mv.var_name,
0,
mv.var_type,
mv.var_visible,
mv.var_value_type,
case when mvm.mail_id is null then mv.var_value else mvm.var_value end,
mv.description,
mvm.mail_id,
od.value_n,
od.value_t
FROM lsdbo.our_dummy od, lsdbo.wf_map_vars_v mv
left outer join lsdbo.wf_map_vars_mail_v mvm on
mvm.map_id = mv.map_id AND mvm.var_name = mv.var_name --AND
-- mvm.mail_id = 2583
WHERE mv.map_id = 100007304800017
или на измененные
Код: Выделить всё
select * --lsdbo.wf_map_vars_v.var_value
from lsdbo.wf_map_vars_mail_v
where
lsdbo.wf_map_vars_mail_v.map_id = 100007304800017
ну вроде все типа
1. шаг начала работы
2. сохранить id карты в объект
3. из шага работы него стартовать кучу отдельных работ
4. запросом найти все дочерние
5. запросами посмотреть текущие переменные карт (БЕЗ использования атрибутов объекта)
6. на карте нарисовать прогрессы прогрессов
- можно начинать работать

вроде все чисто
Re: Вопрос по выбору типов блоков WorkFlow
Добавлено: 11 янв 2013, 19:04
LTH
Александр писал(а):Мы запускаем первый в жизни бизнес процесс
ОФФ: Ну наконец-то!

Re: Вопрос по выбору типов блоков WorkFlow
Добавлено: 14 янв 2013, 09:04
Александр
кстати вот более правильный запрос на последнее значение переменных (с sql.ru) для MS SQL2005
забирает последние изменения переменных с мах mail_id (ID сообщения)
чтобы предотвратить такую ситуацию например
Код: Выделить всё
var_name mail_id var_value
idCard 2587 100007305700017
idCard 2588 100007305700017
msg 2587 '11 работы'
msg 2588 '11234 работы'
сам запрос
Код: Выделить всё
select top(1) with ties *
from lsdbo.wf_map_vars_mail_v
where map_id = 100007305700017
order by row_number()over(partition by var_name order by mail_id desc);
Re: Вопрос по выбору типов блоков WorkFlow
Добавлено: 14 янв 2013, 09:55
Александр
а вот еще вопросик))
если из Работы1 запускается Работа2 по кнопке, вызывающей действие, в котором работа стартует через функцию WndWorkStart (Работа2) то в таблице WF_MAPS_view.parent_id значение родителя равно NULL, а как многократно запустить внешнюю Работу2 из Работы1 чтобы ВСЕ Работы2 имели родителя в этом поле??
вообще не въеду никак как это выглядит графически на карте Работы1
типа есть Кнопка на форме Работы1 есть ромб внешней работы на блок схеме - как их завязать между собой чтобы без использования переходов, или если без них нельзя то как с переходами чтобы можно было многократно нажимать эту кнопку вызова Работы2
Re: Вопрос по выбору типов блоков WorkFlow
Добавлено: 14 янв 2013, 11:02
Александр
если через блок схему

- 14.gif (11.12 КБ) 41386 просмотров
то вроде много ходов получается
может лучше по кнопке стартовать и в новую работу через действие передавать id родителя в переменную этой работы
Андрей - жду совета!!!)))
Re: Вопрос по выбору типов блоков WorkFlow
Добавлено: 14 янв 2013, 11:35
Anderyt
с многократным нажатием - проблематично. внешняя работа запускается после перехода из какой-либо задачи. способы запустить некоторое кол-во внешних задач после нажатия кнопки есть, но они именно "после", а не "по" (
это будет выглядеть так: на форме задачи тыкаем сколько надо раз кнопку, увеличивая счетчик в какой-нить переменной, потом выполняем задачу, управление переходит к паре Р-О, внутри которой есть выполняемая автоматически задачи, из которой есть переход на запуск внешней работы. эта задача внутри Р-О должна быть повторена столько раз, сколько записано в том самом счетчике. и тогда может быть parent_id будет заполнено, но не факт. но что-то мне подсказывает, что тебя такой геймплей совсем не устраивает
тогда самое легкое - по кнопке запускать действие с вызовом новой работы. конечно, в параметрах можно кучу всего передать. но работы будут никак не связаны с основной работой (разве что посредством вложенного объекта).
Re: Вопрос по выбору типов блоков WorkFlow
Добавлено: 14 янв 2013, 11:45
Александр