...

Фильтрация процессов по контекстной переменной

Тема в разделе "Вопросы по функционалу", создана пользователем r.kiyamov, 6 авг 2018.

  1. r.kiyamov

    r.kiyamov Member

    Пытаемся отфильтровать процессы по контекстной переменой типа сделка. Переменная помечена входной и участвующей в поиске. в вебе в мониторе процессов ищет если в поле сделка указывать какую-то сделку, апри попытке проделать тоже самое сценарием не ищет - возвращает все экземпляры. Как правильно фильтровать процессы по сделке? Сделали на основе статьи https://www.elma-bpm.ru/KB/article-5801.html

    foreach (var sale in context.TargetSales)
    {
    sale.Responsible = context.Komu;
    Logger.Log.Error("_______Поменяли ответственного в сделке.");
    foreach (var procHeader in sale.SaleType.ProcessHeader)
    {
    var contextFilterType = Locator.GetServiceNotNull<WorkflowInstanceContextService>().GetInstanceContextFilterType(procHeader.Published);
    dynamic fl = Activator.CreateInstance(contextFilterType);
    fl.Sale = sale;
    var process = PublicAPI.Processes.WorkflowInstance.Filter().ProcessHeader(procHeader).ContextFilter(fl).Find();//задаем поиск по контексту.
    int i = 0;
    foreach (var p in process)
    {
    i++;
    }
    Logger.Log.Error(String.Format("Count = {0}", i));//выводим названия экземпляров процесса (вываливает 5417 штук)
    }
    }


    как в фильтр по контексту правильно пробросить сделку?

    просьба не цепляться к скобкам код вырван из контекста и в общей массе с ним всё норм. Не работает именно фильтр процессов по контексту.
     
  2. akarimov

    akarimov Member

    Попробуйте вариант без использования PublicAPI в статье на которую ссылаетесь - много раз использовал тот вариант, никогда не подводил, а в данном случае либо со сделкой что-то не так (как объектом) либо обертка PublicAPI кривая.
     
  3. r.kiyamov

    r.kiyamov Member

    судя по всему действительно не пашет пабликапи. Тоже пришли к такому же выводу. И саппорт тоже самое говорит)
     

Поделиться: