...

Отменить задачу в БП

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

  1. software_infotecs

    software_infotecs Участник

    Есть бизнес-процесс, по парольному шлюзу запущенны две задачи. Кто-нибудь знает, как отменить вторую задачу если одна из них выполнена?
    Как можно получить доступ к элементам экземпляра БП из сценария?
  2. a.mironov

    a.mironov Техническая поддержка

    Добрый день.
    Для поиска задач текущего процесса применяется метод _searchTasks: https://tssdk.elma365.com/ru/interfaces/_03_globals_.process.html#_searchtasks
    // получение всех активных задач (в статусе inProgress) раздела contracts приложения registraciya_docs
    const taskUUIDs = await Global.ns.contracts.app.registraciya_docs.processes._searchTasks().size(10000).where((f,g) => g.and(f.state.like(ProcessTaskState.inProgress))).all();

    Далее происходит поиск задачи текущего процесса:
    // поиск среди всех активных задач той задачи, которая принадлежит текущему процессу
    for (let key of taskUUIDs){
    const k = await key.fetch()
    if (k.data.instance!.__id == instances!.data.__id){
    let task_curr = k;
    if (task_curr){
    {
    let task = await System.processes._searchTasks().where(x => x.__id.eq(task_curr.data.__id)).first();
    Context.data.result = Context.data.result + task!.data.__id+ "\n"
    }
    }
    }
    Закрытие найденной задачи происходит с помощью метода getExits: https://tssdk.elma365.com/ru/interfaces/_01_items_.processtaskitem.html#getexits

    Получить доступ к элементам экземпляра процесса можно с помощью метода searchInstances: https://tssdk.elma365.com/ru/interfaces/_03_globals_.process.html#_searchinstances