Orbeon XForms: повторно использовать http-сервис для нескольких действий - PullRequest
2 голосов
/ 07 сентября 2011

Разделение между службами http и действиями в формах Orbeon позволит повторно использовать службу http для нескольких действий.Но согласно https://github.com/orbeon/orbeon-forms/blob/master/src/resources/forms/orbeon/builder/form/dialog-actions.xml#L67 это преимущество было отключено - каждому действию требуется своя служба http.Я не вижу никакой причины для этого, почему фильтруются использованные материалы?

Спасибо!

1 Ответ

1 голос
/ 08 сентября 2011

Первоначально это было сделано, скажем, по историческим причинам!Я согласен, что это нежелательное ограничение.

Однако практически вы не можете просто удалить ограничение в диалоговом окне: причина в том, что каждое действие имеет следующий код:

<action ev:event="xforms-submit-done" ev:observer="my-service-submission">

Это означает, чточто если вы создадите более одного действия, каждое действие зарегистрирует обработчик событий для завершения одной и той же службы, и будут запущены обработчики обоих действий, что будет неправильным поведением.

Здесь необходимо что-тоэти строки:

  • каждое действие при запуске службы передает уникальный идентификатор (например, идентификатор действия) службе
  • после завершения передается уникальный идентификаторto xforms-submit-done
  • обработчик событий для каждого действия может фильтровать по этому идентификатору
  • только обработчик для действия, запустившего службу, запускает

Thisпотребовалось бы усовершенствовать механизм XForms для реализации этой функции, которая, кстати, уже была предложена для XForms 2.0 .

...