...

Запуск процесса - ссылка на родительское приложение

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

  1. c_trunk

    c_trunk Участник

    Доброе время суток!

    Вопрос по LowCode. Есть бизнес-процесс уровня раздела (БПР), который является общим по отношению к нескольким приложениям, входящим в этот раздел. В этом БПР есть необходимость работать со статусами родительских приложений (так как на уровне раздела статусы определить нельзя)

    Вызов БПР из бизнес-процессов приложений осуществляется через элемент "Запуск процесса". Попытка ввести в контекст БПР переменную типа "приложение" и инициализировать ее в "Запуске процесса" оказалась неудачной, так как в блоке сопоставления входных переменных для родительских значений невозможно выбрать собственно ссылку на родительское приложение. Выбор идет только по контексту родительского приложения.

    "Более других идей" по передаче ссылки в дочерний процесс не имею. Чуда так же не произошло и "автоматически" ничего не заработало - статусы при движении документа по инстанциям не меняются согласно элементам управления статусами. Есть ли какой-то способ манипуляции статусами при такой архитектуре раздела?

    upload_2022-1-13_15-40-32.png
  2. sobolev

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

    Добрый день!

    Уточните, пожалуйста, верно ли Я Вас понял: Вам необходимо в подпроцесс "БПР" передать элемент приложения родительского процесса? (Далее в БПР Вы планируете через блок "Управление статусом" менять статусы элемента приложения родительского процесса)?
  3. c_trunk

    c_trunk Участник

    Добрый день!

    В целом, да. Но я не совсем уверен в общепринятых терминах... Про блок управления статусом в БПР - именно так, но вот что именно я хочу передать - это вопрос...

    В настройках блока управления статусом есть поле "Переменная", которое, насколько я вижу, ссылается на контекстные переменные типа "приложение" Вот эту контекстную переменную, которая используется в настройках блока статусов, нужно инициализировать указателем на приложение, из которого происходит вызов БПР.
  4. sobolev

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

    В таком случае необходимо:
    1) В подпроцессе создать переменную типа Приложение, с нужным приложением, в примере называется "ЭлементПереданный"
    2) В настройках блока запуска подпроцесса в родительском процессе добавить связь (Скриншот 14-01-2022 170306.jpg), в примере это "ЭлементПереданный"-переменная в подпроцессе типа приложение и "Процесс и подпроцесс" - переменная типа приложение и называется "Процесс и подпроцесс".
    Таким образом, при запуске подпроцесса в его контекст в переменную будет передано приложение родительского процесса. Далее с ним уже можно будет работать в том числе с помощью блока "Управление статусом"

    Вложения:

  5. c_trunk

    c_trunk Участник

    Да, этот вариант работает, но подпроцессная переменная ссылается на конкретное приложение при ее определении. Если подпроцесс вызывается из этого предопределенного приложения - то все работает нормально, но если я вызываю этот же подпроцесс из другого процесса, то блоки управления статусами уже не работают.

    Если формулировать более общий вопрос - то переменную типа "приложение" (в том числе и в скриптах) можно инициализировать в процессе выполнения кода, или там все заранее предопределено при трансляции?
  6. sobolev

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

    Доброй день!

    Да, можно определить, только в сценариях. Соответственно и изменение статуса такой переменной возможно в сценарии. Пример:
    let AllWorkObrashReturn: ApplicationItem<Application$ServiceDesk$obrasheniya$Data, Application$ServiceDesk$obrasheniya$Params>[];

    Для лоу-код механизма (переменные в разделе "Контекст") возможности менять типы после публикации нет.
  7. c_trunk

    c_trunk Участник

    Спасибо! Будем посмотреть )