Рекомендации к Web-API - доступ к разделу Устройства

Здравствуйте! Давайте обсудим пункт 1. из Рекомендации к Web-API - REST, Framework, интеграция с другими системами - ЛЭРС УЧЁТ

Я спросил необходимость в получении информации об устройствах и номерах на объекте учета. Вы ответили, что

Веб-служба вместе с точкой учета возвращает связанное с ней устройство. Сейчас у оборудования есть только > серийный номер и модель оборудования> .

Привожу вывод (Рис. 1)

Как видите в выводе MeasurePointList, свойства
Device, MeterDeviceType : null

Тоесть мы не получили информацию про тип установленного вычислителя и его номер серийный.
Как быть?

Нашел тип и номер в запросе MeasurePointByIdExtended (Рис. 2)

Но я хочу заметить, что для получения этой информации надо делать дополнительный запрос к API.
Все таки у вас сейчас в ЛЭРС Оборудование раздел переделан и привязан к объектам учета и точкам.
Логично бы было иметь в выдаче
GetNodeList()->{id}->Systems->AllMeasurePoints->{id1}->Device
GetMeasurePointList()->Device эту информацию.
321.png

Чтобы получить информацию по оборудованию связанному с точкой учета вы должны вызвать метод GetMeasurePointByIdExtended или GetMeasurePointByNumberExtended.
Мы не можем вернуть все данные связанные со списком точек или объектов учета, т.к. на этих сущностях завязаны все остальные объекты системы. Ответ на такой запрос будет слишком большой. Поэтому в веб-службе применяется механизм, аналогичный механизму LERS Framework, когда мы выдает только запрашиваемые данные по флагу.

Тоесть вы намеренно увеличиваете количество запросов к API из-за этого?
Тоесть получается если мне нужно запросить данные по 600 точкам и получить номера приборов и типы, то нужно сделать 600 запросов GetMeasurePointByIdExtended? или же достаточно будет сделать 1 запрос GetNodeList или MeasurePointList, чтобы получить эту информацию, у вас же есть в структуре ответа поля Device: null, они для чего то там сохранены.

Я возможно неправильно выразился, еще раз привожу вывод GetMeasurePointList
Поле ответа содержит параметр Device: null, мне нужно сделать еще один запрос к API (MeasurePointByIdExtended), дабы заполнить это поле.

У меня текущая задача в получении сразу же информации по 600 и более точкам учета для последующей генерации данных в xml файл, 600 отдельных запросов request к Web-API создают дополнительную задержку в работе сервиса. Если бы обошелся одним запросом всех точек учета (GetMeasurePointList) и там сразу же получил json.Data.Device.Model.Title и json.Data.Device.SerialNumber этой задержки бы избежал.
MeasurePointList.jpg

Вы просите чтобы при вызове метода GetNodeList возвращался список объектов и точек учета со всеми заполненными полями. Если мы это сделаем, тогда в ответ будет возвращаться значительная часть всей базы данных, а сам запрос будет формироваться значительное время.
Мы намеренно стараемся сократить объем обрабатываемых и выдаваемых данных за один запрос. Иначе у нас был бы один универсальный метод “Вернуть все”.
Сейчас нет технической возможности добавить такой функционал в веб-службу. Lers Framework также не даст получить информацию по списку точек учета и связанному оборудованию за один вопрос.
Постарайтесь описать вашу задачу подробней. Если вам необходимо сформировать некий отчет или выгрузку, опишите поля, кототые там должны быть, покажите сам отчет. Тогда мы сможем предложить вам решение.
Вам нужно получить связь точек учета с оборудованием, или вам будет достаточно получить список всего оборудования, или список оборудования установленного на объекте учета?



<?xml version="1.0" encoding="WINDOWS-1251"?>
<Файл ВерсияФормата="3.03" Имя="ON_ActS_" Формат="АктСнятияПоказанийПУ">
   <Документ Время="11.0.00" Дата="22.12.2014" Название="Акт снятия показаний приборов учета" Номер="362564">
        <Период ДатаКнц="16.12.2014" ДатаНач="17.11.2014" Название=" 2014"/>
        <СписокСтрПоказаниеПУ>
            <СтрПоказаниеПУ Идентификатор="362564">
                <СписокПараметр>
                    <Параметр Значение="Тип счетчика" Имя="KM-5"/>
                </СписокПараметр>
                <ОбъектУчета Адрес="" Название="Азина 33(ЦО)"/>
                <СписокПоказаниеПУ>
                 <ПоказаниеПУ d="17.11.2014" Q="0" M1="0" V1="0" M2="0" V2="137.08" t1="62" t2="49.1" dt="12.9" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="0" ta="-9.1" />
                 <ПоказаниеПУ d="18.11.2014" Q="0" M1="0" V1="0" M2="0" V2="137.21" t1="62.3" t2="49.3" dt="12.9" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="0" ta="-6.4" />
                 <ПоказаниеПУ d="19.11.2014" Q="0" M1="0" V1="0" M2="0" V2="137.46" t1="60.1" t2="48" dt="12.1" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="0" ta="-5.7" />
                 <ПоказаниеПУ d="20.11.2014" Q="0" M1="0" V1="0" M2="0" V2="137.55" t1="59.9" t2="48" dt="11.9" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="0" ta="-2.6" />
                 <ПоказаниеПУ d="21.11.2014" Q="0" M1="0" V1="0" M2="0" V2="137.69" t1="58.6" t2="47.1" dt="11.5" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="0" ta="-4.8" />
                 <ПоказаниеПУ d="22.11.2014" Q="0" M1="0" V1="0" M2="0" V2="137.64" t1="61.3" t2="48.8" dt="12.5" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="0" ta="-6.1" />
                 <ПоказаниеПУ d="23.11.2014" Q="0" M1="0" V1="0" M2="0" V2="137.54" t1="67.7" t2="52.7" dt="15" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="0" ta="-11.5" />
                 <ПоказаниеПУ d="24.11.2014" Q="0" M1="0" V1="0" M2="0" V2="137.34" t1="72.6" t2="55.6" dt="17" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="0" ta="-16.6" />
                 <ПоказаниеПУ d="25.11.2014" Q="0" M1="0" V1="0" M2="0" V2="137.35" t1="72.1" t2="55.5" dt="16.6" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="0" ta="-10.1" />
                 <ПоказаниеПУ d="26.11.2014" Q="0" M1="0" V1="0" M2="0" V2="138.7" t1="66.5" t2="52.3" dt="14.1" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-5.3" />
                 <ПоказаниеПУ d="27.11.2014" Q="0" M1="0" V1="0" M2="0" V2="139.96" t1="63.2" t2="50.4" dt="12.8" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-4.5" />
                 <ПоказаниеПУ d="28.11.2014" Q="0" M1="0" V1="0" M2="0" V2="140.14" t1="61" t2="48.9" dt="12.1" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-3.5" />
                 <ПоказаниеПУ d="29.11.2014" Q="0" M1="0" V1="0" M2="0" V2="140.25" t1="61.3" t2="49.2" dt="12" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-3" />
                 <ПоказаниеПУ d="30.11.2014" Q="0" M1="0" V1="0" M2="0" V2="140.23" t1="63.8" t2="50.8" dt="13" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-6.2" />
                 <ПоказаниеПУ d="01.12.2014" Q="0" M1="0" V1="0" M2="0" V2="140.29" t1="63.2" t2="50.4" dt="12.7" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-11" />
                 <ПоказаниеПУ d="02.12.2014" Q="0" M1="0" V1="0" M2="0" V2="143.19" t1="69.2" t2="53.9" dt="15.3" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-18" />
                 <ПоказаниеПУ d="03.12.2014" Q="0" M1="0" V1="0" M2="0" V2="140.67" t1="71.2" t2="55" dt="16.2" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-17.5" />
                 <ПоказаниеПУ d="04.12.2014" Q="0" M1="0" V1="0" M2="0" V2="136" t1="68.3" t2="53" dt="15.3" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-7.9" />
                 <ПоказаниеПУ d="05.12.2014" Q="0" M1="0" V1="0" M2="0" V2="137.18" t1="68.6" t2="52.8" dt="15.8" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-18.8" />
                 <ПоказаниеПУ d="06.12.2014" Q="0" M1="0" V1="0" M2="0" V2="138.16" t1="77.8" t2="58.6" dt="19.2" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-17.3" />
                 <ПоказаниеПУ d="07.12.2014" Q="0" M1="0" V1="0" M2="0" V2="138.93" t1="62.6" t2="49.6" dt="13" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-3.7" />
                 <ПоказаниеПУ d="08.12.2014" Q="0" M1="0" V1="0" M2="0" V2="139.21" t1="63.4" t2="50.1" dt="13.3" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-4.5" />
                 <ПоказаниеПУ d="09.12.2014" Q="0" M1="0" V1="0" M2="0" V2="126.22" t1="63.7" t2="49.3" dt="14.3" Tw="0" Tост="24" ErrE="0" ErrU="1.52" ErrD="0" ErrG="0" ErrGg="22.48" ta="-8.1" />
                 <ПоказаниеПУ d="10.12.2014" Q="0" M1="0" V1="0" M2="0" V2="132.91" t1="63.8" t2="50" dt="13.9" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-6" />
                 <ПоказаниеПУ d="11.12.2014" Q="0" M1="0" V1="0" M2="0" V2="134.4" t1="59.7" t2="47.6" dt="12.1" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-4.5" />
                 <ПоказаниеПУ d="12.12.2014" Q="0" M1="0" V1="0" M2="0" V2="134.43" t1="60.2" t2="47.8" dt="12.4" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-5.4" />
                 <ПоказаниеПУ d="13.12.2014" Q="0" M1="0" V1="0" M2="0" V2="134.45" t1="62.3" t2="49.4" dt="12.9" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-2.3" />
                 <ПоказаниеПУ d="14.12.2014" Q="0" M1="0" V1="0" M2="0" V2="134.65" t1="59.1" t2="47.4" dt="11.6" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="1" />
                 <ПоказаниеПУ d="15.12.2014" Q="0" M1="0" V1="0" M2="0" V2="134.63" t1="59.5" t2="47.8" dt="11.7" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="0.3" />
                 <ПоказаниеПУ d="16.12.2014" Q="0" M1="0" V1="0" M2="0" V2="134.59" t1="59.7" t2="47.9" dt="11.8" Tw="0" Tост="24" ErrE="0" ErrU="0" ErrD="0" ErrG="0" ErrGg="24" ta="-2.1" /></СписокПоказаниеПУ>
                <ИтогПоказаниеПУ d1="17.11.2014" d2="16.12.2014" Q_d1="55.426" Q_d2="55.426" Q="0" M1_d1="5349.3" M1_d2="5349.3" M1="0" V1_d1="5447.11" V1_d2="5447.11" V1="0" 
                M2_d1="5380.61" M2_d2="5380.61" M2="0" V2_d1="31817.91" V2_d2="35933.96" V2="4116.05" t1="64.2" t2="50.6" Tw_d1="672.84" Tw_d2="672.84" Tw="0" Tост="720" 
                ErrE="0" ErrU="1.52" ErrD="0" ErrG="0" ErrGg="502.48" ta="-7.4"/>
              <Добор Q="0" V="0"/>
             <ИТОГО С ДОБОРОМ Q="0" V="0"/>
           </СтрПоказаниеПУ>
        </СписокСтрПоказаниеПУ>
    </Документ>
</Файл>

Так выглядит xml файл по 1 точке учета, таких файлов нужно генерировать примерно 600 и более за 1 единицу времени, за минусом нерабочих. В каждом файле как видите помимо данных потребления есть информация

<СтрПоказаниеПУ Идентификатор="362564">
                <СписокПараметр>
                    <Параметр Значение="Тип счетчика" Имя="KM-5"/>
                </СписокПараметр>

Номер и тип вычислителя. Ее нужно заполнять для каждого файла.

PS: Я вас услышал! Просто было непонятно зачем вы оставили поле Device в выводе GetNodeList и GetMeasurePoint пустым. Я решу проблему с задержкой из-за дополнительно запроса GetMeasurePointById путем введение в приложения отдельного хранилища/БД, так как по сути информация о списке объектов/точек учета/номеров и типов вычислителей “статична” (мы сейчас практически ничего нового не добавляем в ЛЭРС), в которое будет один раз выгружена информация, запрашиваться будут только данные потребления.

Мы добавим информацию о поверки в оборудование. Вам этого будет достаточно?

Да на данный момент достаточно, 2 даты получается добавите? Дата поверки и дата предполагаемой поверки?

Да, еще появится поле комментарий и межповерочный интервал. Ожидайте версию R15.

Тема закрыта.