...

Вопрос по контексту

Тема в разделе "Вопросы по функционалу", создана пользователем dsabitov, 22 окт 2017.

  1. dsabitov

    dsabitov New Member

    Всем доброго дня!

    Столкнулся с такой проблемой.
    Из одного процесса запускаю другой. При этом из главного процесса передаю в виде числовой переменной ID главного процесса.
    И вот тут я скорее всего что-то не понимаю.
    Находясь в главном процессе, я считаю, что ID этого процесса можно получить так:
    int64 MainProcessID = context.ID;
    Специально вывел на форму этот ID-шник. Равен он 4041. Тут же делаю выборку по базе
    select * from WorkFlowInstance with(nolock) order by StartDate desc
    и вижу в верхней строке выборки не 4041, а 4344. Т.е. в реальности только что создался процесс с ID=4344 а не 4041.
    Вся дальнейшая логика ломается из-за такого не правильного определения MainProcessID. Потому что дочерний процесс по окончании работы пытается отослать родительскому процессу
    PublicAPI.Processes.WorkFlowInstance.Load(переменная в к-ю передан целочисленный параметр)
    сообщение "о проделанной работе", но отсылает не процессу с номером 4344, а процессу с номером 4041 (который в общем-то тоже есть, т.е. БЫЛ, т.к. уже завершен).
    Итак, суть вопроса - как имея context правильно определить Id процесса?

    Заранее спасибо за помощь!
     
  2. akarimov

    akarimov Member

    context.Id это Id объекта контекст, а не Id экземпляра процесса. Id экземпляра будет так context.WorkflowInstance.Id
    Только непонятно зачем это все, если родительский процесс есть в самом процессе в свойстве context.ParentInstance
     
  3. dsabitov

    dsabitov New Member

    Спасибо akarimov! Конечно не понятно, я теперь сам не понимаю зачем именно так сделал - просто я новичок. Все эти мои ошибки все равно пойдут мне на пользу. Еще раз спасибо!
     

Поделиться: