...

Запуск процесса и передача данных в контекст при помощи сценария

Тема в разделе "Примеры сценариев", создана пользователем evgeneva, 7 окт 2021.

  1. evgeneva

    evgeneva Участник

    На кнопку можно добавить действие по запуску процесса и передать в него некоторые входные данные, например, пользователя и строку данных.

    Для этого выполните следующие шаги:
    1. Добавьте на форму виджет «Кнопка».
    2. В настройках виджета «Кнопка» перейдите на вкладку «События».
    3. Добавьте событие при нажатии. Пример сценария представлен ниже.
    Код:
    
    /* Client scripts module */
    async function startProcess(): Promise<void> {
          const 
    currUser await System.users.getCurrentUser();
          const 
    inputDataProcess$MyRazdel$MyProcess$Context$$Data = {
               
    polzovatel: (([currUser.id] as any) as UserItemRef),   // текущий API предполагает ТОЛЬКО передачу id объекта
               
    stroka_dannykh"Строка данных"
          
    };
          
    await Namespace.processes.myProcess.run(inputData);
    }
  2. Aleksei_Grylev

    Aleksei_Grylev Новичок

    Добрый день!
    Поясните, что обозначает строка Process$MyRazdel$MyProcess$Context$$Data ? $MyProcess - это что?
  3. sobolev

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

    Добрый день!

    Строка определения переменной inputData как интерфейса контекста определенного процесса. Она создаёт структуру идентичную контекста процесса, в которой точечно можно указать значения передаваемых в запускаемый процесс контекстных переменных.
    Последнее редактирование: 19 ноя 2021
  4. babrig

    babrig Участник

    ТП подтвердили, что передать данные с типом Дата/Время, возможно пока только через преобразование их в строку и потом в запускаемом БП обратно.
    Последнее редактирование: 5 фев 2022
  5. ruslan.fomin

    ruslan.fomin Участник

    А есть метод запуска без использования Global или Namespace? по API например
  6. sobolev

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

    Добрый день!

    Да, имеется API для запуска процессов. Подробнее - https://api.elma365.com/ru/public-api/reference/bpm/bpmtemplaterun/
    Вы можете использовать его как с других внешних сервисов так и прямо в сценариях самой этой же ELMA365.
  7. ivan.yarkov

    ivan.yarkov Новичок

    Добрый день! Подскажите, пожалуйста, таким образом можно передать только строку или любые более сложные данные? Например, одну или несколько переменных типа "Приложение" или типа "Файл"? Будьте добры, поделитесь примером кода, если не трудно.
  8. matushok2008

    matushok2008 Новичок

    Код:
    
        await myProcess.run({
            
    application: ((Context as any) as BaseApplicationItem<Application$Раздел$Приложение$Dataany>),
        });
    Context - текущий элемент приложения.
    application - код контекста в БП (в данном случае приложение(Один))