Скажите, пожалуйста, в каком пространстве имён находится класс UserConnection, который имеет свойство EntitySchemaManager, относительно которого вызывается метод GetInstanceByName(). Собственно, меня здесь больше всего интересует сам метод GetInstanceByName(). Заранее благодарен.

Нравится

1 комментарий

Евгений, добрый день!

Класс UserConnection находится в пространстве имён Terrasoft.Core.

Метод GetInstanceByName реализован в классе Manager, от которого наследуются все менеджеры системы, в том числе и EntitySchemaManager. Класс Manager также находится в Terrasoft.Core.

Показать все комментарии

Добрый день всем,
Хочу протестировать бизнес процесс путем программного вызова - НЕ ЧЕРЕЗ ВЕБ СЕРВИС.

string processName = "Process2";
var schema = userConnection.ProcessSchemaManager.GetInstanceByName(processName);
var process = schema.CreateProcess(userConnection);
process.SetPropertyValue("value1", value1);
process.Execute(userConnection);

Как мне получить и создать userConnection и AppConnection?

Нравится

8 комментариев

Добрый день!!!

using Terrasoft.Core;

позволит вам обратиться к Методам и Свойствам "userConnection" и "AppConnection"

будут еще дополнительные вопросы обращайтесь поможем.

Михаил, спсаибо
Это простр имен у меня подключено. Свойства и методы вываливаются, но дальше не знаю как быть. В веб сервисе эти объекта считываются из переменной сессий или глоб переменных

_userConnection = HttpContext.Current.Session["UserConnection"] as UserConnection;
var appConnection = HttpContext.Current.Application["AppConnection"] as AppConnection;

Пытаюсь сделать так:

string sessionId = Guid.NewGuid().ToString("N");
Thread.CurrentPrincipal = new TerrasoftPrincipal(new GenericIdentity(userName), new string[0], sessionId);
 _userConnection = new UserConnection(appConnection);
 _userConnection.Initialize();
 _userConnection.SessionId = sessionId;
 _userConnection.Login(userName, false);

Не знаю как правильно передавать параметры логина, пароль, хоста через свойства этих объектов

Снаружи не через сервис вы БП не запустите. Из API у нас только OData.

Жалко, был бы удобный и быстрый инструмент для тестирования. OData не позволяет запускать БП? А как мне запустить БП из веб интерфейса (главное окно MainMenu) с передачей параметров, ну например Id договора?

Через OData можно запустить БП. В этой теме есть примеры.

спсб, работает
сделал в 2 этапа
1. авторизация через AuthService.svc с сохранением в куки
2. ProcessEngineService.svc с чтением из куки. Без 1 этапа отбрасывает на авторизацию

Специалист CRM,

 поделитесь итоговым кодом пожалуйста

 

Сомнительно, что код пятилетней давности тут поможет. Как минимум, при авторизации добавили проверку BPMCSRF.

Показать все комментарии