Добрый день коллеги! Я столкнулся с проблемой при работе с бизнес процессом Bpmonline 7.7.0.2111. Ранне в 7.6 в блоке задачи сценарий была переменная UserConnection. В Bpmonline 7.7 этой переменной нет. когда я хочу передать UserConnection, выдает ошибку что являеть тип а не переменная. Как можно достать UserConnection на с# бизнес процесса Bpmonline 7.7 ? См. фото
Нравится
Можно использовать context.UserConnection, хотя странно, в базовых процессах используется просто UserConnection.
Добрый день!
В версии 7.7 экземпляр типа UserConnection можно получить через метод Get. Например, var userConnection = Get(“UserConnection”);
Следует отметить, что для обращения к параметрам процесса следует также использовать методы Get и Set.
Пример работы с параметрами:
var parameter1 = Get("Parameter1");
Set("Parameter2", parameter1.ToString());
var parameter2 = Get("Parameter2");
Кроме того можно в свойствах элементе "Задание-сценарий" убрать признак [Для интерпретируемого процесса]. В таком случае можно работать с экземплярами аналогично версии 7.6.
Здравствуйте!
В схемах сервисов принять так:
var userConnection = (UserConnection)HttpContext.Current.Session["UserConnection"];
Это уже есть в базовом сервисе, достаточно унаследоваться от BaseService и будет доступно свойство UserConnection:
public class TestDataService : BaseService
В хелпер класах (которые не сервисы) принято передавать в конструктор при создании:
new RightsHelper(userConnection);
А внутри использовать тот, который передали
Добрый день!
Конструкция Set("ProcessParameter", someVariable); подходит для всех типов. ProcessParameter – название параметра процесса. someVariable – переменная, созданная ранее в ScriptTask
Олег, здравствуйте!
Так не получается. Код
var webClient = new WebClient(); byte[] imageBytes = webClient.DownloadData("http://93.158.58.239:3333/someimage.jpg"); MemoryStream ms = new MemoryStream(imageBytes); Set("scanParam", ms);
выдает ошибку
The best overloaded method match for 'Terrasoft.Core.Process.IProcessParameterStore.SetParameterValue(System.Guid, string, string)' has some invalid arguments
Параметр scanParam - типа Файл
Здравствуйте!
Какую задачу Вы решаете? Базовые элементы процесса не умеют работать с файлами.
Здравствуйте, Алексей.
Как видно из кода выше, я получаю файл по url. Затем нужно его записать в параметр, чтобы использовать далее по процессу.
"Демьяник Алексей" написал:Базовые элементы процесса не умеют работать с файлами.
То есть я не смогу записать значение моего файлового параметра в базу, например, с помощью элемента "Изменить данные"?
Элемент "Изменить данные" не умеет работать с типом данных "BLOB". Вы можете добавить файл в бизнес процессе, однако для этого необходимо использовать элемент "Задание сценарий". В нем необходимо реализовать логику добавления файла на деталь. Пример Вы можете найти в схеме ImapClient, метод AddAttachmentToActivity