Ожидание завершения процесса в workflow

eugeny

Топикстартер
12 лет на форуме
Сообщения
482
Реакции
96
Всех приветствую!
Есть Воркфлоу, который использует собственные параметры. Т.е. из файла получена информация, она заносится в параметры, затем на следующем этапе они используются Другим Тикетом. Когда через воркфлоу запускаешь один файл, то все хорошо. Когда несколько, то параметры меняются вторым файлом, до того, как отработает Другой Тикет с первым файлом.
Необходимо остановить воркфлоу для следующего файла, пока предыдущий не пройдет через Другой Тикет. Splitter и Collector не помогли в решении, или может я не так их настраивал.
Как можно остановить процесс для следующего файла до завершения определенного тикета с предыдущим файлом?
 
Последнее редактирование:

oblap

15 лет на форуме
Сообщения
202
Реакции
58
Перед запуском файла в Другой (дочерний) тикет ставить проверку на триггер. Создавать сущность-триггер "Busy" (файл или запись в БД или еще что-то) при запуске дочернего Тикета. В конце выполнения дочернего Тикета триггер сбрасывать (удалять, менять значение).
 

eugeny

Топикстартер
12 лет на форуме
Сообщения
482
Реакции
96
Перед запуском файла в Другой (дочерний) тикет ставить проверку на триггер. Создавать сущность-триггер "Busy" (файл или запись в БД или еще что-то) при запуске дочернего Тикета. В конце выполнения дочернего Тикета триггер сбрасывать (удалять, менять значение).
а можно поподробнее, на примере.
Допустим, у меня есть стоит тикет коллектор (собрал все файлы). Дальше идет роутер на проверку триггера, следующим шагом устанавливается триггер (modify workflow parametr). но файлы проскачат раньше, чем сработает установка параметра.
Screenshot_15.jpg
 

almastu

15 лет на форуме
Сообщения
427
Реакции
55
После сплиттера основную рабочую часть запихиваете в под-воркфлоу. Теперь пока тикет-подворкфлоу не обработает пришедший файл, следующий он не возьмет...
 

oblap

15 лет на форуме
Сообщения
202
Реакции
58
После сплиттера основную рабочую часть запихиваете в под-воркфлоу. Теперь пока тикет-подворкфлоу не обработает пришедший файл, следующий он не возьмет...
Снимок3.JPG

Не получается так. Все файлы одновременно попадают в подворкфлов.
 

almastu

15 лет на форуме
Сообщения
427
Реакции
55
прошу прощения за вопрос, а у вас точно этот вариант в настройках сплиттера стоит?:
1624271866134.png
 

eugeny

Топикстартер
12 лет на форуме
Сообщения
482
Реакции
96
Спасибо большое, да всё работает. Я уже думал про смартнейм n-th InputFile, но не придумал, как реализовать. Я думал, что он помнит номер проходящего файла весь запуск ворфлоу, а он считает только одновременную входящую очередь. И следующую опять начинает с единицы.
 

eugeny

Топикстартер
12 лет на форуме
Сообщения
482
Реакции
96
Причем, это работает только через файл или запись в БД. Через Modify Workflow Parameter не работает. Каждый файл подходит к тикету со своим первоначальным состоянием Workflow Parameter.
Т.е. происходит похоже это так. Первый файл проходит через роутер меняет триггер(Modify Workflow Parameter) на Busy. Остальные файлы дожидаются в очереди, но оказывается у них свое первоначальное состояние триггера.
 

almastu

15 лет на форуме
Сообщения
427
Реакции
55
наконец добрался разобраться. Смотрите какая история идет дальше:
1624370516266.png

на входе - как на вашем скрине сверху. Видим, что АЕ отображает прохождение файлов так, будто они идут скопом - но по факту, WFP к каждому файлу применяется свой. Видимо, заводит для каждого файла из после сплиттера отдельную изолированную в памяти ячейку под следующий тикет. Может, вам и не поможет - но вдруг кому-нибудь...

Причем идут они параллельно - если ставить WFP текущего времени, это заметно
 
Последнее редактирование:

ACTPOHOM

12 лет на форуме
Сообщения
2 907
Реакции
1 118
Очень шаткая конструкция с ожиданиями и параметрами.
Сохраняйте в данные в XML c именем файла и пользуйте в любой момент кем угодно и когда угодно, по завершени можно подтереть за собой эти временный файлы.
 

eugeny

Топикстартер
12 лет на форуме
Сообщения
482
Реакции
96
Очень шаткая конструкция с ожиданиями и параметрами.
Сохраняйте в данные в XML c именем файла и пользуйте в любой момент кем угодно и когда угодно, по завершени можно подтереть за собой эти временный файлы.
Ну давайте представим такую ситуацию. В воркфлоу есть точка останова (wait for action) где есть возможность изменить параметры по умолчанию (углы, линеатуру, дисторсию и т.п.). Все это заносится в параметры воркфлоу, а потом выгружается в xml файл для РИПа. Ну тут второй файл заходит на тикет (wait for action) с параметрами по умолчанию. И... успели выгрузится параметры в XML? перед тем как их перезаписало параметрами по умолчанию для следующего файла?
 

Akro

Участник
Сообщения
300
Реакции
11
Ну давайте представим такую ситуацию. В воркфлоу есть точка останова (wait for action) где есть возможность изменить параметры по умолчанию (углы, линеатуру, дисторсию и т.п.). Все это заносится в параметры воркфлоу, а потом выгружается в xml файл для РИПа. Ну тут второй файл заходит на тикет (wait for action) с параметрами по умолчанию. И... успели выгрузится параметры в XML? перед тем как их перезаписало параметрами по умолчанию для следующего файла?
Так смысл в том что XML для следующего файла будет иметь уже другое имя. Смысл то в том что для каждого входящего файла будет свой xml файл с параметрами с индивидуальным именем. Для "файл1" будет файл1.xml. Для "файл2" будет файл2. xml Поэтому ничего не перезапишется.
 

eugeny

Топикстартер
12 лет на форуме
Сообщения
482
Реакции
96
Так смысл в том что XML для следующего файла будет иметь уже другое имя. Смысл то в том что для каждого входящего файла будет свой xml файл с параметрами с индивидуальным именем. Для "файл1" будет файл1.xml. Для "файл2" будет файл2. xml Поэтому ничего не перезапишется.
да, но первоначально параметры заносятся в параметры воркфлоу. И только после того, как оператор выбрал нужные они записываются в xml (следующим тикетом) с именем данного файла. Потом для следующего файла параметры возвращаются к "по умолчанию". И где гарантия, что xml для предыдущего файла в воркфлоу не будет создан с этими значениями "по умолчанию"?
 
Последнее редактирование:

Akro

Участник
Сообщения
300
Реакции
11
да, но первоначально параметры заносятся в параметры воркфлоу. И только после того, как оператор выбрал нужные они записываются в xml (следующим тикетом) с именем данного файла. Потом для следующего файла параметры возвращаются к "по умолчанию". И где гарантия, что xml для предыдущего файла в воркфлоу не будет создан с этими значениями "по умолчанию"?
Так в таком случае используйте splitter перед тем как зайти в wf. У вас тогда каждый зашедший туда файл будет сам по себе. И если в wf где то меняются какие то параметры, то для каждого файла они будут свои.
 
  • Спасибо
Реакции: ACTPOHOM

ACTPOHOM

12 лет на форуме
Сообщения
2 907
Реакции
1 118
да, но первоначально параметры заносятся в параметры воркфлоу. И только после того, как оператор выбрал нужные они записываются в xml (следующим тикетом) с именем данного файла. Потом для следующего файла параметры возвращаются к "по умолчанию". И где гарантия, что xml для предыдущего файла в воркфлоу не будет создан с этими значениями "по умолчанию"?
Получается, что у вас все файлы идут в одной группе параметров.
Вам надо из разделить их тикетом Splitter до присвоения каждому WorkFlow Parametr, и не соединять до конца процесса, пока вам нужны эти параметры отдельно. Это вообще основы построения workflow
 

eugeny

Топикстартер
12 лет на форуме
Сообщения
482
Реакции
96
Получается, что у вас все файлы идут в одной группе параметров.
Вам надо из разделить их тикетом Splitter до присвоения каждому WorkFlow Parametr, и не соединять до конца процесса, пока вам нужны эти параметры отдельно. Это вообще основы построения workflow
Ну это я и пытаюсь решить: не соединять до конца определенного процесса. Если вы посмотрите комментарий № 7...