![]() |
![]() |
![]() |
|
Подскажите по бизнес-процессам - что там с транзакциями | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
20.11.15
✎
09:38
|
Схема такая:
1. Точка действия 2. Точка обработки 3. Точка обработки Выполняю задачу № 1 Задача.ВыполнитьЗадачу(); Переходит на точку обработки 2 - в ней делаю запись в регистр НаборЗаписей.Записать() В точке 3 я этого набора не вижу отсюда делаю вывод что все это внутри транзакции делается и как тут правильно поступить? |
|||
1
Cyberhawk
20.11.15
✎
09:39
|
А ты вызови ТранзакцияАктивна() и все узнаешь без косвенных наблюдений по чтению записанных намедни наборов
|
|||
2
xxTANATORxx
20.11.15
✎
09:42
|
(0)а что если в транзакции ты сделаешь НаборЗаписей.Записать() ты его не будешь видеть?
|
|||
3
RomaH
naïve
20.11.15
✎
09:43
|
(1) ну как бы да - транзакция активна
подскажите как правильно сделать: БП должен продвинуться вперед после проведения документа и сделать записи в РС с учетом движений этого документа |
|||
4
RomaH
naïve
20.11.15
✎
09:44
|
(2) ну вот - не видит
|
|||
5
vde69
20.11.15
✎
09:44
|
для понимания вставь в модуль объекта задачи (очень помогает при отладки)
Функция ПолучитьID_ОбъектаВПамяти () Экспорт ID = Неопределено; ДополнительныеСвойства.Свойство("ID_ОбъектаВПамяти", ID); Возврат (СокрЛП(ID)); КонецФункции а по всему тексту БП вставь типа этого НоваяЗадачаОбьект.ДополнительныеСвойства.Вставить("ID_ОбъектаВПамяти", "Источник обьекта - бизнесс процесс ""Согласование"""); |
|||
6
RomaH
naïve
20.11.15
✎
09:47
|
http://i10.pixs.ru/storage/8/1/8/2015112009_2146055_19572818.png
что-то вроде такого |
|||
7
RomaH
naïve
20.11.15
✎
09:49
|
(5) спасибо конечно, но тут в консерватории что-то не так
я пытаюсь сделать БП не имея понятия о методике |
|||
8
vde69
20.11.15
✎
09:55
|
(7) в БП при шаге задействована не одна задача а несколько, и у них у всех разные ипостасии...
именно для понимая с каким именно объектом ты сейчас в отладчике (это может быть текущая задача или вновь создаваемая) я и сделал (5), по другому очень тяжело что-то делать в модуле задачи. А по сколько транзакция в БП огромная (у меня было с десяток задач за раз) и каждая задача что-то делает в добавок там куча событий и подписок, то приходится выносить код записи регистров из БП в модуль задачи в процедуру "при записи", и вот тут без (5) просто не обойтись |
|||
9
User_Agronom
20.11.15
✎
10:05
|
(6) Уже есть документ - Нет - Провести документ!!!
Чего проводить-то собрался? |
|||
10
RomaH
naïve
20.11.15
✎
10:17
|
ок, тогда по другому вопрос задам
как увидеть движения которые сделаны в точке "Провести документ" из точки "Обработать...."? |
|||
11
Cyberhawk
20.11.15
✎
10:20
|
Опираться на движения, сделанные в той же транзакции, методологически неправильно.
Вынеси свой блок "Обработать с учетом движений..." в отдельную интерактивную задачу с какой-нибудь пометкой "Автовыполнение", а в отдельном регл. задании шерсти все такие задачи, проставляй им отметку выполнения и записывай |
|||
12
RomaH
naïve
20.11.15
✎
10:23
|
блин - у меня по при и более таких задач последовательных
а результат нужен сразу, а не через пять секунд пользователь нажал кнопку - провел документ фоновое выполнило первую задачу, вторую - третью - уже 3 секунды и еще результат показать на форме пользователю |
|||
13
RomaH
naïve
20.11.15
✎
10:23
|
у меня по три и более
|
|||
14
vde69
20.11.15
✎
10:25
|
(10) внутри транзакции ты видишь грязные данные, то есть уже записанные данные ты должен видеть.
если ты данные не видишь - значит ты их не записал теперь остается главный вопрос: в каких обработчиках ты пишешь и читаешь записи? |
|||
15
vde69
20.11.15
✎
10:26
|
(12) что за фоновое задание? колись...
|
|||
16
RomaH
naïve
20.11.15
✎
10:28
|
(15) это из (11)
|
|||
17
Cyberhawk
20.11.15
✎
10:28
|
(12) "результат показать на форме пользователю" // результат, опирающийся на код, выполняемый в рамках БП? Так не надо делать
|
|||
18
RomaH
naïve
20.11.15
✎
10:30
|
(14) что-то запутался - сделал сейчас пример попроще - все видно
|
|||
19
RomaH
naïve
20.11.15
✎
10:31
|
(17) чего это?
|
|||
20
Cyberhawk
20.11.15
✎
10:33
|
(19) пользователь должен работать со списком задач и по уходу одной задачи / появлению другой делать вывод, что все хорошо, а не смотреть и ждать в форме задачи, когда же там что-то обновится
|
|||
21
vde69
20.11.15
✎
10:33
|
(18) дело в том, что в БП обработчики вызываются непоследовательно по точкам, там очень хитрая схема...
вероятно ты читать не в том обработчике |
|||
22
RomaH
naïve
20.11.15
✎
10:35
|
(5)
а по всему тексту БП вставь типа этого НоваяЗадачаОбьект.ДополнительныеСвойства.Вс что за новая задача? |
|||
23
RomaH
naïve
20.11.15
✎
10:40
|
+(22) это при создании задачи?
|
|||
24
vde69
20.11.15
✎
10:43
|
(23) при создании, при выполнении, при записи и т.д.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |