...

InstanceAddr и работа с ним

Тема в разделе "Вопросы по платформе", создана пользователем unam3, 15 май 2023.

Метки:
  1. unam3

    unam3 Активный участник

    У задач есть поле instance: InstanceAddr, указывающее на создавший их инстанс процесса.
    Можно ли зная значения полей __id, code и namespace получить ссылку на соответствующий экземпляр класса InstanceAddr для использования при поиске в
    _searchTasks?

    Поиск метода, который возвращает InstanceAddr ничего не дает: https://www.google.com/search?q=site:tssdk.elma365.com/+"Promise<InstanceAddr>"
  2. krivonos

    krivonos Техническая поддержка

    На данный момент нельзя использовать InstanceAddr при поиске задачи через метод _searchTasks.
    Данный функционал находится в разработке.
    В случае, если когда будет реализовано в какой-либо версии, информация о данных изменениях будет доступна в описании к версии.
  3. AlexanderBelyaev

    AlexanderBelyaev Новичок

    У меня получается искать задачи по id процесса следующим образом
    сначала беру все активные таски относящиеся к конкретному процессу (ProductCreationTask)
    var tasks = await Application.processes.ProductCreationTask._searchTasks()
    .where((x, f) => f.or(x.state.like(ProcessTaskState.inProgress), x.state.like(ProcessTaskState.assignment)))
    .size(10000).all();
    А уже после этого фильтрую по id процесса
    var task = tasks.filter(x => x.data.instance!.__id == pc.id);
    здесь instance имеет тип InstanceAddr, и в функции filter, в отличие от _searchTasks есть доступ к полям объекта instance
    Таким образом получается обойти эту проблему