...

Как вытащить созданный элемент из процесса, привязанного к странице?

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

  1. mokrushina

    mokrushina Участник

    Кейс: есть приложение типа "Страница", там есть кнопка, на которую закреплен БП, внутри БП создается элемент.
    Вопрос: как его вытащить созданный элемент из этого БП в скриптах внутри конструктора этой страницы?
  2. b.melnik

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

    Добрый день! Для реализации описанного кейса необходимо запускать процесс с помощью сценария использую метод run() (https://tssdk.elma365.com/ru/interfaces/_03_globals_.process.html#run), метод возвращает идентификатор процесса. С помощью идентификатора процесса можно обратиться к контексту процесса и получить созданный элемент. Пример:
    let processTemplate = Namespace.processes.sozdanie_elementa; //ищем нужный процесс
    let idProcess = await processTemplate.run({});
    let instance = await processTemplate._searchInstances().where(a=>a.__id.eq(idProcess)).first();
    let response = await fetch(`https://<адрес площадки>/pub/v1/bpm/instance/${idProcess}/get`, {
    method: 'GET',
    headers: {'Authorization': 'Bearer token'}
    });
    //обращаемся к respons.data.<code переменной> для получения значения
  3. vityaanimato

    vityaanimato Участник

  4. SlutskyIV

    SlutskyIV Новичок

    Не работает. Техподдержка говорит, что это устаревшая статья!
  5. semenova

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

    Добрый день.
    Метод получения экземпляра процесса работает корректно. В данном случае в исходном примере указан неправильный пример обращения к свойствам контекста экземпляра.
    Вместо обращения к переменной путем response.data.<code переменной>, необходимо прежде всего обработать ответ c использованием метода json(), например:
    let result = await response.json();
    В таком случае ответ будет разобран в виде JSON, что позволит обращаться к значениям контекста экземпляра:
    let any_value = result.data.<код_переменной>