MBroker
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Свойства
Открытые члены | Полный список членов класса
Интерфейс MBroker.IBrokerService

Интерфейс брокера Подробнее...

Граф наследования:MBroker.IBrokerService:
MBroker.WorkerBroker

Открытые члены

string GetContext (string user, string password, string clientUuid)
 Получение контекста пользователя Подробнее...
 
string GetContextObjectLock (string contextId)
 Получение объектов, заблокированных контекстом Подробнее...
 
string GetCallQueueLoad (string contextId, string[] codes)
 Получение нагрузки по очередям ожидающих звонков Подробнее...
 
void ObjLock (string contextId, string className, Int64 id)
 Блокировка объекта Подробнее...
 
void ObjUnLockAll (string contextId)
 Стяние всех блокировок Подробнее...
 
void ObjUnLock (string contextId, string className, Int64 id)
 Разблокировка объекта Подробнее...
 
void ObjTouchLock (string contextId, string className, Int64 id)
 Продление блокировки объекта Подробнее...
 
void SetLocale (string contextId, string locale)
 Смена локали пользователя Подробнее...
 
string GetUnreadMessages (string contextId)
 Получение непрочитанных сообщений Подробнее...
 
void MarkMessageAsRead (int messageId, string contextId)
 Метод отмечает сообщение как прочитанное Подробнее...
 
string GetStatistic (string contextId)
 Получение статистики вызова процедур и использования вьюх Подробнее...
 
string GetCustomPoolStatistic (string contextId)
 Получение статистики кастомного пула Подробнее...
 
string GetThreadStatistic (string contextId)
 Получение статистики потоков Подробнее...
 
void AbortQuery (string contextId, string queryId, string userContextId)
 Остановка выполнения запроса Подробнее...
 
string GetContextV2 (string user, string password, string clientUuid, string hostName, string clientAppName, string varParams)
 Получение контекста пользователя Подробнее...
 
string GetContextBySt (string service, string ticket)
 Получение контекста для приложений в которых уже пройдена авторизация через CAS Подробнее...
 
string GetWebContextBySt (string clientAppUrl, string ticket, string clientHostName, string clientAppName, string varParams)
 Получение контекста для приложений в которых уже пройдена авторизация через CAS Подробнее...
 
string GetWebContext (string user, string password, string cookie, string confirmCode)
 Получение контекста пользователя Подробнее...
 
string GetWebContextV2 (string user, string password, string cookie, string confirmCode, string hostName, string clientAppName, string varParams)
 Получение контекста пользователя Подробнее...
 
string PsGetObjectsFx (string contextId, string objectType, string classCode, string varParams)
 Получение описания объектов базы данных Подробнее...
 
string PsGetObjectsDesc (string contextId, string filter, string varParams)
 Получение описания объектов с учетом фильтра Подробнее...
 
string GetTzGroups (string contextId)
 Возвращает список групп доступа Подробнее...
 
string GetTzAccesses (string contextId)
 Возвращает список объектов доступа Подробнее...
 
string GetWorkerGroups (string contextId, int workerId)
 Возвращает группы доступа пользователя Подробнее...
 
string GetGroupAccesses (string contextId, int groupId)
 Возвращает объекты доступа группы Подробнее...
 
string UserLogin (string contextId, string hostName, string clientAppName)
 Подключение пользователя к сервису. Подробнее...
 
string GetLoginData (string contextId)
 Получение данных созданной сессии. Подробнее...
 
string GetViewData (string contextId, string query)
 Выполнение запроса. Метод будет удален в будущем. Подробнее...
 
int ExecProc (string contextId, string classCode, string procName, string parameters)
 Выполнение процедуры на сервере, с учетом MIRROR. Подробнее...
 
string ExecProcV2 (string contextId, string classCode, string procCode, string parameters, string varParams)
 Выполнение процедуры на сервере, с учетом MIRROR. Для varParams: опционально передаётся объект с полями: [bool] isAuto – показывает, является ли запрос автоматизированным, либо он инициирован пользователем интерактивно Подробнее...
 
string ExecProcGlobal (string contextId, string classCode, string procCode, string parameters, string varParams)
 Выполнение процедуры на всех известных брокеру шардах, с учетом MIRROR. Для varParams: опционально передаётся объект с полями: [bool] isAuto – показывает, является ли запрос автоматизированным, либо он инициирован пользователем интерактивно Подробнее...
 
void SmsReset (string contextId)
 Сброс состояния SMS [SMSDaemon] Подробнее...
 
string ExecProcO (string contextId, string classCode, string procName, string parameters)
 Выполнение процедуры на сервере, с учетом MIRROR. Подробнее...
 
string GetProcParam (string contextId, string classCode, string procName)
 Получение параметров хранимой процедуры Подробнее...
 
void Ping (string contextId)
 Пинг брокера. Требуется для поддержания соединения, если пользователь не выполняет никаких операций. Подробнее...
 
void PingSession (string contextId)
 Сброс времени простоя сессии Подробнее...
 
void KillContext (string contextId)
 Уничтожает контекст пользователя из кэша брокера. При уничтожении контекста закрываются все соединения с базой данных и зеркалами. Подробнее...
 
void KillContextV2 (string contextId, int exitCode)
 Уничтожает контекст пользователя из кэша брокера. При уничтожении контекста закрываются все соединения с базой данных и зеркалами. Подробнее...
 
string GetView (string contextId, string queryDescription, bool extendedInfo)
 Получение представления Подробнее...
 
string GetResultQuery (string contextId, int id)
 Получение результата запроса по идентификатору Подробнее...
 
int GetQueryStatus (string contextId, int id)
 Возвращает статус асинхронного запроса Подробнее...
 
string GetViewV2 (string contextId, string queryDescription, bool extendedInfo, string varParams)
 Получение представления Для varParams: опционально передаётся объект с полями: [bool] isAuto – показывает, является ли запрос автоматизированным, либо он инициирован пользователем интерактивно Подробнее...
 
string GetBrokerConfig (string contextId)
 Метод служит для получения конфигурации брокера Подробнее...
 
Stream GetViewStream (string contextId, string queryDescription, bool extendedInfo, bool compressed)
 Получение потока данных представления. Параметры полностью аналогичны методу GetView Подробнее...
 
Stream GetViewStreamV2 (string contextId, string queryDescription, bool extendedInfo, bool compressed, string varParams)
 Получение потока данных представления. Параметры полностью аналогичны методу GetView Подробнее...
 
string GetBaseList (string contextId)
 Получение полного списка незаблокированных филиалов Подробнее...
 
string GetVersion ()
 Получение версии брокера Подробнее...
 
string GetVersionEx ()
 Расширенный метод получения версии брокера Подробнее...
 
void ClearCache (string contextId)
 Очистка кэша пользователя (права доступа, соединения с зеркалами и т.п.) Подробнее...
 
void ClearCacheForAll (string contextId)
 Очистка кэша для всех пользователей Подробнее...
 
string GetViewColumns (string contextId, string viewName, string classCode, bool loadInvisibleFields)
 Возвращает массив с полями представления Подробнее...
 
string GetViewColumnsV2 (string contextId, string viewName, string classCode, bool loadInvisibleFields, string varParams)
 Возвращает массив с полями представления Подробнее...
 
string GetViewColumnTypes (string contextId, string viewName, string classCode)
 Возвращает словарь типов колонок Подробнее...
 
void ChangePassword (string user, string oldPassword, string newPassword)
 Смена пароля пользователя Подробнее...
 
string CheckFilter (string contextId, string filter)
 Метод служит для теста разбора параметра - фильтра, при построении SQL - запроса в GetView. Тест проходит на Primary end point. Подробнее...
 
string ListContexts (string contextId)
 Вернуть список активных контекстов. Подробнее...
 
void Subscribe (string contextId, string filter)
 Начать вести выделенный лог, состоящий из записей, содержащих строку, переданную в filter Подробнее...
 
void Unsubscribe (string contextId)
 Остановить запись выделенного лога. Подробнее...
 
string GetFilter (string contextId)
 Вернуть текущеее значение фильтра выделенного лога. Подробнее...
 
string GetEvents (string contextId, int?idBase, DateTime?dateTime)
 Вернуть текущеее значение фильтра выделенного лога. Подробнее...
 
string GetEventsByPlace (string contextId, int?idPlace, DateTime?dateTime)
 Вернуть текущеее значение фильтра выделенного лога по idPlace. Подробнее...
 
string GetServiceInfo (string contextId)
 Возвращает статус активности сервиса и отдельных пользователей Подробнее...
 
string GetServiceState (string contextId)
 Получение статуса сервиса Подробнее...
 
void MakeActivityPermitted (string contextId, string varParams)
 Сделать сервис активным Подробнее...
 
void MakeActivityForbidden (string contextId, string varParams)
 Сделать сервис неактивным Подробнее...
 
int UserCount ()
 Вернуть количество залогиненных пользователей. Подробнее...
 
string UserCountByLogin (string login)
 Возвращает общее число залогиненных пользователей и число залогиненных с данным логином Подробнее...
 
void RebuildMirrorList (string contextId)
 Обновить список алиасов из конфига. Подробнее...
 
string SendDepsEvent (string user, string password, string phoneNumber, string @event, int id)
 
void DeleteFileInfo (string contextId, string guid)
 Метод служит для удаления записи о файле из хранилища Подробнее...
 
void DeleteFileInfoV2 (string contextId, string mirror, string guid, string varParams)
 Метод служит для удаления записи о файле из хранилища с учетом зеркала Подробнее...
 
string UploadFileFBM (string contextId, string date, string fileName, string className, int idRecord, string type, string fileType, string mirror)
 Метод загрузки файла на сервер Подробнее...
 
string UploadFileEx (string contextId, string date, string fileName, string className, int idRecord, string type, string fileType, string mirror, string varParams)
 Метод загрузки файла на сервер Подробнее...
 
string CopyFile (string contextId, string fileId, string fileName, string type, int idRecord, string className, string mirror, string varParams)
 Делает копию файла в хранилище Подробнее...
 
string GetFileFBM (string contextId, string fileId, string mirror)
 Метод получения файла с сервера Подробнее...
 
void DeleteFileFBM (string contextId, string fileId, string mirror)
 Удаление файла Подробнее...
 
string GetFileInfo (string contextId, string guid)
 Метод служит для получения изначального имени файла. Подробнее...
 
string GetFileInfoFBM (string contextId, string fileId)
 Метод служит для получения информации о файле Подробнее...
 
string GetFileInfoV2 (string contextId, string mirror, string fileId, string varParams)
 Метод служит для получения информации о файле с учетом зеркала хранения Подробнее...
 
string AddressSearch (string contextId, int idPlace, int idBase, long?currentAddress, long?currentPlace, string phoneNumber, string filter, bool hidePlaces)
 Поиск адреса Подробнее...
 
string AddressSearchEx (string contextId, int idPlace, int idBase, long?currentAddress, long?currentPlace, string phoneNumber, string filter, bool hidePlaces, string varParams)
 Расширенный метод адресного поиска Подробнее...
 
Stream RetrieveAddressTemplatesStream (string contextId, int[] idPlaces, bool compressed, string varParams)
 Получение списка всех адресов для заданных филиалов Подробнее...
 
string RetrieveAddressTemplates (string contextId, int[] idPlaces, string varParams)
 Получение списка всех адресов для заданных филиалов Подробнее...
 
void ResetAddressCache (string contextId)
 Сброс адресного кэша Подробнее...
 
string[] ConvertTimeToUtc (string contextId, string[] times, string timeZone)
 Конвертация даты и времени в utc формат Подробнее...
 
int UploadFile (string contextId, string filename, string file, string className, int idRecord, string type, string fileType)
 
void SaveFileInfo (string contextId, string filename, string className, int idRecord, string type, string fileType, string guid, int idBd)
 
string GetFile (string contextId, string guid)
 
string GetThumbnail (string contextId, string guid)
 

Подробное описание

Интерфейс брокера

Методы

void MBroker.IBrokerService.AbortQuery ( string  contextId,
string  queryId,
string  userContextId 
)

Остановка выполнения запроса

Аргументы
contextIdИдентификатор контекста
queryIdИдентификатор запроса или guid потока, который нужно завершить
userContextIdИдентификатор контекста пользователя чей запрос нужно завершить

Для завершения запроса с текущего контекста userContextId передается равным текущему идентификатору контекста либо NULL

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.AddressSearch ( string  contextId,
int  idPlace,
int  idBase,
long?  currentAddress,
long?  currentPlace,
string  phoneNumber,
string  filter,
bool  hidePlaces 
)

Поиск адреса

Аргументы
contextIdИдентификатор контекста
idPlaceИдентификатор филиала
idBaseИдентификатор филиала
currentPlace
phoneNumberНомер телефона
filterСтрока поиска
hidePlacesСкрывать филиалы
currentAddress
Возвращает
Возвращает список адресов

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.AddressSearchEx ( string  contextId,
int  idPlace,
int  idBase,
long?  currentAddress,
long?  currentPlace,
string  phoneNumber,
string  filter,
bool  hidePlaces,
string  varParams 
)

Расширенный метод адресного поиска

Аргументы
contextIdИдентификатор контекста
idPlaceИдентификатор филиала
idBaseИдентификатор подразделения
currentPlaceидентификатор текущего филиала
phoneNumberНомер телефона
filterСтрока поиска
hidePlacesСкрывать филиалы
currentAddressИдентификатор текущего адреса
varParamsДополнительные параметры
  • Офисание дополнительных параметров
    {
    "showHidden" : value, Показывать скрытые адреса
    }
  • Пример возвращаемого значения
    [
    {
    "C_TYPE":1,
    "ID_PLACE":1,
    "C_PLACE":"Курган",
    "ID_ADDR":null,
    "C_ADDR_NAME":null,
    "ID_STREET":100599,
    "C_STREET_NAME":"Радионова",
    "C_NUM_HOUSE":null,
    "ID_ZONE":null,
    "C_ZONE_NAME":null,
    "C_SYNONYM":null,
    "C_NOTE":null,
    "ID_BASE":null,
    "C_LATITUDE":null,
    "C_LONGITUDE":null,
    "ID_CITY":null,
    "C_CITY":null,
    "ID_TYPE_ADDR":null,
    "C_NAME":null,
    "C_DESCRIPTION":null,
    "ID_COUNTRY":null,
    "C_POPULATION":null,
    "ID_REGION":null,
    "C_IS_ADDR":null,
    "C_SELECTED":true,
    "C_MEET_POINT":null,
    "C_MEET_POINT_EXT":null,
    "C_ADD_DOP_INFO":null,
    "C_STREET_NAME_SHORT":"Радионова",
    "ID":0
    },
    {
    "C_TYPE":2,
    "ID_PLACE":1,
    "C_PLACE":"Курган",
    "ID_ADDR":4354239,
    "C_ADDR_NAME":"Остановка Максим на Радионова",
    "ID_STREET":null,
    "C_STREET_NAME":null,
    "C_NUM_HOUSE":null,
    "ID_ZONE":null,
    "C_ZONE_NAME":null,
    "C_SYNONYM":null,
    "C_NOTE":null,
    "ID_BASE":null,
    "C_LATITUDE":55.438853,
    "C_LONGITUDE":65.312828,
    "ID_CITY":null,
    "C_CITY":null,
    "ID_TYPE_ADDR":6,
    "C_NAME":null,
    "C_DESCRIPTION":null,
    "ID_COUNTRY":null,
    "C_POPULATION":null,
    "ID_REGION":null,
    "C_IS_ADDR":null,
    "C_SELECTED":false,
    "C_MEET_POINT":null,
    "C_MEET_POINT_EXT":null,
    "C_ADD_DOP_INFO":null,
    "C_STREET_NAME_SHORT":null,
    "ID":0
    }
    ]
Возвращает
Возвращает список адресов

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.ChangePassword ( string  user,
string  oldPassword,
string  newPassword 
)

Смена пароля пользователя

Аргументы
userИмя пользователя
oldPasswordСтарый пароль
newPasswordНовый пароль
Исключения
ChangePassword_WrongPasswordException
TokenExpiredException

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.CheckFilter ( string  contextId,
string  filter 
)

Метод служит для теста разбора параметра - фильтра, при построении SQL - запроса в GetView. Тест проходит на Primary end point.

Аргументы
contextIdid контекста
filterобъект-фильтр
Возвращает
сгенерированный SQL-запрос

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.ClearCache ( string  contextId)

Очистка кэша пользователя (права доступа, соединения с зеркалами и т.п.)

Аргументы
contextIdИдентификатор контекста

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.ClearCacheForAll ( string  contextId)

Очистка кэша для всех пользователей

Аргументы
contextIdИдентификатор контекста
Исключения
TokenExpiredException
LoginFailedException
AccessDeniedException

Замещается в MBroker.WorkerBroker.

string [] MBroker.IBrokerService.ConvertTimeToUtc ( string  contextId,
string[]  times,
string  timeZone 
)

Конвертация даты и времени в utc формат

Аргументы
timesМассив дат со временем, которые нужно конвертировать в utc формат
timeZoneТайм зона, в которой находятся переданные даты со временем

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.CopyFile ( string  contextId,
string  fileId,
string  fileName,
string  type,
int  idRecord,
string  className,
string  mirror,
string  varParams 
)

Делает копию файла в хранилище

Аргументы
contextIdИдентификатор контекста
fileIdСтрока с уникальным идентификатором файл
fileNameИмя файла
typeСсылка на тип файла из T_FILE_TYPES
idRecordID записи внутри выбранного класса
classNameИмя класса (например: T_DRIVERS)
mirrorЗеркало, на котором хранится файл
varParamsJSON с дополнительными параметрами
Возвращает
Строка с уникальным идентификатором нового файла

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.DeleteFileFBM ( string  contextId,
string  fileId,
string  mirror 
)

Удаление файла

Аргументы
contextIdИдентификатор контекста
fileIdСтрока с уникальным идентификатором файла
mirrorЗеркало, на котором хранится файл

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.DeleteFileInfo ( string  contextId,
string  guid 
)

Метод служит для удаления записи о файле из хранилища

Аргументы
contextIdId контекста
guidИдентификатор файла

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.DeleteFileInfoV2 ( string  contextId,
string  mirror,
string  guid,
string  varParams 
)

Метод служит для удаления записи о файле из хранилища с учетом зеркала

Аргументы
contextIdId контекста
mirrorЗеркало
guidИдентификатор файла
varParams

Замещается в MBroker.WorkerBroker.

int MBroker.IBrokerService.ExecProc ( string  contextId,
string  classCode,
string  procName,
string  parameters 
)

Выполнение процедуры на сервере, с учетом MIRROR.

Аргументы
contextIdИдентификатор контекста пользователя
classCodeКод класса
procNameИмя процедуры
parametersJSON со списком параметров
Возвращает
?
Исключения
AccessDeniedException
BrokerSqlException
ServiceUserException
TokenExpiredException

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.ExecProcGlobal ( string  contextId,
string  classCode,
string  procCode,
string  parameters,
string  varParams 
)

Выполнение процедуры на всех известных брокеру шардах, с учетом MIRROR. Для varParams: опционально передаётся объект с полями: [bool] isAuto – показывает, является ли запрос автоматизированным, либо он инициирован пользователем интерактивно

Аргументы
contextIdИдентификатор контекста пользователя
classCodeКласс процедуры
procCodeКод процедуры
parametersJSON со списком параметров
varParamsJSON-объект с дополнительными параметрами для самого брокера
Возвращает
?
Исключения
AccessDeniedException
BrokerSqlException
ServiceUserException
TokenExpiredException
  • Формат JSON-объекта с дополнительными параметрами для самого брокера
    {
    "isAuto" : value // Определяет автоматический запрос или сгенерированный вручную. Если true - автоматический, false - вручную
    "fetchResult" : true/false // Если включено, то значения из процедур возвращаются из result set'ов, если выключено - из output параметров
    "priority": 0/1/2/3 // Приоритет запроса. Если не указан, для всех запросов приоритет будет равен 1
    "ttl": 1 // Время жизни запроса. Используется совместно с приоритетом. Если параметр не указан, время жизни для всех запросов будет равно 1 минуте.
    "tz": "UTC" // Таймзона. Все параметры Даты/Времени будут приведены к данной таймзоне
    "idShard": value // Идентификатор шарда, на котором будет выполняться запрос, если брокер сам не сможет этого определить
    }
  • Пояснение к параметру "isAuto"
    Если в течение интервала времени t от клиентского приложения поступают только автоматические запросы, закрываем сессию, что влечет за собой фиксацию времени закрытия в журнале сессий пользователя. Таким образом после суммирования всех фиксаций и умножения на интервал t получим время, которое пользователь не работал. ///
  • Пример возвращаемого значения
    [
    {
    "IdShard":1, // Идентификатор шарда
    "Status":"Success", // Статус выполнения
    "Result":"[{\"GETDATE\":\"2017-10-23T07:05:56.404375\"}]", // Результат выполнения
    "Ex":null // Эксепшен
    },
    {
    "IdShard":2,
    "Status":"Success",
    "Result":"[{\"GETDATE\":\"2017-10-23T07:05:56.408813\"}]",
    "Ex":null
    }
    ]

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.ExecProcO ( string  contextId,
string  classCode,
string  procName,
string  parameters 
)

Выполнение процедуры на сервере, с учетом MIRROR.

Аргументы
contextIdИдентификатор контекста пользователя
classCodeКод класса
procNameИмя процедуры
idBaseID филиала
parametersJSON со списком параметров
Возвращает
JSON с результатами выполнения. Возвращаются параметры с типом Output или Input/Output
Исключения
AccessDeniedException
BrokerSqlException
TokenExpiredException
ServiceUserException

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.ExecProcV2 ( string  contextId,
string  classCode,
string  procCode,
string  parameters,
string  varParams 
)

Выполнение процедуры на сервере, с учетом MIRROR. Для varParams: опционально передаётся объект с полями: [bool] isAuto – показывает, является ли запрос автоматизированным, либо он инициирован пользователем интерактивно

Аргументы
contextIdИдентификатор контекста пользователя
classCodeКласс процедуры
procCodeКод процедуры
parametersJSON со списком параметров
varParamsJSON-объект с дополнительными параметрами для самого брокера
Возвращает
?
Исключения
AccessDeniedException
BrokerSqlException
ServiceUserException
TokenExpiredException
  • Формат JSON-объекта с дополнительными параметрами для самого брокера
    {
    "isAuto" : value // Определяет автоматический запрос или сгенерированный вручную. Если true - автоматический, false - вручную
    "isAsync" : value // Параметр определяет будет ли запрос выполняться асинхронно. Если true - запрос выполняется асинхронно, false - синхронно
    "fetchResult" : true/false // Если включено, то значения из процедур возвращаются из result set'ов, если выключено - из output параметров
    "priority": 0/1/2/3 // Приоритет запроса. Если не указан, для всех запросов приоритет будет равен 1
    "ttl": 1 // Время жизни запроса. Используется совместно с приоритетом. Если параметр не указан, время жизни для всех запросов будет равно 1 минуте.
    "tz": "UTC" // Таймзона. Все параметры Даты/Времени будут приведены к данной таймзоне
    "idShard": value // Идентификатор шарда, на котором будет выполняться запрос, если брокер сам не сможет этого определить
    "language" : "value" // Локализация результата запроса. Если данный параметр не задан, берется локаль из контекста
    }
  • Пояснение к параметру "isAuto"
    Если в течение интервала времени t от клиентского приложения поступают только автоматические запросы, закрываем сессию, что влечет за собой фиксацию времени закрытия в журнале сессий пользователя. Таким образом после суммирования всех фиксаций и умножения на интервал t получим время, которое пользователь не работал.
  • Пояснение к параметру "isAsync"
    При использование параметра isAsync учитывается время выполнения асинхронного запроса. В случае, если запрос выполняется быстро, возвращается JSON с результатом. Если запрос долгий, то возвращается строка с числом, по которому осуществляется получение результата запроса при помощи функции GetResultQuery/n В случае, если запрос асинхронный, статус его выполнения необходимо периодически запрашивать функцией GetQueryStatus. Если этого не делать, запрос будет отменет и удален из коллекции запросов контекста.

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetBaseList ( string  contextId)

Получение полного списка незаблокированных филиалов

Аргументы
contextIdИдентификатор контекста пользователя
Возвращает
JSON со списком филиалов
Исключения
BrokerSqlException
TokenExpiredException
ServiceUserException

Пример возвращаемого JSON:

[
{ "ID": 1, "C_NAME": "Курган", "C_INFO": "...", ... },
{ "ID": 2, "C_NAME": "Шадринск", "C_INFO": "...", ... },
...
]

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetBrokerConfig ( string  contextId)

Метод служит для получения конфигурации брокера

Аргументы
contextIdКонтекст пользователя
Возвращает
JSON с представлением

///

/// Пример возвращаемого JSON:

{
"brokerSection":
[
{
"brokerSection_Id":0,"logfilter":"V_CHAT_W,V_EVENTS","brokerId":"work1"
}
],
"cache":
[
{
"parameterTTL":"5","columnTTL":"5","smoTTL":"3","mirrorsTTL":"4","brokerSection_Id":0
}
]
}

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetCallQueueLoad ( string  contextId,
string[]  codes 
)

Получение нагрузки по очередям ожидающих звонков

Аргументы
contextIdИдентификатор контекста пользователя
codesкоды очередей, если их нет, вернутся все коды
Возвращает
Список кода со значением цвета(нагрузки на очередь)

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetContext ( string  user,
string  password,
string  clientUuid 
)

Получение контекста пользователя

Аргументы
userИмя пользователя
passwordПароль
clientUuidUUID клиента
Исключения
InvalidUserException
IPValidationFailedException
LoginFailedException
PasswordExpiredException
ServiceUserException
SqlOperationException
UnknownUserException
UserLockedOutException
Возвращает
Идентификатор контекста пользователя

Вызов метода сбрасывает кэш пользователя и соединения с зеркалами.

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetContextBySt ( string  service,
string  ticket 
)

Получение контекста для приложений в которых уже пройдена авторизация через CAS

Аргументы
serviceИмя сервиса/приложения
ticketТокен
Возвращает

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetContextObjectLock ( string  contextId)

Получение объектов, заблокированных контекстом

Аргументы
contextIdИдентификатор контекста пользователя
Возвращает
Список зеркал с заблокированными объектами данным контекстом
  • Пример возвращаемого значения
    { "primary": { "ObjectLockList": [ { "ObjType":"T_ORDERS", "ObjID":342447379 } ] } }

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetContextV2 ( string  user,
string  password,
string  clientUuid,
string  hostName,
string  clientAppName,
string  varParams 
)

Получение контекста пользователя

Аргументы
userИмя пользователя
passwordПароль
clientUuidUUID клиента
hostNameНазвание рабочей станции клиента
clientAppNameНазвание клиентского приложения
varParamsДополнительные параметры в формате JSON
Исключения
InvalidUserException
IPValidationFailedException
LoginFailedException
PasswordExpiredException
ServiceUserException
SqlOperationException
UnknownUserException
UserLockedOutException
Возвращает
Идентификатор контекста пользователя

Вызов метода сбрасывает кэш пользователя и соединения с зеркалами.

  • Формат varParams
    {
    "language" : "value" // Определяет локаль подключившегося пользователя, если параметр не не задан, то автоматически русская локаль
    }
    Локаль задается текстовой строкой:
    "ru" - русская локаль\n
    "de" - немецкая локаль\n
    "uk" - украинская локаль\n

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetCustomPoolStatistic ( string  contextId)

Получение статистики кастомного пула

Аргументы
contextIdИдентификатор контекста пользователя
Возвращает
Словарь пулов со статистикой

Пример возвращаемого значения
{ "Имя пула": { "PoolSize":100, "AverageTimeExecuteQuery":0.0, "CountQuery":1, "CountFreeConnection":100, "QueueStatistic": { "AverageLifeTimeQuery":0.0, "CountQueryInQueue":0 }, "DateUpdate":"2015-02-17T11:05:51.9398261" } }

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetEvents ( string  contextId,
int?  idBase,
DateTime?  dateTime 
)

Вернуть текущеее значение фильтра выделенного лога.

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetEventsByPlace ( string  contextId,
int?  idPlace,
DateTime?  dateTime 
)

Вернуть текущеее значение фильтра выделенного лога по idPlace.

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetFile ( string  contextId,
string  guid 
)

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetFileFBM ( string  contextId,
string  fileId,
string  mirror 
)

Метод получения файла с сервера

Аргументы
contextIdИдентификатор контекста
fileIdСтрока с уникальным идентификатором файла
mirrorЗеркало, на котором хранится файл
Возвращает
Бинарные данные
  • Пример строки с уникальным идентификатором файла "5360d23bffd0070994b03f47" Пример возвращаемого значения Аналог входного параметра "date" в методе "UploadFile"

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetFileInfo ( string  contextId,
string  guid 
)

Метод служит для получения изначального имени файла.

Аргументы
contextIdid контекста
guidИдентификатор файла
Возвращает
JSON-объект, поля: FileName - имя файла, FileType - MIME-тип

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetFileInfoFBM ( string  contextId,
string  fileId 
)

Метод служит для получения информации о файле

Аргументы
contextIdИдентификатор контекста
fileIdИдентификатор файла
Возвращает
JSON-объект.
поля: FileName - имя файла,
FileType - MIME-тип,
Mirror - зеркало, на котором лежит файл

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetFileInfoV2 ( string  contextId,
string  mirror,
string  fileId,
string  varParams 
)

Метод служит для получения информации о файле с учетом зеркала хранения

Аргументы
contextIdИдентификатор контекста
mirrorЗеркало
fileIdИдентификатор файла
varParamsДополнительные параметры
Возвращает
JSON-объект.
поля: FileName - имя файла,
FileType - MIME-тип,
Mirror - зеркало, на котором лежит файл

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetFilter ( string  contextId)

Вернуть текущеее значение фильтра выделенного лога.

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetGroupAccesses ( string  contextId,
int  groupId 
)

Возвращает объекты доступа группы

Аргументы
contextIdИдентификатор контекста
groupIdИдентификатор группы доступа
Возвращает

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetLoginData ( string  contextId)

Получение данных созданной сессии.

Аргументы
contextIdИдентификатор контекста пользователя
Возвращает
JSON с результатом выполнения UserLogin
Исключения
AccessDeniedException
BrokerSqlException
ServiceUserException
TokenExpiredException

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetProcParam ( string  contextId,
string  classCode,
string  procName 
)

Получение параметров хранимой процедуры

Аргументы
contextIdИдентификатор контекста
classCodeКласс процедуры
procNameИмя процедуры
Возвращает

Замещается в MBroker.WorkerBroker.

int MBroker.IBrokerService.GetQueryStatus ( string  contextId,
int  id 
)

Возвращает статус асинхронного запроса

Аргументы
contextIdИдентификатор контекста пользователя
idИдентификатор запроса
Возвращает
Статус запроса
  • Описание возвращающегося значения
    1 - Запрос выполняется
    0 - Запрос выполнен
    -1 - Запроса не существует

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetResultQuery ( string  contextId,
int  id 
)

Получение результата запроса по идентификатору

Аргументы
contextIdКонтекст пользователя
idИдентификатор
Возвращает
Результат в формате JSON
  • Описание
    Если запрос или представление с идентификаторм id выполнились, то возвращается результат в формате JSON иначе возвращается null, если запроса не существует, возвращается null

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetServiceInfo ( string  contextId)

Возвращает статус активности сервиса и отдельных пользователей

Аргументы
contextIdИдентификатор контекста
  • Офисание возвращаемого значения
    {
    {
    "ServiceActived":false,
    "UserActivityForbidden":{}
    } // Сервис не активен
    {
    "ServiceActived":false,
    "UserActivityForbidden":
    {
    "ivanov":false
    }
    } // Сервис не активен, но пользователю ivanov, разрешены операции с сервисом
    }
    {
    "ServiceActived":true,
    "UserActivityForbidden":
    {
    "ivanov":true
    }
    } // Сервис не активен, но пользователю ivanov, запрещены операции с сервисом
    }
Возвращает

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetServiceState ( string  contextId)

Получение статуса сервиса

Аргументы
contextIdИдентификатор контекста
  • Офисание возвращаемого значения
    { "service":"active" } - Сервис активный
    { "service":"suspended" } - Сервис не активный
Возвращает
Состояние сервиса

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetStatistic ( string  contextId)

Получение статистики вызова процедур и использования вьюх

Аргументы
contextIdКонтекст пользователя
Возвращает
JSON с результатом выполнения

Пример возвращаемого значения
{ { "Procedure": { "getListContexts":1 }, "View": { "psGetClassesFX":2 } } }

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetThreadStatistic ( string  contextId)

Получение статистики потоков

Аргументы
contextIdИдентификатор контекста пользователя
Возвращает
JSON со статистикой

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetThumbnail ( string  contextId,
string  guid 
)

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetTzAccesses ( string  contextId)

Возвращает список объектов доступа

Аргументы
contextIdИдентификатор контекста
Возвращает

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetTzGroups ( string  contextId)

Возвращает список групп доступа

Аргументы
contextIdИдентификатор контекста
Возвращает

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetUnreadMessages ( string  contextId)

Получение непрочитанных сообщений

Аргументы
contextIdКонтекст пользователя
Возвращает
Непрочитанные сообщения в формате JSON
  • Пример возвращаемого значения
    { "ID":227944, "C_DATE":"2014-05-23T05:00:19.623", "C_TEXT":"Тест", "C_USER":"novgorodov_dv" } "null" - если сообщений нет

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetVersion ( )

Получение версии брокера

Возвращает
Версия брокера

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetVersionEx ( )

Расширенный метод получения версии брокера

///

  • Офисание возвращаемого значения
    {
    "Version":
    {
    "Major":2,
    "Minor":0,
    "Build":6282,
    "Revision":21922,
    "MajorRevision":0,
    "MinorRevision":21922
    },
    "BuildDate":"03/14/2017 07:10:44"
    }
Возвращает
Версия брокера

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetView ( string  contextId,
string  queryDescription,
bool  extendedInfo 
)

Получение представления

Аргументы
contextIdИдентификатор контекста пользователя
queryDescriptionJSON с описанием запрашиваемого представления
extendedInfoЕсли установлено в true, возвращает расширенную информацию о запросе.
Возвращает
JSON с представлением
Исключения
BrokerSqlException
TokenExpiredException
ServiceUserException
  • Формат JSON-запроса к представлению:
    {
    "base" : BASEID, // ID филиала. Если 0 или отсутствует - все доступные филиалы
    "class": "CLASS_NAME", // Имя класса. Обязательный параметр
    "view": "VIEW_NAME", // Имя представления или функции. Обязательный параметр
    "params": [ "PARAM1", "PARAM2" ], // Список параметров для хранимой функции. Обязательный для вызовов функций.
    "limit": ROWCOUNT, // Максимальное количество строк. Если не указано или равно 0, то возвращается полный список
    "fields": [ "FIELD1", "FIELD2" ], // Запрашиваемые поля. Если не указано, возвращаются все поля представления
    "filter": ..., // Фильтр (тип фильтра задается в нижнем регистре)
    "groupby": [ "FIELD1", "FIELD2" ], // Группирование
    "order": { "FIELD1": "DESC" } // Порядок сортировки
    }
  • Описание поля групировки
    Операция группировки, поддерживает возможность группировать результаты выборки по датам с учетом выбранного клиентом метода сокращения даты Пример поля groupby:
    {
    "groupby":["C_USER_CREATE", {"C_DATE_CREATE":{"trunc":"year"}}]}
    "groupby":["C_USER_CREATE", {"C_DATE_CREATE":{"part":"year"}}]}
    }
    Методы работы с датой:
    {
    "trunc" - Округление даты до недели, месяца, квартала, года
    "part" - Получение полей времени
    }
    Возможные значения trunc/part:
    {
    "minute"
    "hour"
    "day"
    "week"
    "month"
    "quarter"
    "year"
    }
    Пример запроса с использованием groupby и сокращением даты
    {
    {
    "view":"V_ORDERS",
    "class":"T_ORDERS",
    "fields":
    [
    "C_USER_CREATE",
    { "count": "ID", "name": "C_SUM"}
    ],
    "groupby":
    [
    "C_USER_CREATE",
    {
    "C_DATE_CREATE":
    {
    "part":"year"
    }
    }
    ]
    }
    }
    Возвращает количество созданных заявок для каждого пользователя в течении года Транслируется в следующий SQL код:
    SELECT DATEPART(year,C_DATE_CREATE) AS C_DATE_CREATE_PART_YEAR,C_USER_CREATE,COUNT(ID) AS C_SUM FROM V_ORDERS AS vw GROUP BY C_USER_CREATE,DATEPART(year,C_DATE_CREATE)
  • Описание фильтра
    Если фильтр представлен в виде массива, то элементы объединяются условием OR. Если фильтр представлен одним объектом, то свойства объединяются условием AND.
    Пример AND-фильтра:

    {
    "C_FIELD1": "text1",
    "C_FIELD2": "text2"
    }
    // Данный JSON будет транслирован в SQL-условие WHERE C_FIELD1='text1' AND C_FIELD2='text2'

    Пример OR-фильтра:

    [
    { "C_FIELD1": "text1" },
    { "C_FIELD2": "text2" }
    ]
    // Данный JSON будет транслирован в SQL-условие WHERE C_FIELD1='text1' OR C_FIELD2='text2'
  • Агрегатные функции
    В списке запрашиваемых полей поддерживаются агрегатные функции, такие как sum, avg, min, max, count. Общий формат:
    { "[операция]": "FIELD", "name": "[имя_результа]" }
    Служебные модификаторы:
    # - В начальной позиции имени поля заменяется на DISTINCT
    Пример использования агрегатной функции в списке запрашиваемых полей:
    "fields": [ "ID_BASE", { "sum": "C_SUM", "name": "C_SUM_TOTAL" } ]
    // Данный запрос в SQL выглядит как SELECT ID_BASE, SUM(C_SUM) AS C_SUM_TOTAL [...]
  • Операции над полями
    Поддерживаются операции coalesce и cast в фильтре и списке запрашиваемых полей.
    Формат для использования в списке запрашиваемых полей:
    { "coalesce": [ "C_FIELD", "DEFAULT_VALUE"] }
    // Результат - COALESCE(C_FIELD, "DEFAULT_VALUE")
    { "cast": [ "C_FIELD", "SOME_SQL_TYPE" ] }
    // Результат - CAST(C_FIELD AS SOME_SQL_TYPE)
    Формат операций в фильтре:
    { "ID_BASE": { "coalesce": 0, "cast": "SQL_TYPE" ...[условия]... }}
    Например:
    { "ID_BASE": { "coalesce": 0, "gt": 0 } }
    // Дает в SQL условие COALESCE(ID_BASE, 0)>0
    { "ID_BASE": { "cast": "VARCHAR(10)", "like": "1%" } }
    // Дает условие CAST(ID_BASE AS VARCHAR(10)) LIKE '1%'
  • Формат условных операций
    Общий формат условия:
    { "C_FIELD": { "условие": "значение" } }
    Возможные условия:
    УсловиеПолучаемый SQL
    { "C_FIELD": { "eq": 10 } }
    C_FIELD=10
    { "C_FIELD": { "neq": 10 } }
    C_FIELD<>10
    { "C_FIELD": { "gt": 10 } }
    C_FIELD>10
    { "C_FIELD": { "lt": 10 } }
    C_FIELD<10
    { "C_FIELD": { "gte": 10 } }
    C_FIELD>=10
    { "C_FIELD": { "lte": 10 } }
    C_FIELD<=10
    { "C_FIELD": { "in": [10, 20, 30] } }
    C_FIELD IN (10, 20, 30)
    { "C_FIELD": { "nin": [10, 20, 30] } }
    C_FIELD NOT IN (10, 20, 30)
    { "C_FIELD": { "like": "%text%" } }
    C_FIELD LIKE '%text%'
    { "C_FIELD": { "ulike": "%text%" } }
    ((lower(unaccent(C_FIELD)) ILIKE '%text%' - PG SQL
    ((C_FIELD COLLATE Latin1_general_CI_AI LIKE '%text%' - MS SQL
    { "C_FIELD": { "nulike": "%text%" } }
    ((lower(unaccent(C_FIELD)) NOT ILIKE '%text%' - PG SQL
    ((C_FIELD COLLATE Latin1_general_CI_AI NOT LIKE '%text%' - MS SQL
    { "C_FIELD": { "ueq": "%text%" } }
    ((lower(unaccent(C_FIELD)) = (unaccent('%text%')) - PG SQL
    ((C_FIELD COLLATE Latin1_general_CI_AI = '%text%' - MS SQL
    { "C_FIELD": { "uneq": "%text%" } }
    ((lower(unaccent(C_FIELD)) <> (unaccent('%text%')) - PG SQL
    ((C_FIELD COLLATE Latin1_general_CI_AI <> '%text%' - MS SQL
    { "C_FIELD": { "nlike": "%text%" } }
    C_FIELD NOT LIKE '%text%'

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

{ "ID_BASE": { "neq1": null, "neq2": 0 } }
// JSON будет транслирован в SQL как "ID_BASE IS NOT NULL AND ID_BASE<>0"

Вложенные условия задаются с помощью ключевого слова "subcondition". Например:

{
"C_INFO": { "neq": null }
"subcondition": [ { "ID_BASE": null }, { "ID_BASE": 0 } ]
}
// Фильтр задает SQL-условие C_INFO IS NOT NULL AND (ID_BASE IS NULL OR ID_BASE=0)

Допускается нумерация вложенных условий, если их несколько в рамках одной конструкции ("subcondition1", "subcondition2", "subcondition3", etc.)

Примеры фильтров:

JSONSQL
[ { "ID_BASE": null }, { "ID_BASE": 0 }]
ID_BASE IS NULL OR ID_BASE=0
{ "ID": { "gt": 100, "lt": 200 }, "C_FIELD": { "neq": 900 } }
ID>100 AND ID<200 AND C_FIELD<>900
[
{
"ID": { "in": [ 100, 101, 102 ] },
"C_FIELD": { "like": "%something" }
},
{
"C_FAIL": 0
}
]
(ID IN (100, 101, 102) AND C_FIELD LIKE '%something') OR (C_FAIL=0)

Примеры запросов:

// Запрос списка классов
{ "class": "T_SYSTEM", "view": "psGetClassesFX", "params": [0,"username"] }
// Обновление списка событий
{
"class": "T_SYSTEM",
"view": "V_EVENTS",
"filter":
{
"C_NAME": { "neq1": null, "neq2": "UNKNOWN" },
"C_DATE_UPDATE": { "gt": "\/Date(1350596695633+0600)\/" }
}
}
// Запрос представления
{
"class": "T_AUTO",
"view": "V_AUTO_W",
"limit": 200,
"base": 0,
"order":
{
"C_FIRE_DISPL": "ASC",
"C_TYPE_NAME": "ASC",
"C_MARK":"ASC"
}
}
Запрос представления с использованием массива order
{
"class": "T_AUTO",
"view": "V_AUTO_W",
"limit": 200,
"base": 0,
"order":
[
{
"C_FIRE_DISPL": "ASC"
},
{
"C_TYPE_NAME": "ASC",
"C_MARK":"ASC"
}
]
}
// Запрос обновления чата
{
"class": "T_SYSTEM",
"view": "V_CHAT_W",
"order": {
"ID": "ASC"
},
"filter": {
"ID": {
"gt": 0
},
"subcondition": [{
"C_USER": "impa"
}, {
"C_TARGET_SYS": "_ALL_FREQ"
}, {
"subcondition1": [{
"ID_BASE": null
}, {
"ID_BASE": 0
}, {
"ID_BASE": 1
}],
"subcondition2": [{
"C_TARGET_SYS": null
}, {
"C_TARGET_SYS": {
"in": ["_ALL_", "_ALL_OTHER_"]
}
}]
}]
}
}

Пример вложенного запроса:

{
"class": "T_POLL_LOG",
"view": "V_POLL_CALL",
"limit": 1,
"filter": {
"ID_POLL": {
"in": {
"view": "V_POLL_EDIT_ACTIVE",
"fields": ["ID"]
}
}
}
}
// ==> SELECT TOP 1 * FROM V_POLL_CALL WHERE ID_POLL IN (SELECT ID FROM V_POLL_EDIT_ACTIVE)

Пример запроса с ref-фильтром:

{
"class":"T_PUSH_TOKENS",
"view":"V_PUSH_TOKENS",
"limit":100,
"fields": ["ID","ID_DRIVER","ID_PHONE","C_DATE","C_TOKEN_SHOW","C_UDID_SHOW","C_ACTIVE","C_VERSION","C_LOCALE","C_APP_NAME","C_UDID"],
"filter":
{
"subcondition":
[
{"ID":10},
{"ID":11}
],
"ref":
{
"view":"V_DRIVERS_WORK_4ALL",
"class":"T_DRIVERS",
"column":"C_TOKENS",
"data":
{
"ID":3235902
}
}
},
"order":
{
}
}
// ==> SELECT TOP 100 ID,ID_DRIVER,ID_PHONE,C_DATE,C_TOKEN_SHOW,C_UDID_SHOW,C_ACTIVE,C_VERSION,C_LOCALE,C_APP_NAME,C_UDID FROM V_PUSH_TOKENS AS vw WHERE (((ID=@Param0)) OR ((ID=@Param1))) AND (ID_DRIVER=@Param2)

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetViewColumns ( string  contextId,
string  viewName,
string  classCode,
bool  loadInvisibleFields 
)

Возвращает массив с полями представления

Аргументы
contextIdИдентификатор контекста
viewNameПредставление
classCodeКласс
loadInvisibleFieldsФлаг, указывающий на необходимость загрузки скрытых полей представления
Возвращает

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetViewColumnsV2 ( string  contextId,
string  viewName,
string  classCode,
bool  loadInvisibleFields,
string  varParams 
)

Возвращает массив с полями представления

Аргументы
contextIdИдентификатор контекста
viewNameПредставление
classCodeКласс
loadInvisibleFieldsФлаг, указывающий на необходимость загрузки скрытых полей представления
varParams{"language":"value"} - вернутся колонки, переведенные на язык, который указали в value, если данный параметр не задан, берется локаль из контекста
Возвращает

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetViewColumnTypes ( string  contextId,
string  viewName,
string  classCode 
)

Возвращает словарь типов колонок

Аргументы
contextIdИдентификатор контекста
viewNameПредставление
classCodeКласс
  • Описание возвращаемого JSON
    {
    "ID":"int",
    "ID_BASE":
    "int",
    "C_YEAR":"int",
    "C_NUM_GAI":"varchar",
    "C_DATE_TO":"datetime",
    "C_INFO":"varchar",
    "C_FIRE":"int",
    "C_FIRE_DATE":"datetime",
    "C_TYPE":"int",
    "ID_MARK":"int",
    "ID_COLOR":"int",
    "ID_EXT":"int",
    "C_DATE_START":"datetime",
    "C_USER_CREATE":"varchar",
    "C_LIC_NUM":"varchar",
    "ID_CLUR":"int",
    "ID_NUM_TYPE":"int",
    "C_NUM_SHORT":"varchar",
    "C_DATE_REMIND":"date",
    "C_DATE_CHECK":"date",
    "C_BASE":"varchar",
    "C_FIRE_DISPL":"varchar",
    "C_MARK":"varchar",
    "C_COLOR":"varchar",
    "C_INFO_DISP":"varchar",
    "C_INFO_DISP_SHOW":"varchar",
    "C_CHANGELOG":"varchar",
    "C_IMAGES":"bigint",
    "C_ASSIGN_DRIVER":"varchar",
    "C_CLUR":"varchar",
    "ID_ORGANIZATION":"int",
    "ID_LIC_REGION":"int",
    "C_LIC_REGION":"varchar",
    "ID_AUTO_CATEGORY":"int",
    "C_CONDITION":"int",
    "C_STATE":"int",
    "C_LENGTH":"decimal",
    "C_WIDTH":"decimal",
    "C_HEIGHT":"decimal",
    "C_CAPACITY":"decimal",
    "C_SEATS":"int",
    "C_AUTO_CLASS":"varchar",
    "C_STATE_SHOW":"varchar",
    "ID_LICENSE":"int",
    "ID_COUNTRY":"int",
    "C_LICENSE_STATUS":"varchar"
    }
Возвращает
Словарь типов колонок

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetViewData ( string  contextId,
string  query 
)

Выполнение запроса. Метод будет удален в будущем.

Аргументы
contextIdИдентификатор контекста пользователя
querySQL-запрос
Исключения
BrokerSqlException
TokenExpiredException
Возвращает
JSON с результатами выполнения запроса

Замещается в MBroker.WorkerBroker.

Stream MBroker.IBrokerService.GetViewStream ( string  contextId,
string  queryDescription,
bool  extendedInfo,
bool  compressed 
)

Получение потока данных представления. Параметры полностью аналогичны методу GetView

Аргументы
contextIdИдентификатор контекста пользователя
queryDescriptionJSON с описанием запрашиваемого представления
extendedInfoЕсли установлено в true, возвращает расширенную информацию о запросе.
compressedЕсли установлено в true, возвращает упакованый GZip поток
Возвращает
JSON с представлением

Замещается в MBroker.WorkerBroker.

Stream MBroker.IBrokerService.GetViewStreamV2 ( string  contextId,
string  queryDescription,
bool  extendedInfo,
bool  compressed,
string  varParams 
)

Получение потока данных представления. Параметры полностью аналогичны методу GetView

Аргументы
contextIdИдентификатор контекста пользователя
queryDescriptionJSON с описанием запрашиваемого представления
extendedInfoЕсли установлено в true, возвращает расширенную информацию о запросе.
compressedЕсли установлено в true, возвращает упакованый GZip поток
varParamsJSON-объект с дополнительными параметрами для самого брокера
Возвращает
JSON с представлением

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetViewV2 ( string  contextId,
string  queryDescription,
bool  extendedInfo,
string  varParams 
)

Получение представления Для varParams: опционально передаётся объект с полями: [bool] isAuto – показывает, является ли запрос автоматизированным, либо он инициирован пользователем интерактивно

Аргументы
contextIdИдентификатор контекста пользователя
queryDescriptionJSON с описанием запрашиваемого представления
extendedInfoЕсли установлено в true, возвращает расширенную информацию о запросе.
varParamsJSON-объект с дополнительными параметрами для самого брокера
Возвращает
JSON с представлением
Исключения
BrokerSqlException
TokenExpiredException
ServiceUserException
  • Формат JSON-объекта с дополнительными параметрами для самого брокера
    {
    "isAuto" : value // Определяет автоматический запрос или сгенерированный вручную. Если true - автоматический, false - вручную
    "isAsync" : value // Параметр определяет будет ли запрос выполняться асинхронно. Если true - запрос выполняется асинхронно, false - синхронно
    "priority": 0/1/2/3 // Приоритет запроса. Если не указан, для всех запросов приоритет будет равен 1
    "ttl": 1 // Время жизни запроса. Используется совместно с приоритетом. Если параметр не указан, время жизни для всех запросов будет равно 1 минуте.
    "useFieldCache": value //
    "tz": "UTC" // Таймзона. Все поля представления формата Даты/Времени будут приведены к данной таймзоне
    "idShard": value // Идентификатор шарда, на котором будет выполняться запрос
    "include_block_base":true // Включает заблокированные подразделения
    "language" : "value" // Локализация результата запроса. Если данный параметр не задан, берется локаль из контекста
    }
  • Пояснение к параметру "isAuto"
    Если в течение интервала времени t от клиентского приложения поступают только автоматические запросы, закрываем сессию, что влечет за собой фиксацию времени закрытия в журнале сессий пользователя. Таким образом после суммирования всех фиксаций и умножения на интервал t получим время, которое пользователь не работал.
  • Пояснение к параметру "isAsync"
    При использование параметра isAsync учитывается время выполнения асинхронного запроса. В случае, если запрос выполняется быстро, возвращается JSON с результатом. Если запрос долгий, то возвращается строка с числом, по которому осуществляется получение результата запроса при помощи функции GetResultQuery/n В случае, если запрос асинхронный, статус его выполнения необходимо периодически запрашивать функцией GetQueryStatus. Если этого не делать, запрос будет отменет и удален из коллекции запросов контекста.
  • Пояснение к параметру "tz"
    Если параметр "tz" существует и не null, то в зависимости от окончания полей представления:
    С...UTCTZ - Оставляем как есть в UTC
    C...LOCALTZ - приводим к таймзоне, которая прописана для ID_BASE записи, если ID_BASE не нашлось, то приводим к переданной таймзоне.
  • Формат JSON-запроса к представлению:
    {
    "base" : BASEID, // ID филиала. Если 0 или отсутствует - все доступные филиалы
    "view": "VIEW_NAME", // Имя представления или функции. Обязательный параметр
    "params": [ "PARAM1", "PARAM2" ], // Список параметров для хранимой функции. Обязательный для вызовов функций.
    "limit": ROWCOUNT, // Максимальное количество строк. Если не указано или равно 0, то возвращается полный список
    "fields": [ "FIELD1", "FIELD2" ], // Запрашиваемые поля. Если не указано, возвращаются все поля представления
    "filter": ..., // Фильтр (тип фильтра задается в нижнем регистре)
    "groupby": [ "FIELD1", "FIELD2" ], // Группирование
    "order": { "FIELD1": "DESC" } // Порядок сортировки
    }
  • Описание поля групировки
    Операция группировки, поддерживает возможность группировать результаты выборки по датам с учетом выбранного клиентом метода сокращения даты Пример поля groupby:
    {
    "groupby":["C_USER_CREATE", {"C_DATE_CREATE":{"trunc":"year"}}]}
    "groupby":["C_USER_CREATE", {"C_DATE_CREATE":{"part":"year"}}]}
    }
    Методы работы с датой:
    {
    "trunc" - Округление даты до недели, месяца, квартала, года
    "part" - Получение полей времени
    }
    Возможные значения trunc/part:
    {
    "minute"
    "hour"
    "day"
    "week"
    "month"
    "quarter"
    "year"
    }
    Пример запроса с использованием groupby и сокращением даты
    {
    {
    "view":"V_ORDERS",
    "class":"T_ORDERS",
    "fields":
    [
    "C_USER_CREATE",
    { "count": "ID", "name": "C_SUM"}
    ],
    "groupby":
    [
    "C_USER_CREATE",
    {
    "C_DATE_CREATE":
    {
    "part":"year"
    }
    }
    ]
    }
    }
    Возвращает количество созданных заявок для каждого пользователя в течении года Транслируется в следующий SQL код:
    SELECT DATEPART(year,C_DATE_CREATE) AS C_DATE_CREATE_PART_YEAR,C_USER_CREATE,COUNT(ID) AS C_SUM FROM V_ORDERS AS vw GROUP BY C_USER_CREATE,DATEPART(year,C_DATE_CREATE)
  • Описание фильтра
    Если фильтр представлен в виде массива, то элементы объединяются условием OR. Если фильтр представлен одним объектом, то свойства объединяются условием AND.
    Пример AND-фильтра:

    {
    "C_FIELD1": "text1",
    "C_FIELD2": "text2"
    }
    // Данный JSON будет транслирован в SQL-условие WHERE C_FIELD1='text1' AND C_FIELD2='text2'

    Пример OR-фильтра:

    [
    { "C_FIELD1": "text1" },
    { "C_FIELD2": "text2" }
    ]
    // Данный JSON будет транслирован в SQL-условие WHERE C_FIELD1='text1' OR C_FIELD2='text2'
  • Агрегатные функции
    В списке запрашиваемых полей поддерживаются агрегатные функции, такие как sum, avg, min, max, count. Общий формат:
    { "[операция]": "FIELD", "name": "[имя_результа]" }
    Пример использования агрегатной функции в списке запрашиваемых полей:
    "fields": [ "ID_BASE", { "sum": "C_SUM", "name": "C_SUM_TOTAL" } ]
    // Данный запрос в SQL выглядит как SELECT ID_BASE, SUM(C_SUM) AS C_SUM_TOTAL [...]
  • Операции над полями
    Поддерживаются операции coalesce и cast в фильтре и списке запрашиваемых полей.
    Формат для использования в списке запрашиваемых полей:
    { "coalesce": [ "C_FIELD", "DEFAULT_VALUE"] }
    // Результат - COALESCE(C_FIELD, "DEFAULT_VALUE")
    { "cast": [ "C_FIELD", "SOME_SQL_TYPE" ] }
    // Результат - CAST(C_FIELD AS SOME_SQL_TYPE)
    Формат операций в фильтре:
    { "ID_BASE": { "coalesce": 0, "cast": "SQL_TYPE" ...[условия]... }}
    Например:
    { "ID_BASE": { "coalesce": 0, "gt": 0 } }
    // Дает в SQL условие COALESCE(ID_BASE, 0)>0
    { "ID_BASE": { "cast": "VARCHAR(10)", "like": "1%" } }
    // Дает условие CAST(ID_BASE AS VARCHAR(10)) LIKE '1%'
  • Формат условных операций
    Общий формат условия:
    { "C_FIELD": { "условие": "значение" } }
    Возможные условия:
    УсловиеПолучаемый SQL
    { "C_FIELD": { "eq": 10 } }
    C_FIELD=10
    { "C_FIELD": { "neq": 10 } }
    C_FIELD<>10
    { "C_FIELD": { "gt": 10 } }
    C_FIELD>10
    { "C_FIELD": { "lt": 10 } }
    C_FIELD<10
    { "C_FIELD": { "gte": 10 } }
    C_FIELD>=10
    { "C_FIELD": { "lte": 10 } }
    C_FIELD<=10
    { "C_FIELD": { "in": [10, 20, 30] } }
    C_FIELD IN (10, 20, 30)
    { "C_FIELD": { "nin": [10, 20, 30] } }
    C_FIELD NOT IN (10, 20, 30)
    { "C_FIELD": { "like": "%text%" } }
    C_FIELD LIKE '%text%'
    { "C_FIELD": { "nlike": "%text%" } }
    C_FIELD NOT LIKE '%text%'

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

{ "ID_BASE": { "neq1": null, "neq2": 0 } }
// JSON будет транслирован в SQL как "ID_BASE IS NOT NULL AND ID_BASE<>0"

Вложенные условия задаются с помощью ключевого слова "subcondition". Например:

{
"C_INFO": { "neq": null }
"subcondition": [ { "ID_BASE": null }, { "ID_BASE": 0 } ]
}
// Фильтр задает SQL-условие C_INFO IS NOT NULL AND (ID_BASE IS NULL OR ID_BASE=0)

Допускается нумерация вложенных условий, если их несколько в рамках одной конструкции ("subcondition1", "subcondition2", "subcondition3", etc.)

Примеры фильтров:

JSONSQL
[ { "ID_BASE": null }, { "ID_BASE": 0 }]
ID_BASE IS NULL OR ID_BASE=0
{ "ID": { "gt": 100, "lt": 200 }, "C_FIELD": { "neq": 900 } }
ID>100 AND ID<200 AND C_FIELD<>900
[
{
"ID": { "in": [ 100, 101, 102 ] },
"C_FIELD": { "like": "%something" }
},
{
"C_FAIL": 0
}
]
(ID IN (100, 101, 102) AND C_FIELD LIKE '%something') OR (C_FAIL=0)

Примеры запросов:

// Запрос списка классов
{ "class": "T_SYSTEM", "view": "psGetClassesFX", "params": [0,"username"] }
// Обновление списка событий
{
"class": "T_SYSTEM",
"view": "V_EVENTS",
"filter":
{
"C_NAME": { "neq1": null, "neq2": "UNKNOWN" },
"C_DATE_UPDATE": { "gt": "\/Date(1350596695633+0600)\/" }
}
}
// Запрос представления
{
"class": "T_AUTO",
"view": "V_AUTO_W",
"limit": 200,
"base": 0,
"order":
{
"C_FIRE_DISPL": "ASC",
"C_TYPE_NAME": "ASC",
"C_MARK":"ASC"
}
}
// Запрос обновления чата
{
"class": "T_SYSTEM",
"view": "V_CHAT_W",
"order": {
"ID": "ASC"
},
"filter": {
"ID": {
"gt": 0
},
"subcondition": [{
"C_USER": "impa"
}, {
"C_TARGET_SYS": "_ALL_FREQ"
}, {
"subcondition1": [{
"ID_BASE": null
}, {
"ID_BASE": 0
}, {
"ID_BASE": 1
}],
"subcondition2": [{
"C_TARGET_SYS": null
}, {
"C_TARGET_SYS": {
"in": ["_ALL_", "_ALL_OTHER_"]
}
}]
}]
}
}

Пример вложенного запроса:

{
"class": "T_POLL_LOG",
"view": "V_POLL_CALL",
"limit": 1,
"filter": {
"ID_POLL": {
"in": {
"view": "V_POLL_EDIT_ACTIVE",
"fields": ["ID"]
}
}
}
}
// ==> SELECT TOP 1 * FROM V_POLL_CALL WHERE ID_POLL IN (SELECT ID FROM V_POLL_EDIT_ACTIVE)

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetWebContext ( string  user,
string  password,
string  cookie,
string  confirmCode 
)

Получение контекста пользователя

Аргументы
userИмя пользователя
passwordПароль
cookieCookie web-клиента
confirmCodeКод SMS-подтверждения
Исключения
InvalidUserException
LoginFailedException
PasswordExpiredException
ServiceUserException
SqlOperationException
TokenLimitedException
UnknownUserException
UserLockedOutException
Возвращает
Идентификатор контекста пользователя

Вызов метода сбрасывает кэш пользователя и соединения с зеркалами.

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetWebContextBySt ( string  clientAppUrl,
string  ticket,
string  clientHostName,
string  clientAppName,
string  varParams 
)

Получение контекста для приложений в которых уже пройдена авторизация через CAS

Аргументы
clientAppUrlUrl клиентского приложения
clientHostNameИмя хоста
ticketТокен
clientAppNameИмя клиентского приложения
varParamsДополнительные параметры
  • Формат возвращаемого JSON-объекта
    {
    "ContextId":"9473277e-b491-45a2-979e-1b1efdf0c8be",
    "PasswordExpirationDaysLeft":16,
    "LoginResult":
    [
    {
    "COMPNAME":"",
    "LOGINRES":"LOGINOK",
    "FIO":"Ядрышников Андрей Евгеньевич",
    "IDBASE":178,
    "IDWORKERGROUP":27,
    "GROUPS":"|_Admin|_AESAdmin|_Auditview|_BrokerAdmin|_DBAgentView|_DriverManager|_FilesView|_InterfaceMaxim|_ITDivision|_Messtabview|_Ordersarcview|_SDKAdmin|_Sessionview|_Systeminterface|_TimeSheet|_TimeSheetLog|_WebPanelView",
    "LINE":"SIP/1371",
    "ATSTYPE":1,
    "WPTYPE":2,
    "IDWORKER":7307,
    "IDWORKPLACE":null,
    "ATSQUEREG":0,
    "FREQ":"1371",
    "ATSADDRTAPI":"10.1.5.8:5042",
    "WEBARMTAPI":"{\"stompTcp\":\"tcp://voip-pbx-sbc.infranet.co:61612\", \"stompWs\": \"wss://arm.taxsee.ru/tapi\"}",
    "PERSONID":"d204a888-9ea3-11e3-80f4-0025902d5b9f",
    "IDORGANIZATION":312,
    "DOMAINLOGIN":"yadryshnikov_ae",
    "SIPADDR":"10.1.5.8",
    "IDORGANIZATIONTYPE":0,
    "IDSHARD":2,
    "TIMEZONE":"Asia/Yekaterinburg"
    }
    ]
    }
Возвращает
JSON-объект

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetWebContextV2 ( string  user,
string  password,
string  cookie,
string  confirmCode,
string  hostName,
string  clientAppName,
string  varParams 
)

Получение контекста пользователя

Аргументы
userИмя пользователя
passwordПароль
cookieCookie web-клиента
confirmCodeКод SMS-подтверждения
hostNameНазвание рабочей станции клиента
clientAppNameНазвание клиентского приложения
varParamsДополнительные параметры в формате JSON
Исключения
InvalidUserException
LoginFailedException
PasswordExpiredException
ServiceUserException
SqlOperationException
TokenLimitedException
UnknownUserException
UserLockedOutException
Возвращает
Идентификатор контекста пользователя, признак ограниченности контекста (IsLimited), количество дней до окончания срока действия пароля (PasswordExpirationDaysLeft)

Вызов метода сбрасывает кэш пользователя и соединения с зеркалами.

  • Формат varParams
    {
    "language" : "value" // Определяет локаль подключившегося пользователя, если параметр не не задан, то автоматически русская локаль
    }
    Локаль задается текстовой стройкой:
    "ru" - русская локаль
    "de" - немецкая локаль
    "uk" - украинская локаль

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.GetWorkerGroups ( string  contextId,
int  workerId 
)

Возвращает группы доступа пользователя

Аргументы
contextIdИдентификатор контекста
workerIdИдентификатор сотрудника
Возвращает

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.KillContext ( string  contextId)

Уничтожает контекст пользователя из кэша брокера. При уничтожении контекста закрываются все соединения с базой данных и зеркалами.

Аргументы
contextIdИдентификатор контекста пользователя
Исключения
TokenExpiredException

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.KillContextV2 ( string  contextId,
int  exitCode 
)

Уничтожает контекст пользователя из кэша брокера. При уничтожении контекста закрываются все соединения с базой данных и зеркалами.

Аргументы
contextIdИдентификатор контекста пользователя
exitCodeКод возврата
Исключения
TokenExpiredException

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.ListContexts ( string  contextId)

Вернуть список активных контекстов.

Возвращает
Превьюха

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.MakeActivityForbidden ( string  contextId,
string  varParams 
)

Сделать сервис неактивным

Аргументы
contextIdИдентификатор контекста
varParamsДополнительные параметры
  • Офисание дополнительных параметров
    {
    "userForbidden" : {"user":isForbidden} // Словарь "Имя пользователя - Флаг активности" используется, для задания параметра Активности сервиса для конкретного пользователя
    }

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.MakeActivityPermitted ( string  contextId,
string  varParams 
)

Сделать сервис активным

Аргументы
contextIdИдентификатор контекста
varParamsДополнительные параметры
  • Офисание дополнительных параметров
    {
    "userForbidden" : {"user":isForbidden} // Словарь "Имя пользователя - Флаг активности" используется, для задания параметра Активности сервиса для конкретного пользователя
    }

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.MarkMessageAsRead ( int  messageId,
string  contextId 
)

Метод отмечает сообщение как прочитанное

Аргументы
messageIdИдентификатор сообщения
contextIdКонтекст пользователя

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.ObjLock ( string  contextId,
string  className,
Int64  id 
)

Блокировка объекта

Аргументы
contextIdИдентификатор контекста пользователя
classNameКласс объекта, например T_ORDERS
idИдентификатор объекта

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.ObjTouchLock ( string  contextId,
string  className,
Int64  id 
)

Продление блокировки объекта

Аргументы
contextIdИдентификатор контекста пользователя
classNameКласс объекта, например T_ORDERS
idИдентификатор объекта

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.ObjUnLock ( string  contextId,
string  className,
Int64  id 
)

Разблокировка объекта

Аргументы
contextIdИдентификатор контекста пользователя
classNameКласс объекта, например T_ORDERS
idИдентификатор объекта

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.ObjUnLockAll ( string  contextId)

Стяние всех блокировок

Аргументы
idИдентификатор объекта

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.Ping ( string  contextId)

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

Аргументы
contextIdИдентификатор контекста пользователя
Исключения
TokenExpiredException

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.PingSession ( string  contextId)

Сброс времени простоя сессии

Аргументы
contextIdИдентификатор контекста пользователя

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.PsGetObjectsDesc ( string  contextId,
string  filter,
string  varParams 
)

Получение описания объектов с учетом фильтра

Аргументы
contextIdИдентификатор контекста
filterФильтр
varParamsДополнительные параметры
Возвращает
Описание объектов
  • Описание параметра filter
    {
    "object_types":[], //Список типов объектов
    "classes":[], //Список классов
    "condition": //Обект условия выборки
    [
    {
    "field":
    {
    "condition":"value"
    }
    }
    ]
    }

    Варианты всех возможных условий "condition" для фильтрации выборки
    УсловиеОписание
    { "C_FIELD": { "eq": 10 } }
    Сравнение равенства
    { "C_FIELD": { "gt": 10 } }
    Представляет числовое сравнение объектов "больше, чем"
    { "C_FIELD": { "gte": 10 } }
    Представляет числовое сравнение объектов "больше или равно"
    { "C_FIELD": { "lte": 10 } }
    Представляет числовое сравнение объектов "меньше или равно"
    { "C_FIELD": { "lt": 10 } }
    Представляет числовое сравнение объектов "меньше, чем"
    { "C_FIELD": { "ne": 10 } }
    Предствляет сравнение неравенства
    { "C_FIELD": { "in": "text" } }
    Предствляет проверку условия "содержится"
    { "C_FIELD": { "sw": "text" } }
    Предствляет проверку условия "Начинается с"
    { "C_FIELD": { "ew": "text" } }
    Предствляет проверку условия "Заканчивается на"



Условия фильтра могут быть связаны логическим "И" либо логическим "ИЛИ". Одновременно оба варианта в данной версии не поддерживаются.
Пример связывания условий логическим "ИЛИ"

{
"object_types":[], //Список типов объектов
"classes":[], //Список классов
"condition": //Обект условия выборки
[
{
"field":
{
"condition":"value"
}
},
{
"field2":
{
"condition2":"value2"
}
}
]
}


Пример связывания условий логическим "И"

{
"object_types":[], //Список типов объектов
"classes":[], //Список классов
"condition": //Обект условия выборки
{
"field":
{
"condition":"value"
},
"field2":
{
"condition2":"value2"
}
}
}


Варианты всех возможных значений элементов списка "object_types"

ЗначениеОписание
"VIEW" Значение для указания необходимости выборки представлений
"PROC" Значение для указания необходимости выборки хранимых процедур
"CLASS" Значение для указания необходимости выборки классов


Примеры возвращаемых значений

{"object_types":["VIEW"], "classes":["T_AUTO"], "condition":[{"C_CODE":{"in":"V_AUTO"}}]}


{
"C_VIEWS":
[
{
"IDSQL":"taxi_driver.V_AUTO",
"C_CODE":"V_AUTO_FIND",
"C_NAME":"Поиск автомобилей",
"C_CLASS":"T_AUTO",
"C_ORDER":12,
"C_ACCESS_FLAG":"CHECK_BASE",
"C_PROPERTIES":"MIRROR=maindb_ro|VISIBLE=NO"
},
...
]
}

{"object_types":["PROC"], "classes":["T_AUTO"]}


{
"C_PROCS":
[
{
"IDSQL":"taxi_driver.autodopcheck",
"C_CODE":"AutoDopCheck",
"C_NAME":"Проверка наличия доп параметра у автомобиля",
"C_CLASS":"T_AUTO",
"C_ACCESS_FLAG":"CHECK_BASE",
"C_PROPERTIES":"VISIBLE=NO|MIRROR=maindb_ro",
"C_TYPE":"DUMMY"
},
...
]
}

{"object_types":["CLASS"], "classes":["T_AUTO"]}


{
"C_CLASSES":
[
{
"ID":8806,
"C_CODE":"T_AUTO",
"C_NAME":"Автомобили справочник",
"C_PROPERTIES":"GROUPOPER=YES",
"C_ACCESS_FLAG":"CHECK_BASE",
"C_TYPE":"TAXI"
}
]
}

{"object_types":["CLASS", "VIEW", "PROC"], "classes":["T_AUTO"]}


{
"C_CLASSES":
[
{
}
],
"C_VIEWS":
[
{
}
],
"C_PROCS":
[
{
}
]
}

varParams может принимать следующие значения

{
"language":"ru" - Язык локализации описания объектов. Данный параметр является приоритетнее языка контекста
"worker": {"id_worker":N, "id_worker_group":C, "login": L} - пользователь для которого необходимо вернуть права
}

/// Описание дополнительных параметров
Объект "worker" параметра varParams используется для получения прав пользователя отличного от текущего. Если поля id_worker, id_worker_group объекта "worker" имеют значения отличные от null, то приоритет их использования больше поля "login". </description?

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.PsGetObjectsFx ( string  contextId,
string  objectType,
string  classCode,
string  varParams 
)

Получение описания объектов базы данных

Аргументы
contextIdИдентификатор контекста
objectTypeТип объекта
classCodeКод класса
varParamsДополнительные параметры
Возвращает
Описание объектов
  • Описание входных параметров
    objectType может принимать следующие значения
    {
    "VIEW" - Получение описания представлений (обязательно задание значения параметра <paramref name="classCode"/>) \n
    "PROC" - Получение описания хранимых процедур (обязательно задание значения параметра <paramref name="classCode"/>)
    }
    varParams может принимать следующие значения
    {
    "include_desc":"true/false" - флаг, позволяющий включить/исключить описание объектов в выборку (по умолчанию описание включено)
    "language":"ru" - Язык локализации описания объектов. Данный параметр является приоритетнее языка контекста
    "worker": {"id_worker":N, "id_worker_group":C, "login":L} - пользователь для которого необходимо вернуть права
    }
  • Описание дополнительных параметров

  • Объект "worker" параметра varParams используется для получения прав пользователя отличного от текущего. Если поля id_worker, id_worker_group объекта "worker" имеют значения отличные от null, то приоритет их использования больше поля "login". </description? Формат возвращаемого значения при значение параметров objectType ="VIEW", classCode ="T_AUTO", varParams "include_desc"="false"
    [
    {
    "Key":
    {
    "C_CLASS":"T_AUTO",
    "C_CODE":"V_AUTO_FIND"
    },
    "Value":
    {
    "C_DESC":null,
    "C_ACR":
    {
    "C_BASES":[0]
    }
    }
    },
    {
    "Key":
    {
    "C_CLASS":"T_AUTO",
    "C_CODE":"V_AUTO_MY_TODAY"
    },
    "Value":
    {
    "C_DESC":null,
    "C_ACR":
    {
    "C_BASES":[0]
    }
    }
    },
    ...
    ]
  • Формат возвращаемого значения при значение параметров objectType ="VIEW", classCode ="T_AUTO", varParams "include_desc"="true"

    [
    {
    "Key":
    {
    "C_CLASS":"T_AUTO",
    "C_CODE":"V_AUTO_FIND"
    },
    "Value":
    {
    "C_DESC":
    {
    "C_CUSTOM":0,
    "IDSQL":"taxi_driver.V_AUTO",
    "ViewCode":"V_AUTO_FIND",
    "C_CODE":"V_AUTO_FIND",
    "C_NAME":"Поиск автомобилей",
    "C_CLASS":"T_AUTO",
    "C_ORDER":12,
    "C_ACCESS_FLAG":"CHECK_BASE",
    "C_FILTER":null,
    "C_PROPERTIES":"MIRROR=maindb_ro|VISIBLE=NO"
    },
    "C_ACR":
    {
    "C_BASES":[0]
    }
    }
    },
    ...
    ]

  • Формат возвращаемого значения при значение параметров objectType ="PROC", classCode ="T_AUTO", varParams "include_desc"="false"
    [
    {
    "Key":
    {
    "C_TYPE":"EDIT",
    "C_CLASS":"T_AUTO",
    "C_CODE":"AutoSet4Web"
    },
    "Value":
    {
    "C_DESC":null,
    "C_ACR":
    {
    "C_BASES":[0]
    }
    }
    },
    {
    "Key":
    {
    "C_TYPE":"DUMMY",
    "C_CLASS":"T_AUTO",
    "C_CODE":"AutoDopCheck"
    },
    "Value":
    {
    "C_DESC":null,
    "C_ACR":
    {
    "C_BASES":[0]
    }
    }
    },
    ...
    ]
    Формат возвращаемого значения при значение параметров objectType =NULL, classCode ="T_AUTO", varParams "include_desc"="true"
    {
    "C_PROCS_FX":
    [
    {
    "Key":
    {
    "C_TYPE":"EDIT",
    "C_CLASS":"T_AUTO",
    "C_CODE":"AutoSet4Web"
    },
    "Value":
    {
    "C_DESC":
    {
    "IDSQL":
    "taxi_driver.autoset_4web",
    "C_CODE":"AutoSet4Web",
    "C_NAME":"Добавить/изменить из водительского кабинета",
    "C_CLASS":"T_AUTO",
    "C_ACCESS_FLAG":"CHECK_BASE",
    "C_PROPERTIES":"WEBONLY=YES|VISIBLE=NO|MIRROR=maindb",
    "C_TYPE":"EDIT"
    },
    "C_ACR":
    {
    "C_BASES":[0]
    }
    }
    },
    ...,
    ],
    "C_VIEWS_FX":
    [
    {
    "Key":
    {
    "C_CLASS":"T_AUTO",
    "C_CODE":"V_AUTO_FIND"
    },
    "Value":
    {
    "C_DESC":
    {
    "C_CUSTOM":0,
    "IDSQL":"taxi_driver.V_AUTO",
    "ViewCode":"V_AUTO_FIND",
    "C_CODE":"V_AUTO_FIND",
    "C_NAME":"Поиск автомобилей",
    "C_CLASS":"T_AUTO",
    "C_ORDER":12,
    "C_ACCESS_FLAG":"CHECK_BASE",
    "C_FILTER":null,
    "C_PROPERTIES":"MIRROR=maindb_ro|VISIBLE=NO"
    },
    "C_ACR":
    {
    "C_BASES":[0]
    }
    }
    },
    ...
    ]
    }

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.RebuildMirrorList ( string  contextId)

Обновить список алиасов из конфига.

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.ResetAddressCache ( string  contextId)

Сброс адресного кэша

Аргументы
contextIdИдентификатор контекста

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.RetrieveAddressTemplates ( string  contextId,
int[]  idPlaces,
string  varParams 
)

Получение списка всех адресов для заданных филиалов

Аргументы
contextIdИдентификатор контекста
idPlacesИдентификаторы филиалов
varParamsДополнительные параметры

///

  • Пример возвращаемого значения
    [
    {
    "C_TYPE":1,
    "ID_PLACE":101,
    "C_PLACE":"Советск",
    "ID_ADDR":null,
    "C_ADDR_NAME":null,
    "ID_STREET":3165689,
    "C_STREET_NAME":"Академика Шишкина",
    "C_NUM_HOUSE":null,"ID_ZONE":null,
    "C_ZONE_NAME":null,
    "C_SYNONYM":null,
    "C_NOTE":null,
    "ID_BASE":null,
    "C_LATITUDE":null,
    "C_LONGITUDE":null,
    "ID_CITY":null,
    "C_CITY":null,
    "ID_TYPE_ADDR":null,
    "C_NAME":null,
    "C_DESCRIPTION":null,
    "ID_COUNTRY":null,
    "C_POPULATION":null,
    "ID_REGION":null,
    "C_IS_ADDR":null,
    "C_SELECTED":false,
    "C_MEET_POINT":null,
    "ID":0
    },
    {
    "C_TYPE":1,
    "ID_PLACE":101,
    "C_PLACE":"Советск",
    "ID_ADDR":null,
    "C_ADDR_NAME":null,
    "ID_STREET":3165690,
    "C_STREET_NAME":"Водопроводная",
    "C_NUM_HOUSE":null,
    "ID_ZONE":null,
    "C_ZONE_NAME":null,
    "C_SYNONYM":null,
    "C_NOTE":null,
    "ID_BASE":null,
    "C_LATITUDE":null,
    "C_LONGITUDE":null,
    "ID_CITY":null,
    "C_CITY":null,
    "ID_TYPE_ADDR":null,
    "C_NAME":null,
    "C_DESCRIPTION":null,"
    ID_COUNTRY":null,
    "C_POPULATION":null,
    "ID_REGION":null,
    "C_IS_ADDR":null,
    "C_SELECTED":false,
    "C_MEET_POINT":null,
    "ID":0
    }
    ]
  • Формат varParams
    {
    "language" : "value" // Если данный параметр не задан, берется локаль из контекста
    }
    Локаль задается текстовой строкой:
    "ru" - русская локаль\n
    "de" - немецкая локаль\n
    "uk" - украинская локаль\n
Возвращает
Список адресов

Замещается в MBroker.WorkerBroker.

Stream MBroker.IBrokerService.RetrieveAddressTemplatesStream ( string  contextId,
int[]  idPlaces,
bool  compressed,
string  varParams 
)

Получение списка всех адресов для заданных филиалов

Аргументы
contextIdИдентификатор контекста
idPlacesИдентификаторы филиалов
compressedЕсли установлено в true, возвращает упакованый GZip поток
varParamsДополнительные параметры
Возвращает
Поток данных адресного кэша для заданных филиалов.
Пример возвращаемого значения описан в документации к методу RetrieveAddressTemplates

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.SaveFileInfo ( string  contextId,
string  filename,
string  className,
int  idRecord,
string  type,
string  fileType,
string  guid,
int  idBd 
)

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.SendDepsEvent ( string  user,
string  password,
string  phoneNumber,
string @  event,
int  id 
)

Аргументы
user
password
phoneNumber
event
id
Возвращает

Замещается в MBroker.WorkerBroker и MBroker.WorkerBroker.

void MBroker.IBrokerService.SetLocale ( string  contextId,
string  locale 
)

Смена локали пользователя

Аргументы
contextIdID контекста пользователя
localeЛокаль

Пример задания локали
Локаль задается текстовой стройкой:
"ru" - русская локаль
"de" - немецкая локаль
"uk" - украинская локаль

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.SmsReset ( string  contextId)

Сброс состояния SMS [SMSDaemon]

Аргументы
contextIdИдентификатор контекста

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.Subscribe ( string  contextId,
string  filter 
)

Начать вести выделенный лог, состоящий из записей, содержащих строку, переданную в filter

Замещается в MBroker.WorkerBroker.

void MBroker.IBrokerService.Unsubscribe ( string  contextId)

Остановить запись выделенного лога.

Замещается в MBroker.WorkerBroker.

int MBroker.IBrokerService.UploadFile ( string  contextId,
string  filename,
string  file,
string  className,
int  idRecord,
string  type,
string  fileType 
)

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.UploadFileEx ( string  contextId,
string  date,
string  fileName,
string  className,
int  idRecord,
string  type,
string  fileType,
string  mirror,
string  varParams 
)

Метод загрузки файла на сервер

Аргументы
contextIdИдентификатор контекста
dateБинарные данные
fileNameОригинальное имя файла
classNameИмя класса (например: T_DRIVERS)
idRecordID записи внутри выбранного класса
typeСсылка на тип файла из T_FILE_TYPES
fileTypeMIME-тип
mirrorЗеркало для загрузки файла
varParamsJSON-объект с дополнительными параметрами
Возвращает
Строка с уникальным идентификатором файла

Формат JSON-объекта с дополнительными параметрами

{
"user":"value" - пользователь, загружающий файл
"replaceFileGuid":"value" - guid файла, который необходимо заменить
"idLang":"value" - идентификатор локали
"idFile":"value" - идентификатор файла из T_FILES, если передан, обновится запись в T_FILES, иначе создастся новая
"fileStatus":"value" - статус файла. Tсли не передан, статус файла изменится на ACTIVE
}
  • Пример бинарных данных
    "YWJj" Уникальный идентификатор файла
    Используется для загрузки файла с сервера

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.UploadFileFBM ( string  contextId,
string  date,
string  fileName,
string  className,
int  idRecord,
string  type,
string  fileType,
string  mirror 
)

Метод загрузки файла на сервер

Аргументы
contextIdИдентификатор контекста
dateБинарные данные
fileNameОригинальное имя файла
classNameИмя класса (например: T_DRIVERS)
idRecordID записи внутри выбранного класса
typeСсылка на тип файла из T_FILE_TYPES
fileTypeMIME-тип
mirrorЗеркало для загрузки файла
Возвращает
Строка с уникальным идентификатором файла
  • Пример бинарных данных
    "YWJj" Уникальный идентификатор файла
    Используется для загрузки файла с сервера

Замещается в MBroker.WorkerBroker.

int MBroker.IBrokerService.UserCount ( )

Вернуть количество залогиненных пользователей.

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.UserCountByLogin ( string  login)

Возвращает общее число залогиненных пользователей и число залогиненных с данным логином

Аргументы
loginЛогин пользователя

///

  • Офисание дополнительных параметров
    {
    "UserCount":3, //общее число пользователей
    "UserCountByLogin":1 //число пользователелей c переданным логином
    }
Возвращает

Замещается в MBroker.WorkerBroker.

string MBroker.IBrokerService.UserLogin ( string  contextId,
string  hostName,
string  clientAppName 
)

Подключение пользователя к сервису.

Аргументы
contextIdИдентификатор контекста пользователя
hostNameИмя компьютера в сети
clientAppNameИмя клиента (приложения)
Возвращает
JSON с результатом выполнения
Исключения
AccessDeniedException
BrokerSqlException
ServiceUserException
TokenExpiredException

Замещается в MBroker.WorkerBroker.


Объявления и описания членов интерфейса находятся в файле: