Запрос событий в СПИК


Для запроса событий в СПИК существуют сервисы SpicTpmEventService (периоды движения) и SpicFuelEventService (заправки и сливы).

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

  1. Пройти авторизацию в системе СКАУТ (если не пройдена).
  2. Получить список идентификаторов Объектов мониторинга, по которым необходимо получить события.
  3. Сформировать запрос для получения события и указать список идентификаторов ОМ, по которым необходимо получить данные.
  4. Получить события, вызвав у одного из сервисов необходимый метод с параметром, полученным на шаге 2. При успешном выполнении сервис вернёт результат, в котором будут находиться события.

Пример на C#:

public SpicObjectTpmEventTypeCollection[] GetTpmEvents()
{
    // создаем клиент сервиса
    var tmpServiceClient = new SpicSoapTpmEventServiceClient();
    // формируем запрос
    var unitTypeId = new Guid("0F1E3A4A-88F5-4166-9BE8-76033DD85D08");
    var request = new SpicObjectsEventTypeRequest
        {
            Objects = new[]
                {
                    new SpicObjectIdentity {ObjectId = 245, ObjectTypeId = unitTypeId},
                    new SpicObjectIdentity {ObjectId = 412, ObjectTypeId = unitTypeId},
                    new SpicObjectIdentity {ObjectId = 1240, ObjectTypeId = unitTypeId},
                    new SpicObjectIdentity {ObjectId = 3, ObjectTypeId = unitTypeId}
                },
            Period = new SpicDateTimeRange
                {
                    Begin = DateTime.Now.AddDays(-1),
                    End = DateTime.Now
                }
        };

    // запрашиваем у сервера события
    var response = tmpServiceClient.GetEventsByCommitTime(request);
    return response.Collection.Collections;
}

Пример на JS:

function getTpmEvents(authorizationToken)
{
    // создаем клиент сервиса
    var requestProvider = new HttpJsonRequestProvider();
    // формируем запрос
    var unitTypeId = "0F1E3A4A-88F5-4166-9BE8-76033DD85D08";
    var request = {
        Object: [
            { ObjectId: 245, ObjectTypeId: unitTypeId },
            { ObjectId: 412, ObjectTypeId: unitTypeId },
            { ObjectId: 1240, ObjectTypeId: unitTypeId },
            { ObjectId: 3, ObjectTypeId: unitTypeId }
        ],
        Period: {
            Begin: "/Date(" + (new Date().getTime() - 86400000) + ")/",
            End: "/Date(" + new Date().getTime() + ")/"
        }
    };

    // запрашиваем у сервера события
    var response = requestProvider.POSTAuthorized("http://localhost:8081/spic/TpmEvent/rest", request, authorizationToken);
    return response.Collection.Collections;
}

[[Запрос статистик в СПИК|<<Назад]]                                                       [[Документация по СПИК|К оглавлению]]                                                                     [[Адреса сервисов в REST и SOAP. СПИК|Далее>>]]



Номер материала: 1128
Отправлено: Thu, Sep 20, 2018
Последнее обновление: Sun, Oct 7, 2018
Отправлено: Анисимов Максим Михайлович [m.anisimov@scout-gps.ru]

Online URL: https://kb.scout-gps.ru/article/Запрос-событий-в-СПИК-1128.html