Получение устройства по указанному iccid в cumulocity?

У меня есть устройства в Cumulocity с фрагментом «Мобильный». Я хотел бы получить информацию об устройстве, указав iccid, который является частью фрагмента «Мобильный». Пока я выполняю поиск в инвентаре на основе фильтра: InventoryFilter inventoryFilter = new InventoryFilter().byFragmentType(Mobile.class);

а затем проверить, соответствует ли iccid в найденных устройствах требуемому. Но хотелось бы как-то указать iccid в поиске.

Возможно ли это и если да - как это сделать?


person Ivajlo Iliev    schedule 16.10.2019    source источник


Ответы (1)


Да, это возможно. Вам нужно определить собственный запрос, аналогичный запросу, который вы бы использовали через обычный вызов API:

...?query=$filter=c8y_Mobile.iccid eq '<<your-iccid>>'

В Java у вас может быть собственный класс фильтра для этого:

public class CustomInventoryFilter extends InventoryFilter {

@ParamSource
private String query;

public CustomInventoryFilter byQuery(final String query) {
    this.query = query;
    return this;
}

Вместо InventoryFilter.class вы используете этот пользовательский класс и добавляете тот же запрос, что и выше, в .byQuery("c8y_Mobile.iccid eq '<<your-iccid>>'")

person socona    schedule 18.10.2019
comment
На самом деле это сработало с .byQuery("c8y_Mobile.iccid eq '<<your-iccid>>'"', большое спасибо за подсказку. - person Ivajlo Iliev; 23.10.2019
comment
Спасибо, вы правы, я обновил свой ответ соответственно. - person socona; 24.10.2019