Orbeon Forms 2018.1.1 CE & MySQL: «Ошибка при выполнении поиска» получена на сводной странице любой созданной формы - PullRequest
0 голосов
/ 27 декабря 2018

Я установил Orbeon Forms 2018.1.1 CE, используя Mysql в качестве реляционной базы данных ( Версия Mysql: 8.0.13 ).

Хотя я могу создавать, сохранять и публиковать любую форму, при попытке получить доступ к сводке формы появляется ошибка «Ошибка при выполнении поиска».Та же самая ошибка также отображается каждый раз, когда я пытаюсь найти форму на странице сводки с помощью элемента управления «Формы поиска» в верхней части страницы.

Кроме того, страница сводки всегда пуста, хотя соответствующая таблица в базе данных содержит соответствующие записи.Приложение работает на Apache Tomcat (8.5.35) , а база данных была создана с использованием сценария mysql-2017_2.sql .

Я также проверил файл orbeon.log и нашел следующую запись:

Произошла ошибка

В синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса, чтобы использовать около row_number FROM orbeon_i_current c, (select @rownum := 0) r в строке 12

Стек вызовов приложений

oxf: /apps/fr/page-flow.xml

чтение страницы просмотра данных вывод 46

element = <service path="/fr/service/(oracle|mysql|postgresql|db2|sqlserver)/search/([^/^.]+)/([^/^.]+)" view="persisten view = постоянство / реляционный / search.xpl

oxf: / apps / fr / persistence / реляционный / поиск.xpl

чтение процессора выходной 22 * ​​1034 *

элемент = <p:output name="data" ref="data"/>

имя = данные

ref = данные

Iмне интересно, есть ли какая-либо другая необходимая конфигурация для страницы сводки для правильной работы.

Используя приложение P6Spy, я понял, что следующий запрос, кажется, ответственен за сообщение об ошибке:

SELECT count(*)
  FROM (
           SELECT c.data_id,
           c.document_id,
           c.draft,
           c.created,
           c.last_modified_time,
           c.last_modified_by,
           c.username,
           c.groupname,
           c.organization_id,
           @rownum := @rownum + 1 row_number
      FROM orbeon_i_current c
           , (select @rownum := 0) r
     WHERE c.app     = 'DemoApp'         AND
           c.form    = 'DemoForm'
       AND c.draft = 'N'
) a

На самом деле проблема, вероятно, заключается в следующей строке: @rownum: = @rownum + 1 row_number

MySQL представил оконную функцию ROW_NUMBER () начиная с версии 8.0 и в этой строкелитерал row_number переводится механизмом sql как функция.

1 Ответ

0 голосов
/ 10 января 2019

Это ошибка , и она исправлена ​​начиная с Orbeon Forms 2018.2.1 PE.

...