Добрый день!
Подскажите, пожалуйста, как получить количество новых(не обработанных) обращений в bpmonline 7.14 на С#?
Нравится
var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Case"); esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Status.Id", *тут ID состояния обращения НОВОЕ*)); esq.AddColumn("Id"); var entities = esq.GetEntityCollection(UserConnection); int count = entities.Count; //количество
Как вариант так
var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Case"); esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Status.Id", *тут ID состояния обращения НОВОЕ*)); esq.AddColumn("Id"); var entities = esq.GetEntityCollection(UserConnection); int count = entities.Count; //количество
Как вариант так
Так будет плохо, что ради количества загружать коллекцию из 100500 элементов. Лучше c агрегацией:
var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Case"); esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Status.Id", *тут ID состояния обращения НОВОЕ*)); var countColumn = esq.AddColumn(esq.CreateAggregationFunction(AggregationTypeStrict.Count, "Id")).Name; var entities = esq.GetEntityCollection(UserConnection); int count = entities[0].GetTypedColumnValue<int>(countColumn); //количество
Разработку можно вести прямо в браузере, создав в БП блок-скрипт с этой логикой, а также взаимодействием с параметром процесса для передачи ответа.
Зверев Александр,
дело в том, что мой аккаунт не имеет таких привилегий.
Коннекчусь к бпм след. образом:
class Program
{
// HTTP-адрес приложения.
private const string baseUri = "https://*********.ru/";
// Контейнер для Cookie аутентификации bpm'online. Необходимо использовать в последующих запросах.
// Это самый важный результирующий объект, для формирования свойств которого разработана
// вся остальная функциональность примера.
public static CookieContainer AuthCookie = new CookieContainer();
// Строка запроса к методу Login сервиса AuthService.svc.
private const string authServiceUri = baseUri + @"/ServiceModel/AuthService.svc/Login";
// Выполняет запрос на аутентификацию пользователя.
public static bool TryLogin(string userName, string userPassword)
{
// Создание экземпляра запроса к сервису аутентификации.
var authRequest = HttpWebRequest.Create(authServiceUri) as HttpWebRequest;
// Определение метода запроса.
authRequest.Method = "POST";
// Определение типа контента запроса.
authRequest.ContentType = "application/json";
// Включение использования cookie в запросе.
authRequest.CookieContainer = AuthCookie;
// Помещение в тело запроса учетной информации пользователя.
using (var requestStream = authRequest.GetRequestStream())
{
using (var writer = new StreamWriter(requestStream))
{
writer.Write(@"{
""UserName"":""" + userName + @""",
""UserPassword"":""" + userPassword + @"""
}");
}
}
и вот как мне после такого коннекта получить кол-во обращений?
Для работы по OData не нужно специфических библиотек с сайта, этот класс генерируется автоматически:
Прокси–классы для клиента WCF могут быть созданы непосредственно из Visual Studio. Для этого необходимо выполнить последовательность действий:
- Щелкнуть правой клавишей мыши по проекту, в котором планируется реализация интеграции с Creatio, выбрать в контекстном меню пункт Add Service Reference…
- В открывшемся диалоговом окне в поле Address ввести полный адрес OData–сервиса EntityDataService.svc.
- Нажать на кнопку Go. В результате откроется окно аутентификации сервиса, в котором необходимо указать имя и пароль пользователя Creatio. Если аутентификация прошла успешно, в окне Servicesотобразятся поддерживаемые сервисом сущности.
- В поле Namespase указать имя пространства имен, в котором будут расположены сгенерированные прокси–классы. Например, creatioServiceReference. Ссылку на это пространство имен в дальнейшем необходимо добавить в блок using кода проекта.
- Нажать кнопку ОК, после чего будут сгенерированы прокси–классы. При этом в проект будет добавлен новый файл кода Reference.cs, содержащий описание прокси–классов, которые теперь могут использоваться для обращения и взаимодействия с ресурсами сервиса данных как с объектами.
Дмитрий А.,
Здравствуйте Дмитрий. Как вызвать
данный код у себя в схеме? хотя бы примерно можете подсказать??? Очень буду благодарен за ответ!