...

Как достать задачи по резолюции в отдельную операцию?

Тема в разделе "Разработчикам", создана пользователем Andrey765, 16 окт 2018.

  1. Andrey765

    Andrey765 New Member

    upload_2018-10-16_11-7-14.png
    Есть процесс, после вынесения резолюции создаются задачи, в момент наступления операции Выполнение задач по резолюции она просто игнорируется и проходит, соответственно мы не видим, что в данный момент задачи выполняются и в конечном итоге процесс завершается.
    Нам необходимо, чтобы процесс завершался только после того, как все поставленные задачи будут выполнены. Возможно ли вытащить перечень задач в отдельную операцию? вот я нашел код:
    //загружаем резолюцию по идентификатору
    var resolution = PublicAPI.Docflow.Objects.Resolution.Load(3);
    //получаем список задач по резолюции
    var taskList = PublicAPI.Docflow.Tasks.GetTaskByResolution(resolution);
    //taskList - полученный список задач по резолюции

    По этому коду тоже вопросы есть, как получить id резолюции конкретного документа?
    и Каким образом записать полученные задачи по резолючии, чтобы их можно было видеть на форме?
    Спасибо за помощь!
     
  2. arkarimov

    arkarimov Member

    Все резолюции хранятся в самом документе, как прикрепленный к нему список. Поэтому можно имея ссылку на документ получить все его резолюции. Если док называется Протокол совещания, то все резолюции будут тут
    Код:
    context.ProtokolSoveschaniya.Resolution
    Если нужна последняя то
    Код:
    context.ProtokolSoveschaniya.Resolution.LastOrDefault()
    Касательно того что процесс завершается без выполнения зада по резолюции, то это странно, рекомендую почитать внимательно справку по настройке процессов документооборота, потому что когда я работал с этой операцией, точно помню что процесс не завершался пока не были выполнены и проконтролированы все задачи по резолюции. Правда в текущих операциях было пусто, задачи то обычные.
    Если хотите чтобы в текущих операциях было что-то, можно поставить туда таймер/задачу с эскалацией с периодическим обновлением статуса резолюции он у резолюций тоже присутствует
     
    1 это нравится
  3. Andrey765

    Andrey765 New Member

    Резолюция тащится, ошибок не выдаёт, но когда хочу циклом вытащить информацию по каждой задаче, то в мною созданную таблицу информация не попадает, вот код:

    var resolution = context.VhodDok.Resolution.FirstOrDefault();
    var idR = resolution.Id;
    var res = PublicAPI.Docflow.Objects.Resolution.Load(idR);
    var aprovment = PublicAPI.Docflow.Tasks.GetTaskByResolution(res);


    foreach (var tasks in aprovment)
    {
    var newRow = InterfaceActivator.Create<P_ObrabotkaVhodyaschihDoku_ZadachiPoRezolyucii>();
    newRow.Avtor = tasks.CreationAuthor;
    newRow.DataSozdaniya = tasks.CreationDate;
    newRow.Ispolnitelj = tasks.Executor;
    context.ZadachiPoRezolyucii.Add(newRow);
    }

    Подскажите как побороть это?
    Спасибо.
     
  4. arkarimov

    arkarimov Member

    А в этом документе context.VhodDok точно есть задачи по резолюции? Резолюций точно 1 штука?
    Попробуйте пройтись по всем резолюциям документа и посмотреть сколько их где найдено
    Код:
    foreach (var resolution
    in context.VhodDok.Resolution)
    var aprovment = PublicAPI.Docflow.Tasks.GetTaskByResolution(resolution );
    Console.WriteLine (string.Format("resolution={0} tasks count={1}"resolution.Id,approvement.Count));
     

Поделиться: