Как через API получить информацию из справочника "Оборудование"

Раздел для разработчиков по взаимодействию с ЛЭРС УЧЕТ, созданию собственных внешних модулей, экспорту/импорту данных и т.д.

Модератор: Модераторы

Ответить
asharunov
Сообщения: 15
Зарегистрирован: 14 май 2019, 09:35

Как через API получить информацию из справочника "Оборудование"

Сообщение asharunov » 13 ноя 2019, 12:00

Добрый день.
Поставлена задача организовать мониторинг доступности "Точек учета" в APN сети, для этого необходим актуальный список IP адресов (Адрес хоста) по каждой точке учета.
Как через API можно получить эту информацию?
Или как вариант, через API получить информацию из справочника "Оборудование", где интересуют поля:
- "Модель"
- "Серийный номер"
- "Номер телефона/Интернет адрес/...."?
Иван Славный
Инженер техподдержки
Инженер техподдержки
Сообщения: 6672
Зарегистрирован: 02 мар 2016, 05:45

Re: Как через API получить информацию из справочника "Оборудование"

Сообщение Иван Славный » 14 ноя 2019, 05:11

Колонки "Модель" и "Серийный номер" можно вывести через все ту же функцию GetMeasurePointByNumberExtended. Ниже приложил пример:

Код: Выделить всё

$url = "http://localhost:80/Api.asmx"
 
# Создаем прокси класс для работы со службой
$webservice = New-WebServiceProxy -uri $url -Namespace "LersWebserviceNamespace"
 
# Устанавливаем куки-контейнер, необходим для авторизации пользователя
$webservice.CookieContainer = New-Object System.Net.CookieContainer
 
# Входим в систему ЛЭРС УЧЕТ
$response1 = $webservice.Login('admin', 'admin')
 
# Если произошла ошибка, прекращаем работу
if($response1.IsError -eq $true)
{
     Write-Host $response1.ErrorMessage
     exit
}
 
# Получаем точку учета по номеру 100 с запросом атрибутов (measurePointFlags = 2 - указывает, что необходимо вернуть информацию по оборудованию)
$response2 = $webservice.GetMeasurePointByNumberExtended(100, 2)

# Выводим модель и серийный номер оборудования, привязанного к точке учета
Write-Host $response2.MeasurePoint.Device.Model.Title
Write-Host $response2.MeasurePoint.Device.SerialNumber
А вот адрес хоста получить в старом API нельзя, так как в нем нет возможности получать информацию по подключениям ни в каком виде. В новом REST API заложен функционал по получению информации о подключении автоопроса, если вы запрашиваете информацию по конкретной точке учета (GET /rest/v1/MeasurePoints/{id}) с флагом "AutoPoll", но на данный момент информация о подключении автоопроса никогда не возвращается, так как этот функционал ранее не запрашивался пользователями. Вы можете создать предложение по улучшению, в котором описать необходимость реализации возможности получения данной информации о подключении автоопроса.
20 и 21 июля 2020. IX обучающий семинар в Москве. Подробнее ...
Ответить