Orbeon: использовать набор элементов автозаполнения в ресурсе другого автозаполнения - PullRequest
0 голосов
/ 13 июля 2020

Я использую Orbeon Forms CE. Как я могу добиться такого поведения:

В первом типе ресурса пользователь автозаполнения может выбирать из нескольких значений, запрошенных из API, например '1 - aaa', '2 - bbb', '3 - ccc', где 'A' - это код, а 'aaa' - описание - готово.

Во втором типе ресурса Автозаполнение я хотел бы иметь такие значения, как 'X - xxx', 'Y - yyy', 'Z - zzz', где «X» - это код, а «xxx» - описание. Значения этого второго автозаполнения основаны на сопоставлении с первым, например: '1: X, Y'; '2: Y, Z'; «3: X, Y, Z». Я могу получить коды этого второго автозаполнения с помощью http-запроса к API с кодом из первого автозаполнения в качестве параметра (например, отправка «2» дает в ответ «Y, Z»). Но чтобы получить также описания ('yyy', 'zzz'), мне нужно было бы отправить следующий запрос с параметром 'Y, Z'.

Итак, вопрос: можно взять набор элементов автозаполнения и поместить его в атрибут «ресурс» другого автозаполнения (как «http ... Y, Z ...»)? Если да, то как это сделать?

Нет возможности вносить изменения в используемый API.

Обновите , чтобы прояснить ситуацию, как Ave rnet предлагается:

Да, я могу взять значение, выбранное в первом автозаполнении, и поместить его в URL ресурса для второго автозаполнение. Но я также хочу: взять все возможные значения второго автозаполнения и использовать их в URL для третьего автозаполнения.

Вот пример из жизни:

У нас есть 3 таблицы: Книги, Авторы и Авторы книг многие-ко-многим. Пользователь Orbeon выбирает одного автора в 1-м автозаполнении (которое использует метод WS для таблицы авторов). 2-е автозаполнение может быть заполнено только идентификаторами книг выбранного автора (с использованием метода WS для таблицы Book-Authors с 1-м значением автозаполнения в качестве аргумента). Это автозаполнение будет скрыто. В третьем я хочу иметь книги (с заголовками), и этого можно было бы добиться, если бы я мог принять все возможные значения второго автозаполнения (используя метод WS в таблице книг со всеми значениями второго автозаполнения в качестве аргумента). Возможно ли это?

Отказ от ответственности:

  • API WS - это простая словарная система и не может быть изменена.
  • автозаполнение можно изменить с помощью компонентов databound-select1
  • возможно, конечный результат может быть получен другим способом (например, без второго автозаполнения), все предложения приветствуются

1 Ответ

0 голосов
/ 05 сентября 2020

Чтобы обобщить соответствующую часть вашего вопроса, у вас есть 3 службы:

  • S1 , возвращающий список авторов (имя, идентификатор).
  • S2 получение идентификатора автора, возврат списка идентификаторов книг.
  • S3 получение списка идентификаторов книг, возвращение списка названий книг.

Вы хотите иметь 2 раскрывающихся списка:

  • D1 список авторов.
  • D2 список названий книг из выбранных author.

Во-первых, я должен отметить, что вместо S2 и S3 было бы лучше иметь одну службу, которая возвращает возвращаемый идентификатор автора список книг с их идентификатором и названием. Предполагая, что вы должны иметь дело с сервисами как есть и не можете создать свой собственный сервис поверх этого, я бы в Form Builder определил:

  • Сервис OS1 для S1
  • Поле Скрытое поле OF1 , в котором будут храниться идентификаторы книг для выбранного автора.
  • Действие OA1 , который по значению раскрывающегося списка авторов меняет вызовы OS1 и заполняет OF1 списком идентификаторов книг, разделенных пробелами.
  • Сервис OS2 для S2 .
  • Действие OA2 , которое при значении OF1 меняет вызовы OS2 , передав значение OF1 и используя результат для заполнения раскрывающегося списка книг.
...