Ad Widget

Collapse

Возможно ли прикрутить Dependent item, если в xml массив item-ов?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dsd7150
    Junior Member
    • Apr 2018
    • 7

    #1

    Возможно ли прикрутить Dependent item, если в xml массив item-ов?

    Добрый день!

    Получаю из веб-приложения страницу состояния системы в xml с помощью web.page.get, скажем, это будет Status page. Теперь думаю, как сделать так, чтобы создать три Item-а с типом Dependent item к Master Item - "Status page". Страница такая:

    Code:
    <items>
        <item>
            <id>item#1</id>
            <value>1</queue>
        </item><item>
            <id>item#2</id>
            <value>4</queue>
        </item><item>
            <id>item#3</id>
            <value>6</queue>
        </item>
    </items>
    Возможно ли это сделать, мне надо у трех айтемов забирать их значения. Страница имеет сложную структуру, я упростил одну из секций. Через скрипты и траппер делать не хотелось бы. Я думаю, тут тип Dependent item как нельзя кстати подходит, тем более что есть секции, из которых я уже что-то получаю, но не массив, как в примере выше. Что делать с массивом - ума не приложу.

    Второй вопрос - надо триггер повесить на каждый из айтемов, у системы есть свойство - что какие-то из item исчезают - надо сигнализировать админу про это. Я так понимаю, это можно сделать с триггером с помощью no_data на указанный item. Я прав?
  • Semiadmin
    Senior Member
    • Oct 2014
    • 1625

    #2
    Мне кажется, штатный парсинг XML в препроцессинге здесь не сработает. Можно попробовать обычной регуляркой, например, для item#3:
    item#3<\/id>\n\s+<value>([0-9]*)
    Если item#3 не будет, зависимый айтем станет неподдерживаемым, но nodata для неподдерживаемых работает.
    Кстати, если для вас отсутствие айтема в xml и его нулевое значение суть одно и то же, можно сделать output не \1, а 0\1, добавляя лидирующий 0 к значению.
    Тогда вместо пустоты будет 0, и айтем всегда будет поддерживаемым.

    Comment

    • dsd7150
      Junior Member
      • Apr 2018
      • 7

      #3
      Originally posted by Semiadmin
      Мне кажется, штатный парсинг XML в препроцессинге здесь не сработает. Можно попробовать обычной регуляркой, например, для item#3:
      item#3<\/id>\n\s+<value>([0-9]*)
      Если item#3 не будет, зависимый айтем станет неподдерживаемым, но nodata для неподдерживаемых работает.
      Кстати, если для вас отсутствие айтема в xml и его нулевое значение суть одно и то же, можно сделать output не \1, а 0\1, добавляя лидирующий 0 к значению.
      Тогда вместо пустоты будет 0, и айтем всегда будет поддерживаемым.
      Другие значения я забираю через XML XPath успешно. Например, number(/status/counter/received/queued). Хотя, я примерно понял о чем вы. Регулярко решить, вместо XPath. Попробую. Спасибо! Но разработчикам на заметку - было бы удобно иметь механизм работы с массивом и по условию if

      Comment

      • dsd7150
        Junior Member
        • Apr 2018
        • 7

        #4
        А вообще, я подумал, наверное, все же правильнее будет написать скрипты, сделать через LLD. Там уж много item-ов и метрик внутри каждого

        Comment

        Working...