2016-10-18 15 views
0

Работа с повторяющимися сетками через построитель форм.Проверьте, не содержит ли строка JSON в повторяющейся сетке Orbeon определенное значение

У меня есть настраиваемый элемент управления, который имеет строковое значение, представленное в json.

{ 
    "data": { 
    "type": "File", 
    "itemID": "12345", 
    "name": "Annual Summary", 
    "parentFolderID": "fileID", 
    "owner": "Owner", 
    "lastModifiedDate": "2016-10-17 22:48:05Z" 
    } 
} 

В контрольной группе за пределами повторяющейся сетки, мне нужно проверить, если имени = «Годовое Резюме»

Раньше я был выпадающим контролем и используя вычисленное значение $ dropdownControl = " Годовой отчет " он смог вернуть true, если какой-либо из повторяющихся строк содержал значение. Я понимаю, что с помощью оператора = он будет проверять все строки.

Теперь с выходом JSon контроля, я пытаюсь использовать

contains($jsonStringValue, 'Annual Summary') 

Однако, это работает только с одним входом и будет нулевым, если есть несколько строк.

2 вопросы:

  1. Как бы проверить, присутствует ли в любой из повторяющихся строк «Годовой Summary» (или любой другой текст)?
  2. Есть ли способ переместить json или проанализировать его на XML и переместить его?

Constraint:

  • в вычисленное значение или Видимость полей в форме строитель
  • манипулируя источник, который создается в форме строитель
+0

Вы попробовали решение? – ebruchez

ответ

0

Вы, вероятно, хотите, чтобы разобрать JSON сначала. См. Также other Stackoverflow question.

До Orbeon не Forms 2016.3 отпускается, можно было бы написать:

(
    for $v in $jsonStringValue 
    return converter:jsonStringToXml($v) 
)//name = 'Annual Summary' 

С выше, вы также должны объем пространства имен:

xmlns:converter="org.orbeon.oxf.json.Converter" 

После Orbeon Forms 2016.3 отпускается вы можете переключаться до:

$jsonStringValue/xxf:json-to-xml()//name = 'Annual Summary'